From spec-plan
Conduz a especificação funcional de um escopo usando BDD (Behavior-Driven Development), gerando o documento spec-functional.md. Use quando o usuário mencionar "especificação funcional", "regras de negócio", "critérios de aceitação", "cenários BDD", "Given When Then", "comportamento esperado", "especificar funcionalidades", "detalhar regras" ou "escrever acceptance criteria". NÃO use para casos de uso com múltiplos atores (use spec-usecases), requisitos não-funcionais (use spec-nonfunctional) ou refinamento técnico (use refinement-*).
How this skill is triggered — by the user, by Claude, or both
Slash command
/spec-plan:spec-functionalThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Skill que conduz a especificação funcional usando BDD e gera o `spec-functional.md`.
Skill que conduz a especificação funcional usando BDD e gera o spec-functional.md.
Antes de iniciar qualquer especificação, consulte os arquivos de referência:
references/bdd-teoria.md — hierarquia BDD, Feature Injection e fundamentosreferences/cenarios-given-when-then.md — regras e anti-padrões de escrita de cenáriosreferences/extracao-de-exemplos.md — técnica de conversa e extração de exemplosreferences/template-spec-functional.md — template com exemplo preenchidoVerifique se existe docs/escopo/{nome-do-escopo}/escopo.md.
scope-generate agora.Após ler o escopo, apresente as features identificadas e confirme a ordem:
"Li o escopo {título}. Vou especificar estas funcionalidades:
- {funcionalidade 1}
- {funcionalidade 2}
Trabalharemos uma por vez. Começamos pela {funcionalidade 1}?"
Se houver mais de 5 funcionalidades, pergunte quais são prioritárias.
Apresente e confirme a narrativa no formato Feature Injection:
"A narrativa desta feature:
Feature: {nome} In order to {objetivo de negócio mensurável} As {ator principal} I want {o que o sistema faz}
Correto?"
Nunca aceite "melhorar o sistema" como objetivo. Peça impacto real e mensurável.
Consulte references/bdd-teoria.md para exemplos de bons objetivos de negócio.
"Me dê um exemplo concreto do caso mais comum: quem usa, em que situação, o que espera."
Perguntas de aprofundamento:
Formalize e confirme imediatamente. Consulte references/cenarios-given-when-then.md
para as regras de qualidade do cenário antes de apresentá-lo ao usuário.
"O que acontece quando as coisas saem do esperado?"
Perguntas-guia:
Consulte references/extracao-de-exemplos.md para os tipos de exemplos a levantar
(variações válidas, limites, casos inválidos, exceções).
"Existe alguma regra que se aplica a múltiplos cenários? Cálculos, faixas, elegibilidade?"
Quando houver múltiplas combinações entrada/saída para a mesma regra, sugira
Esquema do Cenário com tabela. Consulte references/cenarios-given-when-then.md
para o formato correto e exemplos de quando usar.
Liste os cenários levantados e pergunte:
"Cenários desta feature: ✅ {cenário 1} ✅ {cenário 2}
Algum caso ficou de fora?"
Cheques adicionais:
Ao concluir todas as features:
"Cobrimos todas as funcionalidades. Antes de gerar:
- Há features não abordadas?
- Algum cenário levantou dúvidas para stakeholders?
- Existe regra importante ainda não capturada?"
Use o template em references/template-spec-functional.md como base.
Salve em: docs/especificacao/{nome-do-escopo}/spec-functional.md
"Documento salvo em
docs/especificacao/{escopo}/spec-functional.md. {N} features especificadas, {M} cenários no total. {Se houver pontos em aberto}: {X} pontos precisam de resposta dos stakeholders."
Sugira os próximos passos com base no que foi levantado.
Usuário: "Vamos especificar o módulo de cálculo de frete"
Ações:
Resultado: Documento com cenários executáveis prontos para automação de testes
Usuário: "Quero especificar o processo de aprovação de crédito"
Ações:
references/extracao-de-exemplos.mdResultado: Documento com cenários conhecidos e pontos em aberto rastreáveis
Usuário: "A comissão varia por produto, vendedor e faixa de valor"
Ações:
Resultado: Um cenário parametrizado cobrindo todas as combinações
Usuário não consegue dar exemplos concretos
Ofereça um hipotético para desbloqueá-lo: "Seria algo como: Dado que João tem
R$500, quando solicita transferência de R$200, então o saldo deve ser R$300?"
Ver também: técnica "Popping the Why Stack" em references/extracao-de-exemplos.md
Usuário quer especificar a tela Redirecione: "Ótimo ponto para o refinement-screens. Por agora, independente da tela, o que o sistema deve fazer quando o usuário realiza essa ação?"
Cenário ficou longo demais
Identifique a ação principal (When) e o resultado principal (Then). Remova
passos de navegação e ações intermediárias. Ver anti-padrões em
references/cenarios-given-when-then.md
Muitos cenários quase idênticos Use Esquema do Cenário. Regra de ouro: se dois cenários diferem apenas nos dados, devem ser um único cenário parametrizado.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub brunocesharp/claude --plugin spec-plan