Vibe coding vs engenharia disciplinada

TL;DR

“Vibe coding” é gerar código por tentativa e erro conversacional com IA — funciona para protótipos mas gera tech debt exponencial em produção. Engenharia disciplinada com IA mantém o humano como arquiteto e o agente como executor, com specs claras, testes imutáveis, e code review rigoroso. O gap entre os dois é a diferença entre “funciona no meu localhost” e “funciona em produção por 3 anos”. A competência profissional em 2026 está na engenharia disciplinada.

O termo “vibe coding” nasceu de um tweet de Andrej Karpathy em fevereiro de 2025 e virou fenômeno cultural — Palavra do Ano do Collins em 2025. Mas em 2026 o próprio Karpathy declarou que essa era está se encerrando: o mercado profissional migra para a engenharia agêntica, com especificações detalhadas e supervisão humana. Esta nota contrasta os dois polos e mostra por que a competência de 2026 mora na disciplina, não na vibe.

O que é

Vibe coding (termo cunhado por Andrej Karpathy em 2025) descreve o workflow de:

  1. Pedir algo ao AI em linguagem natural
  2. Aceitar o que ele gerar
  3. Se quebrar, pedir para consertar
  4. Repetir até funcionar

Engenharia disciplinada com IA é o workflow de:

  1. Definir a spec/arquitetura antes de gerar código
  2. Usar o agente como executor da spec
  3. Revisar cada mudança com compreensão do porquê
  4. Manter testes, linting e CI como barreiras imutáveis

Na formulação original, Karpathy descreveu um modo em que o desenvolvedor “se entrega totalmente às vibes, abraça as exponenciais e esquece que o código existe” — explicitamente adequado a protótipos e projetos descartáveis de fim de semana, não a código de produção. O uso do termo para sistemas em produção é justamente o que adquiriu conotação negativa.

Por que importa

MétricaVibe codingEngenharia disciplinada
Velocidade inicial★★★★★★★★
Qualidade 1 mês depois★★★★★★★
Tech debt acumuladaExponencialControlada
Segurança❌ Vulnerável✅ Auditada
ManutenibilidadeMuito baixaAlta
Custo de tokensAlto (muitos retries)Menor (menos iterações)

Há dado empírico do acúmulo de tech debt: o estudo do GitClear sobre 211 milhões de linhas encontrou queda de ~60% na atividade de refatoração entre 2021 e 2024, enquanto instâncias de copy-paste cresceram ~48% — em 2024, pela primeira vez, linhas copiadas-e-coladas superaram as refatoradas. É o rastro de gerar sem revisar.

O custo também não se distribui por igual entre os polos. A IA entrega ~70% de uma solução depressa, mas os 30% finais — edge cases, integração com produção, segurança, gestão de chaves — continuam tão caros quanto sempre foram (o 70% problem, de Addy Osmani). E esse 30% se comporta de forma oposta conforme a senioridade: para o sênior, fechar a última milha costuma ser mais lento do que escrever limpo desde o início; para o júnior, vira um jogo de gato-e-rato em que consertar um bug quebra outro, sem repertório para sair do loop.

Como funciona

O ciclo vicioso do vibe coding

graph TD
    A["Prompt vago<br>'faz um login'"] --> B[AI gera código]
    B --> C{Funciona?}
    C -->|Não| D["'Conserta esse erro'"]
    D --> B
    C -->|Sim| E["Commit sem review"]
    E --> F["Próximo prompt vago"]
    F --> A    

Problemas que se acumulam:

  • O AI pode “consertar” erros de forma que introduz novos bugs
  • Cada iteração adiciona contexto descontrolado, aumentando custo de tokens
  • Código gerado não segue padrões do projeto
  • Testes são modificados pelo AI para “passar” em vez de testar corretamente

O “conserta esse erro” não é neutro em segurança: o estudo Security Degradation in Iterative AI Code Generation (IEEE-ISTAS 2025) mostrou que iterar com o modelo sobre o próprio código degrada a postura de segurança a cada rodada — cada conserto tende a introduzir uma vulnerabilidade nova em vez de apenas eliminar a anterior. O loop acumula dívida de segurança de forma sistemática, não acidental.

O ciclo virtuoso da engenharia disciplinada

graph TD
    A["Spec clara<br>'módulo auth com JWT'"] --> B["Plan mode<br>(AI analisa, não modifica)"]
    B --> C["Review do plano"]
    C --> D["Build mode<br>(AI implementa a spec)"]
    D --> E["Code review<br>(comprehension gate)"]
    E --> F{Entende tudo?}
    F -->|Não| G["Rejeitar ou<br>pedir explicação"]
    G --> D
    F -->|Sim| H["Testes passam?"]
    H -->|Não| I["AI corrige<br>(testes imutáveis)"]
    I --> D
    H -->|Sim| J["Merge"] 

Práticas da engenharia disciplinada

PráticaO que éPor que importa
Comprehension gateSe não entende a mudança, não faz mergeEvita código fantasma no codebase
Testes imutáveisAI não pode reescrever testes para passarTestes são a barreira de qualidade
Plan before buildUsar plan mode antes de gerar códigoReduz iterações (e tokens)
Spec-drivenDefinir o “o quê” antes do “como”Mantém coerência arquitetural
Context filesCLAUDE.md, .cursorrules, agents.mdO agente segue seus padrões
Commits atômicosCada commit resolve uma coisaReversibilidade granular

O espectro entre vibe e disciplina

Na prática, o ideal não é nem 100% vibe nem 100% spec-driven. Depende da fase:

FaseAbordagem recomendada
Prototipagem / spikeVibe coding é OK — descarte o código depois
MVP v1Semi-disciplinado — specs leves, testes básicos
Feature em produçãoDisciplinado — specs, testes, review
Infraestrutura / auth / pagamentoUltra-disciplinado — human review obrigatório, zero vibe

Da disciplina single-agent à orquestração multi-agente

O ciclo virtuoso acima descreve o modelo de 2025: um agente em plan → build → review, com o humano revisando cada diff. O que Karpathy chama de agentic engineering (2026) leva a disciplina adiante e a torna multi-agente — o humano vira orquestrador de vários agentes especializados rodando em paralelo (planejador, implementador, validador), e seu trabalho migra de “revisar cada diff” para projetar o sistema, especificar constraints e julgar saídas. A spec deixa de ser documento e passa a ser o substrato que coordena os agentes. A disciplina não desaparece com agentes melhores; ela sobe de nível.

Armadilhas

  • “Vibe coding é ruim” — não é. É excelente para prototipagem, exploração, e aprendizado. O problema é usá-lo em produção.
  • “Engenharia disciplinada é lenta” — parece mais lenta no primeiro dia. No dia 30, o projeto com disciplina está muito à frente porque não está gastando tempo consertando tech debt.
  • “Eu me sinto mais produtivo com IA” — sentir não é medir. Num ensaio controlado randomizado da METR (2025), 16 devs experientes em 246 tarefas reais ficaram 19% mais lentos usando IA, enquanto estimavam ter ficado 20% mais rápidos. A percepção de aceleração descola da aceleração real. (Em fev/2026 a própria METR relativizou o número — quem mais se beneficia de IA recusava o braço sem-IA do experimento —, mas o descolamento percepção×medição segue de pé.)
  • “O AI é tão bom que review não precisa” — falso. LLMs alucinam, ignoram edge cases, e introduzem vulnerabilidades silenciosas. Review é obrigatório.
  • “Testes são opcionais com AI” — ao contrário: com AI, testes são MAIS importantes. Sem testes, não há barreira entre código correto e alucinação que funciona por acaso.
  • Reescrever testes para passar — se o agente modifica os testes junto com o código, os testes não estão testando nada. Testes devem ser escritos ANTES ou separadamente.

Veja também

Referências