adi_dev_workflow 1.1.1 → 1.3.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/bin/index.js +8 -8
- package/frameworks/agents/qa-staff-engineer.md +311 -311
- package/frameworks/agents/qa-validation-expert.md +458 -458
- package/frameworks/agents/tech-review-conformance.md +200 -200
- package/frameworks/commands/ministack/README.md +2 -0
- package/frameworks/commands/ministack/code-review.md +2 -0
- package/frameworks/commands/ministack/generate-intent.md +2 -0
- package/frameworks/commands/ministack/generate-scope.md +2 -0
- package/frameworks/commands/ministack/generate-tasks.md +2 -0
- package/frameworks/commands/ministack/generate-tech-direction.md +2 -0
- package/frameworks/commands/ministack/run-ministack-tasks.md +3 -0
- package/frameworks/commands/ministack/run-ministack-withlinear.md +2 -0
- package/frameworks/commands/ministack/status.md +2 -0
- package/frameworks/commands/sdd/code-review.md +2 -0
- package/frameworks/commands/sdd/generate-prd.md +2 -0
- package/frameworks/commands/sdd/generate-task-plan.md +2 -0
- package/frameworks/commands/sdd/generate-tech-direction.md +2 -0
- package/frameworks/commands/sdd/generate-tech-spec.md +2 -0
- package/frameworks/commands/sdd/generate-tests.md +2 -0
- package/frameworks/commands/sdd/run_tasks.md +3 -0
- package/frameworks/commands/sdd/run_tasks_withlinear.md +2 -0
- package/frameworks/commands/sdd/status.md +2 -0
- package/frameworks/commands/sdd/validate-sdd.md +2 -0
- package/frameworks/commands/sync-tasks-to-linear.md +2 -0
- package/frameworks/commands/taskcard/generate-taskcard.md +2 -0
- package/frameworks/commands/taskcard/run-taskcard.md +2 -0
- package/frameworks/config/ai-framework-config.yaml +112 -0
- package/frameworks/skills/ministack-tasks-expert/SKILL.md +204 -204
- package/frameworks/skills/ministack-tasks-expert/templates/task_plan_template.md +78 -78
- package/frameworks/skills/ministack-tasks-expert/templates/task_template.md +103 -103
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.json +99 -99
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.md +64 -64
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/response.md +134 -134
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/transcript.md +68 -68
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/response.md +525 -525
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/transcript.md +30 -30
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/response.md +1126 -1126
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/transcript.md +131 -131
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/response.md +452 -452
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/transcript.md +78 -78
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/response.md +101 -101
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/transcript.md +133 -133
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/response.md +248 -248
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/transcript.md +49 -49
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/timing.json +5 -5
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/review.html +1325 -1325
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.json +94 -94
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.md +67 -67
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/response.md +117 -117
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/transcript.md +91 -91
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/response.md +694 -694
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/transcript.md +45 -45
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/response.md +1087 -1087
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/transcript.md +124 -124
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/response.md +458 -458
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/transcript.md +84 -84
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/eval_metadata.json +12 -12
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/response.md +70 -70
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/transcript.md +148 -148
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/grading.json +32 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/response.md +249 -249
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/transcript.md +80 -80
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/timing.json +1 -1
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/review.html +1325 -1325
- package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +317 -317
- package/frameworks/skills/sdd-tech-spec-expert/evals/evals.json +199 -199
- package/frameworks/skills/sdd-tech-spec-expert/templates/spec_tech_template.md +290 -290
- package/frameworks/skills/sdd-tech-spec-expert/templates/tech_direction-template.md +23 -23
- package/package.json +28 -28
- package/src/cli.js +121 -121
- package/src/installer.js +155 -136
- package/src/transformer.js +86 -86
|
@@ -1,290 +1,290 @@
|
|
|
1
|
-
# SPEC_TECH -- Especificação Técnica
|
|
2
|
-
|
|
3
|
-
## 1. Identificação
|
|
4
|
-
- **Feature/Projeto**:
|
|
5
|
-
- **Autor**:
|
|
6
|
-
- **Data**:
|
|
7
|
-
- **Versão**:
|
|
8
|
-
- **Status**: Draft | Refinando | Aprovado
|
|
9
|
-
- **PRD Relacionado**:
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## 2. Resumo Técnico da Solução
|
|
14
|
-
|
|
15
|
-
(Visão geral do COMO será implementado. Descreva em 3-5 linhas a abordagem técnica escolhida, as principais decisões arquiteturais e o resultado técnico esperado.)
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## 3. Arquitetura da Solução
|
|
20
|
-
|
|
21
|
-
### 3.1 Visão Geral
|
|
22
|
-
(Diagrama ou descrição da arquitetura geral da solução. Como os componentes se conectam.)
|
|
23
|
-
|
|
24
|
-
### 3.2 Componentes/Módulos
|
|
25
|
-
(Lista de componentes envolvidos com descrição da responsabilidade de cada um.)
|
|
26
|
-
|
|
27
|
-
| Componente | Responsabilidade | Camada |
|
|
28
|
-
|------------|-----------------|--------|
|
|
29
|
-
| | | |
|
|
30
|
-
|
|
31
|
-
### 3.3 Interações entre componentes
|
|
32
|
-
(Descreva como os componentes se comunicam. Fluxo de dados entre camadas.)
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
## 4. Estruturas de Dados
|
|
37
|
-
|
|
38
|
-
### 4.1 Models / DTOs
|
|
39
|
-
(Structs, tipos e modelos de domínio que serão criados ou modificados.)
|
|
40
|
-
|
|
41
|
-
### 4.2 Entidades de Banco de Dados
|
|
42
|
-
(Tabelas, colunas, índices, constraints. Inclua SQL de migrações quando aplicável.)
|
|
43
|
-
|
|
44
|
-
### 4.3 Schemas adicionais
|
|
45
|
-
(Protocol Buffers, mensagens gRPC, schemas de validação ou outros formatos de dados.)
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
## 5. Regras Técnicas de Negócio
|
|
50
|
-
|
|
51
|
-
(Implementação técnica das regras definidas no PRD. Cada regra do PRD deve ter uma definição técnica correspondente.)
|
|
52
|
-
|
|
53
|
-
### 5.1 Mapeamento de User Stories para Definições Técnicas
|
|
54
|
-
|
|
55
|
-
| User Story (PRD) | Definição Técnica | Componentes Envolvidos |
|
|
56
|
-
|------------------|-------------------|----------------------|
|
|
57
|
-
| US-01 | | |
|
|
58
|
-
| US-02 | | |
|
|
59
|
-
|
|
60
|
-
<!-- LLM-ONLY: Cada user story do PRD deve ter pelo menos uma definicao tecnica correspondente. Isso garante rastreabilidade completa entre o PRD e a especificacao tecnica. -->
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## 6. Fluxos Técnicos
|
|
65
|
-
|
|
66
|
-
### 6.1 Fluxo Principal (técnico)
|
|
67
|
-
(Sequência de chamadas, processamento e respostas do fluxo principal. Descreva camada por camada.)
|
|
68
|
-
|
|
69
|
-
### 6.2 Fluxos Alternativos
|
|
70
|
-
(Variações do fluxo principal: dados opcionais, caminhos condicionais, etc.)
|
|
71
|
-
|
|
72
|
-
### 6.3 Tratamento de Erros
|
|
73
|
-
(Como erros serão tratados em cada camada. Mapeamento de erros de negócio para códigos de status.)
|
|
74
|
-
|
|
75
|
-
| Erro de Negócio | Código de Status | Mensagem | Camada de Origem |
|
|
76
|
-
|----------------|-----------------|----------|-----------------|
|
|
77
|
-
| | | | |
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## 7. APIs / Endpoints
|
|
82
|
-
|
|
83
|
-
### 7.1 Endpoints Backend
|
|
84
|
-
|
|
85
|
-
| Ação | Método | Rota | Payload | Resposta Esperada |
|
|
86
|
-
|------|--------|------|---------|-------------------|
|
|
87
|
-
| | | | | |
|
|
88
|
-
|
|
89
|
-
### 7.2 Erros e Códigos de Status
|
|
90
|
-
|
|
91
|
-
| Código | Situação | Mensagem |
|
|
92
|
-
|--------|----------|----------|
|
|
93
|
-
| | | |
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## 8. Frontend / Mobile
|
|
98
|
-
|
|
99
|
-
### 8.1 Telas
|
|
100
|
-
(Telas envolvidas, layouts e componentes visuais.)
|
|
101
|
-
|
|
102
|
-
### 8.2 Estados e Gerência de Estado
|
|
103
|
-
(Gerenciamento de estado: loading, success, error, empty. Solução de state management.)
|
|
104
|
-
|
|
105
|
-
### 8.3 Navegação
|
|
106
|
-
(Fluxo de navegação entre telas. Rotas e parâmetros.)
|
|
107
|
-
|
|
108
|
-
### 8.4 Validações
|
|
109
|
-
(Validações de formulário, campos obrigatórios, máscaras, limites.)
|
|
110
|
-
|
|
111
|
-
### 8.5 Comportamentos específicos
|
|
112
|
-
(Animações, transições, comportamentos offline, responsividade.)
|
|
113
|
-
|
|
114
|
-
---
|
|
115
|
-
|
|
116
|
-
## 9. Banco Local / Cache
|
|
117
|
-
|
|
118
|
-
### 9.1 Estrutura de Tabelas
|
|
119
|
-
(Tabelas locais, colunas, tipos. Diferentes do banco remoto se aplicável.)
|
|
120
|
-
|
|
121
|
-
### 9.2 Estratégia de Sincronização
|
|
122
|
-
(Como dados locais sincronizam com o backend. Conflitos, prioridade, frequência.)
|
|
123
|
-
|
|
124
|
-
### 9.3 Estratégia de Versionamento
|
|
125
|
-
(Como lidar com mudanças de schema local. Migrações locais, rollback.)
|
|
126
|
-
|
|
127
|
-
---
|
|
128
|
-
|
|
129
|
-
## 10. Dependências Técnicas
|
|
130
|
-
|
|
131
|
-
| Tipo | Nome | Versão | Motivo |
|
|
132
|
-
|------|------|--------|--------|
|
|
133
|
-
| Pacote | | | |
|
|
134
|
-
| Biblioteca | | | |
|
|
135
|
-
| Ferramenta | | | |
|
|
136
|
-
| SDK | | | |
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
## 11. Requisitos Não Funcionais (COMO serão atendidos)
|
|
141
|
-
|
|
142
|
-
### Segurança
|
|
143
|
-
(Autenticação, autorização, criptografia, validação de input, sanitização.)
|
|
144
|
-
|
|
145
|
-
### Performance
|
|
146
|
-
(Metas de tempo de resposta, paginação, índices, cache, otimizações.)
|
|
147
|
-
|
|
148
|
-
### Escalabilidade
|
|
149
|
-
(Limites conhecidos, estratégia de crescimento, gargalos potenciais.)
|
|
150
|
-
|
|
151
|
-
### Observabilidade
|
|
152
|
-
(Logs estruturados, métricas, alertas, tracing distribuído.)
|
|
153
|
-
|
|
154
|
-
### Resiliência
|
|
155
|
-
(Tratamento de falhas, retry, circuit breaker, graceful degradation.)
|
|
156
|
-
|
|
157
|
-
---
|
|
158
|
-
|
|
159
|
-
## 12. Critérios Técnicos de Aceite
|
|
160
|
-
|
|
161
|
-
- [ ] Implementação cobre todas as regras do PRD
|
|
162
|
-
- [ ] Estruturas de dados criadas e funcionais
|
|
163
|
-
- [ ] Fluxos técnicos implementados e testados
|
|
164
|
-
- [ ] API funcionando conforme especificado
|
|
165
|
-
- [ ] Erros tratados em todas as camadas
|
|
166
|
-
- [ ] Logs/monitoramento implementados
|
|
167
|
-
- [ ] Validações aplicadas (input, negócio, dados)
|
|
168
|
-
- [ ] Código segue padrões e convenções do projeto
|
|
169
|
-
|
|
170
|
-
---
|
|
171
|
-
|
|
172
|
-
## 13. Riscos Técnicos
|
|
173
|
-
|
|
174
|
-
| Risco | Probabilidade | Impacto | Mitigação |
|
|
175
|
-
|-------|--------------|---------|-----------|
|
|
176
|
-
| | | | |
|
|
177
|
-
|
|
178
|
-
---
|
|
179
|
-
|
|
180
|
-
## 14. Estratégia de Testes
|
|
181
|
-
|
|
182
|
-
> **Resumo**: X casos de teste | Unitários: Y | Integração: Z | E2E: W
|
|
183
|
-
> **Padrão**: [framework de teste, padrão de mock, convenção de nomes]
|
|
184
|
-
|
|
185
|
-
### Rastreabilidade: Critérios de Aceite → Testes
|
|
186
|
-
|
|
187
|
-
| CA (PRD) | Descrição Resumida | Testes |
|
|
188
|
-
|----------|-------------------|--------|
|
|
189
|
-
| CA-01 | (descrição curta do CA no PRD) | CT-01, CT-10, CT-20, CT-30 |
|
|
190
|
-
| CA-02 | (descrição curta do CA no PRD) | CT-02, CT-22 |
|
|
191
|
-
|
|
192
|
-
<!-- LLM-ONLY: Cada CA-XX do PRD deve ter pelo menos um teste correspondente. Esta tabela deve ser preenchida PRIMEIRO — guia toda a estrategia. -->
|
|
193
|
-
|
|
194
|
-
---
|
|
195
|
-
|
|
196
|
-
### 14.1 Testes Unitários
|
|
197
|
-
|
|
198
|
-
<!-- LLM-ONLY: Coluna "Objetivo": Descreva em 1 frase O QUE o teste valida e POR QUE importa. Use o padrao: Verbo + comportamento especifico + condicao. Exemplo: "Verificar que apenas categorias com ativo=1 sao retornadas, ordenadas pelo campo 'ordem'". NAO repita o nome do teste — o objetivo deve dar contexto que o nome sozinho nao da. -->
|
|
199
|
-
|
|
200
|
-
#### Service: [NomeService] (`arquivo_test.go`)
|
|
201
|
-
|
|
202
|
-
Mock: [interfaces mockadas]
|
|
203
|
-
|
|
204
|
-
| CT | Teste | CA | Objetivo | Input | Expected | Mock |
|
|
205
|
-
|----|-------|----|----------|-------|----------|------|
|
|
206
|
-
| CT-01 | TestMetodo_Sucesso | CA-01 | Verificar que [comportamento esperado] quando [condição do cenário] | dados válidos | resultado esperado | repo retorna dados |
|
|
207
|
-
| CT-02 | TestMetodo_ErroValidacao | CA-03 | Verificar que [erro específico] é retornado quando [condição inválida] | dados inválidos | ErrEspecifico | — |
|
|
208
|
-
|
|
209
|
-
#### Apresentação: [NomeHandler] (`arquivo_test.go`)
|
|
210
|
-
|
|
211
|
-
Mock: [interfaces mockadas]
|
|
212
|
-
|
|
213
|
-
| CT | Teste | CA | Objetivo | Input | Expected | Mock |
|
|
214
|
-
|----|-------|----|----------|-------|----------|------|
|
|
215
|
-
| CT-10 | TestHandler_Sucesso | CA-01 | Verificar que handler converte [modelo domínio] para [formato response] corretamente | request válido | response proto | service retorna sucesso |
|
|
216
|
-
|
|
217
|
-
### 14.2 Testes de Integração
|
|
218
|
-
|
|
219
|
-
#### [CamadaA + CamadaB] (`arquivo_test.go`)
|
|
220
|
-
|
|
221
|
-
Setup: [banco in-memory, migrações, fixtures]
|
|
222
|
-
|
|
223
|
-
| CT | Teste | CA | Objetivo | Fluxo | Validação |
|
|
224
|
-
|----|-------|----|----------|-------|-----------|
|
|
225
|
-
| CT-20 | TestIntegracao_CRUD | CA-01 | Verificar que dados persistidos são recuperados integralmente via [camada] | Create → Get | dados consistentes |
|
|
226
|
-
| CT-22 | TestIntegracao_Unique | CA-02 | Verificar que constraint unique impede duplicação de [campo] | Insert duplicado | erro constraint |
|
|
227
|
-
|
|
228
|
-
### 14.3 Testes End-to-End (E2E)
|
|
229
|
-
|
|
230
|
-
#### Fluxo: [Nome do Fluxo Crítico] (CT-30)
|
|
231
|
-
- **CA**: CA-01, CA-03, CA-06
|
|
232
|
-
- **Objetivo**: (1 frase descrevendo o que este fluxo E2E valida de ponta a ponta)
|
|
233
|
-
- **Pré-condições**: (estado inicial do sistema)
|
|
234
|
-
- **Passos**:
|
|
235
|
-
1. Cliente envia request X
|
|
236
|
-
2. Sistema processa e retorna Y
|
|
237
|
-
3. Verificar estado do banco
|
|
238
|
-
- **Validações**: (assertions sobre dados e estado final)
|
|
239
|
-
|
|
240
|
-
### 14.4 Cenários de Erro
|
|
241
|
-
|
|
242
|
-
| Cenário | CA | Objetivo | Trigger | Código/Status | Log Esperado |
|
|
243
|
-
|---------|----|----------|---------|---------------|-------------|
|
|
244
|
-
| Dados duplicados | CA-02 | Verificar que [constraint] impede [operação] e retorna erro adequado | Insert duplicado | [erro conflito] | "registro já existe..." |
|
|
245
|
-
| Recurso inexistente | CA-05 | Verificar que acesso a [recurso] inexistente retorna [código] sem expor dados internos | ID não encontrado | [erro not found] | "não encontrado..." |
|
|
246
|
-
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
## 15. Arquivos Envolvidos e Ações
|
|
250
|
-
|
|
251
|
-
### 15.1 Arquivos a Criar
|
|
252
|
-
|
|
253
|
-
| Arquivo | Descrição | Camada |
|
|
254
|
-
|---------|-----------|--------|
|
|
255
|
-
| | | |
|
|
256
|
-
|
|
257
|
-
### 15.2 Arquivos a Modificar
|
|
258
|
-
|
|
259
|
-
| Arquivo | Modificação | Motivo |
|
|
260
|
-
|---------|------------|--------|
|
|
261
|
-
| | | |
|
|
262
|
-
|
|
263
|
-
### 15.3 Arquivos de Referência (somente leitura)
|
|
264
|
-
|
|
265
|
-
| Arquivo | Motivo da Consulta |
|
|
266
|
-
|---------|-------------------|
|
|
267
|
-
| | |
|
|
268
|
-
|
|
269
|
-
<!-- LLM-ONLY: Esta secao economiza tokens e scans durante a implementacao, pois lista exatamente quais arquivos serao impactados. -->
|
|
270
|
-
|
|
271
|
-
---
|
|
272
|
-
|
|
273
|
-
## 16. Checklist Final
|
|
274
|
-
|
|
275
|
-
- [ ] SPEC_TECH cobre todo o PRD
|
|
276
|
-
- [ ] Resumo técnico claro e objetivo (seção 2)
|
|
277
|
-
- [ ] Arquitetura definida com componentes e interações (seção 3)
|
|
278
|
-
- [ ] Estruturas de dados definidas (seção 4)
|
|
279
|
-
- [ ] User Stories mapeadas para definições técnicas (seção 5.1)
|
|
280
|
-
- [ ] Fluxos técnicos descritos com tratamento de erros (seção 6)
|
|
281
|
-
- [ ] Endpoints mapeados com payloads e respostas (seção 7)
|
|
282
|
-
- [ ] Telas e fluxos de frontend/mobile definidos (seção 8)
|
|
283
|
-
- [ ] Banco local/cache especificado se aplicável (seção 9)
|
|
284
|
-
- [ ] Dependências técnicas listadas (seção 10)
|
|
285
|
-
- [ ] Requisitos não funcionais endereçados (seção 11)
|
|
286
|
-
- [ ] Critérios técnicos de aceite definidos (seção 12)
|
|
287
|
-
- [ ] Riscos técnicos identificados com mitigações (seção 13)
|
|
288
|
-
- [ ] Estratégia de testes definida com rastreabilidade CA→testes no topo (seção 14)
|
|
289
|
-
- [ ] Arquivos envolvidos listados — criar, modificar, referência (seção 15)
|
|
290
|
-
- [ ] Pronto para geração das TASKS
|
|
1
|
+
# SPEC_TECH -- Especificação Técnica
|
|
2
|
+
|
|
3
|
+
## 1. Identificação
|
|
4
|
+
- **Feature/Projeto**:
|
|
5
|
+
- **Autor**:
|
|
6
|
+
- **Data**:
|
|
7
|
+
- **Versão**:
|
|
8
|
+
- **Status**: Draft | Refinando | Aprovado
|
|
9
|
+
- **PRD Relacionado**:
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 2. Resumo Técnico da Solução
|
|
14
|
+
|
|
15
|
+
(Visão geral do COMO será implementado. Descreva em 3-5 linhas a abordagem técnica escolhida, as principais decisões arquiteturais e o resultado técnico esperado.)
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 3. Arquitetura da Solução
|
|
20
|
+
|
|
21
|
+
### 3.1 Visão Geral
|
|
22
|
+
(Diagrama ou descrição da arquitetura geral da solução. Como os componentes se conectam.)
|
|
23
|
+
|
|
24
|
+
### 3.2 Componentes/Módulos
|
|
25
|
+
(Lista de componentes envolvidos com descrição da responsabilidade de cada um.)
|
|
26
|
+
|
|
27
|
+
| Componente | Responsabilidade | Camada |
|
|
28
|
+
|------------|-----------------|--------|
|
|
29
|
+
| | | |
|
|
30
|
+
|
|
31
|
+
### 3.3 Interações entre componentes
|
|
32
|
+
(Descreva como os componentes se comunicam. Fluxo de dados entre camadas.)
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 4. Estruturas de Dados
|
|
37
|
+
|
|
38
|
+
### 4.1 Models / DTOs
|
|
39
|
+
(Structs, tipos e modelos de domínio que serão criados ou modificados.)
|
|
40
|
+
|
|
41
|
+
### 4.2 Entidades de Banco de Dados
|
|
42
|
+
(Tabelas, colunas, índices, constraints. Inclua SQL de migrações quando aplicável.)
|
|
43
|
+
|
|
44
|
+
### 4.3 Schemas adicionais
|
|
45
|
+
(Protocol Buffers, mensagens gRPC, schemas de validação ou outros formatos de dados.)
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 5. Regras Técnicas de Negócio
|
|
50
|
+
|
|
51
|
+
(Implementação técnica das regras definidas no PRD. Cada regra do PRD deve ter uma definição técnica correspondente.)
|
|
52
|
+
|
|
53
|
+
### 5.1 Mapeamento de User Stories para Definições Técnicas
|
|
54
|
+
|
|
55
|
+
| User Story (PRD) | Definição Técnica | Componentes Envolvidos |
|
|
56
|
+
|------------------|-------------------|----------------------|
|
|
57
|
+
| US-01 | | |
|
|
58
|
+
| US-02 | | |
|
|
59
|
+
|
|
60
|
+
<!-- LLM-ONLY: Cada user story do PRD deve ter pelo menos uma definicao tecnica correspondente. Isso garante rastreabilidade completa entre o PRD e a especificacao tecnica. -->
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 6. Fluxos Técnicos
|
|
65
|
+
|
|
66
|
+
### 6.1 Fluxo Principal (técnico)
|
|
67
|
+
(Sequência de chamadas, processamento e respostas do fluxo principal. Descreva camada por camada.)
|
|
68
|
+
|
|
69
|
+
### 6.2 Fluxos Alternativos
|
|
70
|
+
(Variações do fluxo principal: dados opcionais, caminhos condicionais, etc.)
|
|
71
|
+
|
|
72
|
+
### 6.3 Tratamento de Erros
|
|
73
|
+
(Como erros serão tratados em cada camada. Mapeamento de erros de negócio para códigos de status.)
|
|
74
|
+
|
|
75
|
+
| Erro de Negócio | Código de Status | Mensagem | Camada de Origem |
|
|
76
|
+
|----------------|-----------------|----------|-----------------|
|
|
77
|
+
| | | | |
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 7. APIs / Endpoints
|
|
82
|
+
|
|
83
|
+
### 7.1 Endpoints Backend
|
|
84
|
+
|
|
85
|
+
| Ação | Método | Rota | Payload | Resposta Esperada |
|
|
86
|
+
|------|--------|------|---------|-------------------|
|
|
87
|
+
| | | | | |
|
|
88
|
+
|
|
89
|
+
### 7.2 Erros e Códigos de Status
|
|
90
|
+
|
|
91
|
+
| Código | Situação | Mensagem |
|
|
92
|
+
|--------|----------|----------|
|
|
93
|
+
| | | |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 8. Frontend / Mobile
|
|
98
|
+
|
|
99
|
+
### 8.1 Telas
|
|
100
|
+
(Telas envolvidas, layouts e componentes visuais.)
|
|
101
|
+
|
|
102
|
+
### 8.2 Estados e Gerência de Estado
|
|
103
|
+
(Gerenciamento de estado: loading, success, error, empty. Solução de state management.)
|
|
104
|
+
|
|
105
|
+
### 8.3 Navegação
|
|
106
|
+
(Fluxo de navegação entre telas. Rotas e parâmetros.)
|
|
107
|
+
|
|
108
|
+
### 8.4 Validações
|
|
109
|
+
(Validações de formulário, campos obrigatórios, máscaras, limites.)
|
|
110
|
+
|
|
111
|
+
### 8.5 Comportamentos específicos
|
|
112
|
+
(Animações, transições, comportamentos offline, responsividade.)
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## 9. Banco Local / Cache
|
|
117
|
+
|
|
118
|
+
### 9.1 Estrutura de Tabelas
|
|
119
|
+
(Tabelas locais, colunas, tipos. Diferentes do banco remoto se aplicável.)
|
|
120
|
+
|
|
121
|
+
### 9.2 Estratégia de Sincronização
|
|
122
|
+
(Como dados locais sincronizam com o backend. Conflitos, prioridade, frequência.)
|
|
123
|
+
|
|
124
|
+
### 9.3 Estratégia de Versionamento
|
|
125
|
+
(Como lidar com mudanças de schema local. Migrações locais, rollback.)
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 10. Dependências Técnicas
|
|
130
|
+
|
|
131
|
+
| Tipo | Nome | Versão | Motivo |
|
|
132
|
+
|------|------|--------|--------|
|
|
133
|
+
| Pacote | | | |
|
|
134
|
+
| Biblioteca | | | |
|
|
135
|
+
| Ferramenta | | | |
|
|
136
|
+
| SDK | | | |
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## 11. Requisitos Não Funcionais (COMO serão atendidos)
|
|
141
|
+
|
|
142
|
+
### Segurança
|
|
143
|
+
(Autenticação, autorização, criptografia, validação de input, sanitização.)
|
|
144
|
+
|
|
145
|
+
### Performance
|
|
146
|
+
(Metas de tempo de resposta, paginação, índices, cache, otimizações.)
|
|
147
|
+
|
|
148
|
+
### Escalabilidade
|
|
149
|
+
(Limites conhecidos, estratégia de crescimento, gargalos potenciais.)
|
|
150
|
+
|
|
151
|
+
### Observabilidade
|
|
152
|
+
(Logs estruturados, métricas, alertas, tracing distribuído.)
|
|
153
|
+
|
|
154
|
+
### Resiliência
|
|
155
|
+
(Tratamento de falhas, retry, circuit breaker, graceful degradation.)
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## 12. Critérios Técnicos de Aceite
|
|
160
|
+
|
|
161
|
+
- [ ] Implementação cobre todas as regras do PRD
|
|
162
|
+
- [ ] Estruturas de dados criadas e funcionais
|
|
163
|
+
- [ ] Fluxos técnicos implementados e testados
|
|
164
|
+
- [ ] API funcionando conforme especificado
|
|
165
|
+
- [ ] Erros tratados em todas as camadas
|
|
166
|
+
- [ ] Logs/monitoramento implementados
|
|
167
|
+
- [ ] Validações aplicadas (input, negócio, dados)
|
|
168
|
+
- [ ] Código segue padrões e convenções do projeto
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 13. Riscos Técnicos
|
|
173
|
+
|
|
174
|
+
| Risco | Probabilidade | Impacto | Mitigação |
|
|
175
|
+
|-------|--------------|---------|-----------|
|
|
176
|
+
| | | | |
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## 14. Estratégia de Testes
|
|
181
|
+
|
|
182
|
+
> **Resumo**: X casos de teste | Unitários: Y | Integração: Z | E2E: W
|
|
183
|
+
> **Padrão**: [framework de teste, padrão de mock, convenção de nomes]
|
|
184
|
+
|
|
185
|
+
### Rastreabilidade: Critérios de Aceite → Testes
|
|
186
|
+
|
|
187
|
+
| CA (PRD) | Descrição Resumida | Testes |
|
|
188
|
+
|----------|-------------------|--------|
|
|
189
|
+
| CA-01 | (descrição curta do CA no PRD) | CT-01, CT-10, CT-20, CT-30 |
|
|
190
|
+
| CA-02 | (descrição curta do CA no PRD) | CT-02, CT-22 |
|
|
191
|
+
|
|
192
|
+
<!-- LLM-ONLY: Cada CA-XX do PRD deve ter pelo menos um teste correspondente. Esta tabela deve ser preenchida PRIMEIRO — guia toda a estrategia. -->
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
### 14.1 Testes Unitários
|
|
197
|
+
|
|
198
|
+
<!-- LLM-ONLY: Coluna "Objetivo": Descreva em 1 frase O QUE o teste valida e POR QUE importa. Use o padrao: Verbo + comportamento especifico + condicao. Exemplo: "Verificar que apenas categorias com ativo=1 sao retornadas, ordenadas pelo campo 'ordem'". NAO repita o nome do teste — o objetivo deve dar contexto que o nome sozinho nao da. -->
|
|
199
|
+
|
|
200
|
+
#### Service: [NomeService] (`arquivo_test.go`)
|
|
201
|
+
|
|
202
|
+
Mock: [interfaces mockadas]
|
|
203
|
+
|
|
204
|
+
| CT | Teste | CA | Objetivo | Input | Expected | Mock |
|
|
205
|
+
|----|-------|----|----------|-------|----------|------|
|
|
206
|
+
| CT-01 | TestMetodo_Sucesso | CA-01 | Verificar que [comportamento esperado] quando [condição do cenário] | dados válidos | resultado esperado | repo retorna dados |
|
|
207
|
+
| CT-02 | TestMetodo_ErroValidacao | CA-03 | Verificar que [erro específico] é retornado quando [condição inválida] | dados inválidos | ErrEspecifico | — |
|
|
208
|
+
|
|
209
|
+
#### Apresentação: [NomeHandler] (`arquivo_test.go`)
|
|
210
|
+
|
|
211
|
+
Mock: [interfaces mockadas]
|
|
212
|
+
|
|
213
|
+
| CT | Teste | CA | Objetivo | Input | Expected | Mock |
|
|
214
|
+
|----|-------|----|----------|-------|----------|------|
|
|
215
|
+
| CT-10 | TestHandler_Sucesso | CA-01 | Verificar que handler converte [modelo domínio] para [formato response] corretamente | request válido | response proto | service retorna sucesso |
|
|
216
|
+
|
|
217
|
+
### 14.2 Testes de Integração
|
|
218
|
+
|
|
219
|
+
#### [CamadaA + CamadaB] (`arquivo_test.go`)
|
|
220
|
+
|
|
221
|
+
Setup: [banco in-memory, migrações, fixtures]
|
|
222
|
+
|
|
223
|
+
| CT | Teste | CA | Objetivo | Fluxo | Validação |
|
|
224
|
+
|----|-------|----|----------|-------|-----------|
|
|
225
|
+
| CT-20 | TestIntegracao_CRUD | CA-01 | Verificar que dados persistidos são recuperados integralmente via [camada] | Create → Get | dados consistentes |
|
|
226
|
+
| CT-22 | TestIntegracao_Unique | CA-02 | Verificar que constraint unique impede duplicação de [campo] | Insert duplicado | erro constraint |
|
|
227
|
+
|
|
228
|
+
### 14.3 Testes End-to-End (E2E)
|
|
229
|
+
|
|
230
|
+
#### Fluxo: [Nome do Fluxo Crítico] (CT-30)
|
|
231
|
+
- **CA**: CA-01, CA-03, CA-06
|
|
232
|
+
- **Objetivo**: (1 frase descrevendo o que este fluxo E2E valida de ponta a ponta)
|
|
233
|
+
- **Pré-condições**: (estado inicial do sistema)
|
|
234
|
+
- **Passos**:
|
|
235
|
+
1. Cliente envia request X
|
|
236
|
+
2. Sistema processa e retorna Y
|
|
237
|
+
3. Verificar estado do banco
|
|
238
|
+
- **Validações**: (assertions sobre dados e estado final)
|
|
239
|
+
|
|
240
|
+
### 14.4 Cenários de Erro
|
|
241
|
+
|
|
242
|
+
| Cenário | CA | Objetivo | Trigger | Código/Status | Log Esperado |
|
|
243
|
+
|---------|----|----------|---------|---------------|-------------|
|
|
244
|
+
| Dados duplicados | CA-02 | Verificar que [constraint] impede [operação] e retorna erro adequado | Insert duplicado | [erro conflito] | "registro já existe..." |
|
|
245
|
+
| Recurso inexistente | CA-05 | Verificar que acesso a [recurso] inexistente retorna [código] sem expor dados internos | ID não encontrado | [erro not found] | "não encontrado..." |
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## 15. Arquivos Envolvidos e Ações
|
|
250
|
+
|
|
251
|
+
### 15.1 Arquivos a Criar
|
|
252
|
+
|
|
253
|
+
| Arquivo | Descrição | Camada |
|
|
254
|
+
|---------|-----------|--------|
|
|
255
|
+
| | | |
|
|
256
|
+
|
|
257
|
+
### 15.2 Arquivos a Modificar
|
|
258
|
+
|
|
259
|
+
| Arquivo | Modificação | Motivo |
|
|
260
|
+
|---------|------------|--------|
|
|
261
|
+
| | | |
|
|
262
|
+
|
|
263
|
+
### 15.3 Arquivos de Referência (somente leitura)
|
|
264
|
+
|
|
265
|
+
| Arquivo | Motivo da Consulta |
|
|
266
|
+
|---------|-------------------|
|
|
267
|
+
| | |
|
|
268
|
+
|
|
269
|
+
<!-- LLM-ONLY: Esta secao economiza tokens e scans durante a implementacao, pois lista exatamente quais arquivos serao impactados. -->
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## 16. Checklist Final
|
|
274
|
+
|
|
275
|
+
- [ ] SPEC_TECH cobre todo o PRD
|
|
276
|
+
- [ ] Resumo técnico claro e objetivo (seção 2)
|
|
277
|
+
- [ ] Arquitetura definida com componentes e interações (seção 3)
|
|
278
|
+
- [ ] Estruturas de dados definidas (seção 4)
|
|
279
|
+
- [ ] User Stories mapeadas para definições técnicas (seção 5.1)
|
|
280
|
+
- [ ] Fluxos técnicos descritos com tratamento de erros (seção 6)
|
|
281
|
+
- [ ] Endpoints mapeados com payloads e respostas (seção 7)
|
|
282
|
+
- [ ] Telas e fluxos de frontend/mobile definidos (seção 8)
|
|
283
|
+
- [ ] Banco local/cache especificado se aplicável (seção 9)
|
|
284
|
+
- [ ] Dependências técnicas listadas (seção 10)
|
|
285
|
+
- [ ] Requisitos não funcionais endereçados (seção 11)
|
|
286
|
+
- [ ] Critérios técnicos de aceite definidos (seção 12)
|
|
287
|
+
- [ ] Riscos técnicos identificados com mitigações (seção 13)
|
|
288
|
+
- [ ] Estratégia de testes definida com rastreabilidade CA→testes no topo (seção 14)
|
|
289
|
+
- [ ] Arquivos envolvidos listados — criar, modificar, referência (seção 15)
|
|
290
|
+
- [ ] Pronto para geração das TASKS
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
# TECH DIRECTION (Opcional)
|
|
2
|
-
|
|
3
|
-
> Direcionamento técnico inicial para a feature. Serve como ponto de partida para o SPEC_TECH, não como decisão final.
|
|
4
|
-
> O Arquiteto (tech-spec-expert) pode complementar, ajustar ou questionar qualquer item aqui.
|
|
5
|
-
|
|
6
|
-
## Decisões técnicas já tomadas
|
|
7
|
-
- (ex: Usar JWT com refresh token para autenticação)
|
|
8
|
-
- (ex: Criar gateway separado para integração externa)
|
|
9
|
-
|
|
10
|
-
## Tecnologias/Libs sugeridas
|
|
11
|
-
- (ex: biblioteca X para integração com serviço Y)
|
|
12
|
-
- (ex: framework Z para testes)
|
|
13
|
-
|
|
14
|
-
## Padrões ou abordagens preferidas
|
|
15
|
-
- (ex: Seguir o pattern Gateway já usado no projeto)
|
|
16
|
-
- (ex: Implementar como CQRS)
|
|
17
|
-
|
|
18
|
-
## Restrições técnicas
|
|
19
|
-
- (ex: Precisa ser stateless para rodar em k8s)
|
|
20
|
-
- (ex: Não temos message broker disponível)
|
|
21
|
-
|
|
22
|
-
## Observações
|
|
23
|
-
- (qualquer contexto técnico relevante que o arquiteto deve considerar)
|
|
1
|
+
# TECH DIRECTION (Opcional)
|
|
2
|
+
|
|
3
|
+
> Direcionamento técnico inicial para a feature. Serve como ponto de partida para o SPEC_TECH, não como decisão final.
|
|
4
|
+
> O Arquiteto (tech-spec-expert) pode complementar, ajustar ou questionar qualquer item aqui.
|
|
5
|
+
|
|
6
|
+
## Decisões técnicas já tomadas
|
|
7
|
+
- (ex: Usar JWT com refresh token para autenticação)
|
|
8
|
+
- (ex: Criar gateway separado para integração externa)
|
|
9
|
+
|
|
10
|
+
## Tecnologias/Libs sugeridas
|
|
11
|
+
- (ex: biblioteca X para integração com serviço Y)
|
|
12
|
+
- (ex: framework Z para testes)
|
|
13
|
+
|
|
14
|
+
## Padrões ou abordagens preferidas
|
|
15
|
+
- (ex: Seguir o pattern Gateway já usado no projeto)
|
|
16
|
+
- (ex: Implementar como CQRS)
|
|
17
|
+
|
|
18
|
+
## Restrições técnicas
|
|
19
|
+
- (ex: Precisa ser stateless para rodar em k8s)
|
|
20
|
+
- (ex: Não temos message broker disponível)
|
|
21
|
+
|
|
22
|
+
## Observações
|
|
23
|
+
- (qualquer contexto técnico relevante que o arquiteto deve considerar)
|