Como escrever prompts de debug que funcionam de primeira
A diferença entre "gastei 20 minutos brigando com a IA" e "resolveu na primeira" quase nunca é o modelo. É como você estrutura o pedido. Colar 300 linhas e escrever "não funciona, arruma" é a receita do vai-e-volta infinito. Existe um formato que resolve isso — e ele cabe em quatro blocos.
Por que "não funciona, arruma" falha
Quando você joga só o código e uma reclamação vaga, o modelo precisa adivinhar três coisas: o que deveria acontecer, o que está acontecendo, e onde. Ele chuta. Às vezes acerta; na maioria das vezes devolve uma pergunta ("qual erro aparece?") ou conserta o problema errado. Cada chute é um round a mais — e cada round reenvia o código inteiro, custando tokens.
A estrutura de quatro blocos
Debug bom se resume a responder quatro perguntas, na ordem:
- Stack / Ambiente — qual linguagem, versão, framework, banco. Um bug de
asyncem Node 18 é diferente do mesmo código em Node 22; - Comportamento esperado — o que deveria acontecer, em uma frase clara;
- Comportamento atual / erro — o que de fato acontece, com a mensagem de erro exata (stack trace, código HTTP, o que for);
- Código-fonte isolado — só o trecho relevante, limpo, sem o resto do projeto.
💡 Dica de Dev: a mensagem de erro exata vale mais que dez linhas de descrição.
TypeError: Cannot read properties of undefined (reading 'id') diz ao modelo exatamente
onde olhar. "Tá dando erro" não diz nada.
Exemplo lado a lado
Ruim:
arruma esse login que ta dando erro
[300 linhas de código coladas]
Bom:
Stack: Node.js 20 + Express + PostgreSQL
Esperado: POST /login retorna 200 com o token JWT no body
Atual: retorna 500 — TypeError: Cannot read properties
of undefined (reading 'id')
Código: [só a função login, limpa]
O segundo prompt tem menos texto e resolve mais rápido. O modelo já sabe que o
user está vindo undefined do banco, e vai direto para a query e o
tratamento do resultado — em vez de gastar um round perguntando qual é o erro.
Isole o código de verdade
"Código isolado" é literal: mande a função com o bug, não o arquivo de 500 linhas onde ela mora. Contexto irrelevante não ajuda o diagnóstico e ainda polui a janela de contexto. Se o bug depende de outra função, mande as duas — mas não o módulo inteiro "por garantia".
Por que a ordem importa
Modelos de linguagem processam melhor quando o contexto vem antes do dado. Stack e comportamento esperado enquadram o problema; o erro aponta o sintoma; o código é onde ele aplica tudo isso. Inverter — jogar o código primeiro e o contexto depois — faz o modelo ler 300 linhas sem saber o que procurar.
Não decore o formato — deixe a ferramenta montar
O TokenSaver tem os quatro campos prontos: você preenche stack, esperado, erro e código, e ele monta o prompt estruturado (e higienizado) para colar direto na IA.
Montar meu prompt de debug — 2 usos grátis