spec-first-copilot 0.4.0 → 0.5.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +156 -148
- package/bin/cli.js +52 -52
- package/lib/init.js +89 -89
- package/package.json +11 -4
- package/templates/.ai/memory/napkin.md +68 -68
- package/templates/.github/agents/backend-coder.md +215 -215
- package/templates/.github/agents/db-coder.md +165 -165
- package/templates/.github/agents/doc-writer.md +48 -51
- package/templates/.github/agents/frontend-coder.md +222 -222
- package/templates/.github/agents/infra-coder.md +341 -341
- package/templates/.github/agents/reviewer.md +99 -99
- package/templates/.github/agents/security-reviewer.md +153 -153
- package/templates/.github/copilot-instructions.md +194 -175
- package/templates/.github/instructions/docs.instructions.md +123 -123
- package/templates/.github/instructions/sensitive-files.instructions.md +32 -32
- package/templates/{docs/Desenvolvimento → .github}/rules.md +229 -229
- package/templates/.github/skills/sf-design/SKILL.md +180 -181
- package/templates/.github/skills/sf-dev/SKILL.md +349 -349
- package/templates/.github/skills/sf-discovery/SKILL.md +405 -405
- package/templates/.github/skills/sf-extract/SKILL.md +284 -284
- package/templates/.github/skills/sf-feature/SKILL.md +130 -130
- package/templates/.github/skills/sf-merge-delta/SKILL.md +145 -142
- package/templates/.github/skills/sf-plan/SKILL.md +178 -178
- package/templates/.github/skills/sf-session-finish/SKILL.md +120 -120
- package/templates/.github/skills/sf-setup-projeto/SKILL.md +123 -123
- package/templates/{docs/_templates/estrutura/API.template.md → .github/templates/estrutura/apiContracts.template.md} +151 -144
- package/templates/.github/templates/estrutura/architecture.template.md +158 -0
- package/templates/{docs/_templates/estrutura/Seguranca.template.md → .github/templates/estrutura/conventions.template.md} +202 -138
- package/templates/{docs/_templates/estrutura/ADRs.template.md → .github/templates/estrutura/decisions.template.md} +99 -91
- package/templates/.github/templates/estrutura/domain.template.md +148 -0
- package/templates/{docs/_templates → .github/templates}/feature/PRD.template.md +256 -256
- package/templates/{docs/_templates → .github/templates}/feature/Progresso.template.md +136 -136
- package/templates/{docs/_templates → .github/templates}/feature/TRD.template.md +204 -200
- package/templates/{docs/_templates → .github/templates}/feature/backlog-extraido.template.md +154 -154
- package/templates/{docs/_templates → .github/templates}/feature/context.template.md +42 -42
- package/templates/{docs/_templates → .github/templates}/feature/extract-log.template.md +38 -38
- package/templates/{docs/_templates → .github/templates}/feature/projetos.template.yaml +73 -73
- package/templates/{docs/_templates → .github/templates}/feature/sdd.template.md +372 -372
- package/templates/{docs/_templates → .github/templates}/feature/tasks.template.md +115 -115
- package/templates/{docs/_templates → .github/templates}/global/progresso_global.template.md +57 -57
- package/templates/docs/_templates/estrutura/Arquitetura.template.md +0 -82
- package/templates/docs/_templates/estrutura/Infraestrutura.template.md +0 -104
- package/templates/docs/_templates/estrutura/Modelo_Dados.template.md +0 -99
- package/templates/docs/_templates/estrutura/Stack.template.md +0 -78
- package/templates/docs/_templates/estrutura/Visao.template.md +0 -82
- /package/templates/docs/{Desenvolvimento/.gitkeep → .gitkeep} +0 -0
- /package/templates/{docs/Estrutura → workspace/Input}/.gitkeep +0 -0
- /package/templates/{docs/PM → workspace/Input/setup_projeto}/.gitkeep +0 -0
- /package/templates/{docs/PM/setup_projeto → workspace/Output}/.gitkeep +0 -0
|
@@ -1,256 +1,256 @@
|
|
|
1
|
-
# PRD — {{FEATURE}}
|
|
2
|
-
## Product Requirements Document
|
|
3
|
-
|
|
4
|
-
> **Artefato gerado pela IA** a partir do processamento de todos os insumos em `
|
|
5
|
-
> Este é o checkpoint de extração — o usuário DEVE revisar e aprovar antes de prosseguir.
|
|
6
|
-
> Todos os documentos subsequentes (SDD, tasks) são gerados a partir DESTE arquivo.
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Meta
|
|
11
|
-
|
|
12
|
-
| Campo | Valor |
|
|
13
|
-
|-------|-------|
|
|
14
|
-
| Feature | `{{FEATURE}}` |
|
|
15
|
-
| Status | `em extração` → `aguardando revisão` → `aprovado` |
|
|
16
|
-
| Insumos processados | {{LISTA_INSUMOS}} |
|
|
17
|
-
| Gerado em | |
|
|
18
|
-
| Aprovado em | |
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
<!--
|
|
23
|
-
=============================================================================
|
|
24
|
-
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
25
|
-
=============================================================================
|
|
26
|
-
|
|
27
|
-
QUANDO USAR: Gerado pelo /extract (chamado via /feature).
|
|
28
|
-
QUEM GERA: Agent Analyzer (Opus) a partir dos outputs dos Readers (Sonnet).
|
|
29
|
-
|
|
30
|
-
COMO GERAR:
|
|
31
|
-
1. Readers (Sonnet) leem cada arquivo do PM/ individualmente e catalogam por seção
|
|
32
|
-
2. Analyzer (Opus) recebe todos os outputs e:
|
|
33
|
-
a. Consolida em visão unificada
|
|
34
|
-
b. Cruza informações entre fontes — detecta contradições
|
|
35
|
-
c. Identifica gaps — seções sem informação viram ambiguidades
|
|
36
|
-
d. Gera este documento seguindo as 14 seções fixas
|
|
37
|
-
3. Ler `docs
|
|
38
|
-
4. Para cada informação, registrar DE QUAL insumo veio (rastreabilidade §14)
|
|
39
|
-
5. Se faltam dados para preencher uma seção → pergunta BLOQUEANTE em §13
|
|
40
|
-
|
|
41
|
-
FORMATOS DE INSUMO (o que extrair de cada):
|
|
42
|
-
- .txt, .md → requisitos, regras, contexto, restrições
|
|
43
|
-
- .sql → entidades, campos, tipos, constraints, índices, relações
|
|
44
|
-
- .html → telas, campos (data-field), ações (data-action),
|
|
45
|
-
validações (data-validation), rotas (data-route),
|
|
46
|
-
permissões (data-permission), estados (data-state)
|
|
47
|
-
- .xml (drawio) → fluxos, decisões, atores, sequências
|
|
48
|
-
- .csv → dados tabulares, mapeamentos
|
|
49
|
-
- .png, .jpg, .pdf → wireframes, mockups (análise visual)
|
|
50
|
-
- Outros → extrair o que for relevante — nunca ignorar
|
|
51
|
-
|
|
52
|
-
REGRAS DA EXTRAÇÃO:
|
|
53
|
-
- Categorias FIXAS (as 15 seções abaixo) — não inventar novas
|
|
54
|
-
- §11 Fases de Entrega é OBRIGATÓRIO — organizar funcionalidades em fases incrementais
|
|
55
|
-
Se existe backlog_extraido.md, usar como referência para as fases
|
|
56
|
-
Princípio: entregáveis contínuos, cada fase entrega valor e pode ir pra produção
|
|
57
|
-
- Regras de negócio com IDs únicos e ESTÁVEIS (RN-001, RN-002...)
|
|
58
|
-
→ IDs nunca renumeram após criação. Em re-extração, novos continuam sequência
|
|
59
|
-
- Ambiguidades como perguntas diretas — BLOQUEANTES
|
|
60
|
-
- SEM texto narrativo — apenas informação estruturada em tabelas e listas
|
|
61
|
-
- Rastreabilidade: de qual arquivo veio cada informação
|
|
62
|
-
- Nunca INFERIR regra de negócio — se não está explícito, é ambiguidade
|
|
63
|
-
- Contradição entre fontes → gerar ambiguidade citando os dois arquivos
|
|
64
|
-
|
|
65
|
-
RE-EXTRAÇÃO:
|
|
66
|
-
- Merge ADITIVO com PRD existente (não sobrescrever)
|
|
67
|
-
- Seções afetadas marcadas com <!-- ATUALIZADO: re-extração ISO_DATE -->
|
|
68
|
-
- IDs de regras continuam sequência existente
|
|
69
|
-
|
|
70
|
-
=============================================================================
|
|
71
|
-
-->
|
|
72
|
-
|
|
73
|
-
## 1. Contexto e Motivação
|
|
74
|
-
|
|
75
|
-
### Qual problema resolve?
|
|
76
|
-
<!-- POR QUÊ essa feature existe — extraído dos insumos -->
|
|
77
|
-
|
|
78
|
-
### Como funciona hoje?
|
|
79
|
-
<!-- Estado ATUAL — o que existe, como é feito, quais os problemas -->
|
|
80
|
-
|
|
81
|
-
### Estado desejado
|
|
82
|
-
<!-- O que muda com essa feature — o delta é o escopo real -->
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## 2. Atores e Permissões
|
|
87
|
-
|
|
88
|
-
| Ator | O que pode fazer | O que NÃO pode fazer |
|
|
89
|
-
|------|------------------|----------------------|
|
|
90
|
-
| | | |
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
## 3. Entidades e Modelo de Dados
|
|
95
|
-
|
|
96
|
-
> Extraído de: arquivos `.sql`, protótipos, texto livre.
|
|
97
|
-
|
|
98
|
-
| Entidade | Campos principais | Tipo dos campos | Relações |
|
|
99
|
-
|----------|-------------------|-----------------|----------|
|
|
100
|
-
| | | | |
|
|
101
|
-
|
|
102
|
-
### Índices e constraints identificados
|
|
103
|
-
-
|
|
104
|
-
|
|
105
|
-
### Histórico / Auditoria
|
|
106
|
-
-
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
## 4. Jornadas do Usuário
|
|
111
|
-
|
|
112
|
-
> Extraído de: protótipos HTML, textos, fluxos.
|
|
113
|
-
|
|
114
|
-
### Jornada 1: {{NOME}}
|
|
115
|
-
| Passo | Ator | Ação | Resultado esperado |
|
|
116
|
-
|-------|------|------|--------------------|
|
|
117
|
-
| 1 | | | |
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
## 5. Regras de Negócio
|
|
122
|
-
|
|
123
|
-
> Extraídas de TODOS os insumos. Cada regra deve ser clara, testável e ter ID único.
|
|
124
|
-
|
|
125
|
-
| ID | Regra | Fonte | Testável? |
|
|
126
|
-
|----|-------|-------|-----------|
|
|
127
|
-
| RN-001 | | {{arquivo_fonte}} | Sim/Não |
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
|
-
## 6. Validações
|
|
132
|
-
|
|
133
|
-
> Extraídas de: protótipos (`data-validation`), `.sql` (constraints), texto.
|
|
134
|
-
|
|
135
|
-
| Campo | Validações | Obrigatório? | Máscara | Fonte |
|
|
136
|
-
|-------|-----------|--------------|---------|-------|
|
|
137
|
-
| | | | | |
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## 7. Telas e Componentes UI
|
|
142
|
-
|
|
143
|
-
> Extraídos de: protótipos HTML (`data-field`, `data-action`, `data-route`, `data-state`).
|
|
144
|
-
|
|
145
|
-
### Tela 1: {{NOME}}
|
|
146
|
-
- **Rota**:
|
|
147
|
-
- **Campos**: (extraídos dos `data-field`)
|
|
148
|
-
- **Ações**: (extraídas dos `data-action`)
|
|
149
|
-
- **Navegação**: (extraída dos `data-route`)
|
|
150
|
-
- **Estados**: (extraídos dos `data-state`)
|
|
151
|
-
- **Permissões por elemento**: (extraídos dos `data-permission`)
|
|
152
|
-
|
|
153
|
-
---
|
|
154
|
-
|
|
155
|
-
## 8. Integrações Externas
|
|
156
|
-
|
|
157
|
-
| Serviço | Método | Quando é chamado | O que envia | O que recebe | Fallback |
|
|
158
|
-
|---------|--------|------------------|-------------|--------------|----------|
|
|
159
|
-
| | | | | | |
|
|
160
|
-
|
|
161
|
-
---
|
|
162
|
-
|
|
163
|
-
## 9. Cenários de Erro
|
|
164
|
-
|
|
165
|
-
| # | Cenário | Causa | Comportamento esperado | Fonte |
|
|
166
|
-
|---|---------|-------|----------------------|-------|
|
|
167
|
-
| 1 | | | | |
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
## 10. Requisitos Não-Funcionais
|
|
172
|
-
|
|
173
|
-
| Aspecto | Requisito | Fonte |
|
|
174
|
-
|---------|-----------|-------|
|
|
175
|
-
| Volume esperado | | |
|
|
176
|
-
| Performance | | |
|
|
177
|
-
| Disponibilidade | | |
|
|
178
|
-
| Acessibilidade | | |
|
|
179
|
-
|
|
180
|
-
---
|
|
181
|
-
|
|
182
|
-
## 11. Fases de Entrega
|
|
183
|
-
|
|
184
|
-
> Princípio: **entregáveis contínuos** — cada fase entrega valor e pode ir pra produção.
|
|
185
|
-
> Fases são sequenciais por dependência. Cada uma tem entregável testável.
|
|
186
|
-
> Se o `/extract` foi precedido por um roadmap (backlog_extraido.md), usar as fases como base.
|
|
187
|
-
|
|
188
|
-
### Fase 1 — {{Nome}} [P1]
|
|
189
|
-
|
|
190
|
-
> **Entregável**: {{O que o usuário pode usar ao final}}
|
|
191
|
-
> **Critério de done**: {{Como validar — testes E2E que devem passar}}
|
|
192
|
-
|
|
193
|
-
| # | Funcionalidade | Entidades | Regras | Jornadas |
|
|
194
|
-
|---|---------------|-----------|--------|----------|
|
|
195
|
-
| 1 | | | RN-NNN | Jornada N |
|
|
196
|
-
|
|
197
|
-
### Fase 2 — {{Nome}} [P1]
|
|
198
|
-
|
|
199
|
-
> **Entregável**: {{...}}
|
|
200
|
-
> **Critério de done**: {{...}}
|
|
201
|
-
> **Depende de**: Fase 1
|
|
202
|
-
|
|
203
|
-
| # | Funcionalidade | Entidades | Regras | Jornadas |
|
|
204
|
-
|---|---------------|-----------|--------|----------|
|
|
205
|
-
| 1 | | | | |
|
|
206
|
-
|
|
207
|
-
<!-- Repetir fases conforme necessário. Máximo 4-5 fases. -->
|
|
208
|
-
|
|
209
|
-
### Visão geral
|
|
210
|
-
|
|
211
|
-
| Fase | Nome | Prioridade | Entregável | Depende de |
|
|
212
|
-
|------|------|-----------|------------|------------|
|
|
213
|
-
| 1 | | P1 | | — |
|
|
214
|
-
| 2 | | P1 | | Fase 1 |
|
|
215
|
-
|
|
216
|
-
---
|
|
217
|
-
|
|
218
|
-
## 12. Dependências
|
|
219
|
-
|
|
220
|
-
| Dependência | Tipo | Status | Impacto se indisponível |
|
|
221
|
-
|-------------|------|--------|------------------------|
|
|
222
|
-
| | feature / serviço / tabela | pronto / pendente | |
|
|
223
|
-
|
|
224
|
-
---
|
|
225
|
-
|
|
226
|
-
## 13. Fora de Escopo
|
|
227
|
-
|
|
228
|
-
> Explicitamente listado — o que NÃO será feito nesta feature.
|
|
229
|
-
|
|
230
|
-
| # | Item | Motivo |
|
|
231
|
-
|---|------|--------|
|
|
232
|
-
| 1 | | futuro / outra feature / decisão do usuário |
|
|
233
|
-
|
|
234
|
-
---
|
|
235
|
-
|
|
236
|
-
## 14. Ambiguidades e Perguntas
|
|
237
|
-
|
|
238
|
-
> ⚠️ **BLOQUEANTE** — o fluxo NÃO avança até o usuário responder TODAS.
|
|
239
|
-
|
|
240
|
-
| # | Pergunta | Contexto | Fonte | Resposta do usuário |
|
|
241
|
-
|---|----------|----------|-------|---------------------|
|
|
242
|
-
| 1 | ⚠️ | | | (aguardando) |
|
|
243
|
-
|
|
244
|
-
---
|
|
245
|
-
|
|
246
|
-
## 15. Rastreabilidade — De onde veio cada informação
|
|
247
|
-
|
|
248
|
-
> Mapa de qual insumo originou qual seção. Permite auditoria da extração.
|
|
249
|
-
|
|
250
|
-
| Insumo | Tipo | O que foi extraído |
|
|
251
|
-
|--------|------|--------------------|
|
|
252
|
-
| `{{arquivo}}` | {{tipo}} | {{seções alimentadas}} |
|
|
253
|
-
|
|
254
|
-
---
|
|
255
|
-
|
|
256
|
-
> **Próximo passo**: Após aprovação do usuário, este PRD alimenta a geração do `sdd.md` e das tasks (`*_tasks.md`).
|
|
1
|
+
# PRD — {{FEATURE}}
|
|
2
|
+
## Product Requirements Document
|
|
3
|
+
|
|
4
|
+
> **Artefato gerado pela IA** a partir do processamento de todos os insumos em `workspace/Input/{{FEATURE}}/`.
|
|
5
|
+
> Este é o checkpoint de extração — o usuário DEVE revisar e aprovar antes de prosseguir.
|
|
6
|
+
> Todos os documentos subsequentes (SDD, tasks) são gerados a partir DESTE arquivo.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Meta
|
|
11
|
+
|
|
12
|
+
| Campo | Valor |
|
|
13
|
+
|-------|-------|
|
|
14
|
+
| Feature | `{{FEATURE}}` |
|
|
15
|
+
| Status | `em extração` → `aguardando revisão` → `aprovado` |
|
|
16
|
+
| Insumos processados | {{LISTA_INSUMOS}} |
|
|
17
|
+
| Gerado em | |
|
|
18
|
+
| Aprovado em | |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
<!--
|
|
23
|
+
=============================================================================
|
|
24
|
+
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
25
|
+
=============================================================================
|
|
26
|
+
|
|
27
|
+
QUANDO USAR: Gerado pelo /extract (chamado via /feature).
|
|
28
|
+
QUEM GERA: Agent Analyzer (Opus) a partir dos outputs dos Readers (Sonnet).
|
|
29
|
+
|
|
30
|
+
COMO GERAR:
|
|
31
|
+
1. Readers (Sonnet) leem cada arquivo do PM/ individualmente e catalogam por seção
|
|
32
|
+
2. Analyzer (Opus) recebe todos os outputs e:
|
|
33
|
+
a. Consolida em visão unificada
|
|
34
|
+
b. Cruza informações entre fontes — detecta contradições
|
|
35
|
+
c. Identifica gaps — seções sem informação viram ambiguidades
|
|
36
|
+
d. Gera este documento seguindo as 14 seções fixas
|
|
37
|
+
3. Ler `docs/` para contexto de arquitetura existente
|
|
38
|
+
4. Para cada informação, registrar DE QUAL insumo veio (rastreabilidade §14)
|
|
39
|
+
5. Se faltam dados para preencher uma seção → pergunta BLOQUEANTE em §13
|
|
40
|
+
|
|
41
|
+
FORMATOS DE INSUMO (o que extrair de cada):
|
|
42
|
+
- .txt, .md → requisitos, regras, contexto, restrições
|
|
43
|
+
- .sql → entidades, campos, tipos, constraints, índices, relações
|
|
44
|
+
- .html → telas, campos (data-field), ações (data-action),
|
|
45
|
+
validações (data-validation), rotas (data-route),
|
|
46
|
+
permissões (data-permission), estados (data-state)
|
|
47
|
+
- .xml (drawio) → fluxos, decisões, atores, sequências
|
|
48
|
+
- .csv → dados tabulares, mapeamentos
|
|
49
|
+
- .png, .jpg, .pdf → wireframes, mockups (análise visual)
|
|
50
|
+
- Outros → extrair o que for relevante — nunca ignorar
|
|
51
|
+
|
|
52
|
+
REGRAS DA EXTRAÇÃO:
|
|
53
|
+
- Categorias FIXAS (as 15 seções abaixo) — não inventar novas
|
|
54
|
+
- §11 Fases de Entrega é OBRIGATÓRIO — organizar funcionalidades em fases incrementais
|
|
55
|
+
Se existe backlog_extraido.md, usar como referência para as fases
|
|
56
|
+
Princípio: entregáveis contínuos, cada fase entrega valor e pode ir pra produção
|
|
57
|
+
- Regras de negócio com IDs únicos e ESTÁVEIS (RN-001, RN-002...)
|
|
58
|
+
→ IDs nunca renumeram após criação. Em re-extração, novos continuam sequência
|
|
59
|
+
- Ambiguidades como perguntas diretas — BLOQUEANTES
|
|
60
|
+
- SEM texto narrativo — apenas informação estruturada em tabelas e listas
|
|
61
|
+
- Rastreabilidade: de qual arquivo veio cada informação
|
|
62
|
+
- Nunca INFERIR regra de negócio — se não está explícito, é ambiguidade
|
|
63
|
+
- Contradição entre fontes → gerar ambiguidade citando os dois arquivos
|
|
64
|
+
|
|
65
|
+
RE-EXTRAÇÃO:
|
|
66
|
+
- Merge ADITIVO com PRD existente (não sobrescrever)
|
|
67
|
+
- Seções afetadas marcadas com <!-- ATUALIZADO: re-extração ISO_DATE -->
|
|
68
|
+
- IDs de regras continuam sequência existente
|
|
69
|
+
|
|
70
|
+
=============================================================================
|
|
71
|
+
-->
|
|
72
|
+
|
|
73
|
+
## 1. Contexto e Motivação
|
|
74
|
+
|
|
75
|
+
### Qual problema resolve?
|
|
76
|
+
<!-- POR QUÊ essa feature existe — extraído dos insumos -->
|
|
77
|
+
|
|
78
|
+
### Como funciona hoje?
|
|
79
|
+
<!-- Estado ATUAL — o que existe, como é feito, quais os problemas -->
|
|
80
|
+
|
|
81
|
+
### Estado desejado
|
|
82
|
+
<!-- O que muda com essa feature — o delta é o escopo real -->
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 2. Atores e Permissões
|
|
87
|
+
|
|
88
|
+
| Ator | O que pode fazer | O que NÃO pode fazer |
|
|
89
|
+
|------|------------------|----------------------|
|
|
90
|
+
| | | |
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 3. Entidades e Modelo de Dados
|
|
95
|
+
|
|
96
|
+
> Extraído de: arquivos `.sql`, protótipos, texto livre.
|
|
97
|
+
|
|
98
|
+
| Entidade | Campos principais | Tipo dos campos | Relações |
|
|
99
|
+
|----------|-------------------|-----------------|----------|
|
|
100
|
+
| | | | |
|
|
101
|
+
|
|
102
|
+
### Índices e constraints identificados
|
|
103
|
+
-
|
|
104
|
+
|
|
105
|
+
### Histórico / Auditoria
|
|
106
|
+
-
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 4. Jornadas do Usuário
|
|
111
|
+
|
|
112
|
+
> Extraído de: protótipos HTML, textos, fluxos.
|
|
113
|
+
|
|
114
|
+
### Jornada 1: {{NOME}}
|
|
115
|
+
| Passo | Ator | Ação | Resultado esperado |
|
|
116
|
+
|-------|------|------|--------------------|
|
|
117
|
+
| 1 | | | |
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## 5. Regras de Negócio
|
|
122
|
+
|
|
123
|
+
> Extraídas de TODOS os insumos. Cada regra deve ser clara, testável e ter ID único.
|
|
124
|
+
|
|
125
|
+
| ID | Regra | Fonte | Testável? |
|
|
126
|
+
|----|-------|-------|-----------|
|
|
127
|
+
| RN-001 | | {{arquivo_fonte}} | Sim/Não |
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## 6. Validações
|
|
132
|
+
|
|
133
|
+
> Extraídas de: protótipos (`data-validation`), `.sql` (constraints), texto.
|
|
134
|
+
|
|
135
|
+
| Campo | Validações | Obrigatório? | Máscara | Fonte |
|
|
136
|
+
|-------|-----------|--------------|---------|-------|
|
|
137
|
+
| | | | | |
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## 7. Telas e Componentes UI
|
|
142
|
+
|
|
143
|
+
> Extraídos de: protótipos HTML (`data-field`, `data-action`, `data-route`, `data-state`).
|
|
144
|
+
|
|
145
|
+
### Tela 1: {{NOME}}
|
|
146
|
+
- **Rota**:
|
|
147
|
+
- **Campos**: (extraídos dos `data-field`)
|
|
148
|
+
- **Ações**: (extraídas dos `data-action`)
|
|
149
|
+
- **Navegação**: (extraída dos `data-route`)
|
|
150
|
+
- **Estados**: (extraídos dos `data-state`)
|
|
151
|
+
- **Permissões por elemento**: (extraídos dos `data-permission`)
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 8. Integrações Externas
|
|
156
|
+
|
|
157
|
+
| Serviço | Método | Quando é chamado | O que envia | O que recebe | Fallback |
|
|
158
|
+
|---------|--------|------------------|-------------|--------------|----------|
|
|
159
|
+
| | | | | | |
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## 9. Cenários de Erro
|
|
164
|
+
|
|
165
|
+
| # | Cenário | Causa | Comportamento esperado | Fonte |
|
|
166
|
+
|---|---------|-------|----------------------|-------|
|
|
167
|
+
| 1 | | | | |
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## 10. Requisitos Não-Funcionais
|
|
172
|
+
|
|
173
|
+
| Aspecto | Requisito | Fonte |
|
|
174
|
+
|---------|-----------|-------|
|
|
175
|
+
| Volume esperado | | |
|
|
176
|
+
| Performance | | |
|
|
177
|
+
| Disponibilidade | | |
|
|
178
|
+
| Acessibilidade | | |
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## 11. Fases de Entrega
|
|
183
|
+
|
|
184
|
+
> Princípio: **entregáveis contínuos** — cada fase entrega valor e pode ir pra produção.
|
|
185
|
+
> Fases são sequenciais por dependência. Cada uma tem entregável testável.
|
|
186
|
+
> Se o `/extract` foi precedido por um roadmap (backlog_extraido.md), usar as fases como base.
|
|
187
|
+
|
|
188
|
+
### Fase 1 — {{Nome}} [P1]
|
|
189
|
+
|
|
190
|
+
> **Entregável**: {{O que o usuário pode usar ao final}}
|
|
191
|
+
> **Critério de done**: {{Como validar — testes E2E que devem passar}}
|
|
192
|
+
|
|
193
|
+
| # | Funcionalidade | Entidades | Regras | Jornadas |
|
|
194
|
+
|---|---------------|-----------|--------|----------|
|
|
195
|
+
| 1 | | | RN-NNN | Jornada N |
|
|
196
|
+
|
|
197
|
+
### Fase 2 — {{Nome}} [P1]
|
|
198
|
+
|
|
199
|
+
> **Entregável**: {{...}}
|
|
200
|
+
> **Critério de done**: {{...}}
|
|
201
|
+
> **Depende de**: Fase 1
|
|
202
|
+
|
|
203
|
+
| # | Funcionalidade | Entidades | Regras | Jornadas |
|
|
204
|
+
|---|---------------|-----------|--------|----------|
|
|
205
|
+
| 1 | | | | |
|
|
206
|
+
|
|
207
|
+
<!-- Repetir fases conforme necessário. Máximo 4-5 fases. -->
|
|
208
|
+
|
|
209
|
+
### Visão geral
|
|
210
|
+
|
|
211
|
+
| Fase | Nome | Prioridade | Entregável | Depende de |
|
|
212
|
+
|------|------|-----------|------------|------------|
|
|
213
|
+
| 1 | | P1 | | — |
|
|
214
|
+
| 2 | | P1 | | Fase 1 |
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## 12. Dependências
|
|
219
|
+
|
|
220
|
+
| Dependência | Tipo | Status | Impacto se indisponível |
|
|
221
|
+
|-------------|------|--------|------------------------|
|
|
222
|
+
| | feature / serviço / tabela | pronto / pendente | |
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## 13. Fora de Escopo
|
|
227
|
+
|
|
228
|
+
> Explicitamente listado — o que NÃO será feito nesta feature.
|
|
229
|
+
|
|
230
|
+
| # | Item | Motivo |
|
|
231
|
+
|---|------|--------|
|
|
232
|
+
| 1 | | futuro / outra feature / decisão do usuário |
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## 14. Ambiguidades e Perguntas
|
|
237
|
+
|
|
238
|
+
> ⚠️ **BLOQUEANTE** — o fluxo NÃO avança até o usuário responder TODAS.
|
|
239
|
+
|
|
240
|
+
| # | Pergunta | Contexto | Fonte | Resposta do usuário |
|
|
241
|
+
|---|----------|----------|-------|---------------------|
|
|
242
|
+
| 1 | ⚠️ | | | (aguardando) |
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## 15. Rastreabilidade — De onde veio cada informação
|
|
247
|
+
|
|
248
|
+
> Mapa de qual insumo originou qual seção. Permite auditoria da extração.
|
|
249
|
+
|
|
250
|
+
| Insumo | Tipo | O que foi extraído |
|
|
251
|
+
|--------|------|--------------------|
|
|
252
|
+
| `{{arquivo}}` | {{tipo}} | {{seções alimentadas}} |
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
> **Próximo passo**: Após aprovação do usuário, este PRD alimenta a geração do `sdd.md` e das tasks (`*_tasks.md`).
|