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,176 +1,175 @@
1
- # Copilot Instructions — Projeto
2
-
3
- > Regras globais que o agente deve seguir em TODAS as interações neste projeto.
4
- > Este arquivo é lido automaticamente no início de cada sessão.
5
-
6
- ---
7
-
8
- ## Inicialização (executar no início de cada sessão)
9
-
10
- ### 1. Verificar dependências do workflow
11
-
12
- | Dependência | Caminho | Se não existir |
13
- |-------------|---------|----------------|
14
- | Napkin (memória) | `.ai/memory/napkin.md` | Criar com formato padrão: seções Decisões, Padrões, Armadilhas, Preferências (máx 10 itens/seção) |
15
- | Templates | `docs/_templates/` | ERRO — projeto não está configurado |
16
- | Skills | `.github/skills/` | ERRO — projeto não está configurado |
17
- | Agents | `.github/agents/` | ERRO — projeto não está configurado |
18
- | Rules | `docs/Desenvolvimento/rules.md` | ERRO — projeto não está configurado |
19
- | Retomada | `docs/Desenvolvimento/retomada.md` | OK — primeira sessão |
20
-
21
- ### 2. Validar acesso a todas skills
22
-
23
- Verificar que TODAS as 9 skills estão acessíveis:
24
-
25
- | Skill | Caminho |
26
- |-------|---------|
27
- | `/sf-setup-projeto` | `.github/skills/sf-setup-projeto/SKILL.md` |
28
- | `/sf-feature` | `.github/skills/sf-feature/SKILL.md` |
29
- | `/sf-extract` | `.github/skills/sf-extract/SKILL.md` |
30
- | `/sf-design` | `.github/skills/sf-design/SKILL.md` |
31
- | `/sf-plan` | `.github/skills/sf-plan/SKILL.md` |
32
- | `/sf-dev` | `.github/skills/sf-dev/SKILL.md` |
33
- | `/sf-merge-delta` | `.github/skills/sf-merge-delta/SKILL.md` |
34
- | `/sf-pausar` | `.github/skills/sf-pausar/SKILL.md` |
35
- | `/sf-discovery` | `.github/skills/sf-discovery/SKILL.md` |
36
-
37
- Se alguma skill não for encontrada → avisar o usuário.
38
-
39
- ### 3. Carregar contexto
40
-
41
- 1. Ler `.ai/memory/napkin.md` — decisões e padrões acumulados
42
- 2. Ler `docs/Desenvolvimento/retomada.md` (se existir) — ponto de retomada da última sessão
43
- 3. Ler `docs/Estrutura/` (se existir) — contexto global do projeto
44
- 4. Ler `docs/Desenvolvimento/rules.md` — regras de desenvolvimento
45
-
46
- ---
47
-
48
- ## Identidade do Projeto
49
-
50
- Este é um projeto que utiliza desenvolvimento **spec-first** assistido por IA.
51
-
52
- ### Arquitetura: Projeto-base vs Repos de código
53
-
54
- ```
55
- ESTE REPO (projeto-base) = ORQUESTRADOR
56
- ├── docs/ ← specs, PRDs, SDDs, tasks (fonte de verdade)
57
- ├── projetos.yaml ← manifesto de repos
58
- └── projetos/ ← repos de código (gitignored, cada um com .git próprio)
59
- ├── api/ ← repo: org/projeto-api
60
- ├── web/ ← repo: org/projeto-web
61
- └── worker/ ← repo: org/projeto-worker
62
- ```
63
-
64
- **Regra clara**:
65
- - **Specs, docs, tasks, progresso** → ficam NESTE repo (projeto-base)
66
- - **Código, testes, Dockerfiles, CI** → ficam nos repos em `projetos/`
67
- - **Commits de código** → nos repos do serviço, NUNCA no projeto-base
68
- - **Git workflow (branches, PRs, merge)** → se aplica aos repos em `projetos/`
69
- Nenhum código é escrito sem especificação aprovada (SDD).
70
-
71
- ## Pipeline do Workflow
72
-
73
- ```
74
- docs/PM/ (qualquer arquivo)
75
- ↓ /sf-setup-projeto (uma vez) ou /sf-feature (por feature)
76
- /sf-discovery → análise profunda dos insumos (RECOMENDADO, opcional)
77
-
78
- /sf-extract → PRD ou TRD (checkpoint — usuário revisa e aprova)
79
-
80
- /sf-design → SDD + projetos.yaml + docs/Estrutura/ (setup)
81
-
82
- /sf-plan → *_tasks.md + Progresso.md (tasks por fase × área)
83
-
84
- /sf-dev → código nos repos (Security Review pós-dev)
85
-
86
- /sf-merge-delta → docs/Estrutura/ atualizado (apenas para features)
87
- ```
88
-
89
- ## Skills disponíveis
90
-
91
- | Skill | Tipo | O que faz |
92
- |-------|------|-----------|
93
- | `/sf-setup-projeto` | Orquestrador | Bootstrap: cria .context.md, chama /sf-extract, para no checkpoint. Roda UMA vez |
94
- | `/sf-feature <nome>` | Orquestrador | Feature: cria .context.md tipo PRD, chama /sf-extract, para no checkpoint |
95
- | `/sf-extract <nome>` | Atômica | docs/PM/{nome}/ → gera PRD ou TRD. Re-executável para novos insumos |
96
- | `/sf-design <nome>` | Atômica | Pergunta aprovação → gera SDD a partir do PRD/TRD |
97
- | `/sf-plan <nome>` | Atômica | SDDgera tasks por área + Progresso.md |
98
- | `/sf-dev <nome>` | Atômica | Implementa tasks com loop (implement test review). Agents por área |
99
- | `/sf-merge-delta <nome>` | Atômica | Aplica SDD §11 Delta Specs em docs/Estrutura/ |
100
- | `/sf-pausar` | Utilitária | Encerra sessão: salva estado, atualiza napkin, gera retomada.md |
101
- | `/sf-discovery` | Utilitária | Análise profunda de sistemas, arquiteturas e documentações |
102
-
103
- ## Agents especializados (usados pelo /dev)
104
-
105
- | Agent | Área | Stack padrão | Perfil |
106
- |-------|------|-------------|--------|
107
- | Backend Coder | BACK | .NET 8 / C# | `.github/agents/backend-coder.md` |
108
- | Frontend Coder | FRONT | React + Fusion | `.github/agents/frontend-coder.md` |
109
- | DB Coder | BANCO | PostgreSQL 16 | `.github/agents/db-coder.md` |
110
- | Infra Coder | INFRA | Docker | `.github/agents/infra-coder.md` |
111
- | Doc Writer | DOC | — | `.github/agents/doc-writer.md` |
112
- | Reviewer | Todas | — | `.github/agents/reviewer.md` |
113
- | Security Reviewer | Todas | — | `.github/agents/security-reviewer.md` |
114
-
115
- ## Estado da pipeline (`.context.md`)
116
-
117
- Cada feature/setup tem um `.context.md` em `docs/Desenvolvimento/{nome}/` que controla o fluxo:
118
-
119
- ```
120
- not_started → extract_done → approved → design_done → plan_done → dev_in_progress → dev_done → done
121
- ```
122
-
123
- Antes de executar qualquer skill, verificar o status no `.context.md`. Cada skill só avança se o status anterior está correto.
124
-
125
- ## Regras Invioláveis
126
-
127
- 1. **Spec-first**: NUNCA gerar código sem SDD aprovado
128
- 2. **PM é sagrado**: NUNCA modificar arquivos em `docs/PM/`
129
- 3. **Extração rígida**: categorias fixas do template, sem texto narrativo, ambiguidades são BLOQUEANTES
130
- 4. **SDD é auto-contido**: coder APENAS SDD + task, NUNCA PRD/PM diretamente
131
- 5. **Memória ativa**: ler napkin.md no início, atualizar ao descobrir padrões/armadilhas
132
- 6. **Progresso atualizado**: atualizar Progresso.md ao concluir cada task
133
- 7. **Delta Specs**: todo SDD tem §11 ADDED/MODIFIED/REMOVED obrigatório
134
- 8. **Testes junto com código**: implementar e testar na mesma task, não separar
135
-
136
- ## Estrutura de Documentação
137
-
138
- ```
139
- docs/
140
- ├── PM/ ← Insumos brutos (QUALQUER formato — nunca modificar)
141
- ├── setup_projeto/ ← Insumos de bootstrap
142
- │ └── feat_*/Insumos por feature
143
- ├── _templates/ 16 templates (feature/7 + estrutura/8 + global/1)
144
- ├── Estrutura/ Retrato global do projeto (gerado por /setup-projeto via tasks DOC)
145
- └── Desenvolvimento/ Artefatos por feature
146
- ├── rules.md Regras de desenvolvimento
147
- └── {nome}/ ← PRD/TRD, SDD, *_tasks.md, Progresso.md, .context.md, .extract-log.md
148
- ```
149
-
150
- ## Convenções
151
-
152
- - **Pastas**: `feat_nome`, `bug_nome`, `task_nome` (snake_case com prefixo)
153
- - **Task IDs**: `AREA-NNN` (BANCO-001, BACK-001, FRONT-001)
154
- - **Regras de negócio**: `RN-NNN` (IDs estáveis, nunca renumerar)
155
- - **Commits**: `tipo(TASK-ID): descrição` (feat, fix, refactor, test, docs, chore)
156
- - **Branches**: `feature/feat_nome`, `bugfix/bug_nome`, `task/task_nome`
157
-
158
- ## Quando Parar e Perguntar
159
-
160
- - `docs/PM/{nome}/` vazio ou inexistente → PARAR
161
- - Ambiguidade na extração listar como pergunta BLOQUEANTE, PARAR
162
- - `.context.md` com status incompatível com a skill PARAR, informar status atual
163
- - Task com dependência não concluídaavisar, não pular
164
- - Dúvida sobre regra de negócio perguntar, NUNCA assumir
165
- - Quality gate reprovado 3x → escalar pro usuário
166
-
167
- ## Referências
168
-
169
- | Doc | Onde |
170
- |-----|------|
171
- | Rules de dev | `docs/Desenvolvimento/rules.md` |
172
- | Memória | `.ai/memory/napkin.md` |
173
- | Skills | `.github/skills/*.md` |
174
- | Agents | `.github/agents/*.md` |
175
- | Templates | `docs/_templates/` |
176
- | Estrutura do sistema | `docs/Estrutura/*.md` (após setup) |
1
+ # Copilot Instructions — Projeto
2
+
3
+ > Regras globais que o agente deve seguir em TODAS as interações neste projeto.
4
+ > Este arquivo é lido automaticamente no início de cada sessão.
5
+
6
+ ---
7
+
8
+ ## Inicialização (executar no início de cada sessão)
9
+
10
+ ### 1. Verificar dependências do workflow
11
+
12
+ | Dependência | Caminho | Se não existir |
13
+ |-------------|---------|----------------|
14
+ | Napkin (memória) | `.ai/memory/napkin.md` | Criar com formato padrão: seções Decisões, Padrões, Armadilhas, Preferências (máx 10 itens/seção) |
15
+ | Templates | `docs/_templates/` | ERRO — projeto não está configurado |
16
+ | Skills | `.github/skills/` | ERRO — projeto não está configurado |
17
+ | Agents | `.github/agents/` | ERRO — projeto não está configurado |
18
+ | Rules | `docs/Desenvolvimento/rules.md` | ERRO — projeto não está configurado |
19
+ | Retomada | `docs/Desenvolvimento/retomada.md` | OK — primeira sessão |
20
+
21
+ ### 2. Validar acesso a todas skills
22
+
23
+ Verificar que TODAS as 9 skills estão acessíveis:
24
+
25
+ | Skill | Caminho |
26
+ |-------|---------|
27
+ | `/sf-setup-projeto` | `.github/skills/sf-setup-projeto/SKILL.md` |
28
+ | `/sf-feature` | `.github/skills/sf-feature/SKILL.md` |
29
+ | `/sf-extract` | `.github/skills/sf-extract/SKILL.md` |
30
+ | `/sf-design` | `.github/skills/sf-design/SKILL.md` |
31
+ | `/sf-plan` | `.github/skills/sf-plan/SKILL.md` |
32
+ | `/sf-dev` | `.github/skills/sf-dev/SKILL.md` |
33
+ | `/sf-merge-delta` | `.github/skills/sf-merge-delta/SKILL.md` |
34
+ | `/sf-session-finish` | `.github/skills/sf-session-finish/SKILL.md` |
35
+ | `/sf-discovery` | `.github/skills/sf-discovery/SKILL.md` |
36
+
37
+ Se alguma skill não for encontrada → avisar o usuário.
38
+
39
+ ### 3. Carregar contexto
40
+
41
+ 1. Ler `.ai/memory/napkin.md` — decisões e padrões acumulados
42
+ 2. Ler `docs/Desenvolvimento/retomada.md` (se existir) — ponto de retomada da última sessão
43
+ 3. Ler `docs/Estrutura/` (se existir) — contexto global do projeto
44
+ 4. Ler `docs/Desenvolvimento/rules.md` — regras de desenvolvimento
45
+
46
+ ---
47
+
48
+ ## Identidade do Projeto
49
+
50
+ Este é um projeto que utiliza desenvolvimento **spec-first** assistido por IA.
51
+
52
+ ### Arquitetura: Projeto-base vs Repos de código
53
+
54
+ ```
55
+ ESTE REPO (projeto-base) = ORQUESTRADOR
56
+ ├── docs/ ← specs, PRDs, SDDs, tasks (fonte de verdade)
57
+ ├── projetos.yaml ← manifesto de repos
58
+ └── projetos/ ← repos de código (gitignored, cada um com .git próprio)
59
+ ├── api/ ← repo: org/projeto-api
60
+ ├── web/ ← repo: org/projeto-web
61
+ └── worker/ ← repo: org/projeto-worker
62
+ ```
63
+
64
+ **Regra clara**:
65
+ - **Specs, docs, tasks, progresso** → ficam NESTE repo (projeto-base)
66
+ - **Código, testes, Dockerfiles, CI** → ficam nos repos em `projetos/`
67
+ - **Commits de código** → nos repos do serviço, NUNCA no projeto-base
68
+ - **Git workflow (branches, PRs, merge)** → se aplica aos repos em `projetos/`
69
+ Nenhum código é escrito sem especificação aprovada (SDD).
70
+
71
+ ## Pipeline do Workflow
72
+
73
+ ```
74
+ docs/PM/ (qualquer arquivo)
75
+ ↓ /sf-setup-projeto (uma vez) ou /sf-feature (por feature)
76
+ /sf-discovery → análise profunda dos insumos (RECOMENDADO, opcional)
77
+
78
+ /sf-extract → PRD ou TRD (checkpoint — usuário revisa e aprova)
79
+
80
+ /sf-design → SDD + projetos.yaml + docs/Estrutura/ (setup)
81
+
82
+ /sf-plan → *_tasks.md + Progresso.md (tasks por fase × área)
83
+
84
+ /sf-dev → código nos repos (Security Review pós-dev)
85
+ → merge-delta automático em features (aplica SDD §11 em docs/Estrutura/)
86
+ ```
87
+
88
+ ## Skills disponíveis
89
+
90
+ | Skill | Tipo | O que faz |
91
+ |-------|------|-----------|
92
+ | `/sf-setup-projeto` | Orquestrador | Bootstrap: cria .context.md, chama /sf-extract, para no checkpoint. Roda UMA vez |
93
+ | `/sf-feature <nome>` | Orquestrador | Feature: cria .context.md tipo PRD, chama /sf-extract, para no checkpoint |
94
+ | `/sf-extract <nome>` | Atômica | docs/PM/{nome}/ gera PRD ou TRD. Re-executável para novos insumos |
95
+ | `/sf-design <nome>` | Atômica | Pergunta aprovação → gera SDD a partir do PRD/TRD |
96
+ | `/sf-plan <nome>` | Atômica | SDD → gera tasks por área + Progresso.md |
97
+ | `/sf-dev <nome>` | Atômica | Implementa tasks com loop (implement test review). Agents por área. Merge-delta automático em features |
98
+ | `/sf-merge-delta <nome>` | Atômica | Aplica SDD §11 Delta Specs em docs/Estrutura/ (chamado automaticamente pelo /sf-dev, re-executável manualmente) |
99
+ | `/sf-session-finish` | Utilitária | Encerra sessão: salva estado, atualiza napkin, gera retomada.md |
100
+ | `/sf-discovery` | Utilitária | Análise profunda de sistemas, arquiteturas e documentações |
101
+
102
+ ## Agents especializados (usados pelo /dev)
103
+
104
+ | Agent | Área | Stack padrão | Perfil |
105
+ |-------|------|-------------|--------|
106
+ | Backend Coder | BACK | .NET 8 / C# | `.github/agents/backend-coder.md` |
107
+ | Frontend Coder | FRONT | React + Fusion | `.github/agents/frontend-coder.md` |
108
+ | DB Coder | BANCO | PostgreSQL 16 | `.github/agents/db-coder.md` |
109
+ | Infra Coder | INFRA | Docker | `.github/agents/infra-coder.md` |
110
+ | Doc Writer | DOC | | `.github/agents/doc-writer.md` |
111
+ | Reviewer | Todas | — | `.github/agents/reviewer.md` |
112
+ | Security Reviewer | Todas | — | `.github/agents/security-reviewer.md` |
113
+
114
+ ## Estado da pipeline (`.context.md`)
115
+
116
+ Cada feature/setup tem um `.context.md` em `docs/Desenvolvimento/{nome}/` que controla o fluxo:
117
+
118
+ ```
119
+ not_started → extract_done → approved → design_done → plan_done → dev_in_progress → dev_done → done
120
+ ```
121
+
122
+ Antes de executar qualquer skill, verificar o status no `.context.md`. Cada skill só avança se o status anterior está correto.
123
+
124
+ ## Regras Invioláveis
125
+
126
+ 1. **Spec-first**: NUNCA gerar código sem SDD aprovado
127
+ 2. **PM é sagrado**: NUNCA modificar arquivos em `docs/PM/`
128
+ 3. **Extração rígida**: categorias fixas do template, sem texto narrativo, ambiguidades são BLOQUEANTES
129
+ 4. **SDD é auto-contido**: coder APENAS SDD + task, NUNCA PRD/PM diretamente
130
+ 5. **Memória ativa**: ler napkin.md no início, atualizar ao descobrir padrões/armadilhas
131
+ 6. **Progresso atualizado**: atualizar Progresso.md ao concluir cada task
132
+ 7. **Delta Specs**: todo SDD tem §11 ADDED/MODIFIED/REMOVED — obrigatório
133
+ 8. **Testes junto com código**: implementar e testar na mesma task, não separar
134
+
135
+ ## Estrutura de Documentação
136
+
137
+ ```
138
+ docs/
139
+ ├── PM/ ← Insumos brutos (QUALQUER formato — nunca modificar)
140
+ ├── setup_projeto/ ← Insumos de bootstrap
141
+ └── feat_*/ ← Insumos por feature
142
+ ├── _templates/16 templates (feature/7 + estrutura/8 + global/1)
143
+ ├── Estrutura/ Retrato global do projeto (gerado por /setup-projeto via tasks DOC)
144
+ └── Desenvolvimento/ Artefatos por feature
145
+ ├── rules.md Regras de desenvolvimento
146
+ └── {nome}/ ← PRD/TRD, SDD, *_tasks.md, Progresso.md, .context.md, .extract-log.md
147
+ ```
148
+
149
+ ## Convenções
150
+
151
+ - **Pastas**: `feat_nome`, `bug_nome`, `task_nome` (snake_case com prefixo)
152
+ - **Task IDs**: `AREA-NNN` (BANCO-001, BACK-001, FRONT-001)
153
+ - **Regras de negócio**: `RN-NNN` (IDs estáveis, nunca renumerar)
154
+ - **Commits**: `tipo(TASK-ID): descrição` (feat, fix, refactor, test, docs, chore)
155
+ - **Branches**: `feature/feat_nome`, `bugfix/bug_nome`, `task/task_nome`
156
+
157
+ ## Quando Parar e Perguntar
158
+
159
+ - `docs/PM/{nome}/` vazio ou inexistente → PARAR
160
+ - Ambiguidade na extraçãolistar como pergunta BLOQUEANTE, PARAR
161
+ - `.context.md` com status incompatível com a skill → PARAR, informar status atual
162
+ - Task com dependência não concluídaavisar, não pular
163
+ - Dúvida sobre regra de negócioperguntar, NUNCA assumir
164
+ - Quality gate reprovado 3xescalar pro usuário
165
+
166
+ ## Referências
167
+
168
+ | Doc | Onde |
169
+ |-----|------|
170
+ | Rules de dev | `docs/Desenvolvimento/rules.md` |
171
+ | Memória | `.ai/memory/napkin.md` |
172
+ | Skills | `.github/skills/*.md` |
173
+ | Agents | `.github/agents/*.md` |
174
+ | Templates | `docs/_templates/` |
175
+ | Estrutura do sistema | `docs/Estrutura/*.md` (após setup) |
@@ -1,123 +1,123 @@
1
- # Instruções — Documentação e Specs
2
-
3
- > Regras para o agente ao trabalhar com a camada de documentação.
4
- > Complementa `copilot-instructions.md` com detalhes operacionais.
5
-
6
- ## Skills e fluxo
7
-
8
- O pipeline é executado por skills atômicas, cada uma com seu arquivo em `.github/skills/`:
9
-
10
- ```
11
- /setup-projeto → /extract → /design → /plan → /dev → /merge-delta
12
- ```
13
-
14
- Cada skill tem pré-condições, passos e saídas documentados. **Sempre ler a skill antes de executar.**
15
-
16
- ## Estado da pipeline (`.context.md`)
17
-
18
- Cada feature/setup tem um `.context.md` (YAML frontmatter) que controla o fluxo:
19
-
20
- ```
21
- not_started → extract_done → approved → design_done → plan_done → dev_in_progress → dev_done → done
22
- ```
23
-
24
- - **Apenas skills atualizam** `.context.md` — o usuário nunca edita manualmente
25
- - **Aprovação** acontece no início do `/design` (skill pergunta ao usuário)
26
- - Antes de executar qualquer skill, verificar status no `.context.md`
27
-
28
- ## Extração (/extract)
29
-
30
- Cada tipo de projeto tem seu documento de extração:
31
-
32
- | Comando | Documento | Template | Foco |
33
- |---------|----------|---------|------|
34
- | `/setup-projeto` | TRD.md | `_templates/feature/TRD.template.md` | Stack, arquitetura, infra, modelo base |
35
- | `/feature` | PRD.md | `_templates/feature/PRD.template.md` | Regras de negócio, jornadas, telas |
36
-
37
- ### Multi-agent no /extract
38
-
39
- | Agente | Modelo | Papel |
40
- |--------|--------|-------|
41
- | Reader (1 por arquivo) | Sonnet | Lê e cataloga 1 arquivo por vez, em paralelo |
42
- | Analyzer | Opus | Cruza fontes, detecta gaps/contradições, gera documento final |
43
-
44
- ### Regras da extração
45
-
46
- - Ler TODOS arquivos em `docs/PM/{nome}/` (qualquer formato: .md, .txt, .sql, .html, .xml, .csv, .png, .pdf)
47
- - Categorias FIXAS do template — não inventar seções novas
48
- - Regras de negócio com IDs únicos e estáveis (RN-001, RN-002 — nunca renumerar)
49
- - Ambiguidades = BLOQUEANTES (workflow para até responder)
50
- - Nunca INFERIR regra de negócio — se não está explícito, é ambiguidade
51
- - Contradições entre arquivos → ambiguidade citando ambos
52
- - Rastreabilidade obrigatória: cada informação aponta pro arquivo fonte
53
- - Arquivo não identificável → registrar como NÃO IDENTIFICADO no extract-log, gerar ambiguidade
54
- - Gerar `.extract-log.md` com hash SHA-256 (8 chars) por arquivo
55
-
56
- ### Re-extração
57
-
58
- - Compara hashes com `.extract-log.md` existente → NOVO / MODIFICADO / INALTERADO
59
- - Merge ADITIVO (nunca remove info de arquivos inalterados)
60
- - Novas regras continuam sequência de IDs (se último era RN-005, próximo é RN-006)
61
-
62
- ## Design (/design)
63
-
64
- 1. Verificar aprovação do PRD/TRD (perguntar ao usuário)
65
- 2. Verificar ambiguidades — todas devem estar respondidas
66
- 3. Ler PRD/TRD + `docs/Estrutura/` + `rules.md`
67
- 4. Gerar SDD usando `_templates/feature/sdd.template.md`
68
- 5. SDD deve ser **auto-contido** — coder lê APENAS SDD + task, nada mais
69
- 6. Toda regra referencia seção do PRD/TRD (rastreabilidade)
70
- 7. §9 Estratégia de Testes: definir framework, estrutura, CAs mapeados a testes
71
- 8. §11 Delta Specs: obrigatório (ADDED/MODIFIED/REMOVED)
72
- 9. Seções N/A permitidas em setup (§4-§8 podem ser N/A)
73
-
74
- ## Planejamento (/plan)
75
-
76
- 1. Ler SDD completo + `docs/Estrutura/` + `rules.md`
77
- 2. Áreas são DINÂMICAS — determinadas pelo SDD, não pré-definidas
78
- 3. Para cada área → gerar `{area}_tasks.md` usando `_templates/feature/tasks.template.md`
79
- 4. Tasks em fases sequenciais com prioridade P1/P2/P3
80
- 5. Cada task: ID (AREA-NNN), título, tamanho (S/M/L), arquivos, ref SDD §N, depende, testes
81
- 6. Gerar `Progresso.md` com ordem de execução e paralelismos
82
- 7. Em setup: área DOC obrigatória (8 tasks, 1 por doc de Estrutura)
83
-
84
- ## Desenvolvimento (/dev)
85
-
86
- ### Agents por área (perfis em `.github/agents/`)
87
-
88
- | Área | Agente | Stack padrão |
89
- |------|--------|-------------|
90
- | BANCO | DB Coder | PostgreSQL 16 |
91
- | BACK | Backend Coder | .NET 8 / C# |
92
- | FRONT | Frontend Coder | React + Fusion |
93
- | INFRA | Infra Coder | Docker |
94
- | DOC | Doc Writer | — |
95
- | Todas | Reviewer | — |
96
-
97
- ### Loop de desenvolvimento
98
-
99
- ```
100
- Por task: implement → test unit → fix → lint → commit → review → fix → review (max 3)
101
- Por fase: integration tests → fix
102
- Por feature: E2E tests (CAs) → fix → dev_done
103
- ```
104
-
105
- ### Regras
106
-
107
- - Implement + testes na mesma task (não separar)
108
- - Agente selecionado pelo prefixo: BACK-* → Backend Coder
109
- - Modelo por tamanho: S/M → Sonnet, L → Opus
110
- - 1 commit por task: `tipo(TASK-ID): descrição`
111
- - Quality gate validado pelo Reviewer após cada task
112
- - Limite de retry: 3 reprovações → escalar pro usuário
113
-
114
- ## /setup-projeto vs /feature
115
-
116
- | Aspecto | /setup-projeto | /feature |
117
- |---------|---------------|----------|
118
- | Input | `docs/PM/setup_projeto/` | `docs/PM/feat_nome/` |
119
- | Extração | TRD.md (técnico) | PRD.md (produto) |
120
- | SDD + Tasks | Sim (infra + DOC tasks) | Sim (feature tasks) |
121
- | Gera docs/Estrutura/ | Via tasks DOC | Não — atualiza via /merge-delta |
122
- | /merge-delta | Não se aplica | Obrigatório após /dev |
123
- | Pré-requisito | Nenhum (primeiro comando) | docs/Estrutura/ deve existir |
1
+ # Instruções — Documentação e Specs
2
+
3
+ > Regras para o agente ao trabalhar com a camada de documentação.
4
+ > Complementa `copilot-instructions.md` com detalhes operacionais.
5
+
6
+ ## Skills e fluxo
7
+
8
+ O pipeline é executado por skills atômicas, cada uma com seu arquivo em `.github/skills/`:
9
+
10
+ ```
11
+ /setup-projeto → /extract → /design → /plan → /dev → /merge-delta
12
+ ```
13
+
14
+ Cada skill tem pré-condições, passos e saídas documentados. **Sempre ler a skill antes de executar.**
15
+
16
+ ## Estado da pipeline (`.context.md`)
17
+
18
+ Cada feature/setup tem um `.context.md` (YAML frontmatter) que controla o fluxo:
19
+
20
+ ```
21
+ not_started → extract_done → approved → design_done → plan_done → dev_in_progress → dev_done → done
22
+ ```
23
+
24
+ - **Apenas skills atualizam** `.context.md` — o usuário nunca edita manualmente
25
+ - **Aprovação** acontece no início do `/design` (skill pergunta ao usuário)
26
+ - Antes de executar qualquer skill, verificar status no `.context.md`
27
+
28
+ ## Extração (/extract)
29
+
30
+ Cada tipo de projeto tem seu documento de extração:
31
+
32
+ | Comando | Documento | Template | Foco |
33
+ |---------|----------|---------|------|
34
+ | `/setup-projeto` | TRD.md | `_templates/feature/TRD.template.md` | Stack, arquitetura, infra, modelo base |
35
+ | `/feature` | PRD.md | `_templates/feature/PRD.template.md` | Regras de negócio, jornadas, telas |
36
+
37
+ ### Multi-agent no /extract
38
+
39
+ | Agente | Modelo | Papel |
40
+ |--------|--------|-------|
41
+ | Reader (1 por arquivo) | Sonnet | Lê e cataloga 1 arquivo por vez, em paralelo |
42
+ | Analyzer | Opus | Cruza fontes, detecta gaps/contradições, gera documento final |
43
+
44
+ ### Regras da extração
45
+
46
+ - Ler TODOS arquivos em `docs/PM/{nome}/` (qualquer formato: .md, .txt, .sql, .html, .xml, .csv, .png, .pdf)
47
+ - Categorias FIXAS do template — não inventar seções novas
48
+ - Regras de negócio com IDs únicos e estáveis (RN-001, RN-002 — nunca renumerar)
49
+ - Ambiguidades = BLOQUEANTES (workflow para até responder)
50
+ - Nunca INFERIR regra de negócio — se não está explícito, é ambiguidade
51
+ - Contradições entre arquivos → ambiguidade citando ambos
52
+ - Rastreabilidade obrigatória: cada informação aponta pro arquivo fonte
53
+ - Arquivo não identificável → registrar como NÃO IDENTIFICADO no extract-log, gerar ambiguidade
54
+ - Gerar `.extract-log.md` com hash SHA-256 (8 chars) por arquivo
55
+
56
+ ### Re-extração
57
+
58
+ - Compara hashes com `.extract-log.md` existente → NOVO / MODIFICADO / INALTERADO
59
+ - Merge ADITIVO (nunca remove info de arquivos inalterados)
60
+ - Novas regras continuam sequência de IDs (se último era RN-005, próximo é RN-006)
61
+
62
+ ## Design (/design)
63
+
64
+ 1. Verificar aprovação do PRD/TRD (perguntar ao usuário)
65
+ 2. Verificar ambiguidades — todas devem estar respondidas
66
+ 3. Ler PRD/TRD + `docs/Estrutura/` + `rules.md`
67
+ 4. Gerar SDD usando `_templates/feature/sdd.template.md`
68
+ 5. SDD deve ser **auto-contido** — coder lê APENAS SDD + task, nada mais
69
+ 6. Toda regra referencia seção do PRD/TRD (rastreabilidade)
70
+ 7. §9 Estratégia de Testes: definir framework, estrutura, CAs mapeados a testes
71
+ 8. §11 Delta Specs: obrigatório (ADDED/MODIFIED/REMOVED)
72
+ 9. Seções N/A permitidas em setup (§4-§8 podem ser N/A)
73
+
74
+ ## Planejamento (/plan)
75
+
76
+ 1. Ler SDD completo + `docs/Estrutura/` + `rules.md`
77
+ 2. Áreas são DINÂMICAS — determinadas pelo SDD, não pré-definidas
78
+ 3. Para cada área → gerar `{area}_tasks.md` usando `_templates/feature/tasks.template.md`
79
+ 4. Tasks em fases sequenciais com prioridade P1/P2/P3
80
+ 5. Cada task: ID (AREA-NNN), título, tamanho (S/M/L), arquivos, ref SDD §N, depende, testes
81
+ 6. Gerar `Progresso.md` com ordem de execução e paralelismos
82
+ 7. Em setup: área DOC obrigatória (8 tasks, 1 por doc de Estrutura)
83
+
84
+ ## Desenvolvimento (/dev)
85
+
86
+ ### Agents por área (perfis em `.github/agents/`)
87
+
88
+ | Área | Agente | Stack padrão |
89
+ |------|--------|-------------|
90
+ | BANCO | DB Coder | PostgreSQL 16 |
91
+ | BACK | Backend Coder | .NET 8 / C# |
92
+ | FRONT | Frontend Coder | React + Fusion |
93
+ | INFRA | Infra Coder | Docker |
94
+ | DOC | Doc Writer | — |
95
+ | Todas | Reviewer | — |
96
+
97
+ ### Loop de desenvolvimento
98
+
99
+ ```
100
+ Por task: implement → test unit → fix → lint → commit → review → fix → review (max 3)
101
+ Por fase: integration tests → fix
102
+ Por feature: E2E tests (CAs) → fix → dev_done
103
+ ```
104
+
105
+ ### Regras
106
+
107
+ - Implement + testes na mesma task (não separar)
108
+ - Agente selecionado pelo prefixo: BACK-* → Backend Coder
109
+ - Modelo por tamanho: S/M → Sonnet, L → Opus
110
+ - 1 commit por task: `tipo(TASK-ID): descrição`
111
+ - Quality gate validado pelo Reviewer após cada task
112
+ - Limite de retry: 3 reprovações → escalar pro usuário
113
+
114
+ ## /setup-projeto vs /feature
115
+
116
+ | Aspecto | /setup-projeto | /feature |
117
+ |---------|---------------|----------|
118
+ | Input | `docs/PM/setup_projeto/` | `docs/PM/feat_nome/` |
119
+ | Extração | TRD.md (técnico) | PRD.md (produto) |
120
+ | SDD + Tasks | Sim (infra + DOC tasks) | Sim (feature tasks) |
121
+ | Gera docs/Estrutura/ | Via tasks DOC | Não — atualiza via /merge-delta |
122
+ | /merge-delta | Não se aplica | Obrigatório após /dev |
123
+ | Pré-requisito | Nenhum (primeiro comando) | docs/Estrutura/ deve existir |