Vibe coding: o que é de verdade e o checklist que uso pra não virar dívida técnica

Ando deixando o agente escrever a maior parte do código. Funciona muito bem, até você aceitar um diff sem ler e, três sprints depois, descobrir que o caso de borda que ninguém testou virou incidente.
Queria dividir duas coisas: o que "vibe coding" é de verdade (muita gente usa o termo errado, eu inclusive já usei), e o processo que parou de me morder.
O que é vibe coding (e o que não é)
O termo é do Karpathy (fev/2025). Na origem, vibe coding é literalmente "se entregar às vibes": você descreve o que quer, aceita o que a IA gera e nem lê o diff direito. Ele mesmo descreveu como algo pra projeto descartável, de fim de semana, baixo risco.
Ou seja: vibe coding puro NÃO é revisar código com rigor. É o contrário. E é ótimo pra protótipo.
O problema é levar essa mesma postura ("aceita e segue") pra código de produção. Aí não é mais vibe coding, é dívida técnica no débito automático.
O checklist que rodo antes de aceitar um diff de agente
- Li o diff inteiro? Se não, não dá merge. O resto só vale depois disso.
- Casos de borda: null, lista vazia, timeout, input malicioso. Testei ou só confiei que "parece certo"?
- Auth e permissão: o agente não conhece meu modelo de ameaça. Reviso à mão, sempre.
- Dependência nova: ele adicionou lib? Justifica? Tamanho, manutenção e licença batem? A IA às vezes importa pacote que nem existe.
- O teste que ele escreveu testa comportamento ou só repete a implementação? A IA adora escrever o teste que valida o próprio bug.
- "Quase certo" é o pior caso. 66% da frustração com IA é o "quase certo, mas não totalmente" (Stack Overflow 2025). Rodei de verdade, não só li?
E como saber se os testes que a IA escreveu prestam?
Aqui tá a pegadinha do item 5: a mesma IA que escreveu o código bugado também escreve o teste que passa nele. Cobertura de 100% não prova nada.
O que responde isso é o teste de mutação (mutation testing): a ferramenta injeta bugs de propósito no seu código e vê se algum teste FALHA. Se nenhum falha, seus testes não pegam aquela falha. Times com 80-90% de cobertura costumam ter mutation score de ~30% (Codecov). Ou seja: a barra verde mente.
E os agentes que revisam PR?
A Anthropic lançou o Code Review no Claude Code: agentes comentam o PR automaticamente por severidade. Os números que divulgaram (comentário substantivo subindo de 16% pra 54% dos PRs, menos de 1% de falso positivo) são animadores. Mas são reportados pela própria Anthropic, medidos internamente. Valem como sinal, não como prova. Vale medir no seu repo.
E no fim, quem assina o merge e responde pelo bug em produção continua sendo você.
Pergunta pra vocês
- Vocês aceitam diff que não leram inteiro se os testes e os agentes passaram?
- Como isso muda pra quem tá começando e nunca leu código dos outros?
Versão longa do vibe coding (com diagramas e exemplos): https://www.techknow.com.br/post/vibe-coding
Sobre validar os testes que a IA escreve (mutation testing): https://www.techknow.com.br/post/mutation-testing-testes-ia