Ambiente
- Overclock desktop (AppImage Linux, sidecar
dist/index.jsc), MCP SSE em http://127.0.0.1:<porta>/sse/claude
- Claude Code 2.1.222 (última no npm em 2026-08-05)
Sintoma
Orquestrador de squad em CLI claude fica sem nenhuma via sancionada de delegação:
overclock_agent_invoke não existe mais (a doc do param persona do pane_spawn confirma: "same lookup the old agent_invoke did") — porém a descrição de overclock_squad_spawn ainda o menciona (doc desatualizada).
pane_spawn não aparece na sessão Claude — ToolSearch não acha, chamada direta retorna "No such tool available".
- O gate por pane (
skill-gate-pane-N.mjs) permite mcp__overclock__pane_spawn na allowlist, mas bloqueia os fallbacks que o modelo tenta (Agent nativo, overclock_task) → beco sem saída. O orquestrador claude flaila em ToolSearch e termina bloqueado.
Evidência
Probe SSE direto no sidecar (handshake + tools/list), com a MESMA querystring do pane orquestrador (squadRole=orchestrator, callerPaneId vivo):
- Servidor publica 47 tools, incluindo
pane_spawn.
- Sessões Claude Code enxergam 45 — somem exatamente
pane_spawn e overclock.
O inputSchema do pane_spawn anunciado pelo servidor:
{
"type": "object",
"required": [],
"anyOf": [
{"required": ["prompt"], "description": "Delegating (normal case): ..."},
{"required": ["idle"], "description": "Deliberately EMPTY pane: ..."}
],
"additionalProperties": false
}
Causa raiz
O Claude Code descarta silenciosamente tools MCP cujo input_schema tem anyOf na raiz (a API de tools da Anthropic exige objeto plain na raiz; o cliente dropa a tool em vez de sanitizar). Resultado: a tool existe no servidor, o gate espera ela, mas o modelo nunca a vê.
Fix sugerido (trivial)
Remover o anyOf da raiz do schema anunciado e mover o enforcement prompt XOR idle para runtime (validação na chamada, erro claro "passe prompt OU idle:true"). A descrição da tool já explica a regra em texto — o modelo obedece; o runtime garante.
Workaround atual
Trocar o orquestrador do squad para CLI codex (ingest OpenAI aceita o schema): pane_spawn({persona}) funciona e resolve CLI/model do roster corretamente. Verificado em produção local (2026-08-05).
Bônus: atualizar a descrição de overclock_squad_spawn que ainda referencia overclock_agent_invoke.
Ambiente
dist/index.jsc), MCP SSE emhttp://127.0.0.1:<porta>/sse/claudeSintoma
Orquestrador de squad em CLI claude fica sem nenhuma via sancionada de delegação:
overclock_agent_invokenão existe mais (a doc do parampersonadopane_spawnconfirma: "same lookup the old agent_invoke did") — porém a descrição deoverclock_squad_spawnainda o menciona (doc desatualizada).pane_spawnnão aparece na sessão Claude — ToolSearch não acha, chamada direta retorna "No such tool available".skill-gate-pane-N.mjs) permitemcp__overclock__pane_spawnna allowlist, mas bloqueia os fallbacks que o modelo tenta (Agentnativo,overclock_task) → beco sem saída. O orquestrador claude flaila em ToolSearch e termina bloqueado.Evidência
Probe SSE direto no sidecar (handshake +
tools/list), com a MESMA querystring do pane orquestrador (squadRole=orchestrator,callerPaneIdvivo):pane_spawn.pane_spawneoverclock.O
inputSchemadopane_spawnanunciado pelo servidor:{ "type": "object", "required": [], "anyOf": [ {"required": ["prompt"], "description": "Delegating (normal case): ..."}, {"required": ["idle"], "description": "Deliberately EMPTY pane: ..."} ], "additionalProperties": false }Causa raiz
O Claude Code descarta silenciosamente tools MCP cujo
input_schematemanyOfna raiz (a API de tools da Anthropic exige objeto plain na raiz; o cliente dropa a tool em vez de sanitizar). Resultado: a tool existe no servidor, o gate espera ela, mas o modelo nunca a vê.Fix sugerido (trivial)
Remover o
anyOfda raiz do schema anunciado e mover o enforcementprompt XOR idlepara runtime (validação na chamada, erro claro "passe prompt OU idle:true"). A descrição da tool já explica a regra em texto — o modelo obedece; o runtime garante.Workaround atual
Trocar o orquestrador do squad para CLI codex (ingest OpenAI aceita o schema):
pane_spawn({persona})funciona e resolve CLI/model do roster corretamente. Verificado em produção local (2026-08-05).Bônus: atualizar a descrição de
overclock_squad_spawnque ainda referenciaoverclock_agent_invoke.