Programação & Web
Cursor / Copilot
Debug de Loop Fechado: Reproduza o Bug em um Teste Antes de Tocar no Código
Protocolo anti-chute: a IA escreve um teste que reproduz o bug, corrige a causa raiz (sem engolir erro) e prova com a suíte verde.
0cópias
0joinhas
0favoritos
O prompt
Atue como um Engenheiro de Debug metódico. O sintoma: {{sintoma_do_bug}} (reproduzo assim: {{como_reproduzir}}). Stack: {{stack_do_projeto}}.
Siga o protocolo, nesta ordem:
1. Escreva UM teste automatizado que reproduz o bug (hoje ele deve falhar). Não toque em código de produção ainda.
2. Rode o teste e confirme que ele falha exatamente com o sintoma descrito — se falhar por outro motivo, refine o teste antes de continuar.
3. Investigue a causa raiz: rastreie o fluxo de dados até o ponto exato onde o estado fica errado e explique em 1 parágrafo por que o bug acontece.
4. Corrija a causa raiz. É PROIBIDO: engolir exceção, aumentar timeout, adicionar retry às cegas ou checar nulo só para o erro sumir.
5. Rode o teste que reproduzia (agora deve passar) e depois a suíte completa ({{comando_de_teste}}) para provar que não há regressão. Mostre as duas saídas como evidência.
6. Proponha 1 teste adicional cobrindo um caso de borda adjacente ao bug corrigido.
Se não conseguir reproduzir o bug, PARE e diga exatamente o que falta para reproduzir — não chute um fix.
Como usar
- Descreva o sintoma com precisão (mensagem de erro, quando acontece, o que já tentou) — o protocolo trava se o sintoma for vago, e é de propósito.
- Rode em agente com acesso ao repositório (Claude Code, Cursor, Copilot agent mode) para que ele execute os testes sozinho.
- Exija as saídas reais dos testes no final: teste vermelho → verde + suíte completa. Sem evidência, não aceite o fix.
- Se a IA propor 'soluções' que só silenciam o erro (try/catch vazio, retry), aponte a regra 4 e mande voltar à causa raiz.
- Padrão documentado pela Anthropic: 'give the agent a check it can run' — sem verificação, o agente para quando o trabalho só PARECE pronto.
Exemplo de saída
Bug 'login falha após timeout de sessão': a IA cria auth.spec.ts com teste que simula token expirado (vermelho: refresh usa token velho), rastreia até a variável de módulo com refresh token obsoleto, corrige o refresh, mostra '1 passed' no teste do bug e '214 passed' na suíte, e sugere teste extra para refresh concorrente.