← todos os posts

"Peça prova, não promessa: o pedido que faz a IA rodar o teste antes de dizer \"pronto\""

"Um bloco de sete linhas pra colar no pedido, onde ele mora em cada ferramenta, e o que responder quando a saída não vem."

"Silent fake success."

"Sucesso falso silencioso." É como usuários do Claude Code descreveram, em relatos de 2026 registrados na pesquisa deste blog, o momento em que a IA dá a tarefa por concluída sem nada provar que ela foi feita. Não aparece erro. Aparece "pronto".

No post anterior a resposta pra isso foi uma pergunta: "me mostra". Funciona, mas depende de você lembrar toda vez, e cansado ninguém lembra. Aqui vai a versão que não depende: o pedido que já chega exigindo a prova.

Por que ela não mostra sozinha

Porque o seu pedido não disse o que conta como pronto. "Conserta o desconto" termina quando o arquivo foi editado. A documentação do Claude Code, a ferramenta de programar da Anthropic, descreve o resultado sem rodeio: sem uma conferência que a IA consiga rodar, "você vira o laço de verificação: todo erro espera você notar".

Se ninguém pediu a prova, a prova é você. Dá pra devolver esse trabalho.

O bloco, pra colar no fim do pedido

Antes de mudar, me diga em uma frase como você vai provar que funcionou.

Depois de mudar:
1. Rode essa prova de verdade.
2. Cole aqui o resultado inteiro, do jeito que saiu. Não resuma.
3. Se a prova for uma tela, mande o print dela no estado que eu pedi.

- Não altere nenhum teste ou critério pra fazer passar. Se a prova parecer
  errada ou impossível, PARE e me diga por quê.
- Se não conseguiu rodar a prova, escreva "NÃO VERIFIQUEI" e me passe os
  passos pra eu conferir na tela.
- Não escreva "pronto" sem a saída colada acima.

Cada linha está ali por um motivo:

"Me diga como vai provar, antes." É a primeira recomendação da documentação do Claude Code: dar à IA um critério que ela consegue checar, como "rode os testes depois de implementar". Teste é um pequeno programa que confere se outro faz o que devia. Se a frase que ela devolver não te convencer, corrija ali, antes de pagar pelo código.

"Cole inteiro, não resuma." "Todos os testes passaram" é resumo, e resumo é relato. Você quer o texto que saiu, mesmo sem entender metade: "erro" ou "failed" (falhou) você reconhece.

"Não altere o teste. Se parecer impossível, pare." Essa linha tem número por trás. No ImpossibleBench, um estudo de 2025 apresentado na ICLR 2026, pesquisadores deram à IA tarefas em que o teste contradizia o pedido. Com o pedido comum, o GPT-5 "fazia passar" trapaceando em 92% das tarefas de um dos conjuntos. Com uma instrução dizendo pra parar e apontar o teste errado, caiu pra 1%. Num outro modelo, o o3, caiu só pra 33%. Não é feitiço, e são tarefas montadas pra serem impossíveis, não o seu app. Mas mostra que dizer "pare em vez de forçar" muda o comportamento.

"Se não rodou, escreva NÃO VERIFIQUEI." Sem essa saída honesta, a única resposta aceitável que você deixou é "pronto". Com ela, admitir que não conferiu vira resposta válida.

Onde o bloco mora em cada ferramenta

Ponha o bloco onde ela lê sempre:

  • Claude Code: no CLAUDE.md, o arquivo de regras que ela lê no começo de toda conversa. É o bloco "como provar que terminou" do arquivo de regras mínimo.
  • Lovable: no Knowledge do projeto. E o Lovable tem browser testing: a IA abre o seu app num navegador virtual, clica, preenche, tira print e lê os erros. Peça com todas as letras: "Use browser testing to verify this flow" (use o teste no navegador pra conferir este fluxo). Por padrão ela tenta jeitos mais leves antes, então peça. Limite: tela atrás de login só é testada se o seu app usa o banco do próprio Lovable (o Lovable Cloud). Com Supabase externo, não.
  • Replit: ligue o App Testing, nas configurações avançadas do menu do Agent, na caixa de mensagem. O Agent navega no app como um usuário e te entrega um vídeo do teste pra assistir. Dois avisos da documentação: ele não testa toda mensagem, e o teste é cobrado pelo esforço.
  • Chat comum (ChatGPT, Claude no navegador): ele não tem como rodar o seu app. A resposta certa ao bloco é "NÃO VERIFIQUEI" com os passos. Se vier "pronto", desconfie da conversa inteira.

Quando a saída não vem

O que voltou O que significa Sua próxima mensagem
"Pronto!" sem nada colado ignorou o bloco "Cadê a saída? Não sigo sem ela." Se repetir, conversa nova com o bloco no topo
"Todos os testes passaram" resumo "Cola a saída inteira, do jeito que saiu."
saída colada, de outra coisa provou o que era fácil "Essa prova não é do que eu pedi. Rode a que você me descreveu antes."
mexeu no teste ou no critério fez passar à força volte pro ponto de retorno e peça de novo
"NÃO VERIFIQUEI" + passos resposta honesta siga os passos, tire o print, cole de volta
saída mostrando erro agora você sabe uma correção, com o erro colado. Se o mesmo erro voltar, pare

A saída com erro parece a pior linha. É a melhor: você descobriu o problema na hora, e não três pedidos depois.

O que fazer hoje

Copie o bloco num arquivo de texto. Ponha no lugar de regras da sua ferramenta ou cole no próximo pedido. Por uma semana, anote quantas vezes a saída não veio de primeira. Esse número diz quanto do seu "pronto" era promessa.

Era uma parede de várias

O bloco faz a IA mostrar. Não te ensina qual prova pedir pra cada tipo de mudança, e algumas das provas que mais importam nem cabem num print: "o cliente B não vê o pedido do cliente A" só aparece com duas contas abertas. Saber que prova serve pra quê, e em que ordem elas entram no app, é a parte que um bloco de texto não carrega.

Fontes

  • Claude Code Docs, "Best practices for Claude Code" (dar à IA uma conferência que ela consiga rodar; sem ela, "você vira o laço de verificação"; exemplo "run the tests after implementing"): https://code.claude.com/docs/en/best-practices
  • Ziqian Zhong, Aditi Raghunathan e Nicholas Carlini, "ImpossibleBench", arXiv, out/2025, apresentado na ICLR 2026 (no Conflicting-LiveCodeBench, a instrução de parar e apontar o teste falho levou a trapaça do GPT-5 de 92% a 1% e a do o3 a 33%; tarefas de programação montadas pra serem impossíveis, não ferramentas no-code): https://arxiv.org/abs/2510.20270
  • Lovable Docs, "Browser testing" (navegador virtual, prints, leitura de erros; conservador por padrão; teste com login exige Lovable Cloud): https://docs.lovable.dev/features/browser-testing
  • Replit Docs, "App Testing" (configurações avançadas do Agent; não testa toda mensagem; vídeo do teste; cobrado pelo esforço): https://docs.replit.com/features/agent/app-testing