spec-first-copilot 0.4.0 → 0.5.0-beta.1

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 (53) hide show
  1. package/README.md +162 -148
  2. package/bin/cli.js +52 -52
  3. package/lib/init.js +89 -89
  4. package/package.json +11 -4
  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 +48 -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 +218 -175
  14. package/templates/.github/instructions/docs.instructions.md +123 -123
  15. package/templates/.github/instructions/sensitive-files.instructions.md +32 -32
  16. package/templates/{docs/Desenvolvimento → .github}/rules.md +229 -229
  17. package/templates/.github/skills/sf-design/SKILL.md +209 -181
  18. package/templates/.github/skills/sf-dev/SKILL.md +354 -349
  19. package/templates/.github/skills/sf-discovery/SKILL.md +405 -405
  20. package/templates/.github/skills/sf-extract/SKILL.md +284 -284
  21. package/templates/.github/skills/sf-feature/SKILL.md +130 -130
  22. package/templates/.github/skills/sf-merge-delta/SKILL.md +145 -142
  23. package/templates/.github/skills/sf-plan/SKILL.md +180 -178
  24. package/templates/.github/skills/sf-session-finish/SKILL.md +120 -120
  25. package/templates/.github/skills/sf-setup-projeto/SKILL.md +123 -123
  26. package/templates/{docs/_templates/estrutura/API.template.md → .github/templates/estrutura/apiContracts.template.md} +151 -144
  27. package/templates/.github/templates/estrutura/architecture.template.md +158 -0
  28. package/templates/{docs/_templates/estrutura/Seguranca.template.md → .github/templates/estrutura/conventions.template.md} +202 -138
  29. package/templates/{docs/_templates/estrutura/ADRs.template.md → .github/templates/estrutura/decisions.template.md} +99 -91
  30. package/templates/.github/templates/estrutura/domain.template.md +148 -0
  31. package/templates/{docs/_templates → .github/templates}/feature/PRD.template.md +256 -256
  32. package/templates/{docs/_templates → .github/templates}/feature/Progresso.template.md +136 -136
  33. package/templates/{docs/_templates → .github/templates}/feature/TRD.template.md +204 -200
  34. package/templates/{docs/_templates → .github/templates}/feature/backlog-extraido.template.md +154 -154
  35. package/templates/{docs/_templates → .github/templates}/feature/context.template.md +42 -42
  36. package/templates/{docs/_templates → .github/templates}/feature/extract-log.template.md +38 -38
  37. package/templates/{docs/_templates → .github/templates}/feature/projetos.template.yaml +73 -73
  38. package/templates/{docs/_templates → .github/templates}/feature/sdd.template.md +372 -372
  39. package/templates/{docs/_templates → .github/templates}/global/progresso_global.template.md +57 -57
  40. package/templates/.github/templates/specs/brief.template.md +47 -0
  41. package/templates/.github/templates/specs/contracts.template.md +82 -0
  42. package/templates/.github/templates/specs/scenarios.template.md +79 -0
  43. package/templates/.github/templates/specs/tasks.template.md +61 -0
  44. package/templates/docs/_templates/estrutura/Arquitetura.template.md +0 -82
  45. package/templates/docs/_templates/estrutura/Infraestrutura.template.md +0 -104
  46. package/templates/docs/_templates/estrutura/Modelo_Dados.template.md +0 -99
  47. package/templates/docs/_templates/estrutura/Stack.template.md +0 -78
  48. package/templates/docs/_templates/estrutura/Visao.template.md +0 -82
  49. package/templates/docs/_templates/feature/tasks.template.md +0 -115
  50. /package/templates/docs/{Desenvolvimento → specs}/.gitkeep +0 -0
  51. /package/templates/{docs/Estrutura → workspace/Input}/.gitkeep +0 -0
  52. /package/templates/{docs/PM → workspace/Input/setup_projeto}/.gitkeep +0 -0
  53. /package/templates/{docs/PM/setup_projeto → workspace/Output}/.gitkeep +0 -0
@@ -1,175 +1,218 @@
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 | Lê 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 | Lê 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 lê 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ção → listar 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ída → avisar, não pular
163
- - Dúvida sobre regra de negócio → perguntar, NUNCA assumir
164
- - Quality gate reprovado 3x escalar 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
+ # 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 | `.github/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 | `.github/rules.md` | ERRO — projeto não está configurado |
19
+ | Retomada | `workspace/Output/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 `workspace/Output/retomada.md` (se existir) — ponto de retomada da última sessão
43
+ 3. Ler `docs/` (se existir) — contexto global do projeto (architecture, domain, conventions, apiContracts, decisions)
44
+ 4. Ler `.github/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
+ ├── .github/ AI operational config (rules, templates, skills, agents)
57
+ ├── docs/ estado do sistema (architecture, domain, conventions, apiContracts, decisions)
58
+ ├── workspace/ content compartilhável
59
+ ├── Input/ insumos brutos do time
60
+ │ └── Output/ outputs por feature (PRD, TRD, SDD, tasks, progresso)
61
+ ├── projetos.yaml manifesto de repos
62
+ └── projetos/ ← repos de código (gitignored, cada um com .git próprio)
63
+ ├── api/ ← repo: org/projeto-api
64
+ ├── web/ ← repo: org/projeto-web
65
+ └── worker/ ← repo: org/projeto-worker
66
+ ```
67
+
68
+ **Três zonas, zero ambiguidade:**
69
+ - **`.github/` + `.ai/`** AI operational config (rules, templates, skills, agents, memória) — time edita raro
70
+ - **`docs/`** → estado do sistema (gerado pelo /sf-design e /sf-merge-delta)
71
+ - **`workspace/`** content compartilhável (Input = time, Output = workflow)
72
+ - **`projetos/`** → código dos serviços (branches, PRs, commits acontecem aí)
73
+
74
+ Nenhum código é escrito sem especificação aprovada (SDD).
75
+
76
+ ## Pipeline do Workflow
77
+
78
+ ```
79
+ workspace/Input/ (qualquer arquivo)
80
+ /sf-setup-projeto (uma vez) ou /sf-feature (por feature)
81
+ /sf-discovery → análise profunda dos insumos (RECOMENDADO, opcional)
82
+
83
+ /sf-extract → PRD ou TRD em workspace/Output/{nome}/ (checkpoint — usuário revisa e aprova)
84
+
85
+ /sf-design SDD + projetos.yaml + docs/ (5 docs de sistema — só setup)
86
+
87
+ /sf-plan → docs/specs/{nome}/tasks.md + Progresso.md em workspace/Output/{nome}/ (tasks por fase × área)
88
+
89
+ /sf-dev → código nos repos (Security Review pós-dev)
90
+ merge-delta automático em features (aplica SDD §11 em docs/)
91
+ ```
92
+
93
+ ## Skills disponíveis
94
+
95
+ | Skill | Tipo | O que faz |
96
+ |-------|------|-----------|
97
+ | `/sf-setup-projeto` | Orquestrador | Bootstrap: cria .context.md, chama /sf-extract, para no checkpoint. Roda UMA vez |
98
+ | `/sf-feature <nome>` | Orquestrador | Feature: cria .context.md tipo PRD, chama /sf-extract, para no checkpoint |
99
+ | `/sf-extract <nome>` | Atômica | workspace/Input/{nome}/ gera PRD ou TRD. Re-executável para novos insumos |
100
+ | `/sf-design <nome>` | Atômica | Pergunta aprovação gera SDD a partir do PRD/TRD |
101
+ | `/sf-plan <nome>` | Atômica | Lê SDD → gera tasks por área + Progresso.md |
102
+ | `/sf-dev <nome>` | Atômica | Implementa tasks com loop (implement test → review). Agents por área. Merge-delta automático em features |
103
+ | `/sf-merge-delta <nome>` | Atômica | Aplica SDD §11 Delta Specs em docs/ (chamado automaticamente pelo /sf-dev, re-executável manualmente) |
104
+ | `/sf-session-finish` | Utilitária | Encerra sessão: salva estado, atualiza napkin, gera retomada.md |
105
+ | `/sf-discovery` | Utilitária | Análise profunda de sistemas, arquiteturas e documentações |
106
+
107
+ ## Agents especializados (usados pelo /dev)
108
+
109
+ | Agent | Área | Stack padrão | Perfil |
110
+ |-------|------|-------------|--------|
111
+ | Backend Coder | BACK | .NET 8 / C# | `.github/agents/backend-coder.md` |
112
+ | Frontend Coder | FRONT | React + Fusion | `.github/agents/frontend-coder.md` |
113
+ | DB Coder | BANCO | PostgreSQL 16 | `.github/agents/db-coder.md` |
114
+ | Infra Coder | INFRA | Docker | `.github/agents/infra-coder.md` |
115
+ | Doc Writer | DOC | — | `.github/agents/doc-writer.md` |
116
+ | Reviewer | Todas | — | `.github/agents/reviewer.md` |
117
+ | Security Reviewer | Todas | — | `.github/agents/security-reviewer.md` |
118
+
119
+ ## Estado da pipeline (`.context.md`)
120
+
121
+ Cada feature/setup tem um `.context.md` em `workspace/Output/{nome}/` que controla o fluxo:
122
+
123
+ ```
124
+ not_started extract_done → approved → design_done → plan_done → dev_in_progress → dev_done → done
125
+ ```
126
+
127
+ Antes de executar qualquer skill, verificar o status no `.context.md`. Cada skill avança se o status anterior está correto.
128
+
129
+ ## Regras Invioláveis
130
+
131
+ 1. **Spec-first**: NUNCA gerar código sem SDD aprovado
132
+ 2. **Input é sagrado**: NUNCA modificar arquivos em `workspace/Input/`
133
+ 3. **Extração rígida**: categorias fixas do template, sem texto narrativo, ambiguidades são BLOQUEANTES
134
+ 4. **SDD é auto-contido**: coder lê APENAS SDD + task, NUNCA PRD/PM diretamente
135
+ 5. **Memória ativa**: ler napkin.md no início, atualizar ao descobrir padrões/armadilhas
136
+ 6. **Progresso atualizado**: atualizar Progresso.md ao concluir cada task
137
+ 7. **Delta Specs**: todo SDD tem §11 ADDED/MODIFIED/REMOVED — obrigatório
138
+ 8. **Testes junto com código**: implementar e testar na mesma task, não separar
139
+
140
+ ## Estrutura de Documentação
141
+
142
+ ```
143
+ .github/ AI OPERATIONAL CONFIG
144
+ ├── copilot-instructions.md Regras globais pro agente (este arquivo)
145
+ ├── rules.md ← Regras de desenvolvimento (lidas pelos coders)
146
+ ├── templates/ Templates do workflow
147
+ │ ├── feature/ ← PRD, TRD, SDD, context, extract-log, Progresso, backlog-extraido, projetos.yaml
148
+ │ ├── specs/ ← brief, contracts, scenarios, tasks (projeções pro agent)
149
+ │ ├── estrutura/ ← architecture, domain, conventions, apiContracts, decisions (setup)
150
+ │ └── global/ ← progresso_global
151
+ ├── skills/ ← 9 skills atômicas
152
+ ├── agents/ ← 7 perfis de agents especializados
153
+ └── instructions/ ← Instruções por contexto
154
+
155
+ docs/ ← SYSTEM KNOWLEDGE (gerado pelo /sf-design)
156
+ ├── architecture.md ← C4 + stack + ambientes + deploy
157
+ ├── domain.md ← Visão de negócio + modelo de dados
158
+ ├── conventions.md ← Auth, authz, LGPD, env vars, monitoramento
159
+ ├── apiContracts.md ← Rotas, paginação, catálogo de endpoints
160
+ ├── decisions.md ← ADRs
161
+ └── specs/ ← Especificações por feature (projeções do SDD)
162
+ └── {nome}/
163
+ ├── brief.md ← Problema/Solução (projeção de SDD §1+§2+§10)
164
+ ├── contracts.md ← Dados/API/Integrações (projeção de SDD §3+§4+§5+§8)
165
+ ├── scenarios.md ← Fluxos/UI/CAs (projeção de SDD §6+§7+§9)
166
+ └── tasks.md ← Tabela única com coluna Área (gerado pelo /sf-plan)
167
+
168
+ workspace/ ← TEAM CONTENT (futuro wiki)
169
+ ├── Input/ ← Insumos brutos (QUALQUER formato — nunca modificar)
170
+ │ ├── setup_projeto/ ← Insumos de bootstrap
171
+ │ └── feat_*/ ← Insumos por feature
172
+ └── Output/ ← Artefatos humanos gerados pelo workflow
173
+ └── {nome}/
174
+ ├── PRD.md ou TRD.md ← Requirements (gerado pelo /sf-extract)
175
+ ├── sdd.md ← Especificação técnica narrativa (gerado pelo /sf-design)
176
+ ├── Progresso.md ← Tracking de execução (gerado pelo /sf-plan)
177
+ ├── .context.md ← Estado da pipeline
178
+ ├── .extract-log.md ← Log de hashes
179
+ ├── discovery.md ← (opcional) análise do /sf-discovery
180
+ └── retomada.md ← (session-finish) ponto de retomada
181
+ ```
182
+
183
+ **Quem lê o quê:**
184
+ - **Humano**: `workspace/Output/` (PRD/TRD/SDD narrativos + tracking)
185
+ - **Coder agent**: `docs/specs/{nome}/` (projeções estruturadas) — NUNCA lê SDD direto
186
+ - **Reviewer**: `docs/specs/{nome}/scenarios.md` (CAs) + código
187
+ - **Security Reviewer**: `docs/specs/{nome}/contracts.md` + `docs/conventions.md` + código
188
+ - **merge-delta**: `workspace/Output/{nome}/sdd.md` §11 (única leitura do SDD pelo pipeline)
189
+
190
+ ## Convenções
191
+
192
+ - **Pastas**: `feat_nome`, `bug_nome`, `task_nome` (snake_case com prefixo)
193
+ - **Task IDs**: `AREA-NNN` (BANCO-001, BACK-001, FRONT-001)
194
+ - **Regras de negócio**: `RN-NNN` (IDs estáveis, nunca renumerar)
195
+ - **Commits**: `tipo(TASK-ID): descrição` (feat, fix, refactor, test, docs, chore)
196
+ - **Branches**: `feature/feat_nome`, `bugfix/bug_nome`, `task/task_nome`
197
+
198
+ ## Quando Parar e Perguntar
199
+
200
+ - `workspace/Input/{nome}/` vazio ou inexistente → PARAR
201
+ - Ambiguidade na extração → listar como pergunta BLOQUEANTE, PARAR
202
+ - `.context.md` com status incompatível com a skill → PARAR, informar status atual
203
+ - Task com dependência não concluída → avisar, não pular
204
+ - Dúvida sobre regra de negócio → perguntar, NUNCA assumir
205
+ - Quality gate reprovado 3x → escalar pro usuário
206
+
207
+ ## Referências
208
+
209
+ | Doc | Onde |
210
+ |-----|------|
211
+ | Rules de dev | `.github/rules.md` |
212
+ | Memória | `.ai/memory/napkin.md` |
213
+ | Skills | `.github/skills/*.md` |
214
+ | Agents | `.github/agents/*.md` |
215
+ | Templates | `.github/templates/` |
216
+ | Estado do sistema | `docs/*.md` (após setup) |
217
+ | Insumos brutos | `workspace/Input/` |
218
+ | Outputs do workflow | `workspace/Output/` |