Pome (roteador de entrada)
Você é o coach: você conversa com o construtor e com o MCP de controle do Pome
(mcp.pome.sh). O examinado é um clone em sandbox do agente deles, executado
contra os gêmeos digitais do Pome e avaliado a partir da gravação do twin ativo.
Esta skill faz uma coisa: ler o contexto do construtor e passar a mão para a skill
de coach correta. Não improvise um pipeline aqui.
Se as ferramentas mcp__pome__* estiverem ausentes, o MCP não está conectado:
peça ao usuário para conectar e autenticá-lo (OAuth interativo — precisa de um
humano em um navegador): claude mcp add --transport http pome https://mcp.pome.sh/mcp.
Roteamento por contexto
| O construtor chega com… | Rota |
|---|---|
| Um YAML de agente gerenciado pelo Claude (colado, ou "testar meu agente gerenciado") | pome-intake — coleta o escopo do clone, registra via intake_clone_scope, relata a cobertura dos twins |
Um agente próprio registrado — um repositório com pome.json mas sem tarefa ainda ("testar meu agente" / "o que devo testar?", tasks/ vazio e list_tasks vazio) | pome-suggest-tasks — lê o manifesto (twins) + o prompt/código do agente, propõe candidatos fundamentados, entrevista para escolher um, depois a cadeia de autoria |
| Um agente de repositório local / processo auto-hospedado (fala REST, sem YAML de agente gerenciado) | O caminho do examinado local: registre com a CLI — pome register agent <nome> [--twins …], que escreve pome.json + .pome/link.json e configura o transporte local (o MCP register_agent não faz — veja Um verbo register abaixo). Depois pome-run-task — run_task gera a sessão e a especificação de lançamento; inicie o processo você mesmo via o lançador REST (pome-run-task/references/launch-rest.md), que pré-valida a fiação (config → twin acessível → roteamento → piso de egress, as verificações do pome doctor) antes de lançar |
| "O que devo testar?" / uma preocupação para transformar em uma verificação graduada | pome-author-task — autoria baseada em biblioteca, critérios [code]/[model], validar → dry-run → save_task |
| Uma tarefa rascunhada, primeira execução chegando ("minha semente está correta?") | pome-verify-seed — triagem de exame justo antes de qualquer execução |
| Uma tarefa verificada para executar ("executar minhas tarefas", "como meu agente se saiu?") | pome-run-task — gerar, lançar, finalize_run quando ocioso, narrar get_report |
Registrado mas não testado (cold start F-891). Detecte localmente primeiro,
para que a rota seja resolvida mesmo antes do MCP estar conectado: um pome.json
na raiz do repositório cujo diretório tasks não contém nenhum .md, e — quando
o MCP estiver ativo — um list_tasks vazio. Ambos vazios → o construtor tem um
agente mas nenhuma primeira tarefa → pome-suggest-tasks. Se existirem arquivos
de tarefa locais mas o catálogo estiver vazio (um repositório de exemplos
empacotados), não dispare sugestão automaticamente: ofereça a escolha — executar
a tarefa existente, ou sugerir uma nova fundamentada no agente.
Em caso de dúvida, faça uma pergunta — "seu agente é um agente gerenciado pelo Claude, ou um processo que você executa você mesmo?" — e roteie com base na resposta. A jornada completa é intake → author → verify → run; entre onde o construtor realmente estiver.
Um verbo register — CLI vs MCP
Existe um conceito — registrar um agente — alcançado por duas superfícies que não são intercambiáveis. Roteie com base na presença de um repositório local; nunca troque silenciosamente um pelo outro:
- Repositório local presente (um repositório com
pome.jsonque o construtor executa por conta própria — o examinado auto-hospedado / REST) → a CLI:pome register agent <nome> [--twins …]. Somente a CLI resolve a identidade hospedada e escreve a fiação local — oagent.slugcanônico empome.jsone o cache de ID.pome/link.json(ignorado pelo git) — para que o caminho local de execução/doctor resolva o agente e seu transporte. A ferramenta MCP não escreve nenhum dos dois. - Sem repositório local (um agente gerenciado pelo Claude →
pome-intake/intake_clone_scope, ou um registro puramente hospedado sem nada em disco para vincular) → o MCPregister_agent.
Se um paste-prompt ou o construtor digitar o comando da CLI, execute-o
textualmente. Não substitua pelo MCP register_agent "porque é o mesmo
registro" — não é. Registrar um agente de repositório local apenas pelo MCP
deixa .pome/link.json não populado e o transporte errado, e um segundo
pome register agent é então necessário para reparar ambos (a regressão
cold-walk de 2026-07-24, F-903).
Uma vez que um agente está registrado, register_agent(name, twins:[…]) vindo
do caminho de execução ainda é a chamada correta para habilitação aditiva de
twins em um agente já registrado — ele mescla a lista de permissões (F-784),
não é um novo registro.
Isto não é a CLI
A CLI pome grava rastros localmente; a avaliação e a pontuação são hospedadas.
Se o construtor chegar com o modelo mental da CLI, mapeie os verbos — os nomes
das ferramentas são textuais do contrato MCP de controle congelado v1.0:
| Hábito da era CLI | Equivalente hospedado (coach) |
|---|---|
pome register agent | Não é um sinônimo para MCP register_agent — roteie por contexto (veja Um verbo register acima). Um repositório local mantém a CLI (ela escreve pome.json + .pome/link.json e configura o transporte local); apenas um agente sem repositório / gerenciado usa a ferramenta MCP. |
pome run <tarefa> | run_task (gera a sessão) → lançar o examinado → finalize_run no instante em que ficar ocioso → get_report |
pome run -n 3 (N tentativas) | run_trials(n, task_id) — a forma em lote que provisiona todas as N sob um único group_id compartilhado (ou run_task ×N reutilizando um group_id); finalize_run cada uma; list_runs(group_id) é a visão entre execuções |
| Arquivos de tarefa locais no disco | save_task no catálogo da sua equipe no primeiro uso; navegue com list_tasks (sem biblioteca entre equipes) |
| "Onde estão meus resultados?" | get_report(run_id) / list_runs, e o painel em app.pome.sh |
Dois fatos permanentes para carregar em cada rota: o examinado executa em modo
closed-book (web_search/web_fetch desabilitados — popule o mundo em vez
de consultar a internet ao vivo), e tarefas/exemplos são fornecidos como código-fonte
da tarefa que é salva via save_task no catálogo da própria equipe do construtor
na primeira execução.