spec-first-copilot 0.4.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.
- package/README.md +156 -148
- package/bin/cli.js +52 -52
- package/lib/init.js +89 -89
- package/package.json +11 -4
- package/templates/.ai/memory/napkin.md +68 -68
- package/templates/.github/agents/backend-coder.md +215 -215
- package/templates/.github/agents/db-coder.md +165 -165
- package/templates/.github/agents/doc-writer.md +48 -51
- package/templates/.github/agents/frontend-coder.md +222 -222
- package/templates/.github/agents/infra-coder.md +341 -341
- package/templates/.github/agents/reviewer.md +99 -99
- package/templates/.github/agents/security-reviewer.md +153 -153
- package/templates/.github/copilot-instructions.md +194 -175
- package/templates/.github/instructions/docs.instructions.md +123 -123
- package/templates/.github/instructions/sensitive-files.instructions.md +32 -32
- package/templates/{docs/Desenvolvimento → .github}/rules.md +229 -229
- package/templates/.github/skills/sf-design/SKILL.md +180 -181
- package/templates/.github/skills/sf-dev/SKILL.md +349 -349
- package/templates/.github/skills/sf-discovery/SKILL.md +405 -405
- package/templates/.github/skills/sf-extract/SKILL.md +284 -284
- package/templates/.github/skills/sf-feature/SKILL.md +130 -130
- package/templates/.github/skills/sf-merge-delta/SKILL.md +145 -142
- package/templates/.github/skills/sf-plan/SKILL.md +178 -178
- package/templates/.github/skills/sf-session-finish/SKILL.md +120 -120
- package/templates/.github/skills/sf-setup-projeto/SKILL.md +123 -123
- package/templates/{docs/_templates/estrutura/API.template.md → .github/templates/estrutura/apiContracts.template.md} +151 -144
- package/templates/.github/templates/estrutura/architecture.template.md +158 -0
- package/templates/{docs/_templates/estrutura/Seguranca.template.md → .github/templates/estrutura/conventions.template.md} +202 -138
- package/templates/{docs/_templates/estrutura/ADRs.template.md → .github/templates/estrutura/decisions.template.md} +99 -91
- package/templates/.github/templates/estrutura/domain.template.md +148 -0
- package/templates/{docs/_templates → .github/templates}/feature/PRD.template.md +256 -256
- package/templates/{docs/_templates → .github/templates}/feature/Progresso.template.md +136 -136
- package/templates/{docs/_templates → .github/templates}/feature/TRD.template.md +204 -200
- package/templates/{docs/_templates → .github/templates}/feature/backlog-extraido.template.md +154 -154
- package/templates/{docs/_templates → .github/templates}/feature/context.template.md +42 -42
- package/templates/{docs/_templates → .github/templates}/feature/extract-log.template.md +38 -38
- package/templates/{docs/_templates → .github/templates}/feature/projetos.template.yaml +73 -73
- package/templates/{docs/_templates → .github/templates}/feature/sdd.template.md +372 -372
- package/templates/{docs/_templates → .github/templates}/feature/tasks.template.md +115 -115
- package/templates/{docs/_templates → .github/templates}/global/progresso_global.template.md +57 -57
- package/templates/docs/_templates/estrutura/Arquitetura.template.md +0 -82
- package/templates/docs/_templates/estrutura/Infraestrutura.template.md +0 -104
- package/templates/docs/_templates/estrutura/Modelo_Dados.template.md +0 -99
- package/templates/docs/_templates/estrutura/Stack.template.md +0 -78
- package/templates/docs/_templates/estrutura/Visao.template.md +0 -82
- /package/templates/docs/{Desenvolvimento/.gitkeep → .gitkeep} +0 -0
- /package/templates/{docs/Estrutura → workspace/Input}/.gitkeep +0 -0
- /package/templates/{docs/PM → workspace/Input/setup_projeto}/.gitkeep +0 -0
- /package/templates/{docs/PM/setup_projeto → workspace/Output}/.gitkeep +0 -0
|
@@ -1,115 +1,115 @@
|
|
|
1
|
-
# Tasks — {{AREA}} — {{FEATURE}}
|
|
2
|
-
|
|
3
|
-
> Checklist de implementação organizado por **fases** e **prioridade**.
|
|
4
|
-
> O Coder consulta o `sdd.md` para detalhes técnicos.
|
|
5
|
-
> Este arquivo define O QUE fazer, EM QUE ORDEM, e ONDE.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Meta
|
|
10
|
-
|
|
11
|
-
| Campo | Valor |
|
|
12
|
-
|-------|-------|
|
|
13
|
-
| Feature | `{{FEATURE}}` |
|
|
14
|
-
| Área | {{AREA}} |
|
|
15
|
-
| SDD | [`sdd.md`](./sdd.md) {{SDD_SECTIONS}} |
|
|
16
|
-
| Total de tasks | {{TOTAL}} |
|
|
17
|
-
| Depende de | {{AREA_DEPENDENCIES}} |
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
<!--
|
|
22
|
-
=============================================================================
|
|
23
|
-
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
24
|
-
=============================================================================
|
|
25
|
-
|
|
26
|
-
COMO GERAR ESTE ARQUIVO:
|
|
27
|
-
|
|
28
|
-
1. Ler o SDD completo da feature
|
|
29
|
-
2. Identificar TODAS as áreas afetadas (banco, back, front, mobile, infra...)
|
|
30
|
-
3. Para CADA área, gerar um arquivo `{area}_tasks.md` usando este template
|
|
31
|
-
4. Áreas são DINÂMICAS — determinadas pelo SDD, não pré-definidas
|
|
32
|
-
|
|
33
|
-
COMO DEFINIR FASES:
|
|
34
|
-
|
|
35
|
-
- Agrupar tasks por etapa lógica de implementação
|
|
36
|
-
- Fases são SEQUENCIAIS dentro da área (Fase 2 depende de Fase 1)
|
|
37
|
-
- Usar prioridade P1/P2/P3 por fase
|
|
38
|
-
- Nomear fases de forma descritiva (não só "Fase 1")
|
|
39
|
-
- Exemplos de fases por área:
|
|
40
|
-
|
|
41
|
-
BANCO: Setup → Schema → Índices → Seeds
|
|
42
|
-
BACKEND: Setup → DTOs/Validações → Repository/Service → Controller → Testes
|
|
43
|
-
FRONTEND: Setup/Rotas → Componentes → Telas → Polish
|
|
44
|
-
MOBILE: Setup → Navegação → Telas → Offline → Push
|
|
45
|
-
INFRA: Provisão → Config → Deploy → Monitoramento
|
|
46
|
-
|
|
47
|
-
COMO ESCREVER CADA TASK:
|
|
48
|
-
|
|
49
|
-
- Formato checklist: `- [ ] **ID**: Título [Tamanho]`
|
|
50
|
-
- ID: {PREFIXO}-{NNN} sequencial (BANCO-001, BACK-001, FRONT-001, MOBILE-001...)
|
|
51
|
-
- Título: verbo no infinitivo + o que fazer
|
|
52
|
-
- Tamanho: S (< 30min), M (30min-2h), L (2h+)
|
|
53
|
-
- Fase: número da fase de entrega (do PRD §11) — OBRIGATÓRIO
|
|
54
|
-
- Repo: nome do repo (de projetos.yaml) — OBRIGATÓRIO
|
|
55
|
-
- Arquivos: EXATAMENTE quais files criar ou alterar (caminhos RELATIVOS ao repo)
|
|
56
|
-
- SDD: seção específica (§3.1, §5 POST /rota, §6 Tela X)
|
|
57
|
-
- Depende: IDs de tasks (mesma área ou cross-area)
|
|
58
|
-
|
|
59
|
-
REGRAS:
|
|
60
|
-
|
|
61
|
-
- Task deve ser AUTOCONTIDA: Coder lê SDD + esta task, nada mais
|
|
62
|
-
- NÃO duplicar conteúdo do SDD — apenas referenciar seções
|
|
63
|
-
- NÃO incluir status — vive só no Progresso.md
|
|
64
|
-
- Depende cross-area é permitido (FRONT-004 depende de BACK-009)
|
|
65
|
-
- "Regras desta área" = convenções específicas extraídas do SDD e docs
|
|
66
|
-
|
|
67
|
-
=============================================================================
|
|
68
|
-
-->
|
|
69
|
-
|
|
70
|
-
## Fase 1 — {{FASE_NOME}} [{{PRIORIDADE}}]
|
|
71
|
-
|
|
72
|
-
> {{FASE_CONTEXTO — 1 linha explicando o propósito da fase}}
|
|
73
|
-
<!-- Opcional: "Depende de: Área X Fase Y concluída" -->
|
|
74
|
-
|
|
75
|
-
- [ ] **{{PREFIXO}}-001**: {{Título descritivo}} [{{S|M|L}}]
|
|
76
|
-
- Fase: {{N}} — {{Nome fase de entrega}}
|
|
77
|
-
- Repo: `{{repo_name}}`
|
|
78
|
-
- Arquivos: `{{caminho/arquivo.ext}}`
|
|
79
|
-
- SDD: {{§N seção específica}}
|
|
80
|
-
- Depende: {{ID ou —}}
|
|
81
|
-
|
|
82
|
-
- [ ] **{{PREFIXO}}-002**: {{Título descritivo}} [{{S|M|L}}]
|
|
83
|
-
- Fase: {{N}} — {{Nome fase de entrega}}
|
|
84
|
-
- Repo: `{{repo_name}}`
|
|
85
|
-
- Arquivos: `{{caminho/arquivo1.ext}}`, `{{caminho/arquivo2.ext}}`
|
|
86
|
-
- SDD: {{§N.M subseção}}
|
|
87
|
-
- Depende: {{PREFIXO}}-001
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## Fase 2 — {{FASE_NOME}} [{{PRIORIDADE}}]
|
|
92
|
-
|
|
93
|
-
> {{FASE_CONTEXTO}}
|
|
94
|
-
|
|
95
|
-
- [ ] **{{PREFIXO}}-003**: {{Título}} [{{S|M|L}}]
|
|
96
|
-
- Fase: {{N}} — {{Nome fase de entrega}}
|
|
97
|
-
- Repo: `{{repo_name}}`
|
|
98
|
-
- Arquivos: `{{caminho/}}`
|
|
99
|
-
- SDD: {{§N}}
|
|
100
|
-
- Depende: {{PREFIXO}}-001, {{OUTRA_AREA}}-001
|
|
101
|
-
|
|
102
|
-
<!-- Repetir fases conforme necessário -->
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## Regras desta área
|
|
107
|
-
|
|
108
|
-
<!-- Extraídas do SDD e docs/
|
|
109
|
-
1. {{Regra 1}}
|
|
110
|
-
2. {{Regra 2}}
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
> **Legenda tamanho**: S = < 30min · M = 30min-2h · L = 2h+
|
|
115
|
-
> **Legenda prioridade**: P1 = bloqueia outras áreas · P2 = importante · P3 = nice-to-have
|
|
1
|
+
# Tasks — {{AREA}} — {{FEATURE}}
|
|
2
|
+
|
|
3
|
+
> Checklist de implementação organizado por **fases** e **prioridade**.
|
|
4
|
+
> O Coder consulta o `sdd.md` para detalhes técnicos.
|
|
5
|
+
> Este arquivo define O QUE fazer, EM QUE ORDEM, e ONDE.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Meta
|
|
10
|
+
|
|
11
|
+
| Campo | Valor |
|
|
12
|
+
|-------|-------|
|
|
13
|
+
| Feature | `{{FEATURE}}` |
|
|
14
|
+
| Área | {{AREA}} |
|
|
15
|
+
| SDD | [`sdd.md`](./sdd.md) {{SDD_SECTIONS}} |
|
|
16
|
+
| Total de tasks | {{TOTAL}} |
|
|
17
|
+
| Depende de | {{AREA_DEPENDENCIES}} |
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
<!--
|
|
22
|
+
=============================================================================
|
|
23
|
+
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
24
|
+
=============================================================================
|
|
25
|
+
|
|
26
|
+
COMO GERAR ESTE ARQUIVO:
|
|
27
|
+
|
|
28
|
+
1. Ler o SDD completo da feature
|
|
29
|
+
2. Identificar TODAS as áreas afetadas (banco, back, front, mobile, infra...)
|
|
30
|
+
3. Para CADA área, gerar um arquivo `{area}_tasks.md` usando este template
|
|
31
|
+
4. Áreas são DINÂMICAS — determinadas pelo SDD, não pré-definidas
|
|
32
|
+
|
|
33
|
+
COMO DEFINIR FASES:
|
|
34
|
+
|
|
35
|
+
- Agrupar tasks por etapa lógica de implementação
|
|
36
|
+
- Fases são SEQUENCIAIS dentro da área (Fase 2 depende de Fase 1)
|
|
37
|
+
- Usar prioridade P1/P2/P3 por fase
|
|
38
|
+
- Nomear fases de forma descritiva (não só "Fase 1")
|
|
39
|
+
- Exemplos de fases por área:
|
|
40
|
+
|
|
41
|
+
BANCO: Setup → Schema → Índices → Seeds
|
|
42
|
+
BACKEND: Setup → DTOs/Validações → Repository/Service → Controller → Testes
|
|
43
|
+
FRONTEND: Setup/Rotas → Componentes → Telas → Polish
|
|
44
|
+
MOBILE: Setup → Navegação → Telas → Offline → Push
|
|
45
|
+
INFRA: Provisão → Config → Deploy → Monitoramento
|
|
46
|
+
|
|
47
|
+
COMO ESCREVER CADA TASK:
|
|
48
|
+
|
|
49
|
+
- Formato checklist: `- [ ] **ID**: Título [Tamanho]`
|
|
50
|
+
- ID: {PREFIXO}-{NNN} sequencial (BANCO-001, BACK-001, FRONT-001, MOBILE-001...)
|
|
51
|
+
- Título: verbo no infinitivo + o que fazer
|
|
52
|
+
- Tamanho: S (< 30min), M (30min-2h), L (2h+)
|
|
53
|
+
- Fase: número da fase de entrega (do PRD §11) — OBRIGATÓRIO
|
|
54
|
+
- Repo: nome do repo (de projetos.yaml) — OBRIGATÓRIO
|
|
55
|
+
- Arquivos: EXATAMENTE quais files criar ou alterar (caminhos RELATIVOS ao repo)
|
|
56
|
+
- SDD: seção específica (§3.1, §5 POST /rota, §6 Tela X)
|
|
57
|
+
- Depende: IDs de tasks (mesma área ou cross-area)
|
|
58
|
+
|
|
59
|
+
REGRAS:
|
|
60
|
+
|
|
61
|
+
- Task deve ser AUTOCONTIDA: Coder lê SDD + esta task, nada mais
|
|
62
|
+
- NÃO duplicar conteúdo do SDD — apenas referenciar seções
|
|
63
|
+
- NÃO incluir status — vive só no Progresso.md
|
|
64
|
+
- Depende cross-area é permitido (FRONT-004 depende de BACK-009)
|
|
65
|
+
- "Regras desta área" = convenções específicas extraídas do SDD e docs
|
|
66
|
+
|
|
67
|
+
=============================================================================
|
|
68
|
+
-->
|
|
69
|
+
|
|
70
|
+
## Fase 1 — {{FASE_NOME}} [{{PRIORIDADE}}]
|
|
71
|
+
|
|
72
|
+
> {{FASE_CONTEXTO — 1 linha explicando o propósito da fase}}
|
|
73
|
+
<!-- Opcional: "Depende de: Área X Fase Y concluída" -->
|
|
74
|
+
|
|
75
|
+
- [ ] **{{PREFIXO}}-001**: {{Título descritivo}} [{{S|M|L}}]
|
|
76
|
+
- Fase: {{N}} — {{Nome fase de entrega}}
|
|
77
|
+
- Repo: `{{repo_name}}`
|
|
78
|
+
- Arquivos: `{{caminho/arquivo.ext}}`
|
|
79
|
+
- SDD: {{§N seção específica}}
|
|
80
|
+
- Depende: {{ID ou —}}
|
|
81
|
+
|
|
82
|
+
- [ ] **{{PREFIXO}}-002**: {{Título descritivo}} [{{S|M|L}}]
|
|
83
|
+
- Fase: {{N}} — {{Nome fase de entrega}}
|
|
84
|
+
- Repo: `{{repo_name}}`
|
|
85
|
+
- Arquivos: `{{caminho/arquivo1.ext}}`, `{{caminho/arquivo2.ext}}`
|
|
86
|
+
- SDD: {{§N.M subseção}}
|
|
87
|
+
- Depende: {{PREFIXO}}-001
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Fase 2 — {{FASE_NOME}} [{{PRIORIDADE}}]
|
|
92
|
+
|
|
93
|
+
> {{FASE_CONTEXTO}}
|
|
94
|
+
|
|
95
|
+
- [ ] **{{PREFIXO}}-003**: {{Título}} [{{S|M|L}}]
|
|
96
|
+
- Fase: {{N}} — {{Nome fase de entrega}}
|
|
97
|
+
- Repo: `{{repo_name}}`
|
|
98
|
+
- Arquivos: `{{caminho/}}`
|
|
99
|
+
- SDD: {{§N}}
|
|
100
|
+
- Depende: {{PREFIXO}}-001, {{OUTRA_AREA}}-001
|
|
101
|
+
|
|
102
|
+
<!-- Repetir fases conforme necessário -->
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Regras desta área
|
|
107
|
+
|
|
108
|
+
<!-- Extraídas do SDD e docs/ — específicas para esta área -->
|
|
109
|
+
1. {{Regra 1}}
|
|
110
|
+
2. {{Regra 2}}
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
> **Legenda tamanho**: S = < 30min · M = 30min-2h · L = 2h+
|
|
115
|
+
> **Legenda prioridade**: P1 = bloqueia outras áreas · P2 = importante · P3 = nice-to-have
|
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
# Progresso Geral
|
|
2
|
-
|
|
3
|
-
> Visão consolidada de todas as features, bugs e tarefas do projeto.
|
|
4
|
-
> Atualizado automaticamente ao final de cada `/plan` e `/dev`.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<!--
|
|
9
|
-
=============================================================================
|
|
10
|
-
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado na primeira vez)
|
|
11
|
-
=============================================================================
|
|
12
|
-
|
|
13
|
-
QUANDO USAR: Criado pelo /plan do primeiro setup ou feature. Atualizado por cada /plan e /dev.
|
|
14
|
-
|
|
15
|
-
COMO ATUALIZAR:
|
|
16
|
-
- Ao criar nova feature (/plan) → adicionar linha na tabela com contadores zerados
|
|
17
|
-
- Ao concluir tasks (/dev) → atualizar contadores
|
|
18
|
-
- Ao concluir feature (/merge-delta) → status "concluído" ou "done"
|
|
19
|
-
|
|
20
|
-
ÁREAS SÃO DINÂMICAS:
|
|
21
|
-
- Colunas de área mudam conforme o projeto (BANCO, BACK, FRONT, DOC, INFRA, MOBILE...)
|
|
22
|
-
- Cada feature pode ter áreas diferentes
|
|
23
|
-
- Usar "—" quando uma feature não tem tasks naquela área
|
|
24
|
-
|
|
25
|
-
STATUS USA O VALOR DO .context.md:
|
|
26
|
-
- not_started, extract_done, approved, design_done, plan_done, dev_in_progress, dev_done, done
|
|
27
|
-
|
|
28
|
-
=============================================================================
|
|
29
|
-
-->
|
|
30
|
-
|
|
31
|
-
## Resumo
|
|
32
|
-
|
|
33
|
-
| # | Feature | Status | {{AREA_1}} | {{AREA_2}} | {{AREA_N}} | Última atualização |
|
|
34
|
-
|---|---------|--------|------------|------------|------------|-------------------|
|
|
35
|
-
| 1 | {{NOME}} | {{status}} | 0/N | 0/N | 0/N | {{data}} |
|
|
36
|
-
|
|
37
|
-
<!-- Exemplo preenchido:
|
|
38
|
-
| 1 | setup_projeto | plan_done | BANCO: 0/7 | BACK: 0/10 | FRONT: 0/3 | DOC: 0/8 | 2026-04-08 |
|
|
39
|
-
| 2 | feat_cadastro_cliente | extract_done | — | — | — | — | 2026-04-09 |
|
|
40
|
-
-->
|
|
41
|
-
|
|
42
|
-
## Legenda de Status
|
|
43
|
-
|
|
44
|
-
| Status | Significado |
|
|
45
|
-
|--------|-------------|
|
|
46
|
-
| `not_started` | Pipeline iniciado, aguardando extração |
|
|
47
|
-
| `extract_done` | PRD/TRD gerado, aguardando aprovação |
|
|
48
|
-
| `approved` | Documento aprovado |
|
|
49
|
-
| `design_done` | SDD gerado |
|
|
50
|
-
| `plan_done` | Tasks geradas, pronto para /dev |
|
|
51
|
-
| `dev_in_progress` | /dev em execução |
|
|
52
|
-
| `dev_done` | Todas tasks concluídas |
|
|
53
|
-
| `done` | Delta specs mergeadas (features) ou docs gerados (setup) |
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
> **Atualização**: Cada skill atualiza este arquivo ao criar ou concluir features.
|
|
1
|
+
# Progresso Geral
|
|
2
|
+
|
|
3
|
+
> Visão consolidada de todas as features, bugs e tarefas do projeto.
|
|
4
|
+
> Atualizado automaticamente ao final de cada `/plan` e `/dev`.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!--
|
|
9
|
+
=============================================================================
|
|
10
|
+
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado na primeira vez)
|
|
11
|
+
=============================================================================
|
|
12
|
+
|
|
13
|
+
QUANDO USAR: Criado pelo /plan do primeiro setup ou feature. Atualizado por cada /plan e /dev.
|
|
14
|
+
|
|
15
|
+
COMO ATUALIZAR:
|
|
16
|
+
- Ao criar nova feature (/plan) → adicionar linha na tabela com contadores zerados
|
|
17
|
+
- Ao concluir tasks (/dev) → atualizar contadores
|
|
18
|
+
- Ao concluir feature (/merge-delta) → status "concluído" ou "done"
|
|
19
|
+
|
|
20
|
+
ÁREAS SÃO DINÂMICAS:
|
|
21
|
+
- Colunas de área mudam conforme o projeto (BANCO, BACK, FRONT, DOC, INFRA, MOBILE...)
|
|
22
|
+
- Cada feature pode ter áreas diferentes
|
|
23
|
+
- Usar "—" quando uma feature não tem tasks naquela área
|
|
24
|
+
|
|
25
|
+
STATUS USA O VALOR DO .context.md:
|
|
26
|
+
- not_started, extract_done, approved, design_done, plan_done, dev_in_progress, dev_done, done
|
|
27
|
+
|
|
28
|
+
=============================================================================
|
|
29
|
+
-->
|
|
30
|
+
|
|
31
|
+
## Resumo
|
|
32
|
+
|
|
33
|
+
| # | Feature | Status | {{AREA_1}} | {{AREA_2}} | {{AREA_N}} | Última atualização |
|
|
34
|
+
|---|---------|--------|------------|------------|------------|-------------------|
|
|
35
|
+
| 1 | {{NOME}} | {{status}} | 0/N | 0/N | 0/N | {{data}} |
|
|
36
|
+
|
|
37
|
+
<!-- Exemplo preenchido:
|
|
38
|
+
| 1 | setup_projeto | plan_done | BANCO: 0/7 | BACK: 0/10 | FRONT: 0/3 | DOC: 0/8 | 2026-04-08 |
|
|
39
|
+
| 2 | feat_cadastro_cliente | extract_done | — | — | — | — | 2026-04-09 |
|
|
40
|
+
-->
|
|
41
|
+
|
|
42
|
+
## Legenda de Status
|
|
43
|
+
|
|
44
|
+
| Status | Significado |
|
|
45
|
+
|--------|-------------|
|
|
46
|
+
| `not_started` | Pipeline iniciado, aguardando extração |
|
|
47
|
+
| `extract_done` | PRD/TRD gerado, aguardando aprovação |
|
|
48
|
+
| `approved` | Documento aprovado |
|
|
49
|
+
| `design_done` | SDD gerado |
|
|
50
|
+
| `plan_done` | Tasks geradas, pronto para /dev |
|
|
51
|
+
| `dev_in_progress` | /dev em execução |
|
|
52
|
+
| `dev_done` | Todas tasks concluídas |
|
|
53
|
+
| `done` | Delta specs mergeadas (features) ou docs gerados (setup) |
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
> **Atualização**: Cada skill atualiza este arquivo ao criar ou concluir features.
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# Arquitetura
|
|
2
|
-
|
|
3
|
-
> C4 Níveis 2-3 — Containers, componentes, comunicação e padrões adotados.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<!--
|
|
8
|
-
=============================================================================
|
|
9
|
-
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
10
|
-
=============================================================================
|
|
11
|
-
|
|
12
|
-
ORIGEM: Gerado pelo /setup-projeto a partir do TRD §3.
|
|
13
|
-
ATUALIZAÇÃO: /merge-delta quando features adicionam containers, componentes significativos ou novos padrões.
|
|
14
|
-
|
|
15
|
-
COMO GERAR:
|
|
16
|
-
1. Ler TRD §3 (Arquitetura) — containers, padrões de comunicação, padrões de design
|
|
17
|
-
2. Ler Stack.md — tecnologias já definidas para cada container
|
|
18
|
-
3. Criar diagrama textual C4 Nível 2 (containers e suas conexões)
|
|
19
|
-
4. Para cada container: listar componentes internos (C4 Nível 3)
|
|
20
|
-
5. Documentar padrões de comunicação (sync/async, protocolos)
|
|
21
|
-
6. Documentar padrões de design com justificativa
|
|
22
|
-
|
|
23
|
-
REGRAS:
|
|
24
|
-
- Diagrama deve mostrar TODOS os containers e suas conexões
|
|
25
|
-
- Cada container deve ter: tecnologia, responsabilidade, porta
|
|
26
|
-
- Padrões de design precisam de justificativa (não apenas nome)
|
|
27
|
-
- Se o sistema usa filas/eventos: documentar tópicos e consumers
|
|
28
|
-
- Componentes são internos ao container — não confundir com containers
|
|
29
|
-
|
|
30
|
-
=============================================================================
|
|
31
|
-
-->
|
|
32
|
-
|
|
33
|
-
## Diagrama de Containers (C4 Nível 2)
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
<!-- Representação textual dos containers e suas conexões -->
|
|
37
|
-
<!-- Usar formato: [Container] --protocolo--> [Container] -->
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
## Containers
|
|
41
|
-
|
|
42
|
-
| Container | Tecnologia | Responsabilidade | Porta | Comunicação |
|
|
43
|
-
|-----------|-----------|-----------------|-------|-------------|
|
|
44
|
-
| | | | | |
|
|
45
|
-
|
|
46
|
-
## Componentes Principais (C4 Nível 3)
|
|
47
|
-
|
|
48
|
-
<!-- Repetir esta seção para cada container que tenha componentes internos relevantes -->
|
|
49
|
-
|
|
50
|
-
### {{Container}}
|
|
51
|
-
|
|
52
|
-
| Componente | Responsabilidade | Dependências internas | Dependências externas |
|
|
53
|
-
|------------|-----------------|----------------------|----------------------|
|
|
54
|
-
| | | | |
|
|
55
|
-
|
|
56
|
-
## Padrões de Comunicação
|
|
57
|
-
|
|
58
|
-
### Síncrona (request/response)
|
|
59
|
-
|
|
60
|
-
| De | Para | Protocolo | Formato | Observações |
|
|
61
|
-
|----|------|-----------|---------|-------------|
|
|
62
|
-
| | | | | |
|
|
63
|
-
|
|
64
|
-
### Assíncrona (eventos/filas)
|
|
65
|
-
|
|
66
|
-
| Produtor | Tópico/Fila | Consumer | Formato | Garantia |
|
|
67
|
-
|----------|-------------|----------|---------|----------|
|
|
68
|
-
| | | | | at-least-once / exactly-once |
|
|
69
|
-
|
|
70
|
-
## Padrões de Design Adotados
|
|
71
|
-
|
|
72
|
-
| Padrão | Onde é usado | Justificativa | Ref ADR |
|
|
73
|
-
|--------|-------------|---------------|---------|
|
|
74
|
-
| | | | |
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Changelog
|
|
79
|
-
|
|
80
|
-
| Data | Feature | Tipo | Descrição |
|
|
81
|
-
|------|---------|------|-----------|
|
|
82
|
-
| | | | |
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
# Infraestrutura
|
|
2
|
-
|
|
3
|
-
> Ambientes, deploy, CI/CD, variáveis de ambiente, domínios e estratégia de rollback.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<!--
|
|
8
|
-
=============================================================================
|
|
9
|
-
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
10
|
-
=============================================================================
|
|
11
|
-
|
|
12
|
-
ORIGEM: Gerado pelo /setup-projeto a partir do TRD §6.
|
|
13
|
-
ATUALIZAÇÃO: /merge-delta quando features adicionam variáveis de ambiente, serviços ou mudam infra.
|
|
14
|
-
|
|
15
|
-
COMO GERAR:
|
|
16
|
-
1. Ler TRD §6 (Infraestrutura) — ambientes, deploy, CI/CD
|
|
17
|
-
2. Listar TODOS os ambientes com URLs e propósitos
|
|
18
|
-
3. Pipeline CI/CD deve ser concreto (passos reais, não genéricos)
|
|
19
|
-
4. Variáveis de ambiente: NUNCA colocar valores reais (só exemplos)
|
|
20
|
-
5. Estratégia de rollback é OBRIGATÓRIA
|
|
21
|
-
|
|
22
|
-
REGRAS:
|
|
23
|
-
- Variáveis de ambiente com valores reais NÃO vão pro repositório
|
|
24
|
-
- Cada variável precisa de descrição (não só o nome)
|
|
25
|
-
- Pipeline CI/CD deve ter passos claros e ferramentas definidas
|
|
26
|
-
- Rollback strategy obrigatória — "como voltar se der errado?"
|
|
27
|
-
- Novas variáveis adicionadas via merge-delta devem entrar na tabela
|
|
28
|
-
|
|
29
|
-
=============================================================================
|
|
30
|
-
-->
|
|
31
|
-
|
|
32
|
-
## Ambientes
|
|
33
|
-
|
|
34
|
-
| Ambiente | URL | Banco | Propósito | Branch |
|
|
35
|
-
|----------|-----|-------|-----------|--------|
|
|
36
|
-
| Local | `localhost:{{PORT}}` | local | Desenvolvimento | qualquer |
|
|
37
|
-
| Staging | | | Testes e homologação | develop |
|
|
38
|
-
| Produção | | | Usuários finais | main |
|
|
39
|
-
|
|
40
|
-
## Deploy
|
|
41
|
-
|
|
42
|
-
### Estratégia
|
|
43
|
-
|
|
44
|
-
| Aspecto | Decisão |
|
|
45
|
-
|---------|---------|
|
|
46
|
-
| Plataforma | <!-- Docker? Serverless? VPS? Cloud provider? --> |
|
|
47
|
-
| Orquestração | <!-- Kubernetes? ECS? PM2? --> |
|
|
48
|
-
| Build | <!-- Docker multi-stage? Build nativo? --> |
|
|
49
|
-
| Estratégia de deploy | <!-- Rolling? Blue-green? Canary? --> |
|
|
50
|
-
|
|
51
|
-
### Pipeline CI/CD
|
|
52
|
-
|
|
53
|
-
```
|
|
54
|
-
push → lint → test → build → deploy(staging) → aprovação → deploy(prod)
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
| Etapa | Ferramenta | Trigger | Timeout |
|
|
58
|
-
|-------|-----------|---------|---------|
|
|
59
|
-
| Lint | <!-- eslint, ruff --> | push | |
|
|
60
|
-
| Testes | <!-- jest, pytest --> | push | |
|
|
61
|
-
| Build | <!-- docker build --> | push em main/develop | |
|
|
62
|
-
| Deploy staging | <!-- CD tool --> | push em develop | |
|
|
63
|
-
| Deploy produção | <!-- CD tool --> | aprovação manual | |
|
|
64
|
-
|
|
65
|
-
### Rollback
|
|
66
|
-
|
|
67
|
-
| Cenário | Procedimento | Responsável |
|
|
68
|
-
|---------|-------------|-------------|
|
|
69
|
-
| Bug em produção | <!-- Reverter deploy? Hotfix? --> | |
|
|
70
|
-
| Migration com erro | <!-- Rollback da migration? --> | |
|
|
71
|
-
| Serviço externo fora | <!-- Fallback? Circuit breaker? --> | |
|
|
72
|
-
|
|
73
|
-
## Variáveis de Ambiente
|
|
74
|
-
|
|
75
|
-
> NUNCA colocar valores reais aqui. Apenas nomes, descrição e exemplos.
|
|
76
|
-
|
|
77
|
-
| Variável | Ambientes | Obrigatória | Descrição | Exemplo |
|
|
78
|
-
|----------|-----------|-------------|-----------|---------|
|
|
79
|
-
| `DATABASE_URL` | todos | sim | Conexão com banco | `postgres://user:pass@host:5432/db` |
|
|
80
|
-
| `JWT_SECRET` | todos | sim | Chave de assinatura JWT | `sua-chave-secreta-aqui` |
|
|
81
|
-
| `NODE_ENV` | todos | sim | Ambiente atual | `development` / `production` |
|
|
82
|
-
|
|
83
|
-
## Domínios e DNS
|
|
84
|
-
|
|
85
|
-
| Domínio | Aponta para | Certificado | Gerenciado por |
|
|
86
|
-
|---------|-------------|-------------|----------------|
|
|
87
|
-
| | | <!-- Let's Encrypt? AWS ACM? --> | |
|
|
88
|
-
|
|
89
|
-
## Monitoramento e Observabilidade
|
|
90
|
-
|
|
91
|
-
| Aspecto | Ferramenta | O que monitora |
|
|
92
|
-
|---------|-----------|----------------|
|
|
93
|
-
| Logs | <!-- Ex: CloudWatch, Datadog --> | |
|
|
94
|
-
| APM | <!-- Ex: New Relic, Sentry --> | |
|
|
95
|
-
| Uptime | <!-- Ex: Pingdom, UptimeRobot --> | |
|
|
96
|
-
| Alertas | <!-- Ex: PagerDuty, Slack --> | |
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## Changelog
|
|
101
|
-
|
|
102
|
-
| Data | Feature | Tipo | Descrição |
|
|
103
|
-
|------|---------|------|-----------|
|
|
104
|
-
| | | | |
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
# Modelo de Dados
|
|
2
|
-
|
|
3
|
-
> Schema completo, relações, índices, convenções de nomenclatura e estratégia de migrations.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<!--
|
|
8
|
-
=============================================================================
|
|
9
|
-
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
10
|
-
=============================================================================
|
|
11
|
-
|
|
12
|
-
ORIGEM: Gerado pelo /setup-projeto a partir do TRD §4.
|
|
13
|
-
ATUALIZAÇÃO: /merge-delta a cada feature que adiciona/altera tabelas (Delta Specs do SDD §3 e §11).
|
|
14
|
-
|
|
15
|
-
COMO GERAR:
|
|
16
|
-
1. Ler TRD §4 (Modelo de Dados Base) — tabelas iniciais, convenções
|
|
17
|
-
2. Gerar diagrama ER textual com TODAS as relações
|
|
18
|
-
3. Para cada tabela: campos com tipos EXATOS (varchar(255), não "string")
|
|
19
|
-
4. Convenções de nomenclatura são FIXAS após setup — não mudam por feature
|
|
20
|
-
5. Estratégia de migrations deve ser concreta (ferramenta, naming, rollback)
|
|
21
|
-
|
|
22
|
-
REGRAS:
|
|
23
|
-
- Tipos devem ser do banco escolhido (PostgreSQL, MySQL, etc.), não genéricos
|
|
24
|
-
- Toda FK deve ter ON DELETE/ON UPDATE definido
|
|
25
|
-
- Índices precisam de justificativa (query que justifica)
|
|
26
|
-
- Convenções definidas aqui são LEI — SDDs e tasks seguem à risca
|
|
27
|
-
- Diagrama ER deve ser atualizado a cada merge-delta
|
|
28
|
-
|
|
29
|
-
=============================================================================
|
|
30
|
-
-->
|
|
31
|
-
|
|
32
|
-
## Diagrama ER
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
<!-- Representação textual do ER -->
|
|
36
|
-
<!-- Formato: [tabela_a] 1---N [tabela_b] (campo_fk) -->
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Convenções de Nomenclatura
|
|
40
|
-
|
|
41
|
-
| Elemento | Convenção | Exemplo |
|
|
42
|
-
|----------|-----------|---------|
|
|
43
|
-
| Tabelas | snake_case, plural | `clientes`, `pedidos` |
|
|
44
|
-
| Colunas | snake_case | `nome_completo`, `criado_em` |
|
|
45
|
-
| PKs | `id` (UUID ou SERIAL) | `id UUID PRIMARY KEY DEFAULT gen_random_uuid()` |
|
|
46
|
-
| FKs | `{tabela_singular}_id` | `cliente_id`, `cidade_id` |
|
|
47
|
-
| Índices | `idx_{tabela}_{colunas}` | `idx_clientes_cpf` |
|
|
48
|
-
| Unique | `uq_{tabela}_{colunas}` | `uq_clientes_email` |
|
|
49
|
-
| Timestamps | `criado_em`, `atualizado_em` | `TIMESTAMPTZ NOT NULL DEFAULT now()` |
|
|
50
|
-
| Soft delete | `ativo` (boolean) | `ativo BOOLEAN DEFAULT true` |
|
|
51
|
-
| Auditoria | `criado_por`, `atualizado_por` | `UUID REFERENCES usuarios(id)` |
|
|
52
|
-
|
|
53
|
-
## Catálogo de Tabelas
|
|
54
|
-
|
|
55
|
-
<!-- Repetir bloco para cada tabela -->
|
|
56
|
-
|
|
57
|
-
### {{tabela}}
|
|
58
|
-
|
|
59
|
-
> Descrição breve da tabela.
|
|
60
|
-
|
|
61
|
-
| Coluna | Tipo | Nullable | Default | Constraint | Descrição |
|
|
62
|
-
|--------|------|----------|---------|------------|-----------|
|
|
63
|
-
| | | | | | |
|
|
64
|
-
|
|
65
|
-
**Relações:**
|
|
66
|
-
- `campo_id` → `tabela_ref(id)` — ON DELETE CASCADE / SET NULL / RESTRICT
|
|
67
|
-
|
|
68
|
-
**Índices:**
|
|
69
|
-
|
|
70
|
-
| Nome | Colunas | Tipo | Justificativa |
|
|
71
|
-
|------|---------|------|---------------|
|
|
72
|
-
| | | btree / unique / gin | <!-- Qual query justifica este índice? --> |
|
|
73
|
-
|
|
74
|
-
## Estratégia de Migrations
|
|
75
|
-
|
|
76
|
-
| Aspecto | Convenção |
|
|
77
|
-
|---------|-----------|
|
|
78
|
-
| Ferramenta | <!-- Ex: knex, prisma, flyway, alembic --> |
|
|
79
|
-
| Nomenclatura | <!-- Ex: 001_create_tabela.sql, YYYYMMDD_descricao --> |
|
|
80
|
-
| Rollback | <!-- Toda migration TEM rollback? Testado como? --> |
|
|
81
|
-
| Execução | <!-- Sequencial? Transacional? --> |
|
|
82
|
-
| Dados existentes | <!-- Como lidar com migrations em tabelas com dados? --> |
|
|
83
|
-
|
|
84
|
-
## Regras Globais de Dados
|
|
85
|
-
|
|
86
|
-
| Regra | Descrição |
|
|
87
|
-
|-------|-----------|
|
|
88
|
-
| Soft delete | <!-- Todas as tabelas usam? Quais exceções? --> |
|
|
89
|
-
| Auditoria | <!-- criado_por/atualizado_por em todas? --> |
|
|
90
|
-
| Timestamps | <!-- criado_em/atualizado_em obrigatórios? --> |
|
|
91
|
-
| Encoding | <!-- UTF-8? Collation? --> |
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## Changelog
|
|
96
|
-
|
|
97
|
-
| Data | Feature | Tipo | Descrição |
|
|
98
|
-
|------|---------|------|-----------|
|
|
99
|
-
| | | | |
|