spec-first-copilot 0.5.0-beta.0 → 0.5.0-beta.2
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 +9 -3
- package/package.json +1 -1
- package/templates/.github/agents/backend-coder.md +215 -215
- package/templates/.github/agents/db-coder.md +165 -165
- 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 +219 -194
- package/templates/.github/instructions/docs.instructions.md +123 -123
- package/templates/.github/instructions/sensitive-files.instructions.md +32 -32
- package/templates/.github/skills/sf-design/SKILL.md +209 -180
- package/templates/.github/skills/sf-dev/SKILL.md +354 -349
- package/templates/.github/skills/sf-feature/SKILL.md +130 -130
- package/templates/.github/skills/sf-plan/SKILL.md +180 -178
- package/templates/.github/skills/sf-setup-projeto/SKILL.md +123 -123
- package/templates/.github/templates/feature/PRD.template.md +256 -256
- package/templates/.github/templates/feature/Progresso.template.md +136 -136
- package/templates/.github/templates/specs/brief.template.md +47 -0
- package/templates/.github/templates/specs/contracts.template.md +82 -0
- package/templates/.github/templates/specs/scenarios.template.md +79 -0
- package/templates/.github/templates/specs/tasks.template.md +61 -0
- package/templates/.github/templates/feature/tasks.template.md +0 -115
- /package/templates/{docs → specs}/.gitkeep +0 -0
|
@@ -1,136 +1,136 @@
|
|
|
1
|
-
# Progresso — {{FEATURE}}
|
|
2
|
-
|
|
3
|
-
> Visão consolidada do andamento da feature.
|
|
4
|
-
> Organizado por **fases de entrega** — cada fase é um entregável independente.
|
|
5
|
-
> Atualizado automaticamente pelo /dev a cada task concluída.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Status Geral: `não iniciado`
|
|
10
|
-
|
|
11
|
-
<!-- não iniciado → em desenvolvimento → em revisão → concluído → arquivado -->
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
<!--
|
|
16
|
-
=============================================================================
|
|
17
|
-
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
18
|
-
=============================================================================
|
|
19
|
-
|
|
20
|
-
COMO GERAR ESTE ARQUIVO:
|
|
21
|
-
|
|
22
|
-
1. Ler PRD §11 (Fases de Entrega) para definir as fases
|
|
23
|
-
2. Ler TODOS os
|
|
24
|
-
3. Para cada FASE DE ENTREGA, listar as áreas e contagem de tasks
|
|
25
|
-
4. A visão primária é POR FASE, não por área
|
|
26
|
-
|
|
27
|
-
COMO ATUALIZAR:
|
|
28
|
-
|
|
29
|
-
- O /dev atualiza após cada task concluída
|
|
30
|
-
- Status por fase: ⬜ pendente → 🔄 em andamento → ✅ concluída
|
|
31
|
-
- Fase concluída = todas tasks de todas áreas daquela fase estão [x]
|
|
32
|
-
- Ao concluir uma fase: registrar no Histórico + abrir PR
|
|
33
|
-
|
|
34
|
-
=============================================================================
|
|
35
|
-
-->
|
|
36
|
-
|
|
37
|
-
## Fases de Entrega
|
|
38
|
-
|
|
39
|
-
| Fase | Nome | Prioridade | Entregável | Status | Tasks |
|
|
40
|
-
|------|------|-----------|------------|--------|-------|
|
|
41
|
-
| 1 | {{Nome}} | P1 | {{Entregável}} | ⬜ pendente | 0/{{N}} |
|
|
42
|
-
| 2 | {{Nome}} | P1 | {{Entregável}} | ⬜ pendente | 0/{{N}} |
|
|
43
|
-
| 3 | {{Nome}} | P2 | {{Entregável}} | ⬜ pendente | 0/{{N}} |
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## Fase 1 — {{Nome}} [P1]
|
|
48
|
-
|
|
49
|
-
> **Entregável**: {{O que o usuário pode usar}}
|
|
50
|
-
> **Critério de done**: {{Testes E2E que devem passar}}
|
|
51
|
-
> **Branch**: `feature/{{FEATURE}}_fase1`
|
|
52
|
-
> **PR**: (a ser criado)
|
|
53
|
-
|
|
54
|
-
### Tasks por área
|
|
55
|
-
|
|
56
|
-
#### {{AREA_1}} ({{N}} tasks)
|
|
57
|
-
|
|
58
|
-
| Task | Descrição | Tamanho | Repo | Status |
|
|
59
|
-
|------|-----------|---------|------|--------|
|
|
60
|
-
| AREA-001 | | S/M/L | {{repo}} | ⬜ |
|
|
61
|
-
|
|
62
|
-
#### {{AREA_2}} ({{N}} tasks)
|
|
63
|
-
|
|
64
|
-
| Task | Descrição | Tamanho | Repo | Status |
|
|
65
|
-
|------|-----------|---------|------|--------|
|
|
66
|
-
| AREA-001 | | S/M/L | {{repo}} | ⬜ |
|
|
67
|
-
|
|
68
|
-
### Resumo Fase 1
|
|
69
|
-
|
|
70
|
-
| Área | Total | Feitas | % |
|
|
71
|
-
|------|-------|--------|---|
|
|
72
|
-
| {{AREA_1}} | {{N}} | 0 | 0% |
|
|
73
|
-
| {{AREA_2}} | {{N}} | 0 | 0% |
|
|
74
|
-
| **Total Fase 1** | **{{N}}** | **0** | **0%** |
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Fase 2 — {{Nome}} [P1]
|
|
79
|
-
|
|
80
|
-
> **Entregável**: {{...}}
|
|
81
|
-
> **Depende de**: Fase 1 concluída
|
|
82
|
-
|
|
83
|
-
<!-- Repetir mesma estrutura -->
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## Totais Gerais
|
|
88
|
-
|
|
89
|
-
| Fase | Total | Feitas | % |
|
|
90
|
-
|------|-------|--------|---|
|
|
91
|
-
| Fase 1 | {{N}} | 0 | 0% |
|
|
92
|
-
| Fase 2 | {{N}} | 0 | 0% |
|
|
93
|
-
| **Total** | **{{N}}** | **0** | **0%** |
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## Ordem de Execução
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
Fase 1:
|
|
101
|
-
1. INFRA (setup de repos/ambiente)
|
|
102
|
-
2. BANCO (schema/migrations)
|
|
103
|
-
3. BACK (endpoints) ← pode paralelizar com FRONT após BANCO
|
|
104
|
-
4. FRONT (telas)
|
|
105
|
-
→ PR Fase 1 + testes manuais + merge
|
|
106
|
-
|
|
107
|
-
Fase 2:
|
|
108
|
-
1. BANCO (novas tabelas/migrations)
|
|
109
|
-
2. BACK (endpoints + regras)
|
|
110
|
-
3. FRONT (telas + integração)
|
|
111
|
-
→ PR Fase 2 + testes manuais + merge
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
---
|
|
115
|
-
|
|
116
|
-
## Histórico
|
|
117
|
-
|
|
118
|
-
| Data | Evento | Detalhes |
|
|
119
|
-
|------|--------|----------|
|
|
120
|
-
| | Feature criada | PRD aprovado, SDD gerado |
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## Pós-conclusão (por fase)
|
|
125
|
-
|
|
126
|
-
- [ ] PR aberto com template detalhado
|
|
127
|
-
- [ ] Ambiente local rodando para testes manuais
|
|
128
|
-
- [ ] Testes automatizados passando (unit + integration + security)
|
|
129
|
-
- [ ] Usuário aprovou e fez merge
|
|
130
|
-
|
|
131
|
-
## Pós-conclusão (feature completa)
|
|
132
|
-
|
|
133
|
-
- [ ] Todas fases concluídas e mergeadas
|
|
134
|
-
- [ ] Mergear Delta Specs (SDD §11) nos docs de `docs/`
|
|
135
|
-
- [ ] Atualizar `workspace/Output/progresso.md` (visão global)
|
|
136
|
-
- [ ] Atualizar `.ai/memory/napkin.md` se houver aprendizado relevante
|
|
1
|
+
# Progresso — {{FEATURE}}
|
|
2
|
+
|
|
3
|
+
> Visão consolidada do andamento da feature.
|
|
4
|
+
> Organizado por **fases de entrega** — cada fase é um entregável independente.
|
|
5
|
+
> Atualizado automaticamente pelo /dev a cada task concluída.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Status Geral: `não iniciado`
|
|
10
|
+
|
|
11
|
+
<!-- não iniciado → em desenvolvimento → em revisão → concluído → arquivado -->
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
<!--
|
|
16
|
+
=============================================================================
|
|
17
|
+
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
18
|
+
=============================================================================
|
|
19
|
+
|
|
20
|
+
COMO GERAR ESTE ARQUIVO:
|
|
21
|
+
|
|
22
|
+
1. Ler PRD §11 (Fases de Entrega) para definir as fases
|
|
23
|
+
2. Ler TODOS os specs/{nome}/tasks.md da feature
|
|
24
|
+
3. Para cada FASE DE ENTREGA, listar as áreas e contagem de tasks
|
|
25
|
+
4. A visão primária é POR FASE, não por área
|
|
26
|
+
|
|
27
|
+
COMO ATUALIZAR:
|
|
28
|
+
|
|
29
|
+
- O /dev atualiza após cada task concluída
|
|
30
|
+
- Status por fase: ⬜ pendente → 🔄 em andamento → ✅ concluída
|
|
31
|
+
- Fase concluída = todas tasks de todas áreas daquela fase estão [x]
|
|
32
|
+
- Ao concluir uma fase: registrar no Histórico + abrir PR
|
|
33
|
+
|
|
34
|
+
=============================================================================
|
|
35
|
+
-->
|
|
36
|
+
|
|
37
|
+
## Fases de Entrega
|
|
38
|
+
|
|
39
|
+
| Fase | Nome | Prioridade | Entregável | Status | Tasks |
|
|
40
|
+
|------|------|-----------|------------|--------|-------|
|
|
41
|
+
| 1 | {{Nome}} | P1 | {{Entregável}} | ⬜ pendente | 0/{{N}} |
|
|
42
|
+
| 2 | {{Nome}} | P1 | {{Entregável}} | ⬜ pendente | 0/{{N}} |
|
|
43
|
+
| 3 | {{Nome}} | P2 | {{Entregável}} | ⬜ pendente | 0/{{N}} |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Fase 1 — {{Nome}} [P1]
|
|
48
|
+
|
|
49
|
+
> **Entregável**: {{O que o usuário pode usar}}
|
|
50
|
+
> **Critério de done**: {{Testes E2E que devem passar}}
|
|
51
|
+
> **Branch**: `feature/{{FEATURE}}_fase1`
|
|
52
|
+
> **PR**: (a ser criado)
|
|
53
|
+
|
|
54
|
+
### Tasks por área
|
|
55
|
+
|
|
56
|
+
#### {{AREA_1}} ({{N}} tasks)
|
|
57
|
+
|
|
58
|
+
| Task | Descrição | Tamanho | Repo | Status |
|
|
59
|
+
|------|-----------|---------|------|--------|
|
|
60
|
+
| AREA-001 | | S/M/L | {{repo}} | ⬜ |
|
|
61
|
+
|
|
62
|
+
#### {{AREA_2}} ({{N}} tasks)
|
|
63
|
+
|
|
64
|
+
| Task | Descrição | Tamanho | Repo | Status |
|
|
65
|
+
|------|-----------|---------|------|--------|
|
|
66
|
+
| AREA-001 | | S/M/L | {{repo}} | ⬜ |
|
|
67
|
+
|
|
68
|
+
### Resumo Fase 1
|
|
69
|
+
|
|
70
|
+
| Área | Total | Feitas | % |
|
|
71
|
+
|------|-------|--------|---|
|
|
72
|
+
| {{AREA_1}} | {{N}} | 0 | 0% |
|
|
73
|
+
| {{AREA_2}} | {{N}} | 0 | 0% |
|
|
74
|
+
| **Total Fase 1** | **{{N}}** | **0** | **0%** |
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Fase 2 — {{Nome}} [P1]
|
|
79
|
+
|
|
80
|
+
> **Entregável**: {{...}}
|
|
81
|
+
> **Depende de**: Fase 1 concluída
|
|
82
|
+
|
|
83
|
+
<!-- Repetir mesma estrutura -->
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Totais Gerais
|
|
88
|
+
|
|
89
|
+
| Fase | Total | Feitas | % |
|
|
90
|
+
|------|-------|--------|---|
|
|
91
|
+
| Fase 1 | {{N}} | 0 | 0% |
|
|
92
|
+
| Fase 2 | {{N}} | 0 | 0% |
|
|
93
|
+
| **Total** | **{{N}}** | **0** | **0%** |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Ordem de Execução
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
Fase 1:
|
|
101
|
+
1. INFRA (setup de repos/ambiente)
|
|
102
|
+
2. BANCO (schema/migrations)
|
|
103
|
+
3. BACK (endpoints) ← pode paralelizar com FRONT após BANCO
|
|
104
|
+
4. FRONT (telas)
|
|
105
|
+
→ PR Fase 1 + testes manuais + merge
|
|
106
|
+
|
|
107
|
+
Fase 2:
|
|
108
|
+
1. BANCO (novas tabelas/migrations)
|
|
109
|
+
2. BACK (endpoints + regras)
|
|
110
|
+
3. FRONT (telas + integração)
|
|
111
|
+
→ PR Fase 2 + testes manuais + merge
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Histórico
|
|
117
|
+
|
|
118
|
+
| Data | Evento | Detalhes |
|
|
119
|
+
|------|--------|----------|
|
|
120
|
+
| | Feature criada | PRD aprovado, SDD gerado |
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Pós-conclusão (por fase)
|
|
125
|
+
|
|
126
|
+
- [ ] PR aberto com template detalhado
|
|
127
|
+
- [ ] Ambiente local rodando para testes manuais
|
|
128
|
+
- [ ] Testes automatizados passando (unit + integration + security)
|
|
129
|
+
- [ ] Usuário aprovou e fez merge
|
|
130
|
+
|
|
131
|
+
## Pós-conclusão (feature completa)
|
|
132
|
+
|
|
133
|
+
- [ ] Todas fases concluídas e mergeadas
|
|
134
|
+
- [ ] Mergear Delta Specs (SDD §11) nos docs de `docs/`
|
|
135
|
+
- [ ] Atualizar `workspace/Output/progresso.md` (visão global)
|
|
136
|
+
- [ ] Atualizar `.ai/memory/napkin.md` se houver aprendizado relevante
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Brief — {{NOME}}
|
|
2
|
+
|
|
3
|
+
> Projeção estruturada do SDD para consumo do agent coder.
|
|
4
|
+
> Gerado automaticamente pelo /sf-design a partir do SDD em `workspace/Output/{{NOME}}/sdd.md`.
|
|
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 do SDD §1 Visão geral + §2 Decisões + §10 Fora do escopo.
|
|
14
|
+
ATUALIZAÇÃO: Sempre regenerado junto com o SDD. NUNCA editado manualmente.
|
|
15
|
+
|
|
16
|
+
REGRA DE OURO: Se algo aqui diverge do SDD, o SDD vence. Re-rode /sf-design.
|
|
17
|
+
|
|
18
|
+
O brief é o "por quê" + "o quê" destilado. Sem narrativa longa — bullets objetivos.
|
|
19
|
+
O coder lê o brief pra contexto, mas não deriva código daqui.
|
|
20
|
+
Contratos ficam em contracts.md. Cenários ficam em scenarios.md.
|
|
21
|
+
|
|
22
|
+
=============================================================================
|
|
23
|
+
-->
|
|
24
|
+
|
|
25
|
+
## Problema
|
|
26
|
+
|
|
27
|
+
<!-- 2-3 frases. O que está faltando/quebrado que essa feature resolve. -->
|
|
28
|
+
|
|
29
|
+
## Solução
|
|
30
|
+
|
|
31
|
+
<!-- High level: como estamos resolvendo. Não é design técnico. -->
|
|
32
|
+
|
|
33
|
+
## Escopo
|
|
34
|
+
|
|
35
|
+
### Dentro
|
|
36
|
+
-
|
|
37
|
+
|
|
38
|
+
### Fora
|
|
39
|
+
-
|
|
40
|
+
|
|
41
|
+
## Decisões principais
|
|
42
|
+
|
|
43
|
+
<!-- Mini-ADRs inline — cada decisão com justificativa em 1 linha. -->
|
|
44
|
+
|
|
45
|
+
| # | Decisão | Justificativa |
|
|
46
|
+
|---|---------|---------------|
|
|
47
|
+
| 1 | | |
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Contracts — {{NOME}}
|
|
2
|
+
|
|
3
|
+
> Projeção estruturada do SDD para consumo do agent coder.
|
|
4
|
+
> Gerado automaticamente pelo /sf-design a partir do SDD em `workspace/Output/{{NOME}}/sdd.md`.
|
|
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 do SDD §3 Modelo de dados + §4 Regras/validações
|
|
14
|
+
+ §5 Endpoints API + §8 Integrações externas.
|
|
15
|
+
ATUALIZAÇÃO: Sempre regenerado junto com o SDD. NUNCA editado manualmente.
|
|
16
|
+
|
|
17
|
+
REGRA DE OURO: Se algo aqui diverge do SDD, o SDD vence. Re-rode /sf-design.
|
|
18
|
+
|
|
19
|
+
O contracts.md é o "o que construir" — contratos executáveis.
|
|
20
|
+
Tipos exatos do banco (não "string"). Request/response JSON completos.
|
|
21
|
+
Regras de negócio com RN-NNN e enforcement points.
|
|
22
|
+
|
|
23
|
+
=============================================================================
|
|
24
|
+
-->
|
|
25
|
+
|
|
26
|
+
## Dados
|
|
27
|
+
|
|
28
|
+
<!-- Entidades, tabelas, campos, constraints, índices.
|
|
29
|
+
Tipos EXATOS do banco escolhido (varchar(255), não "string"). -->
|
|
30
|
+
|
|
31
|
+
### {{tabela}}
|
|
32
|
+
|
|
33
|
+
| Coluna | Tipo | Nullable | Default | Constraint |
|
|
34
|
+
|--------|------|----------|---------|------------|
|
|
35
|
+
| | | | | |
|
|
36
|
+
|
|
37
|
+
**Relações:**
|
|
38
|
+
- `campo_id` → `tabela_ref(id)` ON DELETE ...
|
|
39
|
+
|
|
40
|
+
**Índices:**
|
|
41
|
+
- `idx_nome` em `(colunas)` — justificativa
|
|
42
|
+
|
|
43
|
+
## API
|
|
44
|
+
|
|
45
|
+
<!-- Endpoints com contratos JSON completos. -->
|
|
46
|
+
|
|
47
|
+
### {{método}} {{rota}}
|
|
48
|
+
|
|
49
|
+
**Auth**: <!-- Bearer / público / role -->
|
|
50
|
+
**Rate limit**: <!-- categoria -->
|
|
51
|
+
|
|
52
|
+
**Request:**
|
|
53
|
+
```json
|
|
54
|
+
{}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Response 200:**
|
|
58
|
+
```json
|
|
59
|
+
{}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Errors:**
|
|
63
|
+
| Status | Code | Quando |
|
|
64
|
+
|--------|------|--------|
|
|
65
|
+
| 400 | | |
|
|
66
|
+
| 422 | | |
|
|
67
|
+
|
|
68
|
+
## Integrações externas
|
|
69
|
+
|
|
70
|
+
<!-- Sistemas terceiros que essa feature consome/notifica. -->
|
|
71
|
+
|
|
72
|
+
| Sistema | Direção | Protocolo | Timeout | Retry | Fallback |
|
|
73
|
+
|---------|---------|-----------|---------|-------|----------|
|
|
74
|
+
| | | | | | |
|
|
75
|
+
|
|
76
|
+
## Regras de negócio
|
|
77
|
+
|
|
78
|
+
<!-- RN-NNN com ponto de enforcement (DB constraint, service, middleware, etc). -->
|
|
79
|
+
|
|
80
|
+
| ID | Regra | Enforcement | Error code |
|
|
81
|
+
|----|-------|-------------|------------|
|
|
82
|
+
| RN-001 | | | |
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Scenarios — {{NOME}}
|
|
2
|
+
|
|
3
|
+
> Projeção estruturada do SDD para consumo do agent coder e reviewer.
|
|
4
|
+
> Gerado automaticamente pelo /sf-design a partir do SDD em `workspace/Output/{{NOME}}/sdd.md`.
|
|
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 do SDD §6 Componentes/telas + §7 Fluxos de dados
|
|
14
|
+
+ §9 Estratégia de testes + Critérios de aceite.
|
|
15
|
+
ATUALIZAÇÃO: Sempre regenerado junto com o SDD. NUNCA editado manualmente.
|
|
16
|
+
|
|
17
|
+
REGRA DE OURO: Se algo aqui diverge do SDD, o SDD vence. Re-rode /sf-design.
|
|
18
|
+
|
|
19
|
+
O scenarios.md é o "como validar que funciona" — Given/When/Then testáveis,
|
|
20
|
+
fluxos usuário→front→back, estados de UI (loading/empty/error/success).
|
|
21
|
+
|
|
22
|
+
O REVIEWER usa este arquivo pra validar critérios de aceite após implementação.
|
|
23
|
+
Cada CA-NNN deve ser mapeável a um teste executável.
|
|
24
|
+
|
|
25
|
+
=============================================================================
|
|
26
|
+
-->
|
|
27
|
+
|
|
28
|
+
## Fluxos principais
|
|
29
|
+
|
|
30
|
+
<!-- Sequências usuário → front → back → resposta. Caminhos de erro inclusos. -->
|
|
31
|
+
|
|
32
|
+
### Fluxo: {{nome}}
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
usuário → [ação] → front → [request] → back → [validação+persistência] → resposta
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Caminhos de erro:**
|
|
39
|
+
- Erro X → resposta Y
|
|
40
|
+
- Timeout → retry / fallback
|
|
41
|
+
|
|
42
|
+
## UI / Componentes
|
|
43
|
+
|
|
44
|
+
<!-- Telas e componentes principais com seus estados. -->
|
|
45
|
+
|
|
46
|
+
### {{componente}}
|
|
47
|
+
|
|
48
|
+
| Estado | Gatilho | Visual |
|
|
49
|
+
|--------|---------|--------|
|
|
50
|
+
| loading | | |
|
|
51
|
+
| empty | | |
|
|
52
|
+
| error | | |
|
|
53
|
+
| success | | |
|
|
54
|
+
|
|
55
|
+
## Critérios de Aceite
|
|
56
|
+
|
|
57
|
+
<!-- Given/When/Then. Cada CA deve ser mapeável a um teste. -->
|
|
58
|
+
|
|
59
|
+
### CA-001: {{título curto}}
|
|
60
|
+
|
|
61
|
+
- **Given**: estado inicial
|
|
62
|
+
- **When**: ação
|
|
63
|
+
- **Then**: resultado esperado
|
|
64
|
+
- **Teste**: `tipo` — `arquivo_de_teste.ext`
|
|
65
|
+
|
|
66
|
+
### CA-002: {{título curto}}
|
|
67
|
+
|
|
68
|
+
- **Given**:
|
|
69
|
+
- **When**:
|
|
70
|
+
- **Then**:
|
|
71
|
+
- **Teste**:
|
|
72
|
+
|
|
73
|
+
## Estratégia de testes
|
|
74
|
+
|
|
75
|
+
| Nível | Framework | O que testa | Onde rodam |
|
|
76
|
+
|-------|-----------|-------------|------------|
|
|
77
|
+
| Unit | | lógica isolada | por task |
|
|
78
|
+
| Integration | | entre componentes | por fase |
|
|
79
|
+
| E2E | | CAs completos | por feature |
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Tasks — {{NOME}}
|
|
2
|
+
|
|
3
|
+
> Plano de implementação único. Todas as tasks em uma tabela com coluna Área.
|
|
4
|
+
> Gerado pelo /sf-plan a partir do SDD + specs/{{NOME}}/.
|
|
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 sdd.md + contracts.md + scenarios.md
|
|
14
|
+
ATUALIZAÇÃO: /sf-plan re-roda se SDD/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.
|
|
18
|
+
|
|
19
|
+
CAMPOS OBRIGATÓRIOS:
|
|
20
|
+
- ID: {ÁREA}-NNN sequencial por área (BANCO-001, BACK-001, FRONT-001, INFRA-001)
|
|
21
|
+
- Área: BANCO | BACK | FRONT | INFRA | DOC
|
|
22
|
+
- Fase: número da fase de entrega (entregáveis contínuos)
|
|
23
|
+
- Tamanho: S (≤2h) | M (meio dia) | L (1-2 dias)
|
|
24
|
+
- Título: ação no imperativo ("Criar tabela clientes")
|
|
25
|
+
- Repo: nome do serviço no projetos.yaml (api, web, worker...)
|
|
26
|
+
- Arquivos: caminhos que a task vai criar/modificar (relativos ao repo)
|
|
27
|
+
- Depende de: outros IDs — cross-area OK
|
|
28
|
+
- Ref spec: seção do SDD que define essa task
|
|
29
|
+
- Ref CA: ID do critério de aceite em scenarios.md (se aplica)
|
|
30
|
+
|
|
31
|
+
REGRAS:
|
|
32
|
+
- IDs estáveis — nunca renumerar após commit
|
|
33
|
+
- Depends_on cross-area é OK (BACK-001 depende de BANCO-001)
|
|
34
|
+
- Toda task deve ter pelo menos 1 teste (unit + optional integration)
|
|
35
|
+
- Tarefas da mesma fase/área rodam em sequência, fases são sequenciais
|
|
36
|
+
|
|
37
|
+
=============================================================================
|
|
38
|
+
-->
|
|
39
|
+
|
|
40
|
+
## Tasks
|
|
41
|
+
|
|
42
|
+
| ID | Área | Fase | Tam | Título | Repo | Arquivos | Depende de | Ref spec | Ref CA |
|
|
43
|
+
|----|------|------|-----|--------|------|----------|-----------|----------|--------|
|
|
44
|
+
| BANCO-001 | BANCO | 1 | S | | | | — | SDD §3.1 | — |
|
|
45
|
+
| BACK-001 | BACK | 1 | M | | | | BANCO-001 | SDD §5.1 | CA-001 |
|
|
46
|
+
|
|
47
|
+
## Regras por área
|
|
48
|
+
|
|
49
|
+
<!-- Convenções específicas extraídas do SDD + docs/ (architecture, domain, conventions). -->
|
|
50
|
+
|
|
51
|
+
### BANCO
|
|
52
|
+
-
|
|
53
|
+
|
|
54
|
+
### BACK
|
|
55
|
+
-
|
|
56
|
+
|
|
57
|
+
### FRONT
|
|
58
|
+
-
|
|
59
|
+
|
|
60
|
+
### INFRA
|
|
61
|
+
-
|
|
@@ -1,115 +0,0 @@
|
|
|
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
|
|
File without changes
|