Skip to content

Spec-Driven Development

Princípio central: a spec precede o código. Sempre. O modelo só implementa o que está especificado, e a especificação é o artefato versionado que sobrevive entre sessões.


O problema que resolve

Sem spec-driven, o ciclo típico com IA é:

"Faz X pra mim" → modelo gera código → "ah, esqueci, também precisa Y"
                       → modelo regenera (perdeu contexto) → "agora quebrou Z"
                       → modelo tenta consertar → débito técnico acumulado

Os 3 sintomas:

  1. Contexto evapora entre sessões — o que foi decidido ontem não chega ao Claude amanhã.
  2. Escopo fugitivo — sem critério explícito, o modelo decide o que é "suficiente".
  3. Qualidade inconsistente — uma task crítica recebe o mesmo nível de revisão que um typo.

Spec-driven inverte: você produz artefatos rastreáveis (prd.md, intent.md, taskcard.md) que viram fonte de verdade, e a IA opera sobre eles.


A separação em 3 camadas

┌─ Camada 1: GERAÇÃO de specs ─────────────────────────────┐
│ Skills *-generate-* produzem artefatos declarativos:      │
│ PRD, Intent, Scope, Tech Spec, Task Plan, TaskCard        │
│ • Artefato versionado em /docs/specs/features/           │
│ • Aprovação humana entre cada etapa                      │
└──────────────────────┬───────────────────────────────────┘


┌─ Camada 2: EXECUÇÃO ──────────────────────────────────────┐
│ Skills *-run-tasks orquestram implementação task a task:  │
│ • Delegação ao executor (agent_name da stack)            │
│ • Sequencial respeitando dependências                    │
│ • Captura base_sha por task                              │
└──────────────────────┬───────────────────────────────────┘


┌─ Camada 3: VALIDAÇÃO ─────────────────────────────────────┐
│ Gates automáticos (agent-spec-qa-validator, tech-review):           │
│ • Funcional + testes (Gate 1)                            │
│ • Arquitetural + ADRs (Gate 2)                           │
│ • Loop de correção débito-controlado até 3 tentativas    │
└──────────────────────────────────────────────────────────┘

Cada camada tem uma responsabilidade clara e não invade a vizinha:

CamadaFazNÃO faz
GeraçãoProduz artefatos legíveis e versionadosImplementa código
ExecuçãoCoordena executor por taskValida qualidade
ValidaçãoAprova ou rejeita com critérios objetivosImplementa correções

Por que rastreabilidade importa

Cada artefato linka para o anterior:

pre-refinement.md (FATO × HIPÓTESE × DÚVIDA)

    ▼ (entrada opcional)
PRD.md / intent.md / taskcard.md

    ▼ (se SDD ou miniSpec)
tech-alignment.md (decisões técnicas curtas)


tech_spec.md / scope.md


task_plan.md + tasks/T1.md, T2.md, ...


[execução com gates]

Isso permite:

  • Voltar no tempo: ler task_plan.md revela qual US originou a task.
  • Mudar de mente: revisão de PRD propaga via tech_spectask_plan regenerado.
  • Auditoria: um problema em produção tem trilha até a US/CA que o originou.
  • Onboarding: novo dev lê pre-refinement.md e entende o porquê em 5 minutos.

Quem precisa especificar quanto?

A intensidade da especificação não é fixa — varia com a complexidade da feature. O framework oferece 4 caminhos:

CaminhoQuandoCusto
Conversa diretaSpike, exploração, aprendizado~zero artefato
TaskCardTask isolada (1-3 arquivos)1 arquivo
miniSpecFeature pequena/média (1-3 US, 1 persona)Intent + Scope + Tasks
SDDFeature grande, múltiplas personas, ADRs novasPRD + Tech Spec + Task Plan + ADRs

O Strategy Selector recomenda automaticamente o caminho a partir de 8 sinais.


Princípios invioláveis

  1. Spec antes de código — modelo não improvisa. Se a spec é ambígua, ele pergunta.
  2. Artefato versionado — não há "memória do agente"; o que vale é o que está em /docs/specs/features/.
  3. Aprovação humana entre etapas — Claude não avança para Tech Spec antes que você aprove o PRD.
  4. Contexto mínimo — spec carrega só o que a IA precisa para a próxima etapa, nada mais (ver Contexto Mínimo).
  5. Gates automáticos — toda task implementada passa por QA + Tech Review.
  6. Débito-controlado — críticos/altos sempre disparam correção; médios/baixos viram débito anotado em qa-observations.md (cleanup futuro via /agent-spec-debt-resolution). Veja Gates e Loops.

Diferença para "AI assistant solta"

AspectoAI soltaSpec-driven (framework)
Ponto de partidaPergunta livreArtefato versionado
Memória entre sessõesNenhuma (você re-explica)/docs/specs/features/ carrega contexto
Critério de aceiteImplícitoExplícito (CA-01, CA-02, ...)
ValidaçãoManual ad-hocGates automáticos com JSON de saída
RastreabilidadeHistórico de chatArtefato + commits + qa-observations
Ajuste de escopo"ah, não era isso"Editar PRD → regenerar tech_spec

Próximos passos

AgentSpec Framework · Spec-driven com IA sobre Claude Code