O que é spec-driven development e como isso muda o uso do Claude Code?

Spec-driven development (SDD) é a metodologia em que uma especificação executável e versionada, e não o código, é a fonte única da verdade: primeiro a spec, depois o plano, depois as tarefas e só então o código. Surgiu como reação ao modo de falha do vibe coding com LLMs, código plausível que desvia da intenção e alucina API, e em 2026 virou mainstream com implementações próprias no GitHub Spec Kit, AWS Kiro, Claude Code, Cursor e OpenSpec. No Claude Code isso encosta em três coisas que já existem: plan mode, CLAUDE.md e o fluxo explorar, planejar, codificar, commitar
Fala aí, beleza? Existe uma diferença gigante entre a sessão de terminal que começa com "faz isso pra mim" e a sessão que começa com uma spec escrita
A primeira é rápida e às vezes resolve
A segunda é chata nos primeiros dez minutos e depois te devolve o tempo com juros
Spec-driven development é a sigla que apareceu justamente pra dar nome a esse segundo jeito de trabalhar, como resposta a um modo de falha que todo mundo que usa agente já viu de perto
Neste post eu te mostro de onde ela veio, o que ela muda na prática e onde exatamente ela encaixa numa sessão de Claude Code
De onde veio o SDD e por que ele apareceu agora
SDD emergiu em 2025 como reação ao modo de falha do vibe coding com LLM
E o modo de falha é bem conhecido: código plausível que desvia da intenção, API alucinada que não existe em lugar nenhum e uma saída que vai degradando conforme o projeto cresce
Repara que o problema não é o modelo escrever código ruim linha a linha
O problema é o modelo escrever código lindo pro pedido errado 😅
Em 2026 a ideia virou mainstream, e as principais ferramentas de coding com IA lançaram sua própria versão de SDD, incluindo GitHub Spec Kit, AWS Kiro, Claude Code, Cursor e OpenSpec
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 48min
O que "spec versionada como fonte da verdade" significa na prática:
A definição da metodologia é essa: uma especificação executável e versionada, não o código, é a fonte única da verdade
A ordem de trabalho fica spec, plano, tarefas e só então código
Na prática isso quer dizer que a spec vive dentro do repositório, entra no commit e é revisada igual código é revisado
Se você conhece o hábito de revisar um PR antes do merge, é o mesmo hábito puxado uma casa pra trás: em vez de revisar o que foi feito, tu revisa o que vai ser feito
Pedido avulso x spec-driven development: qual é a diferença na prática
| Dimensão | Pedido avulso | Spec-driven development |
|---|---|---|
| Fonte da verdade | o histórico do chat | a spec versionada no repositório |
| Ordem de trabalho | direto ao código | spec, plano, tarefas, código |
| O que sobra depois | histórico efêmero, some com a sessão | artefatos revisáveis, ficam no repo |
| Momento da revisão | ler o diff depois de pronto | revisar a intenção antes de codar |
| Custo inicial | quase zero, tu já manda | escrever e alinhar antes de rodar |
| Onde rende mais | ajuste pontual e exploração | feature grande, projeto maduro, equipe |
Repara que não é uma tabela de "bom x ruim"
É uma tabela de onde tu paga o preço
No pedido avulso o preço aparece no fim, quando o diff não é o que tu queria e não existe nenhum artefato pra apontar e dizer "olha, era isso aqui"
No SDD o preço aparece no começo, e o começo é bem mais barato de refazer
O que muda no Claude Code quando você trabalha por spec
Agora o que interessa: o que tu faz de diferente no terminal?
A boa notícia é que boa parte da mecânica já está lá dentro, tu só precisa parar de pular ela
Plan mode: separar o pensar do editar
O Claude Code tem um plan mode acionado por Shift+Tab até a barra de status mostrar o indicador ⏸ plan mode on, ou já iniciando a sessão com claude --permission-mode plan
Nesse modo o Claude explora o código e produz um plano sem editar arquivo
E aqui está o detalhe que faz o modo valer: ferramentas de leitura rodam normalmente, mas edições de arquivo nunca são auto-aprovadas, mesmo quando existe uma regra de permissão que daria match
Ou seja, é somente leitura pro código do projeto de verdade, não é promessa
Dentro do plan mode ele ainda pode usar o AskUserQuestion pra esclarecer requisito antes de fechar o plano
Isso é MUITO massa, porque é exatamente o momento em que a ambiguidade deveria morrer: antes do código, não depois
Com o plano na tela, o Ctrl+G abre ele no editor de texto pra tu editar direto
Aí é só aprovar o plano ou dar Shift+Tab pra sair, e o Claude codifica verificando contra o próprio plano
Se tu quiser ver esse hábito aplicado no detalhe, eu destrinchei em outro post como escrever a spec antes de implementar numa tarefa real

VPS Hostinger para seu sistema
10% OFF extraVPS com SSD NVMe e backups semanais. O cupom MATHEUSHORADECODAR é aplicado automaticamente pelo link.
Ver planos com 10% OFF →CLAUDE.md: o contexto que não some quando a sessão acaba
O CLAUDE.md é um arquivo markdown que dá instruções persistentes de projeto ao Claude Code, e ele é lido no início de toda sessão
E a leitura é recursiva: partindo do diretório atual, ele sobe até a raiz do sistema e lê todo CLAUDE.md ou CLAUDE.local.md que encontrar pelo caminho
Pra criar o primeiro, o comando é esse:
/init
O /init gera um CLAUDE.md inicial servindo de guia do projeto
É o pedaço mais barato do SDD: cinco minutos e tu para de repetir as mesmas três regras em toda sessão
O fluxo que a Anthropic recomenda
A Anthropic recomenda o fluxo explore, plan, code, commit
E afirma que os passos de pesquisa e planejamento antes do código melhoram significativamente o desempenho em problemas que exigem raciocínio mais profundo
Sem eles, o Claude tende a pular direto pra codificar
Sacou o encaixe? SDD não é um recurso novo que tu precisa instalar pra começar
É o nome da disciplina que faz esses passos deixarem de ser opcionais
Como montar um fluxo spec-driven com o Spec Kit e o Claude Code
Quando o hábito pega e tu quer artefato de verdade no repositório, entra o Spec Kit, um toolkit de spec-driven development mantido no repositório github/spec-kit, da própria GitHub
Ele é distribuído por dois canais oficiais: o repositório (instalação a partir do fonte) e o pacote specify-cli no PyPI
- Instale a CLI
uv tool install specify-cli
Tem alternativa com pipx ou pip, e dá pra usar de forma pontual sem instalar nada:
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>
O erro comum deste passo: instalar global sem precisar
Se tu só quer experimentar num projeto, o uvx resolve e não deixa sujeira
- Inicialize o projeto apontando pro Claude Code
specify init meu-projeto --ai claude
A flag --ai claude é o que faz o toolkit se montar pro agente certo
O erro comum: inicializar sem a flag e depois ficar procurando os comandos que nunca foram gerados pro teu agente
- Saiba onde os arquivos foram parar
A partir da versão 0.4.5 do Spec Kit, o specify init --ai claude instala os comandos speckit como skills nativas dentro de .claude/skills/
O erro comum: achar que não instalou nada porque tu procurou o arquivo no lugar errado
Abre a pasta e confere antes de xingar a ferramenta 😀
- Comece pela constitution
O comando constitution define os princípios do projeto
É o pedaço que responde "como a gente escreve código aqui" antes de qualquer feature existir
O erro comum: pular direto pra feature e depois brigar com o agente sobre padrão de código em todo review
- Escreva a spec com o specify
O specify é o o quê e o porquê, sem stack
Leia de novo: sem stack
O erro comum deste passo é justamente esse, cravar framework, banco e biblioteca já na spec
Quando tu faz isso, a decisão técnica entra sem discussão e a spec deixa de ser sobre a intenção
- Passe pelo clarify
O clarify existe pra fechar as ambiguidades que sobraram
O erro comum: tratar como formalidade e sair batendo enter
Toda ambiguidade que sobrevive aqui vira retrabalho lá na frente, é quase uma lei
- Gere o plano com o plan e o checklist
Agora sim é hora da decisão técnica: o plan é onde o como aparece, e o checklist amarra o que precisa estar coberto
O erro comum: aceitar o primeiro plano sem ler
Plano é texto, texto é barato de corrigir, código não
- Quebre em tarefas com o tasks
O tasks transforma o plano em unidades de trabalho
O erro comum: tarefa gigante que não dá pra revisar sozinha
Se tu não consegue dizer se a tarefa terminou, ela está grande demais

Crie sistemas com IA para vender
Prompts, modelos e checklists para criar e publicar seu sistema com IA e preparar a oferta para o primeiro cliente.
Quero o e-book gratuito Receba o livro e os bônus no seu e-mail.- Rode o analyze antes de implementar
O analyze checa a consistência entre os artefatos e roda depois do tasks e antes do implement
O erro comum é o mais caro de todos: pular o analyze e mandar implementar em cima de spec, plano e tarefas que discordam entre si
Aí tu não tem mais um agente confuso, tu tem três documentos brigando e um agente obedecendo o errado
- Implemente e convirja
O implement executa as tarefas e o converge fecha o ciclo
O erro comum: sumir da frente do terminal achando que acabou o teu trabalho
Não acabou, e a próxima seção explica por quê
Quando o SDD compensa (e quando o pedido avulso continua sendo melhor)
A spec paga o custo dela em situações bem específicas
Feature que atravessa vários arquivos é a mais óbvia: quando a mudança encosta em cinco lugares, o plano vale mais que a pressa
Trabalho em equipe é a segunda: se a intenção precisa ser revisada por outra pessoa antes do código existir, tu precisa de um artefato, e chat não é artefato
Projeto que já cresceu é a terceira, porque é exatamente ali que a saída do agente começa a degradar, que é o modo de falha que deu origem ao SDD
E tem o contexto corporativo, onde isso já roda em produção
A Flowsource, plataforma de engenharia full-stack da Cognizant, usa o Claude Code no seu módulo de Spec-Driven Development, direcionando o agente pelas especificações, padrões de código e blueprints de arquitetura definidos pelo projeto e avaliando a saída antes da produção
Repara na última parte: avaliando a saída antes da produção
Nem lá a spec dispensa a avaliação
Agora o contraponto honesto, porque senão vira papo de vendedor
Ajuste pontual não pede cerimônia
Script curto de uma vez só também não
Exploração então muito menos: quando tu ainda não sabe o que quer, escrever spec é escrever ficção
O meio termo é bom de conhecer: até bug isolado às vezes ganha uma spec curta da correção quando a causa não é óbvia e a reprodução precisa ficar registrada
O limite que ninguém conta: spec não é garantia de obediência
E aqui vai o veredito honesto, porque essa parte quase nunca aparece nos posts empolgados
A documentação da Anthropic é clara: CLAUDE.md e a memória automática são tratados como contexto, não como configuração imposta
O conteúdo entra como mensagem de usuário depois do system prompt
O Claude lê e tenta seguir, mas não existe garantia de conformidade estrita, principalmente com instrução vaga ou conflitante
Ou seja, escrever "nunca faça X" no arquivo não é o mesmo que impedir X
Pra garantir bloqueio ou obrigação de ação, a própria documentação indica outro caminho: hook PreToolUse
Então o resumo sincero é esse
SDD reduz a deriva, dá ordem ao trabalho e deixa artefato revisável no repositório, que já é muita coisa
Mas o controle continua sendo humano
A spec melhora a chance, a revisão é que garante
Conclusão
Spec-driven development não é ferramenta, é mudança de hábito: a spec antes do código, e a spec versionada valendo mais que o histórico do chat
O próximo passo é barato e cabe hoje
Roda /init pra ter um CLAUDE.md no projeto
Na próxima tarefa de verdade, entra no plan mode com Shift+Tab antes de pedir qualquer edição e lê o plano inteiro
Só depois de sentir a diferença tu avalia se vale trazer o Spec Kit pro projeto
Se tu já tentou trabalhar assim e travou em algum ponto do fluxo, bora trocar uma ideia
até o próximo post!
Perguntas frequentes
Qual é a diferença entre spec-driven development e vibe coding?
No vibe coding tu manda um pedido solto e o código sai direto, sem artefato pra revisar antes. No spec-driven development a ordem é spec, plano, tarefas e só então código, com a especificação versionada no repositório como fonte da verdade. O SDD surgiu justamente como resposta ao modo de falha do vibe coding: código plausível que desvia da intenção e degrada conforme o projeto cresce.
Quais ferramentas de IA já oferecem spec-driven development?
Em 2026 a lista inclui GitHub Spec Kit, AWS Kiro, Claude Code, Cursor e OpenSpec, cada uma com sua própria versão de SDD. O Spec Kit em si é mantido no repositório github/spec-kit, da própria GitHub, e pode inicializar um projeto usando o Claude Code como agente.
Como instalar o Spec Kit para usar com o Claude Code?
O jeito recomendado é uv tool install specify-cli, com alternativas via pipx ou pip. Pra testar sem instalar nada, dá pra rodar uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>. Depois, o comando specify init meu-projeto --ai claude inicializa o projeto já apontando o Claude Code como agente.
Onde ficam os comandos do Spec Kit dentro de um projeto com Claude Code?
A partir da versão 0.4.5 do Spec Kit, o specify init --ai claude instala os comandos speckit como skills nativas dentro da pasta .claude/skills/. É esse conjunto de skills que conduz o fluxo constitution, specify, clarify, plan, checklist, tasks, analyze, implement e converge.
O plan mode do Claude Code já é suficiente pra fazer spec-driven development?
O plan mode cobre a parte de separar pensar de editar: ele explora o código e produz um plano sem tocar em arquivo, e edições nunca são auto-aprovadas nesse modo. Mas ele sozinho não gera os artefatos versionados (spec, plano, tarefas) que o SDD completo pede, que é onde entra um toolkit como o Spec Kit.
Escrever a regra no CLAUDE.md garante que o Claude Code vai obedecer?
Não. A documentação da Anthropic trata CLAUDE.md e a memória automática como contexto, não como configuração imposta: o conteúdo entra como mensagem de usuário depois do system prompt, o Claude lê e tenta seguir, mas não há garantia de conformidade estrita, ainda mais com instrução vaga ou conflitante. Pra garantir bloqueio ou obrigação de ação, a própria documentação indica usar um hook PreToolUse.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 30min
Blog | Mais populares
A spec substitui o README e a documentação do projeto?
Spec vs documentação não é escolha: veja a diferença entre planejar uma feature (spec) e documentar como o sistema funciona hoje, e quando migrar pra lá.
Como criar uma skill de spec-driven development para reusar em todos os projetos
Uma skill de spec-driven development guarda seu processo de spec no SKILL.md: instale global (~/.claude/skills/) ou só no projeto e reutilize sempre.
O que é SDD (spec-driven development) e como funciona na prática?
SDD (spec-driven development): escreva a spec antes do código e use-a como fonte única de verdade. Veja o ciclo prático com Spec Kit, Claude Code e Kiro.
