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.
- package/README.md +38 -30
- package/lib/init.js +2 -2
- package/package.json +31 -23
- package/templates/.ai/memory/napkin.md +1 -1
- package/templates/.github/agents/db-coder.md +1 -1
- package/templates/.github/agents/doc-writer.md +12 -15
- package/templates/.github/agents/security-reviewer.md +1 -1
- package/templates/.github/copilot-instructions.md +61 -43
- package/templates/.github/instructions/docs.instructions.md +12 -12
- package/templates/.github/instructions/sensitive-files.instructions.md +10 -10
- package/templates/{docs/Desenvolvimento → .github}/rules.md +2 -2
- package/templates/.github/skills/sf-design/SKILL.md +26 -27
- package/templates/.github/skills/sf-dev/SKILL.md +30 -7
- package/templates/.github/skills/sf-discovery/SKILL.md +405 -405
- package/templates/.github/skills/sf-extract/SKILL.md +9 -9
- package/templates/.github/skills/sf-feature/SKILL.md +21 -21
- package/templates/.github/skills/sf-merge-delta/SKILL.md +21 -18
- package/templates/.github/skills/sf-plan/SKILL.md +8 -8
- package/templates/.github/skills/{sf-pausar → sf-session-finish}/SKILL.md +10 -10
- package/templates/.github/skills/sf-setup-projeto/SKILL.md +20 -20
- package/templates/{docs/_templates/estrutura/API.template.md → .github/templates/estrutura/apiContracts.template.md} +24 -17
- package/templates/.github/templates/estrutura/architecture.template.md +158 -0
- package/templates/{docs/_templates/estrutura/Seguranca.template.md → .github/templates/estrutura/conventions.template.md} +74 -10
- package/templates/{docs/_templates/estrutura/ADRs.template.md → .github/templates/estrutura/decisions.template.md} +21 -13
- 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 +2 -2
- package/templates/{docs/_templates → .github/templates}/feature/TRD.template.md +204 -200
- package/templates/{docs/_templates → .github/templates}/feature/context.template.md +1 -1
- package/templates/{docs/_templates → .github/templates}/feature/projetos.template.yaml +1 -1
- 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/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/_templates → .github/templates}/feature/backlog-extraido.template.md +0 -0
- /package/templates/{docs/_templates → .github/templates}/feature/extract-log.template.md +0 -0
- /package/templates/{docs/_templates → .github/templates}/global/progresso_global.template.md +0 -0
- /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,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
|
-
| | | | |
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
# Stack Tecnológica
|
|
2
|
-
|
|
3
|
-
> Tecnologias escolhidas, versões fixadas, e alternativas descartadas com justificativa.
|
|
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 §2.
|
|
13
|
-
ATUALIZAÇÃO: /merge-delta quando features introduzem novas tecnologias ou mudanças de stack (raro — deve gerar ADR).
|
|
14
|
-
|
|
15
|
-
COMO GERAR:
|
|
16
|
-
1. Ler TRD §2 (Stack e Tecnologias) — todas decisões de tech
|
|
17
|
-
2. Preencher TODAS as camadas, mesmo que "a definir"
|
|
18
|
-
3. Para cada tecnologia: versão EXATA (não "latest")
|
|
19
|
-
4. Justificativa deve ser técnica, não "é popular"
|
|
20
|
-
5. Alternativas descartadas: documentar POR QUE foram rejeitadas (evita rediscussão)
|
|
21
|
-
|
|
22
|
-
REGRAS:
|
|
23
|
-
- Versões devem ser fixadas (ex: "18.3.1", não "^18.0.0")
|
|
24
|
-
- Cada biblioteca/pacote precisa de justificativa (evita bloat)
|
|
25
|
-
- Alternativas descartadas previnem que o time rediscuta decisões já tomadas
|
|
26
|
-
- Mudanças de stack DEVEM gerar ADR em ADRs.md
|
|
27
|
-
- Camadas são dinâmicas — adicionar conforme necessidade (mobile, infra, etc.)
|
|
28
|
-
|
|
29
|
-
=============================================================================
|
|
30
|
-
-->
|
|
31
|
-
|
|
32
|
-
## Stack Principal
|
|
33
|
-
|
|
34
|
-
| Camada | Tecnologia | Versão | Justificativa |
|
|
35
|
-
|--------|-----------|--------|---------------|
|
|
36
|
-
| Frontend | | | |
|
|
37
|
-
| Backend | | | |
|
|
38
|
-
| Banco de Dados | | | |
|
|
39
|
-
| ORM/Query Builder | | | |
|
|
40
|
-
| Autenticação | | | |
|
|
41
|
-
| Testes | | | |
|
|
42
|
-
| CI/CD | | | |
|
|
43
|
-
|
|
44
|
-
<!-- Adicionar camadas conforme necessidade: Mobile, Cache, Fila, Monitoramento, etc. -->
|
|
45
|
-
|
|
46
|
-
## Bibliotecas e Dependências
|
|
47
|
-
|
|
48
|
-
<!-- Repetir seção para cada camada que tenha dependências relevantes -->
|
|
49
|
-
|
|
50
|
-
### {{Camada}}
|
|
51
|
-
|
|
52
|
-
| Pacote | Versão | Para quê | Alternativa descartada |
|
|
53
|
-
|--------|--------|----------|----------------------|
|
|
54
|
-
| | | | |
|
|
55
|
-
|
|
56
|
-
## Alternativas Descartadas
|
|
57
|
-
|
|
58
|
-
> Decisões já tomadas. Se alguém perguntar "por que não usamos X?", a resposta está aqui.
|
|
59
|
-
|
|
60
|
-
| Tecnologia escolhida | Alternativa considerada | Por que descartamos | Ref ADR |
|
|
61
|
-
|----------------------|------------------------|---------------------|---------|
|
|
62
|
-
| | | | |
|
|
63
|
-
|
|
64
|
-
## Convenções de Versionamento
|
|
65
|
-
|
|
66
|
-
| Aspecto | Convenção |
|
|
67
|
-
|---------|-----------|
|
|
68
|
-
| Versionamento | <!-- Semver? Pinned? --> |
|
|
69
|
-
| Lock files | <!-- package-lock.json? yarn.lock? --> |
|
|
70
|
-
| Atualização | <!-- Dependabot? Manual? Periodicidade? --> |
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## Changelog
|
|
75
|
-
|
|
76
|
-
| Data | Feature | Tipo | Descrição |
|
|
77
|
-
|------|---------|------|-----------|
|
|
78
|
-
| | | | |
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# Visão do Sistema
|
|
2
|
-
|
|
3
|
-
> C4 Nível 1 — Contexto do sistema: o que é, quem usa, com o que integra, quais restrições existem.
|
|
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 §1.
|
|
13
|
-
ATUALIZAÇÃO: /merge-delta quando features alteram contexto global (novos atores, integrações, restrições).
|
|
14
|
-
|
|
15
|
-
COMO GERAR:
|
|
16
|
-
1. Ler TRD §1 (Visão do Sistema) — é a fonte primária
|
|
17
|
-
2. Ler TRD §8 (Módulos Planejados) — alimenta o Roadmap
|
|
18
|
-
3. Descrever o sistema em 2-3 frases objetivas (sem jargão de marketing)
|
|
19
|
-
4. Listar TODOS os atores e papéis mencionados nos insumos
|
|
20
|
-
5. Listar TODAS as integrações externas com direção clara
|
|
21
|
-
6. Glossário: termos de domínio que o time precisa compartilhar (DDD ubiquitous language)
|
|
22
|
-
|
|
23
|
-
REGRAS:
|
|
24
|
-
- Descrição do sistema deve responder: O QUE faz, PARA QUEM, QUAL PROBLEMA resolve
|
|
25
|
-
- Atores devem ter permissões gerais claras (o que pode E o que NÃO pode)
|
|
26
|
-
- Integrações devem ter direção explícita (envia/recebe/ambos)
|
|
27
|
-
- Glossário não é opcional — termos ambíguos geram bugs
|
|
28
|
-
|
|
29
|
-
=============================================================================
|
|
30
|
-
-->
|
|
31
|
-
|
|
32
|
-
## O que é este sistema?
|
|
33
|
-
|
|
34
|
-
<!-- Descrição em 2-3 frases. O que ele faz, para quem, qual problema resolve. -->
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
## Usuários e Papéis
|
|
38
|
-
|
|
39
|
-
| Papel | O que faz | O que NÃO pode fazer | Nível de acesso |
|
|
40
|
-
|-------|-----------|----------------------|-----------------|
|
|
41
|
-
| | | | |
|
|
42
|
-
|
|
43
|
-
## Integrações Externas
|
|
44
|
-
|
|
45
|
-
| Sistema/Serviço | Tipo (API/Webhook/Arquivo/Fila) | Direção (Envia/Recebe/Ambos) | Descrição | SLA/Disponibilidade |
|
|
46
|
-
|-----------------|--------------------------------|------------------------------|-----------|---------------------|
|
|
47
|
-
| | | | | |
|
|
48
|
-
|
|
49
|
-
## Restrições e Premissas
|
|
50
|
-
|
|
51
|
-
### Restrições técnicas
|
|
52
|
-
-
|
|
53
|
-
|
|
54
|
-
### Restrições de negócio
|
|
55
|
-
-
|
|
56
|
-
|
|
57
|
-
### Premissas
|
|
58
|
-
-
|
|
59
|
-
|
|
60
|
-
## Roadmap de Módulos
|
|
61
|
-
|
|
62
|
-
> Extraído do TRD §8. Visão de alto nível das funcionalidades planejadas.
|
|
63
|
-
|
|
64
|
-
| # | Módulo | Prioridade | Dependências | Status |
|
|
65
|
-
|---|--------|-----------|--------------|--------|
|
|
66
|
-
| | | | | planejado / em desenvolvimento / concluído |
|
|
67
|
-
|
|
68
|
-
## Glossário
|
|
69
|
-
|
|
70
|
-
> Termos do domínio usados em todo o projeto. Linguagem ubíqua (DDD).
|
|
71
|
-
|
|
72
|
-
| Termo | Definição | Exemplo de uso |
|
|
73
|
-
|-------|-----------|----------------|
|
|
74
|
-
| | | |
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Changelog
|
|
79
|
-
|
|
80
|
-
| Data | Feature | Tipo | Descrição |
|
|
81
|
-
|------|---------|------|-----------|
|
|
82
|
-
| | | | |
|
/package/templates/{docs/_templates → .github/templates}/feature/backlog-extraido.template.md
RENAMED
|
File without changes
|
|
File without changes
|
/package/templates/{docs/_templates → .github/templates}/global/progresso_global.template.md
RENAMED
|
File without changes
|
|
File without changes
|