spec-first-copilot 0.7.0-beta.1 → 0.7.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 +252 -167
- package/bin/cli.js +70 -70
- package/lib/init.js +92 -92
- package/lib/update.js +132 -132
- package/package.json +1 -1
- package/templates/.ai/memory/napkin.md +68 -68
- package/templates/.github/CHANGELOG.md +560 -533
- package/templates/.github/adapters/SETUP.md +314 -314
- package/templates/.github/adapters/confluence.md +295 -295
- package/templates/.github/adapters/errors.md +234 -234
- package/templates/.github/adapters/filesystem.md +353 -353
- package/templates/.github/adapters/interface.md +301 -301
- package/templates/.github/adapters/naming.md +241 -241
- package/templates/.github/adapters/registry.md +244 -244
- 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 +66 -66
- 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 +272 -272
- package/templates/.github/instructions/docs.instructions.md +147 -145
- package/templates/.github/instructions/sensitive-files.instructions.md +32 -32
- package/templates/.github/rules.md +229 -229
- package/templates/.github/scripts/bootstrap-confluence.js +289 -289
- package/templates/.github/skills/sf-design/SKILL.md +161 -161
- package/templates/.github/skills/sf-dev/SKILL.md +204 -204
- package/templates/.github/skills/sf-discovery/SKILL.md +415 -415
- package/templates/.github/skills/sf-extract/SKILL.md +225 -225
- package/templates/.github/skills/sf-load/SKILL.md +296 -296
- package/templates/.github/skills/sf-mcp/SKILL.md +386 -386
- package/templates/.github/skills/sf-merge-docs/SKILL.md +152 -152
- package/templates/.github/skills/sf-plan/SKILL.md +152 -152
- package/templates/.github/skills/sf-publish/SKILL.md +144 -144
- package/templates/.github/skills/sf-session-finish/SKILL.md +93 -93
- package/templates/.github/skills/sf-start/SKILL.md +192 -192
- package/templates/.github/templates/estrutura/apiContracts.template.md +160 -159
- package/templates/.github/templates/estrutura/architecture.template.md +169 -168
- package/templates/.github/templates/estrutura/conventions.template.md +214 -212
- package/templates/.github/templates/estrutura/decisions.template.md +107 -107
- package/templates/.github/templates/estrutura/domain.template.md +161 -160
- package/templates/.github/templates/feature/PRD.template.md +279 -279
- package/templates/.github/templates/feature/Progresso.template.md +141 -141
- package/templates/.github/templates/feature/TRD.template.md +358 -358
- package/templates/.github/templates/feature/context.template.md +89 -89
- package/templates/.github/templates/feature/extract-log.template.md +49 -49
- package/templates/.github/templates/feature/projetos.template.yaml +79 -79
- package/templates/.github/templates/global/progresso_global.template.md +59 -57
- package/templates/.github/templates/specs/brief.template.md +66 -66
- package/templates/.github/templates/specs/contracts.template.md +147 -147
- package/templates/.github/templates/specs/scenarios.template.md +125 -125
- package/templates/.github/templates/specs/tasks.template.md +65 -65
- package/templates/_gitignore +35 -35
- package/templates/sfw.config.yml.example +147 -147
|
@@ -1,125 +1,125 @@
|
|
|
1
|
-
# Scenarios — {{NOME}}
|
|
2
|
-
|
|
3
|
-
> Critérios de aceite + fluxos + estados de UI. Fonte de verdade para o Reviewer.
|
|
4
|
-
> Gerado pelo /sf-design a partir de PRD + TRD. NUNCA editado manualmente.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<!--
|
|
9
|
-
=============================================================================
|
|
10
|
-
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
11
|
-
=============================================================================
|
|
12
|
-
|
|
13
|
-
ORIGEM: /sf-design — projeção combinada:
|
|
14
|
-
- PRD §3 Jornadas → Fluxos Happy Path
|
|
15
|
-
- PRD §8 Cenários de Sucesso/Erro → Fluxos de Erro e Edge Cases
|
|
16
|
-
- PRD §7 Telas/Fluxos UI → UI / Componentes (high-level)
|
|
17
|
-
- PRD §5 RNs + §6 Validações de Domínio → Critérios de Aceite (Given/When/Then)
|
|
18
|
-
- TRD §3 §Área-Frontend → detalhes de estados de UI (loading/empty/error/success)
|
|
19
|
-
- TRD §8 Estratégia de Testes → Estratégia de Testes
|
|
20
|
-
Critérios de Aceite ficam aqui (especiarias derivadas de RNs + jornadas).
|
|
21
|
-
|
|
22
|
-
ATUALIZAÇÃO: Sempre regenerado junto com os specs. NUNCA editado manualmente.
|
|
23
|
-
|
|
24
|
-
REGRA DE OURO: Se algo aqui diverge de PRD ou TRD, os docs source vencem.
|
|
25
|
-
Re-rode /sf-design.
|
|
26
|
-
|
|
27
|
-
TERMINOLOGIA (dois níveis de pré-condição):
|
|
28
|
-
- PRÉ-CONDIÇÕES GLOBAIS (seção no topo): estado que aplica a TODOS os cenários abaixo.
|
|
29
|
-
Ex: "sistema populado com seed", "usuário X existe em papel Y".
|
|
30
|
-
- PRÉ-CONDIÇÃO DO CA (dentro do CA): estado ADICIONAL específico daquele CA.
|
|
31
|
-
Ex: "produto com estoque = 0" em CA que testa venda sem estoque.
|
|
32
|
-
|
|
33
|
-
REGRAS DE PREENCHIMENTO:
|
|
34
|
-
- 1 CA = 1 regra de negócio testável (não agrupar múltiplas regras num CA)
|
|
35
|
-
- Cada CA DEVE ter um teste mapeado — sem teste = CA inválido
|
|
36
|
-
- Fluxos de erro têm seção própria — não esconder em "Caminhos de erro" do happy path
|
|
37
|
-
- Cada linha de "Fluxos de Erro" referencia o CA correspondente (coluna Ref CA)
|
|
38
|
-
- Feature sem frontend: seção UI/Componentes = "N/A — backend-only"
|
|
39
|
-
- Pré-condição = estado do banco/sistema, não input do usuário (input fica no When)
|
|
40
|
-
- Estratégia de testes NÃO redefine frameworks — referencia docs/architecture.md
|
|
41
|
-
|
|
42
|
-
PARA O REVIEWER:
|
|
43
|
-
- Validar que cada CA-NNN tem teste executável correspondente
|
|
44
|
-
- Usar esta tabela de estados como checklist de UI
|
|
45
|
-
- Fluxos de erro são obrigatórios no happy path test suite (não opcionais)
|
|
46
|
-
|
|
47
|
-
=============================================================================
|
|
48
|
-
-->
|
|
49
|
-
|
|
50
|
-
## Pré-condições Globais
|
|
51
|
-
|
|
52
|
-
<!-- Estado do sistema ANTES de executar os cenários abaixo. Aplicam a TODOS.
|
|
53
|
-
Exemplos: quais registros precisam existir no banco, qual papel está autenticado,
|
|
54
|
-
quais flags de feature estão ativas. Se não houver: "Estado limpo — sem pré-condições." -->
|
|
55
|
-
|
|
56
|
-
| Condição | Valor esperado |
|
|
57
|
-
|----------|---------------|
|
|
58
|
-
| | |
|
|
59
|
-
|
|
60
|
-
## Fluxos — Happy Path
|
|
61
|
-
|
|
62
|
-
<!-- 1 fluxo por entregável principal. Formato linear: quem faz o quê e qual resultado.
|
|
63
|
-
Nível suficiente para coder implementar e reviewer validar — sem narrativa extra. -->
|
|
64
|
-
|
|
65
|
-
### Fluxo: {{nome}}
|
|
66
|
-
|
|
67
|
-
| Passo | Ator | Ação / Request | Resultado / Response |
|
|
68
|
-
|-------|------|---------------|----------------------|
|
|
69
|
-
| 1 | | | |
|
|
70
|
-
| 2 | | | |
|
|
71
|
-
|
|
72
|
-
## Fluxos — Erro e Edge Cases
|
|
73
|
-
|
|
74
|
-
<!-- Desvios do happy path. Cada linha = 1 scenario testável.
|
|
75
|
-
Não omitir: são obrigatórios nos testes de integração.
|
|
76
|
-
Ref CA aponta pro CA detalhado abaixo que cobre este erro. -->
|
|
77
|
-
|
|
78
|
-
| Cenário | Pré-condição | Ação | Resposta esperada | HTTP / Código | Ref CA |
|
|
79
|
-
|---------|-------------|------|-------------------|---------------|--------|
|
|
80
|
-
| | | | | | |
|
|
81
|
-
|
|
82
|
-
## UI / Componentes
|
|
83
|
-
|
|
84
|
-
<!-- Se backend-only: escrever "N/A — feature sem frontend." e pular esta seção. -->
|
|
85
|
-
|
|
86
|
-
### {{componente}}
|
|
87
|
-
|
|
88
|
-
| Estado | Gatilho | O que exibe | Dado / Mensagem |
|
|
89
|
-
|--------|---------|-------------|-----------------|
|
|
90
|
-
| loading | | skeleton / spinner | — |
|
|
91
|
-
| empty | | | |
|
|
92
|
-
| error | | mensagem de erro | código ou texto |
|
|
93
|
-
| success | | | |
|
|
94
|
-
|
|
95
|
-
## Critérios de Aceite
|
|
96
|
-
|
|
97
|
-
<!-- 1 CA = 1 regra de negócio testável. Given/When/Then em 1 linha cada.
|
|
98
|
-
Pré-condição = estado do sistema ADICIONAL às pré-condições globais (não repetir). -->
|
|
99
|
-
|
|
100
|
-
### CA-001: {{título da regra — imperativo curto}}
|
|
101
|
-
|
|
102
|
-
- **Pré-condição**: <!-- estado adicional às globais. Ex: "produto com estoque = 0" -->
|
|
103
|
-
- **Given**: <!-- contexto do ator -->
|
|
104
|
-
- **When**: <!-- ação executada -->
|
|
105
|
-
- **Then**: <!-- resultado observável e verificável -->
|
|
106
|
-
- **Teste**: `unit|integration|e2e` — `caminho/do/arquivo_test.ext`
|
|
107
|
-
|
|
108
|
-
### CA-002: {{título}}
|
|
109
|
-
|
|
110
|
-
- **Pré-condição**:
|
|
111
|
-
- **Given**:
|
|
112
|
-
- **When**:
|
|
113
|
-
- **Then**:
|
|
114
|
-
- **Teste**:
|
|
115
|
-
|
|
116
|
-
## Estratégia de Testes
|
|
117
|
-
|
|
118
|
-
<!-- NÃO redefinir frameworks — usar os definidos em docs/architecture.md.
|
|
119
|
-
Descrever escopo e cobertura esperada para esta feature. -->
|
|
120
|
-
|
|
121
|
-
| Nível | Escopo nesta feature | Quando roda | Responsável |
|
|
122
|
-
|-------|----------------------|-------------|-------------|
|
|
123
|
-
| Unit | lógica de negócio isolada (serviços, validadores) | por task | coder |
|
|
124
|
-
| Integration | fluxo request → DB → response | por fase | coder |
|
|
125
|
-
| E2E | CAs críticos end-to-end | por feature | coder (escreve) + reviewer (valida) |
|
|
1
|
+
# Scenarios — {{NOME}}
|
|
2
|
+
|
|
3
|
+
> Critérios de aceite + fluxos + estados de UI. Fonte de verdade para o Reviewer.
|
|
4
|
+
> Gerado pelo /sf-design a partir de PRD + TRD. NUNCA editado manualmente.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!--
|
|
9
|
+
=============================================================================
|
|
10
|
+
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
11
|
+
=============================================================================
|
|
12
|
+
|
|
13
|
+
ORIGEM: /sf-design — projeção combinada:
|
|
14
|
+
- PRD §3 Jornadas → Fluxos Happy Path
|
|
15
|
+
- PRD §8 Cenários de Sucesso/Erro → Fluxos de Erro e Edge Cases
|
|
16
|
+
- PRD §7 Telas/Fluxos UI → UI / Componentes (high-level)
|
|
17
|
+
- PRD §5 RNs + §6 Validações de Domínio → Critérios de Aceite (Given/When/Then)
|
|
18
|
+
- TRD §3 §Área-Frontend → detalhes de estados de UI (loading/empty/error/success)
|
|
19
|
+
- TRD §8 Estratégia de Testes → Estratégia de Testes
|
|
20
|
+
Critérios de Aceite ficam aqui (especiarias derivadas de RNs + jornadas).
|
|
21
|
+
|
|
22
|
+
ATUALIZAÇÃO: Sempre regenerado junto com os specs. NUNCA editado manualmente.
|
|
23
|
+
|
|
24
|
+
REGRA DE OURO: Se algo aqui diverge de PRD ou TRD, os docs source vencem.
|
|
25
|
+
Re-rode /sf-design.
|
|
26
|
+
|
|
27
|
+
TERMINOLOGIA (dois níveis de pré-condição):
|
|
28
|
+
- PRÉ-CONDIÇÕES GLOBAIS (seção no topo): estado que aplica a TODOS os cenários abaixo.
|
|
29
|
+
Ex: "sistema populado com seed", "usuário X existe em papel Y".
|
|
30
|
+
- PRÉ-CONDIÇÃO DO CA (dentro do CA): estado ADICIONAL específico daquele CA.
|
|
31
|
+
Ex: "produto com estoque = 0" em CA que testa venda sem estoque.
|
|
32
|
+
|
|
33
|
+
REGRAS DE PREENCHIMENTO:
|
|
34
|
+
- 1 CA = 1 regra de negócio testável (não agrupar múltiplas regras num CA)
|
|
35
|
+
- Cada CA DEVE ter um teste mapeado — sem teste = CA inválido
|
|
36
|
+
- Fluxos de erro têm seção própria — não esconder em "Caminhos de erro" do happy path
|
|
37
|
+
- Cada linha de "Fluxos de Erro" referencia o CA correspondente (coluna Ref CA)
|
|
38
|
+
- Feature sem frontend: seção UI/Componentes = "N/A — backend-only"
|
|
39
|
+
- Pré-condição = estado do banco/sistema, não input do usuário (input fica no When)
|
|
40
|
+
- Estratégia de testes NÃO redefine frameworks — referencia docs/architecture.md
|
|
41
|
+
|
|
42
|
+
PARA O REVIEWER:
|
|
43
|
+
- Validar que cada CA-NNN tem teste executável correspondente
|
|
44
|
+
- Usar esta tabela de estados como checklist de UI
|
|
45
|
+
- Fluxos de erro são obrigatórios no happy path test suite (não opcionais)
|
|
46
|
+
|
|
47
|
+
=============================================================================
|
|
48
|
+
-->
|
|
49
|
+
|
|
50
|
+
## Pré-condições Globais
|
|
51
|
+
|
|
52
|
+
<!-- Estado do sistema ANTES de executar os cenários abaixo. Aplicam a TODOS.
|
|
53
|
+
Exemplos: quais registros precisam existir no banco, qual papel está autenticado,
|
|
54
|
+
quais flags de feature estão ativas. Se não houver: "Estado limpo — sem pré-condições." -->
|
|
55
|
+
|
|
56
|
+
| Condição | Valor esperado |
|
|
57
|
+
|----------|---------------|
|
|
58
|
+
| | |
|
|
59
|
+
|
|
60
|
+
## Fluxos — Happy Path
|
|
61
|
+
|
|
62
|
+
<!-- 1 fluxo por entregável principal. Formato linear: quem faz o quê e qual resultado.
|
|
63
|
+
Nível suficiente para coder implementar e reviewer validar — sem narrativa extra. -->
|
|
64
|
+
|
|
65
|
+
### Fluxo: {{nome}}
|
|
66
|
+
|
|
67
|
+
| Passo | Ator | Ação / Request | Resultado / Response |
|
|
68
|
+
|-------|------|---------------|----------------------|
|
|
69
|
+
| 1 | | | |
|
|
70
|
+
| 2 | | | |
|
|
71
|
+
|
|
72
|
+
## Fluxos — Erro e Edge Cases
|
|
73
|
+
|
|
74
|
+
<!-- Desvios do happy path. Cada linha = 1 scenario testável.
|
|
75
|
+
Não omitir: são obrigatórios nos testes de integração.
|
|
76
|
+
Ref CA aponta pro CA detalhado abaixo que cobre este erro. -->
|
|
77
|
+
|
|
78
|
+
| Cenário | Pré-condição | Ação | Resposta esperada | HTTP / Código | Ref CA |
|
|
79
|
+
|---------|-------------|------|-------------------|---------------|--------|
|
|
80
|
+
| | | | | | |
|
|
81
|
+
|
|
82
|
+
## UI / Componentes
|
|
83
|
+
|
|
84
|
+
<!-- Se backend-only: escrever "N/A — feature sem frontend." e pular esta seção. -->
|
|
85
|
+
|
|
86
|
+
### {{componente}}
|
|
87
|
+
|
|
88
|
+
| Estado | Gatilho | O que exibe | Dado / Mensagem |
|
|
89
|
+
|--------|---------|-------------|-----------------|
|
|
90
|
+
| loading | | skeleton / spinner | — |
|
|
91
|
+
| empty | | | |
|
|
92
|
+
| error | | mensagem de erro | código ou texto |
|
|
93
|
+
| success | | | |
|
|
94
|
+
|
|
95
|
+
## Critérios de Aceite
|
|
96
|
+
|
|
97
|
+
<!-- 1 CA = 1 regra de negócio testável. Given/When/Then em 1 linha cada.
|
|
98
|
+
Pré-condição = estado do sistema ADICIONAL às pré-condições globais (não repetir). -->
|
|
99
|
+
|
|
100
|
+
### CA-001: {{título da regra — imperativo curto}}
|
|
101
|
+
|
|
102
|
+
- **Pré-condição**: <!-- estado adicional às globais. Ex: "produto com estoque = 0" -->
|
|
103
|
+
- **Given**: <!-- contexto do ator -->
|
|
104
|
+
- **When**: <!-- ação executada -->
|
|
105
|
+
- **Then**: <!-- resultado observável e verificável -->
|
|
106
|
+
- **Teste**: `unit|integration|e2e` — `caminho/do/arquivo_test.ext`
|
|
107
|
+
|
|
108
|
+
### CA-002: {{título}}
|
|
109
|
+
|
|
110
|
+
- **Pré-condição**:
|
|
111
|
+
- **Given**:
|
|
112
|
+
- **When**:
|
|
113
|
+
- **Then**:
|
|
114
|
+
- **Teste**:
|
|
115
|
+
|
|
116
|
+
## Estratégia de Testes
|
|
117
|
+
|
|
118
|
+
<!-- NÃO redefinir frameworks — usar os definidos em docs/architecture.md.
|
|
119
|
+
Descrever escopo e cobertura esperada para esta feature. -->
|
|
120
|
+
|
|
121
|
+
| Nível | Escopo nesta feature | Quando roda | Responsável |
|
|
122
|
+
|-------|----------------------|-------------|-------------|
|
|
123
|
+
| Unit | lógica de negócio isolada (serviços, validadores) | por task | coder |
|
|
124
|
+
| Integration | fluxo request → DB → response | por fase | coder |
|
|
125
|
+
| E2E | CAs críticos end-to-end | por feature | coder (escreve) + reviewer (valida) |
|
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
# Tasks — {{NOME}}
|
|
2
|
-
|
|
3
|
-
> Plano de implementação: todas as tasks em tabela única com coluna Área.
|
|
4
|
-
> Gerado pelo /sf-plan a partir de PRD + TRD + specs/{{NOME}}/. NUNCA editado manualmente.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<!--
|
|
9
|
-
=============================================================================
|
|
10
|
-
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
11
|
-
=============================================================================
|
|
12
|
-
|
|
13
|
-
ORIGEM: /sf-plan — deriva de PRD.md + TRD.md + contracts.md + scenarios.md
|
|
14
|
-
ATUALIZAÇÃO: /sf-plan re-roda se PRD/TRD/contracts/scenarios mudarem.
|
|
15
|
-
|
|
16
|
-
STATUS: vive em workspace/Output/{{NOME}}/Progresso.md — NÃO aqui.
|
|
17
|
-
Tasks são só a definição do que precisa ser feito, não o estado atual.
|
|
18
|
-
|
|
19
|
-
CAMPOS OBRIGATÓRIOS (toda task):
|
|
20
|
-
- ID: {ÁREA}-NNN sequencial por área (DB-001, BACK-001, FRONT-001, INFRA-001)
|
|
21
|
-
- Área: derivada dos GATEs do TRD §2-§5 — dinâmica, só as áreas tocadas.
|
|
22
|
-
- Fase: número da fase de entrega (do PRD §10). 1 fase = 1 entregável = 1 PR.
|
|
23
|
-
Se scope não tem PRD (puro-técnico): toda task vai pra Fase 1.
|
|
24
|
-
- Tam: S (≤2h) | M (≤4h) | L (≤2 dias)
|
|
25
|
-
- Título: verbo imperativo + objeto ("Criar migration tabela pedidos")
|
|
26
|
-
- Repo: nome do serviço em projetos.yaml (api, web, worker...)
|
|
27
|
-
- Arquivos: paths relativos ao repo que serão criados/modificados
|
|
28
|
-
- Depende: IDs de tasks que precisam estar concluídas antes. Cross-área OK.
|
|
29
|
-
- Ref TRD: seção do TRD que originou a task (ex: "§2.1", "§4.1"). Obrigatório
|
|
30
|
-
quando existe TRD (quase sempre — scopes puro-produto são raros).
|
|
31
|
-
- Ref CA: ID do CA em scenarios.md que esta task satisfaz. Opcional
|
|
32
|
-
(INFRA costuma não ter; BACK/FRONT normalmente têm).
|
|
33
|
-
|
|
34
|
-
PARA TASKS TAMANHO L:
|
|
35
|
-
- Preencher bloco "Done When — {TASK-ID}" logo abaixo da tabela
|
|
36
|
-
- L sugere: considerar dividir em 2 tasks M (INVEST: Small)
|
|
37
|
-
- Reviewer usa "Done When" como checklist antes de aprovar
|
|
38
|
-
|
|
39
|
-
REGRAS:
|
|
40
|
-
- IDs estáveis — nunca renumerar após commit
|
|
41
|
-
- Toda task com Ref CA deve ter teste correspondente (unit ou integration)
|
|
42
|
-
- Mesma fase = podem rodar em paralelo dentro da área
|
|
43
|
-
- Fases são SEQUENCIAIS entre si
|
|
44
|
-
- Áreas são dinâmicas — preencher apenas as tocadas pela feature
|
|
45
|
-
- Fase vem do PRD §10; task sem PRD correspondente (infra pura) usa Fase 1
|
|
46
|
-
|
|
47
|
-
=============================================================================
|
|
48
|
-
-->
|
|
49
|
-
|
|
50
|
-
## Tasks
|
|
51
|
-
|
|
52
|
-
| ID | Área | Fase | Tam | Título | Repo | Arquivos | Depende de | Ref TRD | Ref CA |
|
|
53
|
-
|----|------|------|-----|--------|------|----------|-----------|---------|--------|
|
|
54
|
-
| | | | | | | | — | | — |
|
|
55
|
-
|
|
56
|
-
## Done When — Tasks L
|
|
57
|
-
|
|
58
|
-
<!-- 1 bloco por task L. Remover esta seção inteira se não houver tasks L.
|
|
59
|
-
3-5 bullets verificáveis. Cada bullet deve ser observável objetivamente. -->
|
|
60
|
-
|
|
61
|
-
### {TASK-ID}
|
|
62
|
-
|
|
63
|
-
- [ ]
|
|
64
|
-
- [ ]
|
|
65
|
-
- [ ]
|
|
1
|
+
# Tasks — {{NOME}}
|
|
2
|
+
|
|
3
|
+
> Plano de implementação: todas as tasks em tabela única com coluna Área.
|
|
4
|
+
> Gerado pelo /sf-plan a partir de PRD + TRD + specs/{{NOME}}/. NUNCA editado manualmente.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!--
|
|
9
|
+
=============================================================================
|
|
10
|
+
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
11
|
+
=============================================================================
|
|
12
|
+
|
|
13
|
+
ORIGEM: /sf-plan — deriva de PRD.md + TRD.md + contracts.md + scenarios.md
|
|
14
|
+
ATUALIZAÇÃO: /sf-plan re-roda se PRD/TRD/contracts/scenarios mudarem.
|
|
15
|
+
|
|
16
|
+
STATUS: vive em workspace/Output/{{NOME}}/Progresso.md — NÃO aqui.
|
|
17
|
+
Tasks são só a definição do que precisa ser feito, não o estado atual.
|
|
18
|
+
|
|
19
|
+
CAMPOS OBRIGATÓRIOS (toda task):
|
|
20
|
+
- ID: {ÁREA}-NNN sequencial por área (DB-001, BACK-001, FRONT-001, INFRA-001)
|
|
21
|
+
- Área: derivada dos GATEs do TRD §2-§5 — dinâmica, só as áreas tocadas.
|
|
22
|
+
- Fase: número da fase de entrega (do PRD §10). 1 fase = 1 entregável = 1 PR.
|
|
23
|
+
Se scope não tem PRD (puro-técnico): toda task vai pra Fase 1.
|
|
24
|
+
- Tam: S (≤2h) | M (≤4h) | L (≤2 dias)
|
|
25
|
+
- Título: verbo imperativo + objeto ("Criar migration tabela pedidos")
|
|
26
|
+
- Repo: nome do serviço em projetos.yaml (api, web, worker...)
|
|
27
|
+
- Arquivos: paths relativos ao repo que serão criados/modificados
|
|
28
|
+
- Depende: IDs de tasks que precisam estar concluídas antes. Cross-área OK.
|
|
29
|
+
- Ref TRD: seção do TRD que originou a task (ex: "§2.1", "§4.1"). Obrigatório
|
|
30
|
+
quando existe TRD (quase sempre — scopes puro-produto são raros).
|
|
31
|
+
- Ref CA: ID do CA em scenarios.md que esta task satisfaz. Opcional
|
|
32
|
+
(INFRA costuma não ter; BACK/FRONT normalmente têm).
|
|
33
|
+
|
|
34
|
+
PARA TASKS TAMANHO L:
|
|
35
|
+
- Preencher bloco "Done When — {TASK-ID}" logo abaixo da tabela
|
|
36
|
+
- L sugere: considerar dividir em 2 tasks M (INVEST: Small)
|
|
37
|
+
- Reviewer usa "Done When" como checklist antes de aprovar
|
|
38
|
+
|
|
39
|
+
REGRAS:
|
|
40
|
+
- IDs estáveis — nunca renumerar após commit
|
|
41
|
+
- Toda task com Ref CA deve ter teste correspondente (unit ou integration)
|
|
42
|
+
- Mesma fase = podem rodar em paralelo dentro da área
|
|
43
|
+
- Fases são SEQUENCIAIS entre si
|
|
44
|
+
- Áreas são dinâmicas — preencher apenas as tocadas pela feature
|
|
45
|
+
- Fase vem do PRD §10; task sem PRD correspondente (infra pura) usa Fase 1
|
|
46
|
+
|
|
47
|
+
=============================================================================
|
|
48
|
+
-->
|
|
49
|
+
|
|
50
|
+
## Tasks
|
|
51
|
+
|
|
52
|
+
| ID | Área | Fase | Tam | Título | Repo | Arquivos | Depende de | Ref TRD | Ref CA |
|
|
53
|
+
|----|------|------|-----|--------|------|----------|-----------|---------|--------|
|
|
54
|
+
| | | | | | | | — | | — |
|
|
55
|
+
|
|
56
|
+
## Done When — Tasks L
|
|
57
|
+
|
|
58
|
+
<!-- 1 bloco por task L. Remover esta seção inteira se não houver tasks L.
|
|
59
|
+
3-5 bullets verificáveis. Cada bullet deve ser observável objetivamente. -->
|
|
60
|
+
|
|
61
|
+
### {TASK-ID}
|
|
62
|
+
|
|
63
|
+
- [ ]
|
|
64
|
+
- [ ]
|
|
65
|
+
- [ ]
|
package/templates/_gitignore
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
# Insumos brutos do usuário — conteúdo nunca vai pro repositório
|
|
2
|
-
# A pasta workspace/Input/ existe no repo (via .gitkeep), mas seu conteúdo é ignorado
|
|
3
|
-
workspace/Input/**
|
|
4
|
-
!workspace/Input/.gitkeep
|
|
5
|
-
!workspace/Input/**/.gitkeep
|
|
6
|
-
|
|
7
|
-
# Memory pessoal (opcional — commit napkin.md se quiser compartilhar com o time)
|
|
8
|
-
# .ai/memory/napkin.md
|
|
9
|
-
|
|
10
|
-
# Repositórios de serviços (clonados/criados pelo workflow — cada um tem seu próprio .git)
|
|
11
|
-
projetos/
|
|
12
|
-
|
|
13
|
-
# MCP config — contém credenciais hardcoded (Confluence token, etc.)
|
|
14
|
-
.mcp.json
|
|
15
|
-
|
|
16
|
-
# Logs internos do workflow (append-only, gerados pelos commands)
|
|
17
|
-
.ai/load-log.md
|
|
18
|
-
.ai/publish-log.md
|
|
19
|
-
|
|
20
|
-
# IDEs
|
|
21
|
-
.vscode/
|
|
22
|
-
.idea/
|
|
23
|
-
|
|
24
|
-
# OS
|
|
25
|
-
.DS_Store
|
|
26
|
-
Thumbs.db
|
|
27
|
-
|
|
28
|
-
# Node
|
|
29
|
-
node_modules/
|
|
30
|
-
dist/
|
|
31
|
-
|
|
32
|
-
# Env
|
|
33
|
-
.env
|
|
34
|
-
.env.*
|
|
35
|
-
!.env.example
|
|
1
|
+
# Insumos brutos do usuário — conteúdo nunca vai pro repositório
|
|
2
|
+
# A pasta workspace/Input/ existe no repo (via .gitkeep), mas seu conteúdo é ignorado
|
|
3
|
+
workspace/Input/**
|
|
4
|
+
!workspace/Input/.gitkeep
|
|
5
|
+
!workspace/Input/**/.gitkeep
|
|
6
|
+
|
|
7
|
+
# Memory pessoal (opcional — commit napkin.md se quiser compartilhar com o time)
|
|
8
|
+
# .ai/memory/napkin.md
|
|
9
|
+
|
|
10
|
+
# Repositórios de serviços (clonados/criados pelo workflow — cada um tem seu próprio .git)
|
|
11
|
+
projetos/
|
|
12
|
+
|
|
13
|
+
# MCP config — contém credenciais hardcoded (Confluence token, etc.)
|
|
14
|
+
.mcp.json
|
|
15
|
+
|
|
16
|
+
# Logs internos do workflow (append-only, gerados pelos commands)
|
|
17
|
+
.ai/load-log.md
|
|
18
|
+
.ai/publish-log.md
|
|
19
|
+
|
|
20
|
+
# IDEs
|
|
21
|
+
.vscode/
|
|
22
|
+
.idea/
|
|
23
|
+
|
|
24
|
+
# OS
|
|
25
|
+
.DS_Store
|
|
26
|
+
Thumbs.db
|
|
27
|
+
|
|
28
|
+
# Node
|
|
29
|
+
node_modules/
|
|
30
|
+
dist/
|
|
31
|
+
|
|
32
|
+
# Env
|
|
33
|
+
.env
|
|
34
|
+
.env.*
|
|
35
|
+
!.env.example
|