spec-first-copilot 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 (38) hide show
  1. package/README.md +148 -148
  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/.github/agents/backend-coder.md +215 -215
  7. package/templates/.github/agents/db-coder.md +165 -165
  8. package/templates/.github/agents/doc-writer.md +51 -51
  9. package/templates/.github/agents/frontend-coder.md +222 -222
  10. package/templates/.github/agents/infra-coder.md +341 -341
  11. package/templates/.github/agents/reviewer.md +99 -99
  12. package/templates/.github/agents/security-reviewer.md +153 -153
  13. package/templates/.github/copilot-instructions.md +175 -176
  14. package/templates/.github/instructions/docs.instructions.md +123 -123
  15. package/templates/.github/instructions/sensitive-files.instructions.md +32 -32
  16. package/templates/.github/skills/sf-design/SKILL.md +181 -181
  17. package/templates/.github/skills/sf-dev/SKILL.md +349 -326
  18. package/templates/.github/skills/sf-extract/SKILL.md +284 -284
  19. package/templates/.github/skills/sf-feature/SKILL.md +130 -130
  20. package/templates/.github/skills/sf-merge-delta/SKILL.md +142 -142
  21. package/templates/.github/skills/sf-plan/SKILL.md +178 -178
  22. package/templates/.github/skills/{sf-pausar → sf-session-finish}/SKILL.md +120 -120
  23. package/templates/.github/skills/sf-setup-projeto/SKILL.md +123 -123
  24. package/templates/docs/Desenvolvimento/rules.md +229 -229
  25. package/templates/docs/_templates/estrutura/ADRs.template.md +91 -91
  26. package/templates/docs/_templates/estrutura/API.template.md +144 -144
  27. package/templates/docs/_templates/estrutura/Arquitetura.template.md +82 -82
  28. package/templates/docs/_templates/estrutura/Infraestrutura.template.md +104 -104
  29. package/templates/docs/_templates/estrutura/Modelo_Dados.template.md +99 -99
  30. package/templates/docs/_templates/estrutura/Seguranca.template.md +138 -138
  31. package/templates/docs/_templates/estrutura/Stack.template.md +78 -78
  32. package/templates/docs/_templates/estrutura/Visao.template.md +82 -82
  33. package/templates/docs/_templates/feature/Progresso.template.md +136 -136
  34. package/templates/docs/_templates/feature/backlog-extraido.template.md +154 -154
  35. package/templates/docs/_templates/feature/context.template.md +42 -42
  36. package/templates/docs/_templates/feature/extract-log.template.md +38 -38
  37. package/templates/docs/_templates/feature/projetos.template.yaml +73 -73
  38. package/templates/docs/_templates/global/progresso_global.template.md +57 -57
@@ -1,123 +1,123 @@
1
- ---
2
- name: sf-setup-projeto
3
- description: |
4
- Bootstrap do projeto. Cria contexto TRD, chama /sf-extract, para no checkpoint.
5
- Trigger: /sf-setup-projeto
6
- author: GustavoMaritan
7
- version: 1.0.0
8
- date: 2026-04-08
9
- ---
10
-
11
- # Skill: /sf-setup-projeto
12
-
13
- > Orquestrador de bootstrap do projeto. Executa uma única vez.
14
- > Cria contexto TRD, chama `/extract` e para no checkpoint de aprovação.
15
-
16
- ## Tipo
17
- Orquestrador (primeira etapa do pipeline)
18
-
19
- ## Uso
20
- ```
21
- /sf-setup-projeto
22
- ```
23
-
24
- ## Pré-condições
25
-
26
- | # | Validação | Se falhar |
27
- |---|-----------|-----------|
28
- | 1 | `docs/PM/setup_projeto/` existe | Parar → "Crie a pasta docs/PM/setup_projeto/ e adicione seus insumos" |
29
- | 2 | Pasta contém pelo menos 1 arquivo (ignorar .gitkeep) | Parar → "Adicione insumos na pasta (aceitos: .md, .txt, .sql, .xml, .html, .json, .csv, .png, .jpg, .pdf — qualquer formato)" |
30
- | 3 | `docs/Estrutura/` está vazio ou contém apenas templates vazios | Parar → "Setup já foi executado. Use /sf-feature para novas funcionalidades" |
31
- | 4 | `docs/Desenvolvimento/setup_projeto/.context.md` não existe ou status é `not_started` | Parar → "Setup já está em andamento. Verifique o status em .context.md" |
32
-
33
- ## Passos
34
-
35
- ### 1. Criar estrutura
36
- ```
37
- docs/Desenvolvimento/setup_projeto/
38
- ├── .context.md ← criado agora
39
- └── (TRD.md será criado pelo /extract)
40
- ```
41
-
42
- ### 2. Criar `.context.md`
43
- ```yaml
44
- ---
45
- nome: "setup_projeto"
46
- tipo: "setup"
47
- documento: "TRD"
48
- pm_path: "docs/PM/setup_projeto/"
49
- status: "not_started"
50
- ultima_skill: "/sf-setup-projeto"
51
- atualizado_em: "{{ISO_DATETIME}}"
52
- ---
53
- ```
54
-
55
- ### 3. Sugerir /sf-discovery (RECOMENDADO)
56
-
57
- Antes de extrair, perguntar ao usuário:
58
- ```
59
- 📋 Insumos encontrados em docs/PM/setup_projeto/.
60
-
61
- Recomendo rodar /sf-discovery antes da extração para:
62
- - Análise profunda dos insumos (parseia drawio, XML, SQL completo)
63
- - Identificar gaps e contradições antes de estruturar
64
- - Validar entendimento com você (mapa do sistema)
65
-
66
- Quer rodar /sf-discovery docs/PM/setup_projeto/ agora? (s/n)
67
- Se SIM → rodar discovery, salvar discovery.md, depois continuar com extract
68
- Se NÃO → pular direto para /sf-extract (ok para insumos simples)
69
- ```
70
-
71
- Se o usuário aceitar:
72
- - Rodar `/sf-discovery docs/PM/setup_projeto/`
73
- - Aguardar conclusão — discovery.md salvo em `docs/Desenvolvimento/setup_projeto/`
74
- - Continuar para o passo 4
75
-
76
- ### 4. Chamar `/sf-extract setup_projeto`
77
- O `/sf-extract` lê os insumos + discovery.md (se existir), gera o TRD e atualiza status para `extract_done`.
78
-
79
- ### 5. CHECKPOINT — Parar e informar o usuário
80
- Mensagem ao usuário:
81
- ```
82
- ✅ TRD gerado em docs/Desenvolvimento/setup_projeto/TRD.md
83
-
84
- Revise o documento. Quando estiver satisfeito, execute:
85
- /sf-design setup_projeto
86
-
87
- Se precisar adicionar mais insumos, coloque na pasta docs/PM/setup_projeto/
88
- e execute:
89
- /sf-extract setup_projeto
90
- ```
91
-
92
- **O orquestrador encerra aqui.** O restante do pipeline é responsabilidade do usuário chamar as skills atômicas na ordem:
93
- 1. `/sf-design setup_projeto` (pergunta aprovação → gera SDD + docs/Estrutura/ + projetos.yaml)
94
- 2. `/sf-plan setup_projeto` (gera tasks com campo Repo por task)
95
- 3. `/sf-dev setup_projeto` (INFRA-001 cria/clona repos em projetos/, executa tasks nos repos corretos)
96
-
97
- ## Saídas diretas desta skill
98
- - `docs/Desenvolvimento/setup_projeto/.context.md`
99
- - `docs/Desenvolvimento/setup_projeto/TRD.md` (via /extract)
100
- - `docs/Desenvolvimento/setup_projeto/.extract-log.md` (via /extract)
101
-
102
- ## Saídas indiretas (skills subsequentes)
103
- - `sdd.md` (via /design)
104
- - `projetos.yaml` (via /sf-design — manifesto de repos)
105
- - `docs/Estrutura/` populado (via /design)
106
- - `*_tasks.md` + `Progresso.md` (via /plan)
107
- - `projetos/` com repos criados/clonados (via /sf-dev INFRA-001)
108
-
109
- ## Erros
110
-
111
- | Erro | Ação |
112
- |------|------|
113
- | PM/setup_projeto/ não existe | Parar, instruir criação |
114
- | PM/setup_projeto/ vazio | Parar, listar formatos aceitos |
115
- | Estrutura/ já populado | Parar, sugerir /sf-feature |
116
- | Pipeline já iniciado | Parar, mostrar status atual do .context.md |
117
-
118
- ## Notas
119
- - Esta skill roda **uma única vez** por projeto
120
- - docs/Estrutura/ é gerado pelo /sf-design (passo 3), não por tasks DOC
121
- - `projetos.yaml` é gerado pelo /sf-design (passo 3b) — mapeia serviços para repos
122
- - Repos são criados/clonados pelo /sf-dev (INFRA-001) dentro de `projetos/`
123
- - O `/merge-delta` NÃO se aplica ao setup (é criação, não atualização)
1
+ ---
2
+ name: sf-setup-projeto
3
+ description: |
4
+ Bootstrap do projeto. Cria contexto TRD, chama /sf-extract, para no checkpoint.
5
+ Trigger: /sf-setup-projeto
6
+ author: GustavoMaritan
7
+ version: 1.0.0
8
+ date: 2026-04-08
9
+ ---
10
+
11
+ # Skill: /sf-setup-projeto
12
+
13
+ > Orquestrador de bootstrap do projeto. Executa uma única vez.
14
+ > Cria contexto TRD, chama `/extract` e para no checkpoint de aprovação.
15
+
16
+ ## Tipo
17
+ Orquestrador (primeira etapa do pipeline)
18
+
19
+ ## Uso
20
+ ```
21
+ /sf-setup-projeto
22
+ ```
23
+
24
+ ## Pré-condições
25
+
26
+ | # | Validação | Se falhar |
27
+ |---|-----------|-----------|
28
+ | 1 | `docs/PM/setup_projeto/` existe | Parar → "Crie a pasta docs/PM/setup_projeto/ e adicione seus insumos" |
29
+ | 2 | Pasta contém pelo menos 1 arquivo (ignorar .gitkeep) | Parar → "Adicione insumos na pasta (aceitos: .md, .txt, .sql, .xml, .html, .json, .csv, .png, .jpg, .pdf — qualquer formato)" |
30
+ | 3 | `docs/Estrutura/` está vazio ou contém apenas templates vazios | Parar → "Setup já foi executado. Use /sf-feature para novas funcionalidades" |
31
+ | 4 | `docs/Desenvolvimento/setup_projeto/.context.md` não existe ou status é `not_started` | Parar → "Setup já está em andamento. Verifique o status em .context.md" |
32
+
33
+ ## Passos
34
+
35
+ ### 1. Criar estrutura
36
+ ```
37
+ docs/Desenvolvimento/setup_projeto/
38
+ ├── .context.md ← criado agora
39
+ └── (TRD.md será criado pelo /extract)
40
+ ```
41
+
42
+ ### 2. Criar `.context.md`
43
+ ```yaml
44
+ ---
45
+ nome: "setup_projeto"
46
+ tipo: "setup"
47
+ documento: "TRD"
48
+ pm_path: "docs/PM/setup_projeto/"
49
+ status: "not_started"
50
+ ultima_skill: "/sf-setup-projeto"
51
+ atualizado_em: "{{ISO_DATETIME}}"
52
+ ---
53
+ ```
54
+
55
+ ### 3. Sugerir /sf-discovery (RECOMENDADO)
56
+
57
+ Antes de extrair, perguntar ao usuário:
58
+ ```
59
+ 📋 Insumos encontrados em docs/PM/setup_projeto/.
60
+
61
+ Recomendo rodar /sf-discovery antes da extração para:
62
+ - Análise profunda dos insumos (parseia drawio, XML, SQL completo)
63
+ - Identificar gaps e contradições antes de estruturar
64
+ - Validar entendimento com você (mapa do sistema)
65
+
66
+ Quer rodar /sf-discovery docs/PM/setup_projeto/ agora? (s/n)
67
+ Se SIM → rodar discovery, salvar discovery.md, depois continuar com extract
68
+ Se NÃO → pular direto para /sf-extract (ok para insumos simples)
69
+ ```
70
+
71
+ Se o usuário aceitar:
72
+ - Rodar `/sf-discovery docs/PM/setup_projeto/`
73
+ - Aguardar conclusão — discovery.md salvo em `docs/Desenvolvimento/setup_projeto/`
74
+ - Continuar para o passo 4
75
+
76
+ ### 4. Chamar `/sf-extract setup_projeto`
77
+ O `/sf-extract` lê os insumos + discovery.md (se existir), gera o TRD e atualiza status para `extract_done`.
78
+
79
+ ### 5. CHECKPOINT — Parar e informar o usuário
80
+ Mensagem ao usuário:
81
+ ```
82
+ ✅ TRD gerado em docs/Desenvolvimento/setup_projeto/TRD.md
83
+
84
+ Revise o documento. Quando estiver satisfeito, execute:
85
+ /sf-design setup_projeto
86
+
87
+ Se precisar adicionar mais insumos, coloque na pasta docs/PM/setup_projeto/
88
+ e execute:
89
+ /sf-extract setup_projeto
90
+ ```
91
+
92
+ **O orquestrador encerra aqui.** O restante do pipeline é responsabilidade do usuário chamar as skills atômicas na ordem:
93
+ 1. `/sf-design setup_projeto` (pergunta aprovação → gera SDD + docs/Estrutura/ + projetos.yaml)
94
+ 2. `/sf-plan setup_projeto` (gera tasks com campo Repo por task)
95
+ 3. `/sf-dev setup_projeto` (INFRA-001 cria/clona repos em projetos/, executa tasks nos repos corretos)
96
+
97
+ ## Saídas diretas desta skill
98
+ - `docs/Desenvolvimento/setup_projeto/.context.md`
99
+ - `docs/Desenvolvimento/setup_projeto/TRD.md` (via /extract)
100
+ - `docs/Desenvolvimento/setup_projeto/.extract-log.md` (via /extract)
101
+
102
+ ## Saídas indiretas (skills subsequentes)
103
+ - `sdd.md` (via /design)
104
+ - `projetos.yaml` (via /sf-design — manifesto de repos)
105
+ - `docs/Estrutura/` populado (via /design)
106
+ - `*_tasks.md` + `Progresso.md` (via /plan)
107
+ - `projetos/` com repos criados/clonados (via /sf-dev INFRA-001)
108
+
109
+ ## Erros
110
+
111
+ | Erro | Ação |
112
+ |------|------|
113
+ | PM/setup_projeto/ não existe | Parar, instruir criação |
114
+ | PM/setup_projeto/ vazio | Parar, listar formatos aceitos |
115
+ | Estrutura/ já populado | Parar, sugerir /sf-feature |
116
+ | Pipeline já iniciado | Parar, mostrar status atual do .context.md |
117
+
118
+ ## Notas
119
+ - Esta skill roda **uma única vez** por projeto
120
+ - docs/Estrutura/ é gerado pelo /sf-design (passo 3), não por tasks DOC
121
+ - `projetos.yaml` é gerado pelo /sf-design (passo 3b) — mapeia serviços para repos
122
+ - Repos são criados/clonados pelo /sf-dev (INFRA-001) dentro de `projetos/`
123
+ - O `/merge-delta` NÃO se aplica ao setup (é criação, não atualização)