Montar a especificação única
SkillDev toolsUse quando o usuário pede para promover uma entrada ou backlog já refinado, criar, iniciar ou consolidar uma especificação nova ou ainda em Draft em `spec.md`. Use também quando uma transição automática exigir criar ou completar a fonte normativa inicial. Inicializa specs em `specs/draft/` e aplica o MCR-10; para mudar spec aprovada use specsfy-update-spec, para captura sem perguntas use specsfy-01-inbox, para refinamento use specsfy-02-backlog e para revisão sem edição use specsfy-04-validate.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Montar a especificação única skill
What this skill tells your AI
The instructions your AI receives, as published by promovaweb/specsfy in skills/specsfy-03-specify/SKILL.md and read by ahel’s review.
Preparação obrigatória
Antes de executar esta skill, carregue obrigatoriamente $specsfy-setup na
raiz do projeto. Em handoff automático, carregue-o de novo antes desta etapa.
Reutilize a raiz confirmada na conversa e não prossiga se o setup apontar uma
pendência.
Modo de interação
Modo de interação: perguntas.
Antes de formular qualquer pergunta, leia e aplique o
Contrato de perguntas numeradas de .specsfy/Spec.md.
Crie ou atualize o pacote specs/draft/<NNNN>-<slug>/, no qual spec.md é a única fonte normativa de todo o fluxo SDD. Somente o diretório recebe o número; mantenha o arquivo sempre como spec.md. Consolide descoberta, research, esclarecimentos, produto, plano técnico, modelo de dados, contratos, TDD, BDD, validações, tarefas, decisões e conclusão em três atos explícitos. Evidências externas consultadas vivem em research/; não gere plan.md, research.md, data-model.md, tasks.md, checklists ou uma segunda especificação.
Antes de consolidar uma spec Laravel, leia .specsfy/PACKAGES.md,
docs/packages/README.md e as fichas de docs/packages/. Se a solicitação
trouxer uma URL GitHub de pacote ou depender de uma biblioteca Composer,
carregue $specsfy-specialist-laravel-package-manager para conferir se o
pacote já existe e registrar a necessidade sem duplicar dependências.
Orquestrar a conversa
Ao concluir esta etapa ou detectar trabalho de outra etapa, anuncie
Pendência detectada: <descrição> — ação: resolvendo nesta etapa e resolva-a
quando pertencer ao próprio escopo. Quando houver troca de responsabilidade,
anuncie Transição automática: $specsfy-03-specify → $<destino> — motivo: <motivo> — resultado esperado: <resultado> e carregue imediatamente a skill de
destino, sem pedir confirmação nem repetir o comando. Continue na mesma
conversa. Depois de uma correção necessária a esta etapa, anuncie Retomada automática: $<destino> → $specsfy-03-specify — pendência resolvida: <resultado> e retome-a imediatamente. Reavalie o estado após cada handoff para
evitar ciclos. Não peça confirmação para o handoff; ações sensíveis continuam
exigindo autorização específica.
Preparar
- Resolva a raiz do projeto pelo diretório informado pelo usuário ou por
Path.cwd()quando ele não informar outro. Não procure nem promova o destino para uma raiz Git. - Ao criar uma spec, resolva o diretório desta skill e execute antes de escrever:
node <diretório-da-skill>/scripts/iniciar_spec.mjs \
--title "<nome da especificação>" [--slug <slug>] [--root <raiz>]
- Use o caminho absoluto impresso pelo script. Ele aloca o próximo ID local,
prefere
.specsfy/templates/custom/Spec.md, recorre ao template gerenciado.specsfy/templates/Spec.mde cria somentespecs/draft/<NNNN>-<slug>/spec.md; nunca renomeie o arquivo para incluir o ID. Ao desenvolver este repositório, o script usaskills/templates/Spec.mdcomo fallback; no projeto consumidor, template ausente exigespecsfy install. - Ao atualizar, use o caminho da spec existente fornecido ou descoberto sob a raiz atual; não execute o inicializador novamente.
- Leia a captura de origem em
specs/inbox/, o item de backlog, o brief da refinamento do backlog, o pedido atual, a spec nesse caminho, seuresearch/e arquivos do repositório que revelem restrições reais. - Se não houver informação suficiente para identificar problema, ator e
resultado, anuncie a pendência e carregue
$specsfy-02-backlogpara executar o ciclo. Retome esta skill ao final do ciclo e use o brief completo ou parcial produzido. - Leia
references/mcr-10.mdao receber relato, história, transcrição ou especificação a refinar. - Leia
.specsfy/DATABASE.mdquando existir. Se a jornada depender de informações guardadas e o arquivo não explicar o que o produto precisa lembrar, quem usa essas informações ou quando elas deixam de ser necessárias, carregue$specsfy-data-discoverye retome esta skill depois do registro confirmado.
Aplicar o MCR-10
- Preserve a formulação original e identifique finalidade, ator e resultado.
- Analise termos ambíguos, equivalências terminológicas e derivações.
- Use substância, quantidade, qualidade, relação, lugar, tempo, posição, posse, ação e afecção como lentes adaptativas, não como questionário.
- Distinga cada declaração da pessoa de inferência, hipótese, decisão, conflito ou questão aberta produzida durante a análise.
- Se existir lacuna aplicável, carregue
$specsfy-02-backlogpara executar o ciclo limitado a oito perguntas por área e retome esta skill ao final do ciclo. Se a pessoa escolheravançar, aplique a confirmação e o registro definidos no contrato central. MantenhaStatus: DrafteDefinition Gate: Pendingquando restarem pontos aplicáveis; não promova a spec aDefinede não reabra o mesmo ciclo nesta retomada. - Recombine decisões em afirmações com sujeito, condição, ação e efeito observável; derive regras, histórias, Gherkin, limites e falhas.
- Registre o resultado nas seções existentes de
spec.md; não gere relatório MCR separado nem copie a referência para o pacote da fatia.
Escrever
- Grave sempre em
<raiz>/specs/draft/<NNNN>-<slug>/spec.md; o ID pertence ao diretório e o arquivo permanece exatamentespec.md. - Use
<raiz>/specs/draft/<NNNN>-<slug>/research/somente para cópias, snapshots, contratos, schemas, exemplos e notas de proveniência realmente consultados. Não coloque código de produção, testes ou documentos normativos nesse diretório. - Ao pesquisar uma API ou documentação externa, armazene a evidência permitida em
research/e indexe caminho, origem, versão/data, licença e impacto emArtefatos de pesquisa armazenados. Se licença ou termos impedirem a cópia, armazene metadados, URL, data de acesso, checksum/versão quando disponível e notas próprias, sem reproduzir conteúdo protegido. - Fora de
spec.mderesearch/, não crie outra entrada no pacote da feature. - Ao promover
specs/backlog/<NNNN>-<slug>.md, registre esse caminho na spec e atualize o item paraStatus: Promotedcom o caminho da spec criada. O backlog preserva proveniência, mas deixa de governar o comportamento. - Ao derivar diretamente de
specs/inbox/<data-hora>-<slug>.md, registre o caminho na spec e preserve a captura sem alteração. A análise inicial é contexto, não requisito confirmado. - Preserve o cabeçalho como uma tabela Markdown de duas colunas,
CampoeValor; não converta seus metadados em linhas**Campo**: valor. - Na tabela, declare
IDcomoSPEC-NNNNeSlugcomo<NNNN>-<slug>e mantenha o slug igual ao diretório pai. - Preserve exatamente os três atos e as 18 seções do template resolvido:
.specsfy/templates/custom/Spec.mdquando existir ou.specsfy/templates/Spec.mdcaso contrário. - Substitua o conteúdo editorial restante do modelo durante o refinamento; não
deixe seus exemplos ou placeholders na spec promovida para
Defined. - Ao atualizar, edite o arquivo existente e preserve IDs e decisões ainda válidas.
- Numere novos itens sem reutilizar ou renumerar IDs removidos:
- histórias:
US-001; - requisitos funcionais:
FR-001; - requisitos não funcionais:
NFR-001; - cenários de aceite:
AC-001; - decisões:
DEC-001.
- histórias:
- Escreva cada requisito como comportamento verificável.
- Escreva cada cenário com Given/When/Then e associe-o a pelo menos um requisito.
- Defina no mínimo três
ACdistintos para a feature inteira e para cadaUS,FReNFR. Conte cobertura somente quando oACdeclarar o ID em**Cobre**; use caminho feliz, variação/regra crítica e falha ou limite material para ampliar contexto sem duplicar cenários equivalentes. - Inclua fora de escopo, erros, limites, segurança e acessibilidade quando relevantes.
- Quando o cabeçalho declarar
Interface para pessoas: Sim, preencha na seção 10 as nove partes do template com stack e convenções locais, telas, fluxo de informação, menus e navegação principal, formulários e ações, composição, blocos React e componentes shadcn/ui/ReUI, estados e acessibilidade. UseINTERFACE.md,.specsfy/STACK.md, manifests, telas e código existente como fonte da stack e do sistema atual; registre o que será preservado e alterado. Não proponha biblioteca incompatível nem reestruture uma tela existente sem esse exame. Carregue$specsfy-specialist-ux-design,$specsfy-specialist-ui-designe o especialista da stack de interface. Não aceite uma descrição de CRUD que tenha somente API, banco ou serviço. Em Laravel com React, registre explicitamente shadcn/ui e ReUI, todos os blocos React previstos, suas responsabilidades, arquivos, componentes de origem e regra de reuso. A página apenas compõe esses blocos. - Quando não houver interface, declare
Interface para pessoas: Nãoe explique por que a entrega não será usada por uma pessoa em uma tela. - Mantenha a seção técnica concreta o bastante para permitir tarefas com caminhos de arquivo, sem confundir escolha interna com resultado do usuário.
- Registre defaults reversíveis em
Suposições; peça esclarecimento apenas quando opções plausíveis mudarem materialmente escopo, dados, segurança, UX ou testes. - Não deixe placeholders, exemplos do template,
TBD,TODOou marcadores de clarificação em um arquivo marcado comoDefined. - Mantenha tarefas futuras na seção
14. Tarefas; skills posteriores atualizam a mesma seção, nunca outro arquivo. - Use os metadados
Definition Gate,Plan GateeDelivery Gatepara expressar prontidão sem criar relatórios separados.
Respeitar specs já aprovadas
Se a spec já obteve Definition Gate: Passed e a pessoa pedir para adicionar,
remover, corrigir ou mudar algo, anuncie a pendência e carregue automaticamente
$specsfy-update-spec. Essa skill classifica o impacto, atualiza a fonte
normativa e invalida somente os gates afetados. Retome esta skill apenas se a
mudança retornar a spec ao estado de definição inicial.
Preservar rastreabilidade
Para cada FR e NFR, aponte no mínimo três cenários AC e mantenha o método
de verificação explícito dos NFRs. Para cada história, identifique os requisitos
que entregam seu valor e ao menos três AC. Use os mesmos IDs mais tarde nos
casos TDD e na seção 14.
Controlar research
- Antes do planejamento, carregue somente as evidências indexadas e valide claims com:
node .agents/skills/specsfy-03-specify/scripts/load_research.mjs \
specs/<estado>/<NNNN>-<slug>/spec.md
- Para pesquisa material, registre
R-ID, criticalidade, claim, veredito, confiança, evidência local e orçamento na seção 2. Claimcriticalainda não verificado bloqueia o handoff; claim refutado permanece registrado. IDs devem ser únicos, gasto não pode superar o limite e a âncora Markdown citada precisa existir no arquivo local.
Autovalidar
Enquanto o arquivo estiver em Draft, execute a validação estrutural intermediária:
node .agents/skills/specsfy-04-validate/scripts/validate_spec.mjs specs/<estado>/<NNNN>-<slug>/spec.md --allow-draft
Corrija falhas estruturais em no máximo três ciclos. A skill specsfy-04-validate faz a revisão semântica, registra o resultado na seção 13 e promove Definition Gate: Passed e Status: Defined. Até lá, mantenha Status: Draft, Definition Gate: Pending e relate decisões bloqueantes.
Relatar
Informe:
- caminho
specs/<estado>/<NNNN>-<slug>/spec.md; - caminhos de research armazenados ou a declaração de que não houve fonte externa;
- status;
- contagem de
US,FR,NFReAC; - suposições relevantes;
- transição automática para
$specsfy-04-validate, com motivo e resultado esperado.
Especialistas sob demanda
Leia references/specialists.md quando requisitos, NFRs, dados ou decisões técnicas exigirem conhecimento especializado. Registre o requisito na spec e proponha carregar o especialista. Se ele não estiver instalado, peça autorização específica antes de instalar.
Signals
- GitHub stars
- 79
- Forks
- 37
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
specsfy-03-specify- Source
- github.com/promovaweb/specsfy