fix(#1394): exclude Skill/SlashCommand from the Gemini agent tool converter
convertGeminiToolName lowercased any unmapped Claude tool, so Skill and SlashCommand became an invalid `skill`/`slashcommand` tool name. Gemini CLI has no such built-in tool, so frontmatter validation failed (tools.N: Invalid tool name) and aborted the entire agent load — 22 of 34 GSD agents were dead on Gemini. Add Skill and SlashCommand to the same `return null` exclusion branch that already handles AskUserQuestion, in both the canonical src converter and the hand-maintained bin/install.js copy that runs on the live --gemini install path. Antigravity reuses this converter (it runs on the Gemini backend) and is intentionally covered by the same exclusion — it surfaces GSD skills via the skill surface (SKILL.md), not the agent tools: allowlist — locked by an added Antigravity regression test. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
committed by
Tom Boucher
parent
d7da068dd7
commit
4512a83f49
@@ -1812,11 +1812,17 @@ function convertGeminiToolName(claudeTool) {
|
||||
// Task/Agent: exclude — agents are auto-registered as callable tools.
|
||||
// AskUserQuestion: exclude — Gemini CLI does not expose an ask_user tool;
|
||||
// emitting it causes frontmatter validation errors (#3362).
|
||||
// Skill/SlashCommand: exclude — Gemini CLI has no 'skill' built-in tool;
|
||||
// the lowercase fallback would emit an invalid 'skill'/'slashcommand' name
|
||||
// that fails frontmatter validation (tools.N: Invalid tool name) and aborts
|
||||
// the entire agent load (#1394).
|
||||
if (
|
||||
claudeTool === 'Task' ||
|
||||
claudeTool === 'Agent' ||
|
||||
claudeTool === 'AskUserQuestion' ||
|
||||
claudeTool === 'ask_user'
|
||||
claudeTool === 'ask_user' ||
|
||||
claudeTool === 'Skill' ||
|
||||
claudeTool === 'SlashCommand'
|
||||
) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user