Uso da ferramenta `question` e da rota `question` no ciclo Karpathy (kata). Use quando o agente @kata precisar perguntar algo ao usuário, diagnosticar sem alterar código, ou conduzir questionários no FIT, THINK, SIMPLIFY, INTENT, SURGICAL ou VERIFY. Triggers: question, perguntar, questionário, diagnosticar, rota question.
Install
npx skillscat add walternagai/kata/opencode-skills-kata-question Install via the SkillsCat registry.
Skill: kata-question
Guia para o uso da ferramenta question e da rota question no Karpathy Development Cycle.
A rota question e a ferramenta de perguntar são coisas diferentes. A
rota é um valor de fit.route no YAML da tarefa e se escreve question em
qualquer frontend; a ferramenta muda de nome conforme o host.
Objetivo
- Fazer perguntas ao usuário de forma disciplinada, uma por vez, sem interrogar.
- Diagnosticar e entregar achados quando a tarefa for classificada como rota
questionno FIT. - Evitar decisões unilaterais quando a resposta depende de preferência, contexto de negócio ou intenção do usuário.
Ferramentas
Para esta skill, use:
question: faça uma pergunta por chamada. Não agrupe múltiplas perguntas em uma única chamada.bash:git diff,grep,pytestetc., para coletar evidências antes de perguntar.read/grep: investigue o código para embasar a pergunta.write/edit: registre a resposta ou os achados em.kata/<task>.yaml.
Rota question no FIT
A rota question é escolhida quando o usuário quer entender algo antes de decidir.
| Quando usar | Exemplo | O que fazer |
|---|---|---|
| Diagnóstico | "Por que X está lento?" | Investigue, meça, mostre achados. Não mude código. |
| Opinião / recomendação | "O que você acha de usar Y?" | Liste prós e contras, recomende, aguarde decisão. |
| Esclarecimento | "Como Z funciona hoje?" | Explique baseado no código/doc, confirme se é isso. |
| Conflito de intenção | Código/teste/spec discordam | Pergunte qual autoridade prevalece. |
Procedimento da rota question
- Entenda a pergunta — reformule para o usuário confirmar.
- Colete evidências — use
bash,readegreppara obter dados. - Não altere código — a menos que o usuário autorize explicitamente.
- Entregue achados — organize em: contexto, evidências, recomendação.
- Registre em
.kata/<task>.yaml(viawrite/edit) e finalize o ciclo.
A rota
questionNÃO tem seção própria no schema: o audit, o relatório e o
judge não leemquestion:no YAML (K-19). Registre os achados nas chaves
existentes —think.problem/think.unknownspara contexto efit.reason
para a recomendação — e deixestatuscomothink-complete: o CLI para
após o THINK nesta rota e não aprova a tarefa.
status: think-complete
fit:
trivial: false
route: question
reason: "Diagnóstico: cobertura caiu no módulo X — achados: 120 linhas sem teste em X.py, função Y sem chamada; recomendação: testar Y e extrair lógica testável. Usuário não autorizou alteração."
think:
problem: "Por que a cobertura caiu no módulo X?"
unknowns: "RESOLVIDO: X.py ganhou 120 linhas sem testes; Y não é chamada por teste nenhum."
answered: trueUso geral de perguntas
Regras
- Uma pergunta por chamada — nunca jogue 4 perguntas de uma vez.
- Contexto primeiro — mostre ao usuário o que você já sabe antes de perguntar.
- Proponha, não interrogue — ofereça uma resposta padrão; pergunte se confirma.
- Seja específico — perguntas vagas geram respostas vagas.
- Não use pergunta para substituir investigação — primeiro pesquise com
bash/read/grep, depois pergunte.
Exemplos
❌ Bad:
"Qual o problema? Quais assumptions? Quais alternativas? O que você não sabe?"
✅ Good:
"Qual o problema exato que estou resolvendo? (ex: 'parse_date falha quando a entrada tem timezone')"
Quando perguntar
- FIT: para classificar rota e trivialidade.
- THINK: para preencher problem/assumptions/alternatives/unknowns.
- SIMPLIFY: para validar se código é mínimo.
- INTENT: para resolver conflitos entre código/teste/spec.
- SURGICAL: para confirmar se arquivo/import é necessário.
- VERIFY: para confirmar se critério de sucesso foi satisfeito.
Output no YAML
Registre quando a resposta influencia o ciclo:
question:
asked: "O critério de sucesso da tarefa está satisfeito?"
answer: "Sim"
context: "Testes passam e cobertura está acima de 70%"Para rota question, use o formato com findings e recommendation mostrado acima.
Princípios
- Uma pergunta por vez: respeite o tempo de resposta do usuário.
- Contexto antes de pergunta: mostre dados, não peça para adivinhar.
- Propose, don't interrogate: ofereça uma resposta, não uma inquisição.
- Diagnóstico não é ação: na rota
question, o output é conhecimento, não diff. - Documente a resposta: registre no YAML para rastreabilidade.