name: analyze description: 'Cross-artifact SDD consistency analysis (spec/plan/tasks/constitution) — read-only. Triggers: "analyze", "cross-check", "auditar artefatos", "validar spec vs tasks". Skip for single-document validation (use validate-documentation).' argument-hint: "[caminho para diretorio da feature ou escopo]" allowed-tools: - Read - Glob - Grep - Agent
Skill: Analise de Consistencia Cross-Artifact¶
Analise read-only que identifica inconsistencias, duplicacoes, ambiguidades e gaps de cobertura entre os artefatos de uma feature (spec, plan, tasks, constitution).
STRICTLY READ-ONLY: NAO modifica nenhum arquivo. Produz relatorio estruturado.
Pre-requisitos¶
Obrigatorio: spec.md E tasks.md existentes na feature a analisar.
Sem ambos, a skill aborta e indica qual comando rodar primeiro.
Opcional: plan.md e docs/constitution.md aumentam a cobertura da analise.
Proximos passos¶
- Se issues CRITICAL: resolver antes de
/execute-task - Se apenas LOW/MEDIUM: prosseguir com
/execute-taskmas agendar cleanup /specify,/clarifyou/plan— conforme findings apontem onde corrigir
Argumentos¶
$ARGUMENTS
FLUXO DE EXECUCAO¶
1. INICIALIZAR Localizar e carregar artefatos
|
2. MODELAR Construir modelos semanticos
|
3. DETECTAR 6 passes de deteccao
|
4. CLASSIFICAR Atribuir severidade
|
5. REPORTAR Gerar relatorio compacto
|
6. RECOMENDAR Proximas acoes
ETAPA 1: INICIALIZAR¶
1.1 Localizar Artefatos¶
Use $ARGUMENTS para encontrar o diretorio da feature. Derivar paths absolutos:
SPEC= {feature_dir}/spec.mdPLAN= {feature_dir}/plan.mdTASKS= {feature_dir}/tasks.md (oudocs/tasks*.mdse fora do padrao specs/)
Se $ARGUMENTS vazio: listar diretorios em docs/specs/ e pedir ao usuario para escolher.
Artefatos obrigatorios: spec.md E tasks.md (ou equivalente). Se algum esta ausente: abortar com mensagem indicando qual comando rodar primeiro.
1.2 Carregar Artefatos (Progressive Disclosure)¶
Da spec.md: - Overview/Contexto - Functional Requirements - Non-Functional Requirements - User Stories - Edge Cases (se presente)
Do plan.md (se existir): - Arquitetura/stack choices - Referências a Data Model - Fases - Constraints tecnicos
Do tasks.md: - Task IDs - Descricoes - Agrupamento por fase - Marcadores [P] de paralelismo - Paths de arquivo referenciados
Da constitution (se existir):
- Carregar docs/constitution.md
- Extrair principios MUST/SHOULD
ETAPA 2: MODELAR¶
2.1 Construir Modelos Semanticos¶
Criar representacoes internas (nao incluir artefatos raw no output):
Inventario de Requisitos:
- Cada requisito funcional + nao-funcional com chave estavel
- Derivar slug do verbo imperativo (ex: "User can upload file" → user-can-upload-file)
Inventario de User Stories/Acoes: - Acoes discretas do usuario com criterios de aceite
Mapeamento de Cobertura de Tasks: - Mapear cada task a um ou mais requisitos/stories - Inferencia por keyword / padroes de referencia explicita (IDs, frases-chave)
Conjunto de Regras da Constitution: - Extrair nomes de principios e afirmacoes MUST/SHOULD
ETAPA 3: DETECTAR¶
3.1 Passes de Deteccao¶
Executar 6 passes sobre os modelos semanticos. Detalhamento completo de cada
pass (o que flaggear, severidade tipica, exemplos) em
references/consistency-checks.md (mesmo diretorio desta skill):
- A. Duplicacao — requisitos near-duplicate
- B. Ambiguidade — adjetivos vagos, placeholders nao resolvidos
- C. Sub-especificacao — verbos sem objeto, criterios incompletos
- D. Alinhamento com Constitution — violacoes MUST sao automaticamente CRITICAL
- E. Gaps de Cobertura — requisitos orfaos, tasks orfas
- F. Inconsistencia — drift de terminologia, contradicoes entre artefatos
- G. Convencoes de Borda (case style) — comparar
plan.md §Convencoes de Bordacontra uso real emdata-model.md,contracts/*.mde payload examples. Se plan declara DB=snake_case masdata-model.mdcita colunauserName, flag MAJOR. Se contracts declara camelCase mas exemplo de payload usauser_name, flag MAJOR. Razao: dec-172/173 historicos resolveram em FASE 8 (onda-040) uma divergencia que existia desde onda-014 — 40 ondas de retrabalho porque a convencao nao foi cross-checked upfront.
Focar em findings de alto sinal. Limite: 50 findings total. Agregar restante em resumo de overflow.
ETAPA 4: CLASSIFICAR¶
4.1 Heuristica de Severidade¶
Tabela completa em references/consistency-checks.md#heuristica-de-severidade.
Resumo:
| Severidade | Criterio |
|---|---|
| CRITICAL | Violacao de MUST na constitution, artefato core ausente, requisito core sem cobertura |
| HIGH | Duplicacao/conflito, seguranca/performance ambigua, criterio nao-testavel |
| MEDIUM | Drift de terminologia, NFR parcialmente coberto, edge case sub-especificado |
| LOW | Estilo, redundancia menor |
ETAPA 5: REPORTAR¶
5.1 Formato do Relatorio¶
Produzir relatorio Markdown (NO FILE WRITES — apenas output na conversa):
## Specification Analysis Report
### Findings
| ID | Categoria | Severidade | Localizacao | Resumo | Recomendacao |
|----|-----------|-----------|-------------|--------|--------------|
| A1 | Duplicacao | HIGH | spec.md §FR-3, §FR-7 | Requisitos similares sobre... | Merge, manter versao mais clara |
| B1 | Ambiguidade | MEDIUM | spec.md §SC-002 | "rapido" sem metrica | Quantificar com threshold |
| D1 | Constitution | CRITICAL | plan.md §Tech | Viola principio Test-First | Adicionar fase de testes |
| E1 | Cobertura | HIGH | spec.md §FR-005 | Zero tasks mapeadas | Adicionar tasks em Phase 3 |
### Coverage Summary
| Requisito | Tem Task? | Task IDs | Notas |
|-----------|-----------|----------|-------|
| FR-001 | Sim | T012, T014 | |
| FR-002 | Sim | T015 | |
| FR-003 | Nao | — | Gap: sem tasks |
### Constitution Alignment
[Lista de violacoes ou "Todos os principios atendidos"]
### Unmapped Tasks
[Tasks sem requisito/story correspondente ou "Todas as tasks mapeadas"]
### Metricas
- **Total de Requisitos**: [N]
- **Total de Tasks**: [N]
- **Cobertura**: [N]% (requisitos com >= 1 task)
- **Ambiguidades**: [N]
- **Duplicacoes**: [N]
- **Issues Criticas**: [N]
ETAPA 6: RECOMENDAR¶
6.1 Proximas Acoes¶
Baseado nos findings:
- Se issues CRITICAL existem: Recomendar resolver antes de
/execute-task - Se apenas LOW/MEDIUM: Usuario pode prosseguir, mas fornecer sugestoes de melhoria
- Comandos sugeridos concretos:
- "Rodar
/specifypara refinar requisito FR-003" - "Rodar
/planpara ajustar arquitetura" - "Editar tasks.md para adicionar cobertura para 'performance-metrics'"
- "Rodar
/clarifypara resolver ambiguidades na spec"
6.2 Oferecer Remediacao¶
Perguntar ao usuario:
"Deseja que eu sugira edicoes concretas de remediacao para os top N issues?"
NAO aplicar automaticamente — apenas sugerir se usuario aprovar explicitamente.
REGRAS IMPORTANTES¶
- NUNCA modificar arquivos (analise estritamente read-only)
- NUNCA hallucinar secoes ausentes (se ausente, reportar com precisao)
- Priorizar violacoes de constitution (sempre CRITICAL)
- Usar exemplos sobre regras exaustivas (citar instancias especificas)
- Reportar zero issues gracefully (emitir relatorio de sucesso com estatisticas de cobertura)
- Resultados deterministicos: re-rodar sem mudancas deve produzir IDs e contagens consistentes
- Max 50 findings: agregar overflow em resumo
Diferenca do validate-documentation¶
validate-documentation: Valida UM documento (UC) contra padroes de qualidade estruturalanalyze: Valida MULTIPLOS artefatos ENTRE SI (spec vs plan vs tasks vs constitution)- Ambos coexistem — validate-docs para documentos individuais, analyze para consistencia cross-artifact
Gotchas¶
STRICTLY READ-ONLY — quebrar isso invalida o contrato¶
A skill NAO escreve nem edita arquivos. Se uma correcao parece obvia, sugira no relatorio e aguarde aprovacao explicita do usuario. Aplicar fixes automaticamente viola o proposito da analise.
Violacoes de constitution sao SEMPRE CRITICAL¶
Nao importa o quao pequena a violacao parece. Se conflita com um principio MUST, a severidade e CRITICAL e bloqueia /execute-task ate resolver. Nao rebaixe para HIGH por "contexto".
Max 50 findings — o resto vai para overflow¶
Ultrapassar esse limite dilui o sinal. Se mais de 50 candidatos, priorizar por (Impacto x Incerteza) e agregar o restante num resumo no final do relatorio.
Nao inventar secoes ausentes¶
Se a spec nao tem "Edge Cases", reporte como Gap (E. Gaps de Cobertura) — nao alucine conteudo "como deveria ser". O papel da skill e detectar, nao preencher.
Resultados devem ser deterministicos¶
Re-rodar a analise sem mudancas nos artefatos deve produzir os mesmos IDs, contagens e severidades. Se duas execucoes consecutivas divergem, o modelo interno esta instavel — rever heuristicas.