Venho usando agentes de código (Claude Code, Cursor) e bati numa parede que todo mundo conhece: o vibe coding — descrever a tarefa e deixar a IA cuspir código — escala mal. Funciona até a terceira mudança, quando ninguém mais lembra qual era a intenção original. O código virou a única fonte de verdade, e ele é péssimo pra contar por que algo foi feito.
Foi aí que caí no Spec-Driven Development (SDD): colocar a especificação antes do código. Na prática, a "spec" é um markdown versionado no repo — requisitos + critérios de aceite — que a IA lê antes de gerar qualquer linha. Ela vira o artefato principal, não um doc que apodrece numa pasta.
A tese que tirei: o gargalo de programar com IA deixou de ser "a IA escreve código bom?". Hoje é "a IA entende o que eu realmente quero?". A spec é o que fecha essa lacuna.
Três coisas que me fizeram levar a sério:
Não é waterfall. A spec é viva — você roda quatro fases em ciclos curtos: specify → plan → tasks → implement (que em ferramentas como o Spec Kit viram comandos: /speckit.specify, /speckit.plan...). Mais perto de TDD do que de cascata.






