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
@@ -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/Estrutura
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/Estrutura/ — 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
+ # 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
- | | | | |