spec-first-copilot 0.3.0 → 0.5.0-beta.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 (44) hide show
  1. package/README.md +38 -30
  2. package/lib/init.js +2 -2
  3. package/package.json +31 -23
  4. package/templates/.ai/memory/napkin.md +1 -1
  5. package/templates/.github/agents/db-coder.md +1 -1
  6. package/templates/.github/agents/doc-writer.md +12 -15
  7. package/templates/.github/agents/security-reviewer.md +1 -1
  8. package/templates/.github/copilot-instructions.md +61 -43
  9. package/templates/.github/instructions/docs.instructions.md +12 -12
  10. package/templates/.github/instructions/sensitive-files.instructions.md +10 -10
  11. package/templates/{docs/Desenvolvimento → .github}/rules.md +2 -2
  12. package/templates/.github/skills/sf-design/SKILL.md +26 -27
  13. package/templates/.github/skills/sf-dev/SKILL.md +30 -7
  14. package/templates/.github/skills/sf-discovery/SKILL.md +405 -405
  15. package/templates/.github/skills/sf-extract/SKILL.md +9 -9
  16. package/templates/.github/skills/sf-feature/SKILL.md +21 -21
  17. package/templates/.github/skills/sf-merge-delta/SKILL.md +21 -18
  18. package/templates/.github/skills/sf-plan/SKILL.md +8 -8
  19. package/templates/.github/skills/{sf-pausar → sf-session-finish}/SKILL.md +10 -10
  20. package/templates/.github/skills/sf-setup-projeto/SKILL.md +20 -20
  21. package/templates/{docs/_templates/estrutura/API.template.md → .github/templates/estrutura/apiContracts.template.md} +24 -17
  22. package/templates/.github/templates/estrutura/architecture.template.md +158 -0
  23. package/templates/{docs/_templates/estrutura/Seguranca.template.md → .github/templates/estrutura/conventions.template.md} +74 -10
  24. package/templates/{docs/_templates/estrutura/ADRs.template.md → .github/templates/estrutura/decisions.template.md} +21 -13
  25. package/templates/.github/templates/estrutura/domain.template.md +148 -0
  26. package/templates/{docs/_templates → .github/templates}/feature/PRD.template.md +256 -256
  27. package/templates/{docs/_templates → .github/templates}/feature/Progresso.template.md +2 -2
  28. package/templates/{docs/_templates → .github/templates}/feature/TRD.template.md +204 -200
  29. package/templates/{docs/_templates → .github/templates}/feature/context.template.md +1 -1
  30. package/templates/{docs/_templates → .github/templates}/feature/projetos.template.yaml +1 -1
  31. package/templates/{docs/_templates → .github/templates}/feature/sdd.template.md +372 -372
  32. package/templates/{docs/_templates → .github/templates}/feature/tasks.template.md +115 -115
  33. package/templates/docs/_templates/estrutura/Arquitetura.template.md +0 -82
  34. package/templates/docs/_templates/estrutura/Infraestrutura.template.md +0 -104
  35. package/templates/docs/_templates/estrutura/Modelo_Dados.template.md +0 -99
  36. package/templates/docs/_templates/estrutura/Stack.template.md +0 -78
  37. package/templates/docs/_templates/estrutura/Visao.template.md +0 -82
  38. /package/templates/{docs/_templates → .github/templates}/feature/backlog-extraido.template.md +0 -0
  39. /package/templates/{docs/_templates → .github/templates}/feature/extract-log.template.md +0 -0
  40. /package/templates/{docs/_templates → .github/templates}/global/progresso_global.template.md +0 -0
  41. /package/templates/docs/{Desenvolvimento/.gitkeep → .gitkeep} +0 -0
  42. /package/templates/{docs/Estrutura → workspace/Input}/.gitkeep +0 -0
  43. /package/templates/{docs/PM → workspace/Input/setup_projeto}/.gitkeep +0 -0
  44. /package/templates/{docs/PM/setup_projeto → workspace/Output}/.gitkeep +0 -0
package/README.md CHANGED
@@ -46,34 +46,42 @@ Isso cria a pasta `MeuProjeto/` com toda a estrutura pronta:
46
46
  ```
47
47
  MeuProjeto/
48
48
  ├── .ai/memory/napkin.md <- Memoria persistente do projeto
49
- ├── .github/
49
+ ├── .github/ <- AI OPERATIONAL CONFIG
50
50
  │ ├── copilot-instructions.md <- Regras globais pro agente
51
+ │ ├── rules.md <- Regras de desenvolvimento
51
52
  │ ├── instructions/ <- Regras por contexto
53
+ │ ├── templates/ <- 15 templates do workflow
54
+ │ │ ├── feature/ <- PRD, TRD, SDD, tasks, etc.
55
+ │ │ ├── estrutura/ <- 5 templates de estado do sistema
56
+ │ │ └── global/ <- Progresso global
52
57
  │ ├── skills/ <- 9 skills do workflow
53
- │ │ ├── sf-setup-projeto/ <- Bootstrap do projeto
54
- │ │ ├── sf-feature/ <- Pipeline de feature
55
- │ │ ├── sf-discovery/ <- Analise profunda de insumos
56
- │ │ ├── sf-extract/ <- PM -> PRD/TRD
57
- │ │ ├── sf-design/ <- PRD/TRD -> SDD
58
- │ │ ├── sf-plan/ <- SDD -> tasks
59
- │ │ ├── sf-dev/ <- Executa tasks
60
- │ │ ├── sf-merge-delta/ <- Atualiza docs globais
61
- │ │ └── sf-pausar/ <- Encerra sessao
62
- │ └── agents/ <- 7 agentes especializados
63
- │ ├── backend-coder.md <- .NET 8 / C#
64
- │ ├── frontend-coder.md <- React
65
- │ ├── db-coder.md <- PostgreSQL
66
- │ ├── infra-coder.md <- Docker
67
- │ ├── doc-writer.md <- Documentacao
68
- │ ├── reviewer.md <- Code review
69
- │ └── security-reviewer.md <- Auditoria de seguranca
70
- ├── docs/
71
- │ ├── PM/ <- Jogue seus insumos aqui
72
- │ └── setup_projeto/ <- Insumos do bootstrap
73
- │ ├── _templates/ <- 18 templates do workflow
74
- │ ├── Estrutura/ <- Docs globais (gerados)
75
- │ └── Desenvolvimento/ <- Docs por feature (gerados)
76
- │ └── rules.md <- Regras de desenvolvimento
58
+ │ │ ├── sf-setup-projeto/
59
+ │ │ ├── sf-feature/
60
+ │ │ ├── sf-discovery/
61
+ │ │ ├── sf-extract/
62
+ │ │ ├── sf-design/
63
+ │ │ ├── sf-plan/
64
+ │ │ ├── sf-dev/
65
+ │ │ ├── sf-merge-delta/
66
+ │ │ └── sf-session-finish/
67
+ │ └── agents/ <- 7 agentes especializados
68
+ │ ├── backend-coder.md <- .NET 8 / C#
69
+ │ ├── frontend-coder.md <- React
70
+ │ ├── db-coder.md <- PostgreSQL
71
+ │ ├── infra-coder.md <- Docker
72
+ │ ├── doc-writer.md <- Documentacao
73
+ │ ├── reviewer.md <- Code review
74
+ │ └── security-reviewer.md <- Auditoria de seguranca
75
+ ├── docs/ <- SYSTEM KNOWLEDGE (gerado pelo /sf-design)
76
+ │ ├── architecture.md <- Containers, stack, ambientes, deploy
77
+ ├── domain.md <- Visao de negocio + modelo de dados
78
+ │ ├── conventions.md <- Auth, authz, LGPD, env vars, monitoramento
79
+ │ ├── apiContracts.md <- Rotas, paginacao, erros, catalogo de endpoints
80
+ │ └── decisions.md <- ADRs
81
+ ├── workspace/ <- TEAM CONTENT (futuro wiki)
82
+ │ ├── Input/ <- Jogue seus insumos aqui
83
+ │ │ └── setup_projeto/ <- Insumos do bootstrap
84
+ │ └── Output/ <- Docs por feature (gerados)
77
85
  └── .gitignore
78
86
  ```
79
87
 
@@ -85,7 +93,7 @@ MeuProjeto/
85
93
  cd MeuProjeto
86
94
  ```
87
95
 
88
- 2. Jogue seus insumos em `docs/PM/setup_projeto/` — qualquer formato:
96
+ 2. Jogue seus insumos em `workspace/Input/setup_projeto/` — qualquer formato:
89
97
  - `.md`, `.txt` (descricoes, requisitos, decisoes)
90
98
  - `.sql` (modelagem de banco)
91
99
  - `.csv`, `.xml`, `.html` (dados, configs)
@@ -104,13 +112,13 @@ MeuProjeto/
104
112
  ## Pipeline completo
105
113
 
106
114
  ```
107
- docs/PM/ (seus arquivos)
115
+ workspace/Input/ (seus arquivos)
108
116
  |
109
117
  v
110
118
  /sf-setup-projeto --> /sf-extract --> TRD (voce revisa e aprova)
111
119
  |
112
120
  v
113
- /sf-design --> SDD + docs/Estrutura/
121
+ /sf-design --> SDD + docs/ (5 arquivos)
114
122
  |
115
123
  v
116
124
  /sf-plan --> tasks + Progresso.md
@@ -119,13 +127,13 @@ docs/PM/ (seus arquivos)
119
127
  /sf-dev --> codigo nos repos
120
128
  |
121
129
  v
122
- /sf-merge-delta --> docs atualizados
130
+ (merge-delta automatico)
123
131
  ```
124
132
 
125
133
  Para features (apos o setup):
126
134
 
127
135
  ```
128
- /sf-feature nome --> /sf-extract --> PRD --> /sf-design --> /sf-plan --> /sf-dev --> /sf-merge-delta
136
+ /sf-feature nome --> /sf-extract --> PRD --> /sf-design --> /sf-plan --> /sf-dev (inclui merge-delta)
129
137
  ```
130
138
 
131
139
  ## Opcoes do CLI
package/lib/init.js CHANGED
@@ -62,8 +62,8 @@ function init({ name, templatesDir, targetDir }) {
62
62
  console.log(`\nDone! Project "${name}" is ready.`);
63
63
  console.log('\nNext steps:');
64
64
  console.log(` 1. cd ${name}`);
65
- console.log(' 2. Add your input files to docs/PM/setup_projeto/');
66
- console.log(' 3. Run /setup-projeto to start the pipeline');
65
+ console.log(' 2. Add your input files to workspace/Input/setup_projeto/');
66
+ console.log(' 3. Run /sf-setup-projeto to start the pipeline');
67
67
  console.log('');
68
68
  }
69
69
 
package/package.json CHANGED
@@ -1,23 +1,31 @@
1
- {
2
- "name": "spec-first-copilot",
3
- "version": "0.3.0",
4
- "description": "Spec-first workflow kit for GitHub Copilot — AI-driven development with specs, not guesswork",
5
- "bin": {
6
- "spec-first-copilot": "./bin/cli.js"
7
- },
8
- "files": [
9
- "bin/",
10
- "lib/",
11
- "templates/"
12
- ],
13
- "author": "gustavomaritan",
14
- "keywords": ["spec-first", "workflow", "ai", "copilot", "github", "scaffolding"],
15
- "repository": {
16
- "type": "git",
17
- "url": "https://github.com/gustavomaritan-labs/spec-first-workflow"
18
- },
19
- "scripts": {
20
- "test": "echo \"No tests yet\""
21
- },
22
- "license": "MIT"
23
- }
1
+ {
2
+ "name": "spec-first-copilot",
3
+ "version": "0.5.0-beta.0",
4
+ "description": "Spec-first workflow kit for GitHub Copilot — AI-driven development with specs, not guesswork",
5
+ "bin": {
6
+ "spec-first-copilot": "bin/cli.js"
7
+ },
8
+ "files": [
9
+ "bin/",
10
+ "lib/",
11
+ "templates/"
12
+ ],
13
+ "author": "gustavomaritan",
14
+ "keywords": [
15
+ "spec-first",
16
+ "workflow",
17
+ "ai",
18
+ "copilot",
19
+ "github",
20
+ "scaffolding"
21
+ ],
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "git+https://github.com/gustavomaritan-labs/spec-first-workflow.git",
25
+ "directory": "packages/spec-first-copilot"
26
+ },
27
+ "scripts": {
28
+ "test": "echo \"No tests yet\""
29
+ },
30
+ "license": "MIT"
31
+ }
@@ -65,4 +65,4 @@
65
65
 
66
66
  ## Sessão Atual
67
67
 
68
- <!-- Atualizado pelo /pausar ao encerrar cada sessão -->
68
+ <!-- Atualizado pelo /session-finish ao encerrar cada sessão -->
@@ -39,7 +39,7 @@ src/Infrastructure/Data/
39
39
  └── DevSeedData.cs ← Seed para desenvolvimento
40
40
  ```
41
41
 
42
- ### Convenções SQL (alinhado com Modelo_Dados.md)
42
+ ### Convenções SQL (alinhado com domain.md)
43
43
 
44
44
  | Elemento | Convenção | Exemplo |
45
45
  |----------|-----------|---------|
@@ -1,7 +1,7 @@
1
1
  # Agent: Doc Writer
2
2
 
3
3
  > Especialista em geração de documentação técnica.
4
- > Usado pelo /design (setup) para gerar docs/Estrutura/ e pelo /merge-delta para atualizá-los.
4
+ > Usado pelo /design (setup) para gerar docs/ e pelo /merge-delta para atualizá-los.
5
5
 
6
6
  ---
7
7
 
@@ -16,21 +16,18 @@
16
16
 
17
17
  ## Responsabilidades
18
18
 
19
- 1. **No setup (via /design passo 3)**: gerar os 8 docs de `docs/Estrutura/` a partir do TRD aprovado
20
- 2. **Em features (via /merge-delta)**: atualizar docs de Estrutura com Delta Specs do SDD §11
19
+ 1. **No setup (via /design passo 3)**: gerar os 5 docs de `docs/` a partir do TRD aprovado (architecture, domain, conventions, apiContracts, decisions)
20
+ 2. **Em features (via /merge-delta)**: atualizar os docs de `docs/` com Delta Specs do SDD §11
21
21
 
22
- ## Mapeamento TRD → docs/Estrutura/
22
+ ## Mapeamento TRD/SDD → docs/
23
23
 
24
- | TRD Seção | Doc gerado | Template |
25
- |-----------|-----------|---------|
26
- | §1 Visão + §8 Módulos | Visao.md | `_templates/estrutura/Visao.template.md` |
27
- | §2 Stack | Stack.md | `_templates/estrutura/Stack.template.md` |
28
- | §3 Arquitetura | Arquitetura.md | `_templates/estrutura/Arquitetura.template.md` |
29
- | §4 Modelo + SDD §3 | Modelo_Dados.md | `_templates/estrutura/Modelo_Dados.template.md` |
30
- | §5 API | API.md | `_templates/estrutura/API.template.md` |
31
- | §6 Infra | Infraestrutura.md | `_templates/estrutura/Infraestrutura.template.md` |
32
- | §7 Segurança | Seguranca.md | `_templates/estrutura/Seguranca.template.md` |
33
- | SDD §2 Decisões | ADRs.md | `_templates/estrutura/ADRs.template.md` |
24
+ | Doc gerado | Fontes | Template |
25
+ |-----------|--------|---------|
26
+ | architecture.md | TRD §2 Stack + §3 Arquitetura + §6 Infra (ambientes/deploy/CI/rollback) | `.github/templates/estrutura/architecture.template.md` |
27
+ | domain.md | TRD §1 Visão + §4 Modelo de Dados (+ SDD §3 em features) | `.github/templates/estrutura/domain.template.md` |
28
+ | conventions.md | TRD §7 Segurança + §6 Infra (env vars/monitoramento) + §5 API (códigos de erro) + §2 Stack (alternativas/versionamento) | `.github/templates/estrutura/conventions.template.md` |
29
+ | apiContracts.md | TRD §5 API (padrão geral, rotas, paginação, filtros, erros, catálogo) | `.github/templates/estrutura/apiContracts.template.md` |
30
+ | decisions.md | SDD §2 Decisões + decisões iniciais de stack/arquitetura | `.github/templates/estrutura/decisions.template.md` |
34
31
 
35
32
  ## Regras
36
33
 
@@ -48,4 +45,4 @@
48
45
  2. **Ler TRD/SDD** → extrair dados para cada seção
49
46
  3. **Preencher** → seguindo formato do template exatamente
50
47
  4. **Remover instruções** → bloco `<!-- INSTRUÇÕES -->` não vai pro doc final
51
- 5. **Commitar** → `docs(DOC-001): gerar Visao.md a partir do TRD`
48
+ 5. **Commitar** → `docs(DOC-001): gerar architecture.md a partir do TRD`
@@ -11,7 +11,7 @@
11
11
  |-------|-------|
12
12
  | Área | Todas (cross-area) |
13
13
  | Modelo padrão | Opus |
14
- | Lê | Código produzido + SDD §5 (endpoints/auth) + SDD §9 (testes) + docs/Estrutura/Seguranca.md |
14
+ | Lê | Código produzido + SDD §5 (endpoints/auth) + SDD §9 (testes) + docs/conventions.md (auth, authz, LGPD, auditoria) |
15
15
  | Nunca lê | PRD, PM |
16
16
 
17
17
  ## Quando é acionado
@@ -12,11 +12,11 @@
12
12
  | Dependência | Caminho | Se não existir |
13
13
  |-------------|---------|----------------|
14
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 |
15
+ | Templates | `.github/templates/` | ERRO — projeto não está configurado |
16
16
  | Skills | `.github/skills/` | ERRO — projeto não está configurado |
17
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 |
18
+ | Rules | `.github/rules.md` | ERRO — projeto não está configurado |
19
+ | Retomada | `workspace/Output/retomada.md` | OK — primeira sessão |
20
20
 
21
21
  ### 2. Validar acesso a todas skills
22
22
 
@@ -31,7 +31,7 @@ Verificar que TODAS as 9 skills estão acessíveis:
31
31
  | `/sf-plan` | `.github/skills/sf-plan/SKILL.md` |
32
32
  | `/sf-dev` | `.github/skills/sf-dev/SKILL.md` |
33
33
  | `/sf-merge-delta` | `.github/skills/sf-merge-delta/SKILL.md` |
34
- | `/sf-pausar` | `.github/skills/sf-pausar/SKILL.md` |
34
+ | `/sf-session-finish` | `.github/skills/sf-session-finish/SKILL.md` |
35
35
  | `/sf-discovery` | `.github/skills/sf-discovery/SKILL.md` |
36
36
 
37
37
  Se alguma skill não for encontrada → avisar o usuário.
@@ -39,9 +39,9 @@ Se alguma skill não for encontrada → avisar o usuário.
39
39
  ### 3. Carregar contexto
40
40
 
41
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
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
45
 
46
46
  ---
47
47
 
@@ -53,37 +53,41 @@ Este é um projeto que utiliza desenvolvimento **spec-first** assistido por IA.
53
53
 
54
54
  ```
55
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
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
62
66
  ```
63
67
 
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/`
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
+
69
74
  Nenhum código é escrito sem especificação aprovada (SDD).
70
75
 
71
76
  ## Pipeline do Workflow
72
77
 
73
78
  ```
74
- docs/PM/ (qualquer arquivo)
79
+ workspace/Input/ (qualquer arquivo)
75
80
  ↓ /sf-setup-projeto (uma vez) ou /sf-feature (por feature)
76
81
  /sf-discovery → análise profunda dos insumos (RECOMENDADO, opcional)
77
82
 
78
- /sf-extract → PRD ou TRD (checkpoint — usuário revisa e aprova)
83
+ /sf-extract → PRD ou TRD em workspace/Output/{nome}/ (checkpoint — usuário revisa e aprova)
79
84
 
80
- /sf-design → SDD + projetos.yaml + docs/Estrutura/ (setup)
85
+ /sf-design → SDD + projetos.yaml + docs/ (5 docs de sistema — só setup)
81
86
 
82
- /sf-plan → *_tasks.md + Progresso.md (tasks por fase × área)
87
+ /sf-plan → *_tasks.md + Progresso.md em workspace/Output/{nome}/ (tasks por fase × área)
83
88
 
84
89
  /sf-dev → código nos repos (Security Review pós-dev)
85
-
86
- /sf-merge-delta → docs/Estrutura/ atualizado (apenas para features)
90
+ → merge-delta automático em features (aplica SDD §11 em docs/)
87
91
  ```
88
92
 
89
93
  ## Skills disponíveis
@@ -92,12 +96,12 @@ docs/PM/ (qualquer arquivo)
92
96
  |-------|------|-----------|
93
97
  | `/sf-setup-projeto` | Orquestrador | Bootstrap: cria .context.md, chama /sf-extract, para no checkpoint. Roda UMA vez |
94
98
  | `/sf-feature <nome>` | Orquestrador | Feature: cria .context.md tipo PRD, chama /sf-extract, para no checkpoint |
95
- | `/sf-extract <nome>` | Atômica | Lê docs/PM/{nome}/ → gera PRD ou TRD. Re-executável para novos insumos |
99
+ | `/sf-extract <nome>` | Atômica | Lê workspace/Input/{nome}/ → gera PRD ou TRD. Re-executável para novos insumos |
96
100
  | `/sf-design <nome>` | Atômica | Pergunta aprovação → gera SDD a partir do PRD/TRD |
97
101
  | `/sf-plan <nome>` | Atômica | Lê SDD → gera 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 |
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 |
101
105
  | `/sf-discovery` | Utilitária | Análise profunda de sistemas, arquiteturas e documentações |
102
106
 
103
107
  ## Agents especializados (usados pelo /dev)
@@ -114,7 +118,7 @@ docs/PM/ (qualquer arquivo)
114
118
 
115
119
  ## Estado da pipeline (`.context.md`)
116
120
 
117
- Cada feature/setup tem um `.context.md` em `docs/Desenvolvimento/{nome}/` que controla o fluxo:
121
+ Cada feature/setup tem um `.context.md` em `workspace/Output/{nome}/` que controla o fluxo:
118
122
 
119
123
  ```
120
124
  not_started → extract_done → approved → design_done → plan_done → dev_in_progress → dev_done → done
@@ -125,7 +129,7 @@ Antes de executar qualquer skill, verificar o status no `.context.md`. Cada skil
125
129
  ## Regras Invioláveis
126
130
 
127
131
  1. **Spec-first**: NUNCA gerar código sem SDD aprovado
128
- 2. **PM é sagrado**: NUNCA modificar arquivos em `docs/PM/`
132
+ 2. **Input é sagrado**: NUNCA modificar arquivos em `workspace/Input/`
129
133
  3. **Extração rígida**: categorias fixas do template, sem texto narrativo, ambiguidades são BLOQUEANTES
130
134
  4. **SDD é auto-contido**: coder lê APENAS SDD + task, NUNCA PRD/PM diretamente
131
135
  5. **Memória ativa**: ler napkin.md no início, atualizar ao descobrir padrões/armadilhas
@@ -136,15 +140,27 @@ Antes de executar qualquer skill, verificar o status no `.context.md`. Cada skil
136
140
  ## Estrutura de Documentação
137
141
 
138
142
  ```
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
143
+ .github/
144
+ ├── copilot-instructions.md Regras globais pro agente (este arquivo)
145
+ ├── rules.md Regras de desenvolvimento (lidas pelos coders)
146
+ ├── templates/ Templates do workflow (feature/estrutura/global)
147
+ ├── skills/ 9 skills atômicas
148
+ ├── agents/ 7 perfis de agents especializados
149
+ └── instructions/ Instruções por contexto
150
+
151
+ docs/ Estado global do sistema (gerado pelo /sf-design)
152
+ ├── architecture.md ← C4 + stack + ambientes + deploy
153
+ ├── domain.md ← Visão de negócio + modelo de dados
154
+ ├── conventions.md ← Auth, authz, LGPD, env vars, monitoramento
155
+ ├── apiContracts.md ← Rotas, paginação, catálogo de endpoints
156
+ └── decisions.md ← ADRs
157
+
158
+ workspace/ ← Content compartilhável (futuro wiki)
159
+ ├── Input/ ← Insumos brutos (QUALQUER formato — nunca modificar)
160
+ │ ├── setup_projeto/ ← Insumos de bootstrap
161
+ │ └── feat_*/ ← Insumos por feature
162
+ └── Output/ ← Artefatos gerados pelo workflow
163
+ └── {nome}/ ← PRD/TRD, SDD, *_tasks.md, Progresso.md, .context.md, .extract-log.md
148
164
  ```
149
165
 
150
166
  ## Convenções
@@ -157,7 +173,7 @@ docs/
157
173
 
158
174
  ## Quando Parar e Perguntar
159
175
 
160
- - `docs/PM/{nome}/` vazio ou inexistente → PARAR
176
+ - `workspace/Input/{nome}/` vazio ou inexistente → PARAR
161
177
  - Ambiguidade na extração → listar como pergunta BLOQUEANTE, PARAR
162
178
  - `.context.md` com status incompatível com a skill → PARAR, informar status atual
163
179
  - Task com dependência não concluída → avisar, não pular
@@ -168,9 +184,11 @@ docs/
168
184
 
169
185
  | Doc | Onde |
170
186
  |-----|------|
171
- | Rules de dev | `docs/Desenvolvimento/rules.md` |
187
+ | Rules de dev | `.github/rules.md` |
172
188
  | Memória | `.ai/memory/napkin.md` |
173
189
  | Skills | `.github/skills/*.md` |
174
190
  | Agents | `.github/agents/*.md` |
175
- | Templates | `docs/_templates/` |
176
- | Estrutura do sistema | `docs/Estrutura/*.md` (após setup) |
191
+ | Templates | `.github/templates/` |
192
+ | Estado do sistema | `docs/*.md` (após setup) |
193
+ | Insumos brutos | `workspace/Input/` |
194
+ | Outputs do workflow | `workspace/Output/` |
@@ -31,8 +31,8 @@ Cada tipo de projeto tem seu documento de extração:
31
31
 
32
32
  | Comando | Documento | Template | Foco |
33
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 |
34
+ | `/setup-projeto` | TRD.md | `.github/templates/feature/TRD.template.md` | Stack, arquitetura, infra, modelo base |
35
+ | `/feature` | PRD.md | `.github/templates/feature/PRD.template.md` | Regras de negócio, jornadas, telas |
36
36
 
37
37
  ### Multi-agent no /extract
38
38
 
@@ -43,7 +43,7 @@ Cada tipo de projeto tem seu documento de extração:
43
43
 
44
44
  ### Regras da extração
45
45
 
46
- - Ler TODOS arquivos em `docs/PM/{nome}/` (qualquer formato: .md, .txt, .sql, .html, .xml, .csv, .png, .pdf)
46
+ - Ler TODOS arquivos em `workspace/Input/{nome}/` (qualquer formato: .md, .txt, .sql, .html, .xml, .csv, .png, .pdf)
47
47
  - Categorias FIXAS do template — não inventar seções novas
48
48
  - Regras de negócio com IDs únicos e estáveis (RN-001, RN-002 — nunca renumerar)
49
49
  - Ambiguidades = BLOQUEANTES (workflow para até responder)
@@ -63,8 +63,8 @@ Cada tipo de projeto tem seu documento de extração:
63
63
 
64
64
  1. Verificar aprovação do PRD/TRD (perguntar ao usuário)
65
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`
66
+ 3. Ler PRD/TRD + `docs/` + `rules.md`
67
+ 4. Gerar SDD usando `.github/templates/feature/sdd.template.md`
68
68
  5. SDD deve ser **auto-contido** — coder lê APENAS SDD + task, nada mais
69
69
  6. Toda regra referencia seção do PRD/TRD (rastreabilidade)
70
70
  7. §9 Estratégia de Testes: definir framework, estrutura, CAs mapeados a testes
@@ -73,13 +73,13 @@ Cada tipo de projeto tem seu documento de extração:
73
73
 
74
74
  ## Planejamento (/plan)
75
75
 
76
- 1. Ler SDD completo + `docs/Estrutura/` + `rules.md`
76
+ 1. Ler SDD completo + `docs/` + `rules.md`
77
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`
78
+ 3. Para cada área → gerar `{area}_tasks.md` usando `.github/templates/feature/tasks.template.md`
79
79
  4. Tasks em fases sequenciais com prioridade P1/P2/P3
80
80
  5. Cada task: ID (AREA-NNN), título, tamanho (S/M/L), arquivos, ref SDD §N, depende, testes
81
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)
82
+ 7. Em setup: área DOC NÃO existe mais `docs/` é gerado diretamente pelo /sf-design (passo 3) a partir do TRD
83
83
 
84
84
  ## Desenvolvimento (/dev)
85
85
 
@@ -115,9 +115,9 @@ Por feature: E2E tests (CAs) → fix → dev_done
115
115
 
116
116
  | Aspecto | /setup-projeto | /feature |
117
117
  |---------|---------------|----------|
118
- | Input | `docs/PM/setup_projeto/` | `docs/PM/feat_nome/` |
118
+ | Input | `workspace/Input/setup_projeto/` | `workspace/Input/feat_nome/` |
119
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 |
120
+ | SDD + Tasks | Sim (infra + banco + back + front) | Sim (feature tasks) |
121
+ | Gera docs/ | Sim pelo /sf-design (passo 3) | Não — atualiza via /merge-delta |
122
122
  | /merge-delta | Não se aplica | Obrigatório após /dev |
123
- | Pré-requisito | Nenhum (primeiro comando) | docs/Estrutura/ deve existir |
123
+ | Pré-requisito | Nenhum (primeiro comando) | docs/ deve existir |
@@ -4,26 +4,26 @@
4
4
 
5
5
  ## Arquivos que NUNCA devem ser modificados pelo agente
6
6
 
7
- - `docs/PM/**/*` — Insumos brutos do usuário. Somente leitura.
7
+ - `workspace/Input/**/*` — Insumos brutos do usuário. Somente leitura.
8
8
  - `.env`, `.env.*` — Variáveis de ambiente com secrets.
9
- - `docs/Estrutura/ADRs.md` — ADRs aceitas são imutáveis (apenas adicionar novas).
9
+ - `docs/decisions.md` — decisões aceitas são imutáveis (apenas adicionar novas, com status "substituída por ADR-XXX" na original).
10
10
 
11
11
  ## Arquivos que requerem aprovação antes de modificar
12
12
 
13
- - `docs/Estrutura/*` — Documentação global. Só alterar via /merge-delta após /dev.
14
- - `docs/Desenvolvimento/rules.md` — Regras de desenvolvimento. Alteração deve ser explícita.
13
+ - `docs/*` — Documentação global. Só alterar via /merge-delta após /dev.
14
+ - `.github/rules.md` — Regras de desenvolvimento. Alteração deve ser explícita.
15
15
  - `.github/copilot-instructions.md` — Meta-regras. Alteração requer aprovação.
16
16
  - `.github/skills/*` — Skills do workflow. Alteração requer aprovação.
17
17
  - `.github/agents/*` — Perfis de agentes. Alteração requer aprovação.
18
18
 
19
19
  ## Arquivos com formato rígido (gerados por skills)
20
20
 
21
- - `docs/Desenvolvimento/*/.context.md` — YAML frontmatter, apenas skills atualizam.
22
- - `docs/Desenvolvimento/*/.extract-log.md` — Append-only, hashes obrigatórios.
23
- - `docs/Desenvolvimento/*/PRD.md` ou `TRD.md` — Seguir template exato.
24
- - `docs/Desenvolvimento/*/sdd.md` — Seguir template, todas as 11 seções + rastreabilidade.
25
- - `docs/Desenvolvimento/*/*_tasks.md` — IDs sequenciais, campos obrigatórios.
26
- - `docs/Desenvolvimento/*/Progresso.md` — Tabelas com formato fixo.
21
+ - `workspace/Output/*/.context.md` — YAML frontmatter, apenas skills atualizam.
22
+ - `workspace/Output/*/.extract-log.md` — Append-only, hashes obrigatórios.
23
+ - `workspace/Output/*/PRD.md` ou `TRD.md` — Seguir template exato.
24
+ - `workspace/Output/*/sdd.md` — Seguir template, todas as 11 seções + rastreabilidade.
25
+ - `workspace/Output/*/*_tasks.md` — IDs sequenciais, campos obrigatórios.
26
+ - `workspace/Output/*/Progresso.md` — Tabelas com formato fixo.
27
27
 
28
28
  ## Arquivos que nunca devem conter secrets
29
29
 
@@ -36,7 +36,7 @@ As regras abaixo são o padrão do framework. O time pode:
36
36
  ## Convenções de Código
37
37
 
38
38
  ### Padrão geral
39
- - Todo código segue as convenções de `docs/Estrutura/Stack.md`
39
+ - Todo código segue a stack e convenções de `docs/architecture.md` + `docs/conventions.md`
40
40
  - Nomes em inglês (código) — documentação em português
41
41
  - Sem código morto (comentado) — se não usa, apaga
42
42
  - Sem secrets hardcoded — sempre variáveis de ambiente
@@ -44,7 +44,7 @@ As regras abaixo são o padrão do framework. O time pode:
44
44
  ### Backend
45
45
  - Testes obrigatórios: mínimo happy path + 1 cenário de erro
46
46
  - Validação de input na borda (controller/handler) — não no service
47
- - Erros de negócio: usar códigos definidos em `docs/Estrutura/API.md`
47
+ - Erros de negócio: usar códigos definidos em `docs/conventions.md` (seção Códigos de Erro do Domínio)
48
48
  - Tipos explícitos (sem `any`, `object`, `dynamic` genéricos)
49
49
 
50
50
  ### Frontend