spec-driven-development
Faz seu agente criar especificações antes de escrever código. É útil para organizar projetos, definir escopos e clarear ideias antes do desenvolvimento.
O que ela faz
Esta ferramenta ajuda a criar um plano detalhado (especificação) antes de começar a escrever código. Ela garante que todos entendam o que será construído, por quê e como saber se está pronto.
Quando usar
- ✓Ao iniciar um novo projeto ou funcionalidade.
- ✓Quando as ideias sobre o que fazer não estão claras.
- ✓Antes de tomar decisões importantes sobre a estrutura do projeto.
Exemplo do que pedir para a IA
“Preciso de um plano para criar um sistema de login para um site.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta guia você para definir o objetivo, os comandos necessários, a estrutura de pastas, o estilo do código, como testar e o que fazer ou não fazer. Ela funciona em etapas, com revisões humanas em cada uma.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add addyosmani/agent-skills --skill spec-driven-developmentOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/addyosmani/agent-skills/main/skills/spec-driven-development/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Desenvolvimento Guiado por Especificações
Visão Geral
Escreva uma especificação estruturada antes de escrever qualquer código. A especificação é a fonte compartilhada da verdade entre você e o engenheiro humano — ela define o que estamos construindo, por quê e como saberemos que está pronto. Código sem especificação é adivinhação.
Quando Usar
- Iniciando um novo projeto ou funcionalidade
- Requisitos são ambíguos ou incompletos
- A mudança afeta múltiplos arquivos ou módulos
- Você está prestes a tomar uma decisão arquitetural
- A tarefa levaria mais de 30 minutos para ser implementada
Quando NÃO usar: Correções de uma linha, correções de digitação ou mudanças onde os requisitos são inequívocos e autossuficientes.
O Fluxo de Trabalho Controlado
O desenvolvimento guiado por especificações tem quatro fases, precedidas por uma verificação de escopo (Fase 0) que é ativada apenas quando uma solicitação agrupa várias capacidades testáveis independentemente. Não avance para a próxima fase até que a atual seja validada.
SPECIFY ──→ PLAN ──→ TASKS ──→ IMPLEMENT
│ │ │ │
▼ ▼ ▼ ▼
Human Human Human Human
reviews reviews reviews reviews
Fase 0: Verificação de Escopo
A maioria das solicitações descreve uma capacidade. Se esta o fizer, pule esta fase e vá direto para Especificar — a Fase 0 existe para a exceção, não para a regra, e não impõe hierarquia a funcionalidades de capacidade única.
Detecção. Decomponha antes de especificar quando um único requisito agrupa várias capacidades testáveis independentemente:
- O requisito nomeia capacidades distintas com seus próprios consumidores ou dados (por exemplo, identidade, faturamento, notificações, relatórios)
- Critérios de aceitação se agrupam em conjuntos que poderiam ser lançados e verificados separadamente
- Uma capacidade poderia ser removida ou substituída sem reescrever os requisitos das outras
Proponha um mapa de capacidades antes de escrever qualquer especificação. Pequeno e revisável — uma tabela de módulos mais uma ordem de construção, não um plano de projeto:
# Capability Map: [Initiative Name]
| Module id | Responsibility | Depends on |
|---|---|---|
| identity | Accounts, sessions, SSO | — |
| billing | Plans, invoices, payments | identity |
| notifications | Email and webhook fan-out | identity |
| reporting | Usage dashboards | billing, notifications |
Build order: identity → billing, notifications → reporting
- IDs de módulo estáveis. Em kebab-case, escolhidos uma vez, nunca renomeados no meio da iniciativa. Especificações, planos e comandos downstream selecionam trabalho por esses IDs em vez de adivinhar qual especificação está ativa.
- Direção de dependência, sem ciclos. As setas apontam em uma direção. Se dois módulos precisam um do outro, eles são um único módulo.
- Interfaces vivem na fronteira. O mapa registra que
billingdepende deidentity; o contrato entre eles pertence à especificação do módulo provedor (vejaapi-and-interface-designpara projetá-lo).
O mapa é controlado como todas as fases. O humano revisa os limites do módulo, a direção da dependência e a ordem de construção antes que qualquer especificação de módulo seja escrita. Errar o mapa é caro; revisar dez linhas não é.
Em seguida, recursivamente por módulo. Execute Especificar → Planejar → Tarefas → Implementar para cada módulo na ordem de dependência. Cada módulo recebe sua própria especificação, focada no objetivo, limites e critérios de sucesso desse módulo. Salve o mapa aprovado na raiz do projeto e a especificação de cada módulo ao lado dela, nomeada pelo ID do módulo (SPEC-identity.md, SPEC-billing.md) — o mapa, não a adivinhação do nome do arquivo, é o índice do que existe.
Fase 1: Especificar
Comece com uma visão de alto nível. Faça perguntas esclarecedoras ao humano até que os requisitos sejam concretos.
Exponha as suposições imediatamente. Antes de escrever qualquer conteúdo da especificação, liste o que você está assumindo:
ASSUMPTIONS I'M MAKING:
1. This is a web application (not native mobile)
2. Authentication uses session-based cookies (not JWT)
3. The database is PostgreSQL (based on existing Prisma schema)
4. We're targeting modern browsers only (no IE11)
→ Correct me now or I'll proceed with these.
Não preencha silenciosamente requisitos ambíguos. O propósito inteiro da especificação é expor mal-entendidos antes que o código seja escrito — suposições são a forma mais perigosa de mal-entendido.
Escreva um documento de especificação cobrindo estas seis áreas principais:
Objetivo — O que estamos construindo e por quê? Quem é o usuário? Como é o sucesso?
Comandos — Comandos executáveis completos com flags, não apenas nomes de ferramentas.
Build: npm run build Test: npm test -- --coverage Lint: npm run lint --fix Dev: npm run dev
…
Perguntas frequentes
Quando NÃO devo usar esta ferramenta?
Não use para correções rápidas, como corrigir um erro de digitação, ou quando os requisitos são muito simples e óbvios.
O que é um 'mapa de capacidades'?
É um diagrama que mostra as diferentes partes de um projeto maior e como elas se conectam, útil quando uma única tarefa envolve várias partes independentes.
Por que é importante declarar 'suposições'?
Declarar o que você está assumindo (ex: tipo de banco de dados, navegador) ajuda a evitar mal-entendidos futuros, pois permite que outros corrijam você antes de começar a codificar.
Detalhes
Descrição original do autor
Creates specs before coding. Use when starting a new project, feature, or significant change and no specification exists yet. Use when drafting a PRD or requirements document with objectives and scope, or when requirements are unclear, ambiguous, or only exist as a vague idea. Use when a single requirement spans several independently testable capabilities and needs decomposing into a capability ma
repo: addyosmani/agent-skills
Popularidade
- Estrelas no GitHub
- 107 mil
- Posição no ranking
- #362
- Licença
- MIT
- Atualizada em
- 13/10/2026
Comentários
- …
Mais skills deste repositório
api-and-interface-design
Ajuda a criar APIs e interfaces bem definidas. É útil ao projetar como diferentes partes de um software vão se comunicar.
addyosmani/agent-skills
browser-testing-with-devtools
Ajuda seu agente a testar código diretamente em navegadores reais. É útil para verificar como algo funciona no ambiente onde será usado, encontrando erros e problemas de performance.
addyosmani/agent-skills
ci-cd-and-automation
Ensina seu agente de IA a automatizar tarefas repetitivas e colocar projetos no ar e cuidar da infraestrutura.
addyosmani/agent-skills
code-review-and-quality
Realiza revisões de código detalhadas em várias frentes. É útil antes de juntar novas mudanças para garantir a qualidade e evitar problemas futuros.
addyosmani/agent-skills
Skills parecidas
architecture-decision-records
Faz seu agente registrar decisões importantes sobre a estrutura do projeto. Ajuda a entender o porquê das escolhas feitas e a manter um histórico claro das mudanças.
affaan-m/ECC
code-tour
Faz seu agente criar guias passo a passo no código, com locais exatos em arquivos e linhas. É útil para apresentar um projeto, explicar código ou revisar mudanças. Ajuda a entender como um sistema funciona.
affaan-m/ECC
codebase-onboarding
Ajuda seu agente a analisar um código desconhecido e criar um guia de integração. Ele inclui um mapa da arquitetura, pontos de entrada e convenções. Ideal para quem está começando em um novo projeto.
affaan-m/ECC