This post is not yet available in English. Showing Portuguese version.
O que é SDD
Spec-Driven Development (SDD) é a prática de escrever uma especificação clara e detalhada antes de escrever qualquer linha de código. Não é um conceito novo — engenheiros experientes sempre souberam que entender o problema antes de resolver é metade do caminho. O que mudou é que agora temos IA disponível em cada etapa do processo.
A ideia central é simples: se você não consegue escrever uma spec do que quer construir, você não entende o problema o suficiente para codificar. A IA amplifica isso — ela é excelente em transformar ideias vagas em especificações estruturadas, mas só funciona bem quando você sabe o que quer.
SDD com IA não é sobre deixar a IA pensar por você. É sobre usar a IA para externalizar e estruturar seu pensamento mais rápido.
Como a IA se encaixa
Ferramentas como Claude, ChatGPT e GitHub Copilot têm capacidades diferentes mas complementares:
- Claude e ChatGPT são melhores para raciocínio, geração de specs, planejamento arquitetural e revisão de código
- Cursor e Claude Code vivem dentro do editor e são melhores para implementação assistida com contexto do codebase
- GitHub Copilot é mais útil para completion inline durante a escrita de código
O erro mais comum é pular direto para “me escreva o código para X”. Isso produz código genérico que provavelmente não se encaixa na sua arquitetura. O SDD resolve isso: você chega no passo de codificação com um contexto tão bem definido que a IA produz algo diretamente utilizável.
O workflow na prática
1. Brainstorm com IA
Antes de qualquer coisa, use a IA para explorar o espaço do problema. Não peça solução ainda — peça perguntas.
Prompt: "Quero adicionar sistema de notificações por email no meu app Rails.
Quais são as principais decisões de design que preciso tomar antes de implementar?
Que casos extremos devo considerar?"
A IA vai levantar pontos que você talvez não tivesse considerado: filas de envio, bounce handling, unsubscribe, templates, idempotência. Isso é o brainstorm. Você filtra o que é relevante para o seu contexto.
2. Spec document
Com o escopo definido, peça à IA para ajudar a escrever uma spec estruturada.
Prompt: "Com base nessa conversa, escreva uma spec técnica para o sistema de
notificações. Inclua: objetivo, requisitos funcionais, requisitos não-funcionais,
modelo de dados, interfaces públicas e o que está fora do escopo."
O output é um documento que você revisa e ajusta. Esse documento passa a ser o contexto para todos os próximos passos com a IA — e também serve como documentação para a equipe.
3. Implementation plan
Com a spec pronta, quebre em tasks concretas.
Prompt: "A partir dessa spec, crie um plano de implementação com tasks ordenadas
por dependência. Cada task deve ser pequena o suficiente para ser feita em uma
sessão de código. Indique quais podem ser feitas em paralelo."
O resultado é uma lista de tasks tipo: “criar migration para tabela notifications”, “criar modelo Notification com validações”, “criar job SendEmailNotificationJob”, etc. Cada uma delas é pequena, testável e tem escopo claro.
4. Código assistido
Agora sim você vai para o código, task por task. Mas não com um prompt vago — você traz a spec e a task específica como contexto.
Prompt: "Usando a spec abaixo e seguindo as convenções do nosso projeto Rails,
implemente o modelo Notification. [spec aqui] [código de exemplo do projeto aqui]"
Com contexto rico, a IA produz código que segue as convenções do projeto, não um exemplo genérico de tutorial.
5. Review
Depois de implementar, peça revisão para a própria IA — mas com critérios específicos.
Prompt: "Revise esse código considerando: (1) está seguindo a spec? (2) há edge
cases não cobertos? (3) os testes cobrem os cenários importantes? (4) há
problemas de performance óbvios?"
A IA não vai encontrar tudo, mas vai encontrar coisas que você estava cego por estar imerso no código.
Benefícios reais
Velocidade: o maior ganho não é a IA escrever código mais rápido — é você não ficar travado. Quando surgir uma dúvida de design no meio da implementação, você tem um interlocutor disponível 24/7.
Consistência: com a spec como contexto fixo, o código gerado em diferentes sessões tende a ser mais consistente do que o código que você escreveria em dias diferentes com humores diferentes.
Documentação automática: a spec que você criou no passo 2 já é documentação. Os prompts que você usou já documentam as decisões de design. Isso tem valor para a equipe e para você mesmo em 6 meses.
Onboarding de contexto: quando você volta a uma feature depois de semanas, pegar a spec e passar para a IA te reconecta ao contexto muito mais rápido do que ler o código.
Armadilhas para evitar
Confiar cegamente no código gerado. A IA pode produzir código que parece correto mas tem bugs sutis, especialmente em edge cases de concorrência, segurança e lógica de negócio complexa. Revisão humana não é opcional.
Pular a spec e ir direto para o código. Funciona para tasks triviais, mas para qualquer coisa com mais de 30 minutos de trabalho, a falta de spec vai te custar mais do que o tempo que você economizou.
Aceitar a spec da IA sem questionar. A IA vai gerar uma spec plausível, mas plausível não é o mesmo que correto para o seu contexto. Você precisa revisar e ajustar.
Usar a IA como substituto para entender o problema. Se você não consegue explicar o problema para um colega, a IA também não vai resolver isso. Ela vai gerar algo, mas provavelmente não o que você precisa.
Um exemplo concreto
Feature de exportação de relatório CSV que levaria 2 dias no fluxo tradicional:
- 30 min de exploração com IA (quais formatos? async ou sync? como lidar com relatórios grandes?)
- 20 min para revisar e finalizar a spec gerada pela IA
- 15 min para quebrar em tasks
- 2h para implementar as tasks com código assistido
- 30 min de revisão
Total: menos de 4 horas. A aceleração não vem do código ser escrito mais rápido — vem de não ficar travado em decisões de design no meio da implementação.
Spec Kit: SDD como toolkit open source
O GitHub lançou o Spec Kit — um toolkit open source que formaliza o SDD em um processo estruturado com três fases claras e comandos prontos para uso com agentes de IA como Copilot, Claude Code e Gemini CLI.
As 3 fases do Spec Kit
1. Specify (/speckit.specify): Transforma ideias vagas em documentos de requisitos completos. Foca em necessidades de negócio e valor para o usuário, sem detalhes de implementação. Ambiguidades são marcadas explicitamente com [NEEDS CLARIFICATION].
2. Plan (/speckit.plan): Converte especificações em planos de implementação técnicos. Mapeia requisitos para decisões arquiteturais com justificativa documentada. Gera modelos de dados, contratos de API e cenários de teste.
3. Tasks (/speckit.tasks): Deriva listas de tasks executáveis a partir do plano. Identifica oportunidades de trabalho paralelo e produz entregas concretas prontas para geração de código.
A inversão de poder
A filosofia central do Spec Kit é que especificações não servem ao código — código serve às especificações. O PRD (Product Requirements Document) não é um guia para implementação; é a fonte que gera a implementação. Quando a spec dirige tudo, não há gap entre intenção e execução — só transformação.
Na prática, isso significa que o Spec Kit trata linguagem natural como artefato executável. Templates estruturados constrangem o output da IA para produzir specs de maior qualidade, e princípios constitucionais (como “test-first” e “library-first”) garantem que o código gerado mantenha consistência.
Por que isso importa
Antes do Spec Kit, cada time improvisava seu workflow de SDD. Agora existe um processo padronizado, com templates validados e gates de qualidade embutidos. Se você trabalha com agentes de IA para desenvolvimento, vale experimentar.
Ferramentas que funcionam bem juntas
- Spec Kit: framework de SDD com fases e templates estruturados
- Claude Code ou Cursor: para o ciclo de código com contexto do projeto
- Claude.ai ou ChatGPT: para brainstorm, specs e planejamento (contexto de conversa longo)
- GitHub Copilot: para completion inline durante a escrita
Conclusão
SDD com IA é sobre amplificar o desenvolvedor, não substituí-lo. A IA é boa em estruturar, gerar e revisar. Você é bom em entender o negócio, tomar decisões com contexto e julgar qualidade. O workflow funciona quando cada um faz o que faz melhor.
O Spec Kit do GitHub formalizou esse processo em algo replicável e open source. O investimento em escrever uma boa spec antes de codar retorna em código mais focado, menos retrabalho e documentação que se escreve sozinha. A IA torna esse investimento muito mais barato.