Contenuto dal repository con titoli, esempi, codice, tabelle, link e immagini preservati.
Validar a especificação
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.
Trate spec.md como a única fonte da verdade e como código em linguagem natural: verifique primeiro o formato rígido, depois clareza, completude, consistência e testabilidade semanticamente.
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-04-validate → $<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-04-validate — 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.
Executar a validação
- Resolva
specs/<estado>/<NNNN>-<slug>/spec.mdpelo caminho informado; se houver várias specs e nenhum slug, pergunte qual validar. - Confirme
Formato: Specsfy/2.0, os três atos na ordem, slug igual ao diretório e pacote restrito aspec.mde ao diretório opcionalresearch/. - Para toda API ou documentação externa consultada, confirme uma evidência local em
research/e seu índice emArtefatos de pesquisa armazenados; esse material é informativo, nunca uma segunda fonte normativa. - Enquanto
StatusouDefinition Gateainda estiverem pendentes, execute:
node .agents/skills/specsfy-04-validate/scripts/validate_spec.mjs specs/<estado>/<NNNN>-<slug>/spec.md --allow-draft- Leia
references/quality-gates.mde faça a revisão semântica. - Confira o campo
Interface para pessoas. Se forSim, exija na seção 10
stack e convenções observadas, telas e responsabilidades, fluxo de informação e navegação, menus e navegação principal, formulários e ações, composição e disposição, estados e acessibilidade. Confira se a tecnologia proposta segue as fontes da stack ou se a lacuna foi registrada para a pessoa. Um CRUD sem telas e formulário é BLOCKER; retorne automaticamente ao $specsfy-02-backlog para esclarecer a lacuna.
- Compare research, requisitos, BDD, plano técnico, modelo de dados, contratos,
TDD, matriz e tarefas. Confirme no mínimo três AC distintos para a feature inteira e para cada US, FR e NFR; não confunda “arquivo bem formatado” com “especificação correta”.
- Quando produto, arquitetura ou segurança forem materiais, leia
references/review-lenses.md, registre findings na seção 13 e execute scripts/review_findings.mjs. P1 Open mantém o gate pendente.
- Se a definição alterar stack ou persistência, exija que a Definition of Done
cite respectivamente .specsfy/STACK.md ou .specsfy/DATABASE.md. Para mudança material de finalidade ou capacidade, exija revisão de PROJECT.md; para regra nova confirmada, exija .specsfy/RULES.md.
- No aceite final, procure tarefas
[MIGRATION]e execute
verify_evidence.mjs --delivery para cada uma. Mantenha o Delivery Gate pendente quando a tarefa estiver aberta ou quando o arquivo, o comando de aplicação ou a consulta de estado estiver ausente.
Classificar achados
BLOCKER: impede tarefa ou teste correto; requisito contraditório, sem comportamento observável, decisão de alto impacto ausente ou cenário principal não coberto.WARNING: aumenta retrabalho ou risco, mas admite implementação segura.NOTE: melhoria editorial sem efeito material.
Para cada achado, cite seção ou ID, explique o impacto e proponha uma correção concreta.
Gate
Retorne exatamente um resultado:
READY: nenhuma falha de formato e nenhumBLOCKERsem resolução.NOT READY: qualquer falha estrutural ouBLOCKER.
Inclua contagens, cobertura mínima US/FR/NFR ↔ 3 ACs e os três achados mais importantes e a transição automática:
READY→$specsfy-05-taskspara planejar a seção 14;NOT READY→ retorno a$specsfy-02-backlogquando faltar decisão; a
o refinamento do backlog executa seu ciclo completo e esta validação só é retomada depois de fechar as lacunas ou registrar a saída explícita avançar; após essa saída, registre NOT READY e não reabra o mesmo ciclo nesta retomada; quando a correção já estiver decidida, use $specsfy-update-spec para uma spec anteriormente aprovada e $specsfy-03-specify para a definição inicial.
Anuncie o motivo e carregue imediatamente a skill escolhida.
Registrar no arquivo único
Sem alterar requisitos automaticamente:
- atualize
Gate do Ato I — Definiçãona seção 13 com resultado, data e achados; - em
READY, definaDefinition Gate: PassedeStatus: Defined; - em
NOT READY, definaDefinition Gate: Failed,Plan Gate: Pending,
Delivery Gate: Pending e mantenha Status: Draft;
- execute novamente
validate_spec.mjs specs/<estado>/<NNNN>-<slug>/spec.mdsem--allow-draftquando o gate passar; - relate o resultado no chat.
Quando o Definition Gate passar, execute specsfy transition <id> defined. Em review, use a mesma análise para o aceite final. Com Delivery Gate passado, Status Complete e a DoD comprovada, execute specsfy transition <id> completed. Antes disso, chame $specsfy-interviewer quando uma resposta puder mudar a entrega ou o Effort.
Se o usuário pedir correções, edite as seções de origem, preserve IDs e revalide. Nunca crie outro arquivo de especificação ou validação.
Enforcement do repositório
Use o mesmo runner localmente e no CI:
node .agents/skills/specsfy-04-validate/scripts/verify_repo.mjs . \
--boundary local --timeout-seconds 300 --max-output-bytes 65536As fronteiras local, git e ci não mudam a política. --attestation PATH é a única forma de persistir uma atestação; --self-test executa canários em diretório temporário e nunca produz binding probatório. A atestação schema 2 liga commit, digest executável, checks aprovados, tarefas e hashes de arquivos. O digest cobre comandos, limites e os arquivos da política. Não aceite um gate que passa em apenas uma fronteira, excede limites ou trunca diagnóstico sem marcar truncated.
O contrato do catálogo exige as quatorze skills base, specsfy-setup, specsfy-documentator e as três specsfy-aux-*; também valida cada specsfy-specialist-* instalada, sem impor um total máximo de especialistas. O Gherkin BDD é referência exclusiva da spec.md: o enforcement nunca executa .feature. Ele executa os testes derivados com Pest em projetos PHP, inclusive PHP + Node. Em projeto Node sem PHP, exige um script test:tdd; quando ausente, falha orientando a skill a perguntar ao usuário e sugerir Vitest.
Especialistas sob demanda
Leia references/specialists.md quando um gate depender de revisão técnica específica. Instalação é recomendação explícita, nunca efeito colateral da validação.

