spec-first-claude 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/README.md +144 -147
  2. package/bin/cli.js +52 -52
  3. package/lib/init.js +89 -93
  4. package/package.json +24 -23
  5. package/templates/.ai/memory/napkin.md +68 -68
  6. package/templates/.claude/agents/backend-coder.md +215 -215
  7. package/templates/.claude/agents/db-coder.md +165 -165
  8. package/templates/.claude/agents/doc-writer.md +51 -51
  9. package/templates/.claude/agents/frontend-coder.md +222 -222
  10. package/templates/.claude/agents/infra-coder.md +341 -341
  11. package/templates/.claude/agents/reviewer.md +99 -99
  12. package/templates/.claude/agents/security-reviewer.md +153 -153
  13. package/templates/.claude/commands/design.md +107 -107
  14. package/templates/.claude/commands/dev.md +189 -167
  15. package/templates/.claude/commands/extract.md +137 -137
  16. package/templates/.claude/commands/feature.md +60 -60
  17. package/templates/.claude/commands/merge-delta.md +70 -70
  18. package/templates/.claude/commands/plan.md +86 -86
  19. package/templates/.claude/commands/{pausar.md → session-finish.md} +83 -83
  20. package/templates/.claude/commands/setup-projeto.md +68 -68
  21. package/templates/.claude/settings.local.json +6 -6
  22. package/templates/CLAUDE.md +198 -199
  23. package/templates/docs/Desenvolvimento/rules.md +229 -229
  24. package/templates/docs/_templates/estrutura/ADRs.template.md +91 -91
  25. package/templates/docs/_templates/estrutura/API.template.md +144 -144
  26. package/templates/docs/_templates/estrutura/Arquitetura.template.md +82 -82
  27. package/templates/docs/_templates/estrutura/Infraestrutura.template.md +104 -104
  28. package/templates/docs/_templates/estrutura/Modelo_Dados.template.md +99 -99
  29. package/templates/docs/_templates/estrutura/Seguranca.template.md +138 -138
  30. package/templates/docs/_templates/estrutura/Stack.template.md +78 -78
  31. package/templates/docs/_templates/estrutura/Visao.template.md +82 -82
  32. package/templates/docs/_templates/feature/Progresso.template.md +136 -136
  33. package/templates/docs/_templates/feature/backlog-extraido.template.md +154 -154
  34. package/templates/docs/_templates/feature/context.template.md +42 -42
  35. package/templates/docs/_templates/feature/extract-log.template.md +38 -38
  36. package/templates/docs/_templates/feature/projetos.template.yaml +73 -73
  37. package/templates/docs/_templates/global/progresso_global.template.md +57 -57
@@ -1,137 +1,137 @@
1
- # /extract $ARGUMENTS
2
-
3
- Skill atômica de extração. Lê insumos brutos do PM/ e gera PRD ou TRD.
4
- $ARGUMENTS = nome (ex: setup_projeto, feat_cadastro_cliente)
5
-
6
- ## Multi-agent
7
-
8
- | Agente | Modelo | Papel |
9
- |--------|--------|-------|
10
- | **Reader** (1 por arquivo) | Sonnet | Lê e cataloga 1 arquivo. Não interpreta, apenas cataloga |
11
- | **Analyzer** | Opus | Cruza fontes, detecta gaps/contradições, gera documento final |
12
-
13
- ## Pré-condições
14
-
15
- | # | Validação | Se falhar |
16
- |---|-----------|-----------|
17
- | 1 | $ARGUMENTS informado | Parar → "Informe o nome" |
18
- | 2 | `docs/PM/$ARGUMENTS/` existe com arquivos | Parar → "Pasta vazia ou inexistente" |
19
- | 3 | `.context.md` existe | Parar → "Execute /feature ou /setup-projeto primeiro" |
20
- | 4 | Status é `not_started` ou `extract_done` | Se posterior → "Extração já aprovada" |
21
-
22
- ## Passos
23
-
24
- ### 1. Ler contexto
25
- - `.context.md` → tipo (feature/setup) e documento (PRD/TRD)
26
- - `discovery.md` (se existir) → análise profunda prévia dos insumos
27
- - `docs/Estrutura/` se existir
28
- - Template: tipo=feature → `PRD.template.md` | tipo=setup → `TRD.template.md`
29
-
30
- > Se `discovery.md` existir: usar mapa do sistema e perguntas já respondidas como contexto
31
- > enriquecido. Resultado: menos ambiguidades, melhor estruturação.
32
-
33
- ### 2. Inventariar insumos
34
- Para cada arquivo em `docs/PM/$ARGUMENTS/` (ignorar .gitkeep):
35
- - Calcular hash SHA-256 (primeiros 8 chars)
36
- - Se `.extract-log.md` existe → classificar: NOVO / MODIFICADO / INALTERADO
37
- - Se não existe → todos são NOVOS
38
-
39
- ### 3. Processar (simulando Reader por arquivo)
40
- Para cada arquivo NOVO ou MODIFICADO:
41
-
42
- | Formato | O que extrair |
43
- |---------|---------------|
44
- | .md, .txt | Requisitos, regras, contexto, restrições |
45
- | .sql | Entidades, campos, tipos, constraints, índices |
46
- | .html | Telas, campos, ações, validações, rotas, permissões |
47
- | .xml, .json | Fluxos, decisões, configurações |
48
- | .csv | Dados tabulares, mapeamentos |
49
- | .png, .jpg, .pdf | Análise visual (wireframes, mockups) |
50
- | Não identificado | Registrar como NÃO IDENTIFICADO, gerar ambiguidade |
51
-
52
- ### 4. Gerar documento (simulando Analyzer)
53
- - Consolidar todas informações por seção do template
54
- - Detectar contradições entre fontes → ambiguidade
55
- - Detectar gaps (seções sem info) → ambiguidade
56
- - **Validar Checklist de Temas Críticos** (ver abaixo) — temas ausentes viram ambiguidades obrigatórias
57
- - Nunca inferir regra de negócio — se não explícito, é ambiguidade
58
- - IDs estáveis: RN-001 nunca renumera, novos continuam sequência
59
- - Rastreabilidade: cada info aponta pro arquivo fonte
60
-
61
- #### Checklist de Temas Críticos
62
-
63
- Após consolidar os Readers, verificar se os insumos cobrem os temas abaixo.
64
- Se um tema **não foi mencionado em nenhum insumo**, gera **ambiguidade obrigatória**.
65
-
66
- **Para TRD (setup):**
67
-
68
- | # | Tema | Se ausente |
69
- |---|------|------------|
70
- | 1 | **Autenticação** (JWT, OAuth, API Key, Session?) | Ambiguidade: "Nenhum mecanismo de autenticação definido" |
71
- | 2 | **Autorização / Roles** (perfis, RBAC, ABAC, quem acessa o quê) | Ambiguidade: "Perfis de acesso e regras de autorização não definidos" |
72
- | 3 | **Separação de serviços** (monolito, microserviços, API vs Worker) | Ambiguidade: "Arquitetura de serviços não definida" |
73
- | 4 | **Ambientes** (dev, staging, prod, Docker, CI/CD) | Ambiguidade: "Estratégia de ambientes e deploy não definida" |
74
- | 5 | **Dados sensíveis** (PII, LGPD, criptografia, masking) | Ambiguidade: "Tratamento de dados sensíveis / LGPD não mencionado" |
75
-
76
- **Para PRD (feature):**
77
-
78
- | # | Tema | Se ausente |
79
- |---|------|------------|
80
- | 1 | **Autenticação requerida** (quais endpoints públicos vs autenticados?) | Ambiguidade: "Não definido quais operações exigem autenticação" |
81
- | 2 | **Permissões / Roles** (quais perfis podem executar cada ação?) | Ambiguidade: "Não definido quais perfis têm acesso a cada operação" |
82
- | 3 | **Validações de entrada** (regras, limites, formatos) | Ambiguidade: "Validações de entrada não detalhadas" |
83
- | 4 | **Tratamento de erros** (cenários de falha, mensagens) | Ambiguidade: "Cenários de erro e mensagens ao usuário não definidos" |
84
- | 5 | **Impacto em dados existentes** (migração necessária?) | Ambiguidade: "Impacto em dados existentes não avaliado" |
85
-
86
- > O Analyzer NÃO inventa respostas — se não está nos insumos, PERGUNTA.
87
-
88
- ### 5. Gerar roadmap de produto faseado (APENAS no setup)
89
- Quando tipo=setup, o Analyzer encontra informações que não são infraestrutura
90
- (regras de negócio, jornadas, telas, fluxos). Em vez de descartar, organizar em
91
- `backlog_extraido.md` como **roadmap faseado** com entregáveis incrementais.
92
-
93
- O Analyzer deve:
94
- 1. Identificar funcionalidades, entidades, regras de negócio, jornadas, telas
95
- 2. Mapear dependências entre elas (ex: agendamento depende de cadastro de clientes)
96
- 3. Agrupar em **fases de entrega** por dependência + complexidade
97
- 4. Para cada fase: definir entregável + critério de done
98
- 5. Sugerir **1 feature única** com nome descritivo (ex: `feat_mvp`)
99
- 6. Usar template `backlog-extraido.template.md`
100
-
101
- **Princípio**: Entregáveis contínuos — cada fase entrega valor e pode ir pra produção.
102
- Máximo 4-5 fases. Fase 1 sempre = fundação/cadastros base.
103
-
104
- Este arquivo:
105
- - É gerado APENAS no setup (não em features)
106
- - Serve como roadmap quando o usuário for criar `/feature`
107
- - O /extract da feature usa as fases como referência para o PRD
108
-
109
- ### 6. Gerar `.extract-log.md`
110
- ```markdown
111
- # Extract Log — $ARGUMENTS
112
-
113
- ## Extração N — {{ISO_DATETIME}}
114
- | Arquivo | Hash | Classificação | Status | Seções alimentadas |
115
- |---------|------|---------------|--------|--------------------|
116
- ```
117
-
118
- ### 6. Atualizar `.context.md`
119
- ```yaml
120
- status: "extract_done"
121
- ultima_skill: "/extract"
122
- atualizado_em: "{{ISO_DATETIME}}"
123
- ```
124
-
125
- ## Re-extração
126
- - Merge ADITIVO com documento existente (nunca remove info de inalterados)
127
- - Seções afetadas marcadas com `<!-- ATUALIZADO: re-extração -->`
128
- - Novos IDs continuam sequência
129
-
130
- ## Erros
131
- | Erro | Ação |
132
- |------|------|
133
- | Pasta vazia | Parar, listar formatos aceitos |
134
- | .context.md não existe | Parar, sugerir /feature ou /setup-projeto |
135
- | Nenhum arquivo novo/modificado | Informar "Nenhuma alteração detectada" |
136
- | Arquivo não identificado | Registrar no log, gerar ambiguidade |
137
- | Contradição entre arquivos | Gerar ambiguidade citando os dois |
1
+ # /extract $ARGUMENTS
2
+
3
+ Skill atômica de extração. Lê insumos brutos do PM/ e gera PRD ou TRD.
4
+ $ARGUMENTS = nome (ex: setup_projeto, feat_cadastro_cliente)
5
+
6
+ ## Multi-agent
7
+
8
+ | Agente | Modelo | Papel |
9
+ |--------|--------|-------|
10
+ | **Reader** (1 por arquivo) | Sonnet | Lê e cataloga 1 arquivo. Não interpreta, apenas cataloga |
11
+ | **Analyzer** | Opus | Cruza fontes, detecta gaps/contradições, gera documento final |
12
+
13
+ ## Pré-condições
14
+
15
+ | # | Validação | Se falhar |
16
+ |---|-----------|-----------|
17
+ | 1 | $ARGUMENTS informado | Parar → "Informe o nome" |
18
+ | 2 | `docs/PM/$ARGUMENTS/` existe com arquivos | Parar → "Pasta vazia ou inexistente" |
19
+ | 3 | `.context.md` existe | Parar → "Execute /feature ou /setup-projeto primeiro" |
20
+ | 4 | Status é `not_started` ou `extract_done` | Se posterior → "Extração já aprovada" |
21
+
22
+ ## Passos
23
+
24
+ ### 1. Ler contexto
25
+ - `.context.md` → tipo (feature/setup) e documento (PRD/TRD)
26
+ - `discovery.md` (se existir) → análise profunda prévia dos insumos
27
+ - `docs/Estrutura/` se existir
28
+ - Template: tipo=feature → `PRD.template.md` | tipo=setup → `TRD.template.md`
29
+
30
+ > Se `discovery.md` existir: usar mapa do sistema e perguntas já respondidas como contexto
31
+ > enriquecido. Resultado: menos ambiguidades, melhor estruturação.
32
+
33
+ ### 2. Inventariar insumos
34
+ Para cada arquivo em `docs/PM/$ARGUMENTS/` (ignorar .gitkeep):
35
+ - Calcular hash SHA-256 (primeiros 8 chars)
36
+ - Se `.extract-log.md` existe → classificar: NOVO / MODIFICADO / INALTERADO
37
+ - Se não existe → todos são NOVOS
38
+
39
+ ### 3. Processar (simulando Reader por arquivo)
40
+ Para cada arquivo NOVO ou MODIFICADO:
41
+
42
+ | Formato | O que extrair |
43
+ |---------|---------------|
44
+ | .md, .txt | Requisitos, regras, contexto, restrições |
45
+ | .sql | Entidades, campos, tipos, constraints, índices |
46
+ | .html | Telas, campos, ações, validações, rotas, permissões |
47
+ | .xml, .json | Fluxos, decisões, configurações |
48
+ | .csv | Dados tabulares, mapeamentos |
49
+ | .png, .jpg, .pdf | Análise visual (wireframes, mockups) |
50
+ | Não identificado | Registrar como NÃO IDENTIFICADO, gerar ambiguidade |
51
+
52
+ ### 4. Gerar documento (simulando Analyzer)
53
+ - Consolidar todas informações por seção do template
54
+ - Detectar contradições entre fontes → ambiguidade
55
+ - Detectar gaps (seções sem info) → ambiguidade
56
+ - **Validar Checklist de Temas Críticos** (ver abaixo) — temas ausentes viram ambiguidades obrigatórias
57
+ - Nunca inferir regra de negócio — se não explícito, é ambiguidade
58
+ - IDs estáveis: RN-001 nunca renumera, novos continuam sequência
59
+ - Rastreabilidade: cada info aponta pro arquivo fonte
60
+
61
+ #### Checklist de Temas Críticos
62
+
63
+ Após consolidar os Readers, verificar se os insumos cobrem os temas abaixo.
64
+ Se um tema **não foi mencionado em nenhum insumo**, gera **ambiguidade obrigatória**.
65
+
66
+ **Para TRD (setup):**
67
+
68
+ | # | Tema | Se ausente |
69
+ |---|------|------------|
70
+ | 1 | **Autenticação** (JWT, OAuth, API Key, Session?) | Ambiguidade: "Nenhum mecanismo de autenticação definido" |
71
+ | 2 | **Autorização / Roles** (perfis, RBAC, ABAC, quem acessa o quê) | Ambiguidade: "Perfis de acesso e regras de autorização não definidos" |
72
+ | 3 | **Separação de serviços** (monolito, microserviços, API vs Worker) | Ambiguidade: "Arquitetura de serviços não definida" |
73
+ | 4 | **Ambientes** (dev, staging, prod, Docker, CI/CD) | Ambiguidade: "Estratégia de ambientes e deploy não definida" |
74
+ | 5 | **Dados sensíveis** (PII, LGPD, criptografia, masking) | Ambiguidade: "Tratamento de dados sensíveis / LGPD não mencionado" |
75
+
76
+ **Para PRD (feature):**
77
+
78
+ | # | Tema | Se ausente |
79
+ |---|------|------------|
80
+ | 1 | **Autenticação requerida** (quais endpoints públicos vs autenticados?) | Ambiguidade: "Não definido quais operações exigem autenticação" |
81
+ | 2 | **Permissões / Roles** (quais perfis podem executar cada ação?) | Ambiguidade: "Não definido quais perfis têm acesso a cada operação" |
82
+ | 3 | **Validações de entrada** (regras, limites, formatos) | Ambiguidade: "Validações de entrada não detalhadas" |
83
+ | 4 | **Tratamento de erros** (cenários de falha, mensagens) | Ambiguidade: "Cenários de erro e mensagens ao usuário não definidos" |
84
+ | 5 | **Impacto em dados existentes** (migração necessária?) | Ambiguidade: "Impacto em dados existentes não avaliado" |
85
+
86
+ > O Analyzer NÃO inventa respostas — se não está nos insumos, PERGUNTA.
87
+
88
+ ### 5. Gerar roadmap de produto faseado (APENAS no setup)
89
+ Quando tipo=setup, o Analyzer encontra informações que não são infraestrutura
90
+ (regras de negócio, jornadas, telas, fluxos). Em vez de descartar, organizar em
91
+ `backlog_extraido.md` como **roadmap faseado** com entregáveis incrementais.
92
+
93
+ O Analyzer deve:
94
+ 1. Identificar funcionalidades, entidades, regras de negócio, jornadas, telas
95
+ 2. Mapear dependências entre elas (ex: agendamento depende de cadastro de clientes)
96
+ 3. Agrupar em **fases de entrega** por dependência + complexidade
97
+ 4. Para cada fase: definir entregável + critério de done
98
+ 5. Sugerir **1 feature única** com nome descritivo (ex: `feat_mvp`)
99
+ 6. Usar template `backlog-extraido.template.md`
100
+
101
+ **Princípio**: Entregáveis contínuos — cada fase entrega valor e pode ir pra produção.
102
+ Máximo 4-5 fases. Fase 1 sempre = fundação/cadastros base.
103
+
104
+ Este arquivo:
105
+ - É gerado APENAS no setup (não em features)
106
+ - Serve como roadmap quando o usuário for criar `/feature`
107
+ - O /extract da feature usa as fases como referência para o PRD
108
+
109
+ ### 6. Gerar `.extract-log.md`
110
+ ```markdown
111
+ # Extract Log — $ARGUMENTS
112
+
113
+ ## Extração N — {{ISO_DATETIME}}
114
+ | Arquivo | Hash | Classificação | Status | Seções alimentadas |
115
+ |---------|------|---------------|--------|--------------------|
116
+ ```
117
+
118
+ ### 6. Atualizar `.context.md`
119
+ ```yaml
120
+ status: "extract_done"
121
+ ultima_skill: "/extract"
122
+ atualizado_em: "{{ISO_DATETIME}}"
123
+ ```
124
+
125
+ ## Re-extração
126
+ - Merge ADITIVO com documento existente (nunca remove info de inalterados)
127
+ - Seções afetadas marcadas com `<!-- ATUALIZADO: re-extração -->`
128
+ - Novos IDs continuam sequência
129
+
130
+ ## Erros
131
+ | Erro | Ação |
132
+ |------|------|
133
+ | Pasta vazia | Parar, listar formatos aceitos |
134
+ | .context.md não existe | Parar, sugerir /feature ou /setup-projeto |
135
+ | Nenhum arquivo novo/modificado | Informar "Nenhuma alteração detectada" |
136
+ | Arquivo não identificado | Registrar no log, gerar ambiguidade |
137
+ | Contradição entre arquivos | Gerar ambiguidade citando os dois |
@@ -1,60 +1,60 @@
1
- # /feature $ARGUMENTS
2
-
3
- Orquestrador de feature. Cria contexto PRD, chama /extract e para no checkpoint.
4
- $ARGUMENTS = nome da feature (ex: feat_cadastro_cliente)
5
-
6
- ## Execução
7
-
8
- ### Convenção de nomes
9
- - Features: `feat_nome_descritivo`
10
- - Bugs: `bug_nome_descritivo`
11
- - Tasks técnicas: `task_nome_descritivo`
12
-
13
- ### Pré-condições
14
-
15
- | # | Validação | Se falhar |
16
- |---|-----------|-----------|
17
- | 1 | $ARGUMENTS foi informado | Parar → "Informe o nome. Ex: /feature feat_cadastro_cliente" |
18
- | 2 | `docs/PM/$ARGUMENTS/` existe e tem arquivos | Parar → "Crie a pasta e adicione insumos" |
19
- | 3 | `docs/Estrutura/` está populado | Parar → "Execute /setup-projeto antes" |
20
- | 4 | `.context.md` não existe ou status é `not_started` | Se avançado → "Feature já em andamento. Para re-extrair, use /extract $ARGUMENTS" |
21
-
22
- ### Passos
23
-
24
- 1. Carregar `docs/Estrutura/` para contexto do projeto
25
- 2. Criar `docs/Desenvolvimento/$ARGUMENTS/` se não existir
26
- 3. Criar `.context.md`:
27
- ```yaml
28
- ---
29
- nome: "$ARGUMENTS"
30
- tipo: "feature"
31
- documento: "PRD"
32
- pm_path: "docs/PM/$ARGUMENTS/"
33
- status: "not_started"
34
- ultima_skill: "/feature"
35
- atualizado_em: "{{ISO_DATETIME}}"
36
- ---
37
- ```
38
- 4. Sugerir /sf-discovery (RECOMENDADO):
39
- ```
40
- 📋 Recomendo rodar /sf-discovery antes da extração para análise profunda dos insumos.
41
- Quer rodar /sf-discovery docs/PM/$ARGUMENTS/ agora? (s/n)
42
- ```
43
- Se SIM → rodar discovery, salvar discovery.md em docs/Desenvolvimento/$ARGUMENTS/
44
- Se NÃO → pular direto para extract
45
-
46
- 5. Executar /extract $ARGUMENTS
47
- 6. CHECKPOINT — Parar e informar:
48
- ```
49
- ✅ PRD gerado em docs/Desenvolvimento/$ARGUMENTS/PRD.md
50
-
51
- Revise o documento. Quando estiver satisfeito, execute:
52
- /design $ARGUMENTS
53
-
54
- Se precisar adicionar mais insumos:
55
- /extract $ARGUMENTS
56
- ```
57
-
58
- ### Notas
59
- - Pode ser executado múltiplas vezes (uma por feature)
60
- - Pipeline inclui /merge-delta no final (diferente do setup)
1
+ # /feature $ARGUMENTS
2
+
3
+ Orquestrador de feature. Cria contexto PRD, chama /extract e para no checkpoint.
4
+ $ARGUMENTS = nome da feature (ex: feat_cadastro_cliente)
5
+
6
+ ## Execução
7
+
8
+ ### Convenção de nomes
9
+ - Features: `feat_nome_descritivo`
10
+ - Bugs: `bug_nome_descritivo`
11
+ - Tasks técnicas: `task_nome_descritivo`
12
+
13
+ ### Pré-condições
14
+
15
+ | # | Validação | Se falhar |
16
+ |---|-----------|-----------|
17
+ | 1 | $ARGUMENTS foi informado | Parar → "Informe o nome. Ex: /feature feat_cadastro_cliente" |
18
+ | 2 | `docs/PM/$ARGUMENTS/` existe e tem arquivos | Parar → "Crie a pasta e adicione insumos" |
19
+ | 3 | `docs/Estrutura/` está populado | Parar → "Execute /setup-projeto antes" |
20
+ | 4 | `.context.md` não existe ou status é `not_started` | Se avançado → "Feature já em andamento. Para re-extrair, use /extract $ARGUMENTS" |
21
+
22
+ ### Passos
23
+
24
+ 1. Carregar `docs/Estrutura/` para contexto do projeto
25
+ 2. Criar `docs/Desenvolvimento/$ARGUMENTS/` se não existir
26
+ 3. Criar `.context.md`:
27
+ ```yaml
28
+ ---
29
+ nome: "$ARGUMENTS"
30
+ tipo: "feature"
31
+ documento: "PRD"
32
+ pm_path: "docs/PM/$ARGUMENTS/"
33
+ status: "not_started"
34
+ ultima_skill: "/feature"
35
+ atualizado_em: "{{ISO_DATETIME}}"
36
+ ---
37
+ ```
38
+ 4. Sugerir /sf-discovery (RECOMENDADO):
39
+ ```
40
+ 📋 Recomendo rodar /sf-discovery antes da extração para análise profunda dos insumos.
41
+ Quer rodar /sf-discovery docs/PM/$ARGUMENTS/ agora? (s/n)
42
+ ```
43
+ Se SIM → rodar discovery, salvar discovery.md em docs/Desenvolvimento/$ARGUMENTS/
44
+ Se NÃO → pular direto para extract
45
+
46
+ 5. Executar /extract $ARGUMENTS
47
+ 6. CHECKPOINT — Parar e informar:
48
+ ```
49
+ ✅ PRD gerado em docs/Desenvolvimento/$ARGUMENTS/PRD.md
50
+
51
+ Revise o documento. Quando estiver satisfeito, execute:
52
+ /design $ARGUMENTS
53
+
54
+ Se precisar adicionar mais insumos:
55
+ /extract $ARGUMENTS
56
+ ```
57
+
58
+ ### Notas
59
+ - Pode ser executado múltiplas vezes (uma por feature)
60
+ - Pipeline inclui /merge-delta no final (diferente do setup)
@@ -1,70 +1,70 @@
1
- # /merge-delta $ARGUMENTS
2
-
3
- Skill atômica pós-dev. Aplica Delta Specs do SDD em docs/Estrutura/.
4
- $ARGUMENTS = nome (ex: feat_cadastro_cliente)
5
-
6
- ## Agente: Integrator (Sonnet)
7
- Meticuloso com consistência. Aplica apenas o que Delta Specs diz.
8
-
9
- ## Pré-condições
10
-
11
- | # | Validação | Se falhar |
12
- |---|-----------|-----------|
13
- | 1 | $ARGUMENTS informado | Parar |
14
- | 2 | `.context.md` com status `dev_done` | Se anterior → "/dev primeiro" |
15
- | 3 | `.context.md` tipo é `feature` | Se setup → "Setup não usa merge-delta" |
16
- | 4 | `sdd.md` §11 Delta Specs preenchida | Parar |
17
- | 5 | `docs/Estrutura/` populado | Parar |
18
-
19
- ## Passos
20
-
21
- ### 1. Ler SDD §11 Delta Specs
22
-
23
- | Tipo | Significado |
24
- |------|------------|
25
- | ADDED | Elemento novo (tabela, endpoint, tela) |
26
- | MODIFIED | Elemento existente alterado |
27
- | REMOVED | Elemento removido |
28
-
29
- ### 2. Mapear para docs alvo
30
-
31
- | Elemento | Doc |
32
- |----------|-----|
33
- | Tabelas, colunas, índices | Modelo_Dados.md |
34
- | Endpoints, contratos | API.md |
35
- | Decisões arquiteturais | Arquitetura.md + ADRs.md |
36
- | Infra | Infraestrutura.md |
37
- | Segurança | Seguranca.md |
38
- | Stack | Stack.md |
39
- | Visão/escopo | Visao.md |
40
-
41
- ### 3. Aplicar deltas
42
- Para cada delta, no doc alvo:
43
- - ADDED → adicionar conteúdo na seção apropriada
44
- - MODIFIED → localizar e atualizar elemento
45
- - REMOVED → remover ou marcar deprecated
46
-
47
- ### 4. Registrar changelog (em cada doc afetado)
48
- ```markdown
49
- ## Changelog
50
- | Data | Feature | Tipo | Descrição |
51
- |------|---------|------|-----------|
52
- | {{data}} | $ARGUMENTS | ADDED | ... |
53
- ```
54
-
55
- ### 5. Validar consistência
56
- - Referências quebradas? Reportar.
57
- - REMOVED deixou órfãos? Reportar.
58
-
59
- ### 6. Atualizar
60
- - `.context.md` → status: `done`
61
- - `progresso.md` global → feature concluída
62
- - Informar ao usuário docs atualizados
63
-
64
- ## Erros
65
- | Erro | Ação |
66
- |------|------|
67
- | Status não é dev_done | Parar |
68
- | Tipo é setup | Parar — setup não usa merge-delta |
69
- | Delta Specs vazia | Marcar done (legítimo em refactors) |
70
- | Elemento não encontrado | Parar, pedir resolução |
1
+ # /merge-delta $ARGUMENTS
2
+
3
+ Skill atômica pós-dev. Aplica Delta Specs do SDD em docs/Estrutura/.
4
+ $ARGUMENTS = nome (ex: feat_cadastro_cliente)
5
+
6
+ ## Agente: Integrator (Sonnet)
7
+ Meticuloso com consistência. Aplica apenas o que Delta Specs diz.
8
+
9
+ ## Pré-condições
10
+
11
+ | # | Validação | Se falhar |
12
+ |---|-----------|-----------|
13
+ | 1 | $ARGUMENTS informado | Parar |
14
+ | 2 | `.context.md` com status `dev_done` | Se anterior → "/dev primeiro" |
15
+ | 3 | `.context.md` tipo é `feature` | Se setup → "Setup não usa merge-delta" |
16
+ | 4 | `sdd.md` §11 Delta Specs preenchida | Parar |
17
+ | 5 | `docs/Estrutura/` populado | Parar |
18
+
19
+ ## Passos
20
+
21
+ ### 1. Ler SDD §11 Delta Specs
22
+
23
+ | Tipo | Significado |
24
+ |------|------------|
25
+ | ADDED | Elemento novo (tabela, endpoint, tela) |
26
+ | MODIFIED | Elemento existente alterado |
27
+ | REMOVED | Elemento removido |
28
+
29
+ ### 2. Mapear para docs alvo
30
+
31
+ | Elemento | Doc |
32
+ |----------|-----|
33
+ | Tabelas, colunas, índices | Modelo_Dados.md |
34
+ | Endpoints, contratos | API.md |
35
+ | Decisões arquiteturais | Arquitetura.md + ADRs.md |
36
+ | Infra | Infraestrutura.md |
37
+ | Segurança | Seguranca.md |
38
+ | Stack | Stack.md |
39
+ | Visão/escopo | Visao.md |
40
+
41
+ ### 3. Aplicar deltas
42
+ Para cada delta, no doc alvo:
43
+ - ADDED → adicionar conteúdo na seção apropriada
44
+ - MODIFIED → localizar e atualizar elemento
45
+ - REMOVED → remover ou marcar deprecated
46
+
47
+ ### 4. Registrar changelog (em cada doc afetado)
48
+ ```markdown
49
+ ## Changelog
50
+ | Data | Feature | Tipo | Descrição |
51
+ |------|---------|------|-----------|
52
+ | {{data}} | $ARGUMENTS | ADDED | ... |
53
+ ```
54
+
55
+ ### 5. Validar consistência
56
+ - Referências quebradas? Reportar.
57
+ - REMOVED deixou órfãos? Reportar.
58
+
59
+ ### 6. Atualizar
60
+ - `.context.md` → status: `done`
61
+ - `progresso.md` global → feature concluída
62
+ - Informar ao usuário docs atualizados
63
+
64
+ ## Erros
65
+ | Erro | Ação |
66
+ |------|------|
67
+ | Status não é dev_done | Parar |
68
+ | Tipo é setup | Parar — setup não usa merge-delta |
69
+ | Delta Specs vazia | Marcar done (legítimo em refactors) |
70
+ | Elemento não encontrado | Parar, pedir resolução |