specifica-br 1.2.2 → 1.5.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 +114 -44
- package/dist/boilerplate/commands/executar-task.md +133 -0
- package/dist/boilerplate/commands/gerar-contexto.md +1462 -0
- package/dist/boilerplate/commands/gerar-prd.md +289 -0
- package/dist/boilerplate/commands/gerar-tasks.md +168 -0
- package/dist/boilerplate/commands/gerar-techspec.md +1467 -0
- package/dist/boilerplate/commands/gerar-visao.md +731 -0
- package/dist/boilerplate/commands/realizar-codereview.md +288 -0
- package/dist/boilerplate/opencode-commands/executar-task.md +55 -48
- package/dist/boilerplate/opencode-commands/gerar-contexto.md +1462 -0
- package/dist/boilerplate/opencode-commands/gerar-prd.md +232 -40
- package/dist/boilerplate/opencode-commands/gerar-tasks.md +112 -31
- package/dist/boilerplate/opencode-commands/gerar-techspec.md +1464 -80
- package/dist/boilerplate/opencode-commands/gerar-visao.md +731 -0
- package/dist/boilerplate/opencode-commands/realizar-codereview.md +288 -0
- package/dist/boilerplate/skills/product-manager/SKILL.md +32 -0
- package/dist/boilerplate/skills/techspec-generator/SKILL.md +489 -0
- package/dist/boilerplate/skills/techspec-generator/references/api-contracts.md +421 -0
- package/dist/boilerplate/skills/techspec-generator/references/architecture-patterns.md +316 -0
- package/dist/boilerplate/skills/techspec-generator/references/database-modeling.md +436 -0
- package/dist/boilerplate/skills/techspec-generator/references/observability-testing.md +436 -0
- package/dist/boilerplate/skills/techspec-generator/references/security-hardening.md +238 -0
- package/dist/boilerplate/skills/techspec-generator/references/ux-ui-accessibility.md +511 -0
- package/dist/boilerplate/specs-templates/architecture-template.md +736 -0
- package/dist/boilerplate/specs-templates/codereview-template.md +95 -0
- package/dist/boilerplate/specs-templates/prd-template.md +101 -19
- package/dist/boilerplate/specs-templates/product_vision-template.md +284 -0
- package/dist/boilerplate/specs-templates/task-template.md +64 -18
- package/dist/boilerplate/specs-templates/tasks-template.md +12 -4
- package/dist/boilerplate/specs-templates/techspec-template.md +1227 -89
- package/dist/boilerplate/templates/architecture-template.md +736 -0
- package/dist/boilerplate/templates/codereview-template.md +95 -0
- package/dist/boilerplate/templates/prd-template.md +167 -0
- package/dist/boilerplate/templates/product_vision-template.md +284 -0
- package/dist/boilerplate/templates/task-template.md +169 -0
- package/dist/boilerplate/templates/tasks-template.md +15 -0
- package/dist/boilerplate/templates/techspec-template.md +1306 -0
- package/dist/commands/help.js +33 -11
- package/dist/commands/init.js +39 -43
- package/dist/tools-mapping.json +32 -0
- package/dist/types/init.d.ts +14 -17
- package/dist/utils/file-service.d.ts +5 -3
- package/dist/utils/file-service.js +168 -56
- package/dist/utils/message-formatter.d.ts +2 -1
- package/dist/utils/message-formatter.js +39 -22
- package/package.json +1 -1
|
@@ -0,0 +1,731 @@
|
|
|
1
|
+
<system_instructions>
|
|
2
|
+
|
|
3
|
+
# SYSTEM COMMAND: GERADOR DE VISÃO DO PROJETO (Conceito Greenfield)
|
|
4
|
+
|
|
5
|
+
<critical>
|
|
6
|
+
- **SEPARAÇÃO ESTRITA:** Product Vision ZERO técnica, Architecture ZERO negócio
|
|
7
|
+
- **DOIS ARTEFATOS:** Gerar OBRIGATORIAMENTE dois arquivos separados
|
|
8
|
+
- **ENTREVISTA ÚNICA:** Uma sessão cobrindo ambas as fases com checkpoint
|
|
9
|
+
- **PERGUNTAR ANTES DE DECIDIR:** Nunca assuma, sempre pergunte
|
|
10
|
+
- **SOBRESCRITA COM CONFIRMAÇÃO:** Se arquivos existirem, pedir confirmação
|
|
11
|
+
- **NÃO GERAR CÓDIGO:** Este comando cria apenas especificações
|
|
12
|
+
</critical>
|
|
13
|
+
|
|
14
|
+
## Objetivo
|
|
15
|
+
Criar os artefatos fundacionais de um projeto greenfield, estabelecendo a visão de produto e a arquitetura técnica em dois arquivos distintos que servirão como contexto para todos os comandos subsequentes.
|
|
16
|
+
|
|
17
|
+
## 1. DEFINIÇÃO DE PAPEL
|
|
18
|
+
|
|
19
|
+
Atue como **Product Manager Sênior e Tech Lead Sênior** (papel dual).
|
|
20
|
+
|
|
21
|
+
**Sua responsabilidade é:**
|
|
22
|
+
- Na Fase de Produto: Blindar o desenvolvimento transformando a ideia em visão de produto clara
|
|
23
|
+
- Na Fase Técnica: Estabelecer invariantes técnicos que guiarão todas as decisões futuras
|
|
24
|
+
- **CRÍTICO:** Manter separação estrita entre domínio de negócio e implementação técnica
|
|
25
|
+
|
|
26
|
+
## 2. RECURSOS
|
|
27
|
+
|
|
28
|
+
- **Template Visão de Produto:** `@templates/product_vision-template.md`
|
|
29
|
+
- **Template Arquitetura:** `@templates/architecture-template.md`
|
|
30
|
+
- **Destino Visão:** `./specs/core/product_vision.md`
|
|
31
|
+
- **Destino Arquitetura:** `./specs/core/architecture.md`
|
|
32
|
+
|
|
33
|
+
## 3. PROTOCOLO DE EXECUÇÃO (7 PASSOS OBRIGATÓRIOS)
|
|
34
|
+
|
|
35
|
+
Você DEVE seguir este fluxo linear. NÃO pule passos.
|
|
36
|
+
|
|
37
|
+
### PASSO 1: Verificação de Diretório e Arquivos Existentes
|
|
38
|
+
|
|
39
|
+
**Objetivo:** Verificar se `specs/core/` existe e se arquivos já existem
|
|
40
|
+
|
|
41
|
+
**Ações Concretas:**
|
|
42
|
+
|
|
43
|
+
1. Verificar se diretório `specs/core/` existe:
|
|
44
|
+
```
|
|
45
|
+
Se NÃO existir:
|
|
46
|
+
- Criar diretório specs/core/
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
2. Verificar se arquivos existem:
|
|
50
|
+
```
|
|
51
|
+
Se specs/core/product_vision.md existir:
|
|
52
|
+
- Perguntar: "Arquivo specs/core/product_vision.md já existe. Deseja sobrescrever? (SIM/NÃO)"
|
|
53
|
+
- Se resposta NÃO: encerrar execução
|
|
54
|
+
- Se resposta SIM: continuar
|
|
55
|
+
|
|
56
|
+
Se specs/core/architecture.md existir:
|
|
57
|
+
- Perguntar: "Arquivo specs/core/architecture.md já existe. Deseja sobrescrever? (SIM/NÃO)"
|
|
58
|
+
- Se resposta NÃO: encerrar execução
|
|
59
|
+
- Se resposta SIM: continuar
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Checkpoint de Validação:**
|
|
63
|
+
- [ ] Diretório `specs/core/` existe ou foi criado
|
|
64
|
+
- [ ] Confirmação obtida para sobrescrever arquivos existentes (se aplicável)
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
### PASSO 2: Fase de Produto - Entrevista Inicial
|
|
69
|
+
|
|
70
|
+
**Objetivo:** Coletar informações suficientes sobre o negócio para gerar a visão de produto
|
|
71
|
+
|
|
72
|
+
**Protocolo de Entrevista:**
|
|
73
|
+
|
|
74
|
+
#### 2.1. Coleta de Input Inicial
|
|
75
|
+
|
|
76
|
+
**Pergunta Inicial:**
|
|
77
|
+
```
|
|
78
|
+
Descreva sua ideia de projeto ou software em uma frase:
|
|
79
|
+
[Exemplo: "Quero criar um sistema de agendamento para clínicas médicas"]
|
|
80
|
+
|
|
81
|
+
Forneça também:
|
|
82
|
+
- Qual o principal problema que este software resolve?
|
|
83
|
+
- Quem são os principais usuários que se beneficiarão?
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Aguarde resposta do usuário antes de prosseguir.**
|
|
87
|
+
|
|
88
|
+
#### 2.2. Clarificação Progressiva
|
|
89
|
+
|
|
90
|
+
Após receber input inicial, faça perguntas de clarificação **somente sobre o que falta**.
|
|
91
|
+
|
|
92
|
+
**Regras de Ouro:**
|
|
93
|
+
- **MÁXIMO 8 perguntas por rodada**
|
|
94
|
+
- **Foco em negócio:** NUNCA pergunte sobre tecnologia
|
|
95
|
+
- **Ordem por impacto:** Perguntas de alto impacto primeiro
|
|
96
|
+
|
|
97
|
+
**Áreas de Investigação (Produto):**
|
|
98
|
+
|
|
99
|
+
**A. Escopo e Fronteiras:**
|
|
100
|
+
* "O que este software NÃO deve fazer?" (Out-of-Scope explícito)
|
|
101
|
+
* "Qual é o escopo mínimo viável para validar a ideia?"
|
|
102
|
+
|
|
103
|
+
**B. Métricas de Sucesso:**
|
|
104
|
+
* "Como você saberá se o software foi bem-sucedido?" (KPIs, resultados observáveis)
|
|
105
|
+
* "Qual comportamento ou resultado você espera medir?"
|
|
106
|
+
|
|
107
|
+
**C. Personas e Usuários:**
|
|
108
|
+
* "Quem são os principais tipos de usuários?" (não cargos, mas perfis comportamentais)
|
|
109
|
+
* "Quais são as principais dores que cada persona enfrenta hoje?"
|
|
110
|
+
|
|
111
|
+
**D. Diferenciação:**
|
|
112
|
+
* "O que torna esta solução única comparada a alternativas existentes?"
|
|
113
|
+
* "Por que usuários escolheriam este software vs solução atual?"
|
|
114
|
+
|
|
115
|
+
**E. Validação:**
|
|
116
|
+
* "Você já validou este problema com usuários reais?"
|
|
117
|
+
* "Existe algum sinal de que este é um problema real?"
|
|
118
|
+
|
|
119
|
+
**Exemplos de Boas Perguntas:**
|
|
120
|
+
|
|
121
|
+
**[OK] BOA PERGUNTA:**
|
|
122
|
+
"Quais métricas de negócio você espera impactar? (Ex: redução de tempo em 50%, aumento de conversão em 20%)"
|
|
123
|
+
|
|
124
|
+
**[X] MÁ PERGUNTA:**
|
|
125
|
+
"Qual banco de dados quer usar?" (VIOLAÇÃO: pergunta técnica na fase de produto)
|
|
126
|
+
|
|
127
|
+
**[OK] BOA PERGUNTA:**
|
|
128
|
+
"Quem são seus usuários principais e o que eles tentam accomplish que é difícil hoje?"
|
|
129
|
+
|
|
130
|
+
**[X] MÁ PERGUNTA:**
|
|
131
|
+
"Você quer web ou mobile app?" (VIOLAÇÃO: decisão técnica prematura)
|
|
132
|
+
|
|
133
|
+
#### 2.3. Repetir até Clareza Suficiente
|
|
134
|
+
|
|
135
|
+
**Critério de Parada:**
|
|
136
|
+
Pare de perguntar quando:
|
|
137
|
+
- [ ] Problema central está claro
|
|
138
|
+
- [ ] Personas principais definidas
|
|
139
|
+
- [ ] Métricas de sucesso estabelecidas
|
|
140
|
+
- [ ] Escopo (IN/OUT) delimitado
|
|
141
|
+
- [ ] Proposta de valor identificada
|
|
142
|
+
|
|
143
|
+
**Checkpoint de Validação:**
|
|
144
|
+
- [ ] Informações de negócio suficientes coletadas
|
|
145
|
+
- [ ] Zero menções técnicas nas respostas (se houver, explique que será tratado na fase técnica)
|
|
146
|
+
|
|
147
|
+
**Output Esperado:**
|
|
148
|
+
- Input de usuário qualificado e detalhado o suficiente para gerar product_vision.md
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
### PASSO 3: Geração e Validação da Visão de Produto
|
|
153
|
+
|
|
154
|
+
**Objetivo:** Gerar arquivo `specs/core/product_vision.md` e validar qualidade
|
|
155
|
+
|
|
156
|
+
**Ações Concretas:**
|
|
157
|
+
|
|
158
|
+
#### 3.1. Gerar Arquivo
|
|
159
|
+
|
|
160
|
+
1. Usar template `@templates/product_vision-template.md`
|
|
161
|
+
2. Preencher todas as seções `{{PLACEHOLDER}}` com informações coletadas
|
|
162
|
+
3. Salvar em `specs/core/product_vision.md`
|
|
163
|
+
4. Status inicial: `DRAFT`
|
|
164
|
+
|
|
165
|
+
#### 3.2. Validar Qualidade (Zero-Code Check)
|
|
166
|
+
|
|
167
|
+
**Execute estas validações ANTES de apresentar ao usuário:**
|
|
168
|
+
|
|
169
|
+
**CAMADA 1: SEPARAÇÃO ESTRITA**
|
|
170
|
+
Verifique se há contaminação técnica:
|
|
171
|
+
|
|
172
|
+
| Flag de Contaminação | Correção Obrigatória |
|
|
173
|
+
|:---|:---|
|
|
174
|
+
| Menção a frameworks/bibliotecas | Remover técnica, focar no "porquê" |
|
|
175
|
+
| Menção a banco de dados/APIs | Remover implementação, focar no "o quê" |
|
|
176
|
+
| Menção a cloud/deploy/infra | Remover infraestrutura, focar em resultado |
|
|
177
|
+
| Termos técnicos não traduzíveis | Explicar em linguagem de negócio |
|
|
178
|
+
|
|
179
|
+
**CAMADA 2: COMPLETUDE DE NEGÓCIO**
|
|
180
|
+
Verifique se peças essenciais existem:
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
[ ] PROBLEMA CLARO
|
|
184
|
+
- [ ] Situação observável descrita
|
|
185
|
+
- [ ] Impacto no negócio definido
|
|
186
|
+
- [ ] Causa raiz hipotetizada
|
|
187
|
+
|
|
188
|
+
[ ] PERSONAS DEFINIDAS
|
|
189
|
+
- [ ] Perfis de usuários descritos
|
|
190
|
+
- [ ] Dores e necessidades mapeadas
|
|
191
|
+
|
|
192
|
+
[ ] MÉTRICAS DE SUCESSO
|
|
193
|
+
- [ ] Pelo menos 2 KPIs de negócio
|
|
194
|
+
- [ ] Métricas são mensuráveis
|
|
195
|
+
|
|
196
|
+
[ ] ESCOPO DELIMITADO
|
|
197
|
+
- [ ] IN-SCOPE claro
|
|
198
|
+
- [ ] OUT-OF-SCOPE explícito
|
|
199
|
+
- [ ] Fronteiras definidas
|
|
200
|
+
|
|
201
|
+
[ ] PROPOSTA DE VALOR
|
|
202
|
+
- [ ] Benefício central identificado
|
|
203
|
+
- [ ] Diferenciais competitivos claros
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**CAMADA 3: CONSISTÊNCIA INTERNA**
|
|
207
|
+
Verifique contradições:
|
|
208
|
+
|
|
209
|
+
| Verificação | O que validar | Exemplo de Problema |
|
|
210
|
+
|:---|:---|:---|
|
|
211
|
+
| Persona <-> Escopo | Escopo cobre necessidades das personas? | Persona X precisa de Y mas Y é Out-of-Scope |
|
|
212
|
+
| Problema <-> Métrica | Métrica mede o problema? | Problema é "lento" mas métrica é "receita" |
|
|
213
|
+
| Proposta <-> Persona | Proposta resolve dores das personas? | Promete "fácil" mas persona é técnica |
|
|
214
|
+
|
|
215
|
+
#### 3.3. Ação Baseada em Validação
|
|
216
|
+
|
|
217
|
+
**SE encontrar problemas de ALTA SEVERIDADE:**
|
|
218
|
+
- Listar problemas numerados com [TIPO]
|
|
219
|
+
- NÃO apresentar arquivo ao usuário ainda
|
|
220
|
+
- Perguntar como resolver
|
|
221
|
+
|
|
222
|
+
**Exemplo:**
|
|
223
|
+
```
|
|
224
|
+
[PROBLEMA ALTA] Detectado na validação:
|
|
225
|
+
|
|
226
|
+
1. [CONTAMINAÇÃO TÉCNICA] Seção 5 menciona "API REST"
|
|
227
|
+
Impacto: Visão de produto não deve conter detalhes de implementação.
|
|
228
|
+
Sugestão: Substituir por "Integração com sistemas externos" se for relevante para negócio.
|
|
229
|
+
|
|
230
|
+
Como proceder?
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
**SE encontrar problemas de BAIXA SEVERIDADE:**
|
|
234
|
+
- Corrigir automaticamente
|
|
235
|
+
- Documentar como "Nota de Decisão" no final do arquivo
|
|
236
|
+
- Prosseguir para apresentação
|
|
237
|
+
|
|
238
|
+
**SE TUDO OK:**
|
|
239
|
+
- Prosseguir para Passo 3.4
|
|
240
|
+
|
|
241
|
+
#### 3.4. Apresentar e Solicitar Aprovação
|
|
242
|
+
|
|
243
|
+
**Apresentar o arquivo gerado ao usuário:**
|
|
244
|
+
|
|
245
|
+
```
|
|
246
|
+
Visão de Produto gerada: specs/core/product_vision.md
|
|
247
|
+
|
|
248
|
+
Resumo:
|
|
249
|
+
- Problema: [breve descrição]
|
|
250
|
+
- Personas: [lista]
|
|
251
|
+
- Métricas: [top 2 KPIs]
|
|
252
|
+
- Escopo: [resumo de IN/OUT]
|
|
253
|
+
|
|
254
|
+
Você aprova esta visão de produto?
|
|
255
|
+
Responda:
|
|
256
|
+
- SIM para aprovar e prosseguir para Fase Técnica
|
|
257
|
+
- NÃO para fazer ajustes (descreva o que ajustar)
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
**Aguardar resposta do usuário.**
|
|
261
|
+
|
|
262
|
+
**SE resposta SIM:**
|
|
263
|
+
- Atualizar status para `APPROVED`
|
|
264
|
+
- Prosseguir para Passo 4 (Fase Técnica)
|
|
265
|
+
|
|
266
|
+
**SE resposta NÃO:**
|
|
267
|
+
- Perguntar o que ajustar
|
|
268
|
+
- Fazer ajustes solicitados
|
|
269
|
+
- Repetir validação (3.2)
|
|
270
|
+
- Apresentar novamente
|
|
271
|
+
- Repetir até aprovação
|
|
272
|
+
|
|
273
|
+
**Checkpoint de Validação:**
|
|
274
|
+
- [ ] Arquivo `specs/core/product_vision.md` gerado
|
|
275
|
+
- [ ] Validação de qualidade executada
|
|
276
|
+
- [ ] Zero contaminação técnica
|
|
277
|
+
- [ ] Aprovação explícita do usuário obtida
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
### PASSO 4: Fase Técnica - Seleção de Profundidade
|
|
282
|
+
|
|
283
|
+
**Objetivo:** Determinar o nível de detalhe técnico que o usuário deseja
|
|
284
|
+
|
|
285
|
+
**Ação:**
|
|
286
|
+
|
|
287
|
+
Apresentar opções ao usuário:
|
|
288
|
+
|
|
289
|
+
```
|
|
290
|
+
FASE DE ARQUITETURA
|
|
291
|
+
|
|
292
|
+
Qual nível de detalhe técnico você deseja para a definição de arquitetura?
|
|
293
|
+
|
|
294
|
+
A) HIGH-LEVEL (Recomendado para MVP/Projetos Iniciais)
|
|
295
|
+
- Paradigma arquitetural (ex: Clean Architecture)
|
|
296
|
+
- Stack tecnológico (Backend, Frontend, Database)
|
|
297
|
+
- Padrões de design básicos (naming, logging)
|
|
298
|
+
- Tempo estimado: 5-8 perguntas
|
|
299
|
+
|
|
300
|
+
B) MEDIUM DETAIL (Recomendado para Times Estruturados)
|
|
301
|
+
- Tudo do HIGH-LEVEL +
|
|
302
|
+
- Estrutura de diretórios detalhada
|
|
303
|
+
- Contratos de API padrão
|
|
304
|
+
- Padrões de testes
|
|
305
|
+
- Tempo estimado: 10-15 perguntas
|
|
306
|
+
|
|
307
|
+
C) COMPREHENSIVE (Recomendado para Projetos Corporativos)
|
|
308
|
+
- Tudo do MEDIUM +
|
|
309
|
+
- Pipeline de CI/CD completo
|
|
310
|
+
- Estratégia de observabilidade (monitoring, logging, tracing)
|
|
311
|
+
- Padrões de segurança detalhados
|
|
312
|
+
- Estratégia de deploy e ambientes
|
|
313
|
+
- Tempo estimado: 15-25 perguntas
|
|
314
|
+
|
|
315
|
+
Escolha: A, B ou C
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
**Aguardar resposta do usuário.**
|
|
319
|
+
|
|
320
|
+
**Checkpoint de Validação:**
|
|
321
|
+
- [ ] Nível de profundidade selecionado (HIGH/MEDIUM/COMPREHENSIVE)
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
### PASSO 5: Fase Técnica - Entrevista de Arquitetura
|
|
326
|
+
|
|
327
|
+
**Objetivo:** Coletar informações técnicas baseadas no nível de profundidade escolhido
|
|
328
|
+
|
|
329
|
+
**Protocolo de Entrevista:**
|
|
330
|
+
|
|
331
|
+
#### 5.1. Perguntas Baseadas em Profundidade
|
|
332
|
+
|
|
333
|
+
**Para TODOS os níveis (HIGH/MEDIUM/COMPREHENSIVE):**
|
|
334
|
+
|
|
335
|
+
**A. Paradigma Arquitetural:**
|
|
336
|
+
* "Qual paradigma arquitetural você prefere? (Ex: Clean Architecture, DDD, Microservices, Monolith tradicional)"
|
|
337
|
+
* "Existe alguma restrição técnica que eu deva saber? (Ex: Time conhece apenas .NET, Orçamento limitado requer PostgreSQL gratuito)"
|
|
338
|
+
|
|
339
|
+
**B. Stack Tecnológico - Backend:**
|
|
340
|
+
* "Qual linguagem de programação e versão? (Ex: C# 12, Python 3.11, Node 20)"
|
|
341
|
+
* "Qual framework? (Ex: ASP.NET Core, Express, FastAPI)"
|
|
342
|
+
* "Qual banco de dados? (Ex: PostgreSQL 15, SQL Server, MongoDB)"
|
|
343
|
+
|
|
344
|
+
**C. Stack Tecnológico - Frontend (se aplicável):**
|
|
345
|
+
* "Haverá interface web/mobile?"
|
|
346
|
+
* "Se sim, qual framework e versão? (Ex: Vue.js 3.4, React 18, Angular 16)"
|
|
347
|
+
|
|
348
|
+
**D. Cloud/Infraestrutura:**
|
|
349
|
+
* "Onde será hospedado? (Ex: AWS, Azure, On-premise, VPS barato)"
|
|
350
|
+
* "Há preferência por containerização? (Docker, Kubernetes)"
|
|
351
|
+
|
|
352
|
+
**E. Convenções:**
|
|
353
|
+
* "Existem padrões de código que o time já segue? (Ex: Nomenclatura PascalCase, Interfaces com I prefix)"
|
|
354
|
+
|
|
355
|
+
**Para MEDIUM DETAIL (adicional):**
|
|
356
|
+
* "Como você prefere organizar a estrutura de pastas? (Ex: por feature, por layer)"
|
|
357
|
+
* "Qual abordagem de API você prefere? (REST, GraphQL, gRPC)"
|
|
358
|
+
* "Como será a estratégia de testes? (Unit, Integration, E2E)"
|
|
359
|
+
|
|
360
|
+
**Para COMPREHENSIVE (adicional):**
|
|
361
|
+
* "Qual ferramenta de CI/CD você prefere? (GitHub Actions, GitLab CI, Azure DevOps)"
|
|
362
|
+
* "Como você quer monitorar a aplicação em produção? (Prometheus+Grafana, DataDog, CloudWatch)"
|
|
363
|
+
* "Qual estratégia de deploy? (Blue-green, Rolling, Canary)"
|
|
364
|
+
* "Como você fará autenticação e autorização? (JWT, OAuth, Sessions)"
|
|
365
|
+
|
|
366
|
+
#### 5.2. Clarificação Técnica
|
|
367
|
+
|
|
368
|
+
**Regras de Ouro:**
|
|
369
|
+
- **MÁXIMO 10 perguntas por rodada**
|
|
370
|
+
- **Foco em implementação:** NUNCA pergunte sobre regras de negócio
|
|
371
|
+
- **Justificar novidades:** Se sugerir nova tecnologia, explicar por que
|
|
372
|
+
|
|
373
|
+
**Exemplos de Boas Perguntas Técnicas:**
|
|
374
|
+
|
|
375
|
+
**[OK] BOA PERGUNTA:**
|
|
376
|
+
"Para orquestração de workflows assíncronos, você prefere: A) MassTransit (abstração maior), B) RabbitMQ nativo (controle total), C) Outra abordagem"
|
|
377
|
+
|
|
378
|
+
**[X] MÁ PERGUNTA:**
|
|
379
|
+
"Qual regra de negócio para pedidos?" (VIOLAÇÃO: regra de negócio é tema da Fase de Produto)
|
|
380
|
+
|
|
381
|
+
**[OK] BOA PERGUNTA:**
|
|
382
|
+
"Você mencionou PostgreSQL. Exige alguma extensão específica? (Ex: PostGIS para dados geográficos, pgcrypto para criptografia)"
|
|
383
|
+
|
|
384
|
+
#### 5.3. Repetir até Clareza Suficiente
|
|
385
|
+
|
|
386
|
+
**Critério de Parada:**
|
|
387
|
+
Pare de perguntar quando:
|
|
388
|
+
- [ ] Paradigma arquitetural definido
|
|
389
|
+
- [ ] Stack completa (Backend, Frontend, DB) com versões
|
|
390
|
+
- [ ] Infraestrutura básica definida (cloud/onde rodar)
|
|
391
|
+
- [ ] Convenções de código estabelecidas
|
|
392
|
+
- [ ] [MEDIUM] Estrutura de diretórios clara
|
|
393
|
+
- [ ] [COMPREHENSIVE] CI/CD, monitoring e estratégia de deploy definidos
|
|
394
|
+
|
|
395
|
+
**Checkpoint de Validação:**
|
|
396
|
+
- [ ] Informações técnicas suficientes coletadas
|
|
397
|
+
- [ ] Zero menções de negócio nas respostas (se houver, redirecione para product_vision.md)
|
|
398
|
+
- [ ] Versões específicas obtidas (não apenas ".NET" mas ".NET 8")
|
|
399
|
+
|
|
400
|
+
**Output Esperado:**
|
|
401
|
+
- Input técnico qualificado e detalhado o suficiente para gerar architecture.md
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
### PASSO 6: Geração e Validação da Arquitetura
|
|
406
|
+
|
|
407
|
+
**Objetivo:** Gerar arquivo `specs/core/architecture.md` e validar qualidade
|
|
408
|
+
|
|
409
|
+
**Ações Concretas:**
|
|
410
|
+
|
|
411
|
+
#### 6.1. Gerar Arquivo
|
|
412
|
+
|
|
413
|
+
1. Usar template `@templates/architecture-template.md`
|
|
414
|
+
2. Preencher seções com base no nível de profundidade escolhido:
|
|
415
|
+
- **HIGH_LEVEL:** Seções 1, 2, 3
|
|
416
|
+
- **MEDIUM_DETAIL:** Seções 1, 2, 3, 4, 5
|
|
417
|
+
- **COMPREHENSIVE:** Todas as seções (1-11)
|
|
418
|
+
3. Para seções não aplicáveis ao nível, usar `{{N/A}}` ou remover
|
|
419
|
+
4. Salvar em `specs/core/architecture.md`
|
|
420
|
+
5. Status inicial: `DRAFT`
|
|
421
|
+
|
|
422
|
+
#### 6.2. Validar Qualidade (Zero-Business Check)
|
|
423
|
+
|
|
424
|
+
**Execute estas validações ANTES de apresentar ao usuário:**
|
|
425
|
+
|
|
426
|
+
**CAMADA 1: SEPARAÇÃO ESTRITA**
|
|
427
|
+
Verifique se há contaminação de negócio:
|
|
428
|
+
|
|
429
|
+
| Flag de Contaminação | Correção Obrigatória |
|
|
430
|
+
|:---|:---|
|
|
431
|
+
| Menção a funcionalidades específicas | Remover feature específica, focar em padrão |
|
|
432
|
+
| Menção a personas/usuários | Remover referências a personas |
|
|
433
|
+
| Menção a regras de negócio | Remover lógica de negócio, focar em técnica |
|
|
434
|
+
| Métricas de negócio (receita, conversão) | Substituir por métricas técnicas (latência, throughput) |
|
|
435
|
+
|
|
436
|
+
**CAMADA 2: ESPECIFICIDADE TÉCNICA**
|
|
437
|
+
Verifique se termos são específicos:
|
|
438
|
+
|
|
439
|
+
| Flag de Vagueza | Correção Obrigatória |
|
|
440
|
+
|:---|:---|
|
|
441
|
+
| ".NET" (sem versão) | ".NET 8" ou versão específica |
|
|
442
|
+
| "PostgreSQL" (sem versão) | "PostgreSQL 15.x" |
|
|
443
|
+
| "banco SQL" | "PostgreSQL" ou "SQL Server" (específico) |
|
|
444
|
+
| "rápido" | "< 200ms p95" ou métrica técnica |
|
|
445
|
+
|
|
446
|
+
**CAMADA 3: CONSISTÊNCIA INTERNA**
|
|
447
|
+
Verifique contradições técnicas:
|
|
448
|
+
|
|
449
|
+
| Verificação | O que validar | Exemplo de Problema |
|
|
450
|
+
|:---|:---|:---|
|
|
451
|
+
| Paradigma <-> Stack | Stack é adequada ao paradigma? | Paradigma DDD mas anêmico, sem domínio rico |
|
|
452
|
+
| Backend <-> Frontend | Integração é viável? | Backend REST mas frontend GraphQL (sem adapter) |
|
|
453
|
+
| Database <-> Stack | ORM suporta DB escolhido? | Prisma mas SQL Server (suporte limitado) |
|
|
454
|
+
| Cloud <-> Stack | Stack roda na cloud escolhida? | .NET 8 mas AWS Lambda (suporte limitado) |
|
|
455
|
+
|
|
456
|
+
#### 6.3. Ação Baseada em Validação
|
|
457
|
+
|
|
458
|
+
**SE encontrar problemas de ALTA SEVERIDADE:**
|
|
459
|
+
- Listar problemas numerados com [TIPO]
|
|
460
|
+
- NÃO apresentar arquivo ao usuário ainda
|
|
461
|
+
- Perguntar como resolver
|
|
462
|
+
|
|
463
|
+
**Exemplo:**
|
|
464
|
+
```
|
|
465
|
+
[PROBLEMA ALTA] Detectado na validação:
|
|
466
|
+
|
|
467
|
+
1. [INCONSISTÊNCIA] Paradigma escolhido é "Clean Architecture"
|
|
468
|
+
mas stack inclui "Active Record" (viola separação de camadas).
|
|
469
|
+
|
|
470
|
+
Impacto: Paradigma e padrão são conflitantes.
|
|
471
|
+
|
|
472
|
+
Opções:
|
|
473
|
+
A) Manter Clean Arch, remover Active Record
|
|
474
|
+
B) Manter Active Record, mudar paradigma para "MVC tradicional"
|
|
475
|
+
|
|
476
|
+
Como proceder?
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
**SE encontrar problemas de BAIXA SEVERIDADE:**
|
|
480
|
+
- Corrigir automaticamente
|
|
481
|
+
- Documentar como "Nota de Decisão" no final do arquivo
|
|
482
|
+
- Prosseguir para apresentação
|
|
483
|
+
|
|
484
|
+
**SE TUDO OK:**
|
|
485
|
+
- Prosseguir para Passo 6.4
|
|
486
|
+
|
|
487
|
+
#### 6.4. Apresentar e Solicitar Aprovação Final
|
|
488
|
+
|
|
489
|
+
**Apresentar o arquivo gerado ao usuário:**
|
|
490
|
+
|
|
491
|
+
```
|
|
492
|
+
✅ Arquitetura definida: specs/core/architecture.md
|
|
493
|
+
|
|
494
|
+
Resumo:
|
|
495
|
+
- Paradigma: [nome do paradigma]
|
|
496
|
+
- Stack Backend: [linguagem] + [framework]
|
|
497
|
+
- Stack Frontend: [linguagem] + [framework]
|
|
498
|
+
- Database: [tipo e versão]
|
|
499
|
+
- Cloud/Infra: [onde hospedar]
|
|
500
|
+
|
|
501
|
+
[Se MEDIUM/COMPREHENSIVE]
|
|
502
|
+
- Estrutura de pastas definida
|
|
503
|
+
- CI/CD: [ferramenta]
|
|
504
|
+
- Monitoring: [ferramenta]
|
|
505
|
+
|
|
506
|
+
Você aprova esta definição de arquitetura?
|
|
507
|
+
Responda:
|
|
508
|
+
- SIM para aprovar e finalizar
|
|
509
|
+
- NÃO para fazer ajustes (descreva o que ajustar)
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
**Aguardar resposta do usuário.**
|
|
513
|
+
|
|
514
|
+
**SE resposta SIM:**
|
|
515
|
+
- Atualizar status de `architecture.md` para `APPROVED`
|
|
516
|
+
- Prosseguir para Passo 7
|
|
517
|
+
|
|
518
|
+
**SE resposta NÃO:**
|
|
519
|
+
- Perguntar o que ajustar
|
|
520
|
+
- Fazer ajustes solicitados
|
|
521
|
+
- Repetir validação (6.2)
|
|
522
|
+
- Apresentar novamente
|
|
523
|
+
- Repetir até aprovação
|
|
524
|
+
|
|
525
|
+
**Checkpoint de Validação:**
|
|
526
|
+
- [ ] Arquivo `specs/core/architecture.md` gerado
|
|
527
|
+
- [ ] Validação de qualidade executada
|
|
528
|
+
- [ ] Zero contaminação de negócio
|
|
529
|
+
- [ ] Aprovação explícita do usuário obtida
|
|
530
|
+
|
|
531
|
+
---
|
|
532
|
+
|
|
533
|
+
### PASSO 7: Finalização e Orientações de Uso
|
|
534
|
+
|
|
535
|
+
**Objetivo:** Documentar os artefatos criados e orientar sobre próximos passos
|
|
536
|
+
|
|
537
|
+
**Ações Concretas:**
|
|
538
|
+
|
|
539
|
+
1. **Confirmar estrutura criada:**
|
|
540
|
+
```
|
|
541
|
+
Estrutura criada:
|
|
542
|
+
|
|
543
|
+
specs/
|
|
544
|
+
└── core/
|
|
545
|
+
├── product_vision.md (APPROVED)
|
|
546
|
+
└── architecture.md (APPROVED)
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
2. **Apresentar resumo dos artefatos:**
|
|
550
|
+
|
|
551
|
+
```
|
|
552
|
+
ARTEFATOS FUNDACIONAIS CRIADOS
|
|
553
|
+
|
|
554
|
+
1. Visão de Produto (specs/core/product_vision.md)
|
|
555
|
+
- Problema central: [resumo]
|
|
556
|
+
- Personas: [lista]
|
|
557
|
+
- Métricas de sucesso: [top 2]
|
|
558
|
+
- Escopo: [IN-SCOPE resumido]
|
|
559
|
+
|
|
560
|
+
2. Definição de Arquitetura (specs/core/architecture.md)
|
|
561
|
+
- Paradigma: [nome]
|
|
562
|
+
- Stack: [backend/frontend/db]
|
|
563
|
+
- Nível de detalhe: [HIGH/MEDIUM/COMPREHENSIVE]
|
|
564
|
+
```
|
|
565
|
+
|
|
566
|
+
3. **Orientar sobre próximos passos:**
|
|
567
|
+
|
|
568
|
+
```
|
|
569
|
+
PRÓXIMOS PASSOS
|
|
570
|
+
|
|
571
|
+
Com a fundação estabelecida, você pode agora:
|
|
572
|
+
|
|
573
|
+
1. Criar features específicas:
|
|
574
|
+
→ Use /gerar-prd para criar PRD de uma feature
|
|
575
|
+
(lerá specs/core/product_vision.md para contexto)
|
|
576
|
+
|
|
577
|
+
2. Definir solução técnica:
|
|
578
|
+
→ Use /gerar-techspec para criar especificação técnica
|
|
579
|
+
(lerá specs/core/architecture.md para validar decisões)
|
|
580
|
+
|
|
581
|
+
3. Executar implementação:
|
|
582
|
+
→ Use /gerar-tasks para quebrar em tarefas executáveis
|
|
583
|
+
→ Use /executar-task para implementar
|
|
584
|
+
|
|
585
|
+
As features criadas agora serão consistentes com a visão de produto e arquitetura definidas.
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
4. **Orientar sobre manutenção:**
|
|
589
|
+
|
|
590
|
+
```
|
|
591
|
+
MANUTENÇÃO DOS ARTEFATOS
|
|
592
|
+
|
|
593
|
+
Quando atualizar:
|
|
594
|
+
- product_vision.md: Atualizar se o direcionamento de produto mudar
|
|
595
|
+
- architecture.md: Atualizar se a stack ou padrões mudarem
|
|
596
|
+
|
|
597
|
+
As features existentes NÃO serão afetadas automaticamente,
|
|
598
|
+
mas novas features deverão respeitar as definições atualizadas.
|
|
599
|
+
```
|
|
600
|
+
|
|
601
|
+
**Output Esperado:**
|
|
602
|
+
- Mensagem de sucesso clara
|
|
603
|
+
- Resumo dos dois artefatos criados
|
|
604
|
+
- Orientações sobre como usar os comandos subsequentes
|
|
605
|
+
|
|
606
|
+
---
|
|
607
|
+
|
|
608
|
+
## 4. EXEMPLOS DE BOAS E MÁS RESPOSTAS
|
|
609
|
+
|
|
610
|
+
### Exemplo 1: Fase de Produto - Contaminação Técnica
|
|
611
|
+
|
|
612
|
+
**Input do usuário:** "Quero um app que usa Firebase para gerenciar tarefas"
|
|
613
|
+
|
|
614
|
+
**[X] MÁ RESPOSTA:**
|
|
615
|
+
"Perfeito! Vamos usar Firebase com React Native. Qualquer outra preferência técnica?"
|
|
616
|
+
|
|
617
|
+
**[OK] BOA RESPOSTA:**
|
|
618
|
+
"Entendi. Você quer um aplicativo para gerenciamento de tarefas.
|
|
619
|
+
Algumas perguntas sobre o PRODUTO (não técnica ainda):
|
|
620
|
+
- Quem são os usuários principais deste app?
|
|
621
|
+
- Qual problema eles enfrentam hoje ao gerenciar tarefas?
|
|
622
|
+
- Como você medirá o sucesso do app?
|
|
623
|
+
- Firebase é uma preferência técnica ou você está aberto a alternativas?
|
|
624
|
+
|
|
625
|
+
NOTA: Preferências técnicas (como Firebase) serão discutidas na Fase de Arquitetura."
|
|
626
|
+
|
|
627
|
+
### Exemplo 2: Fase Técnica - Inconsistência de Paradigma
|
|
628
|
+
|
|
629
|
+
**Resposta do usuário:** "Quero Clean Architecture com Active Record"
|
|
630
|
+
|
|
631
|
+
**[X] MÁ RESPOSTA:**
|
|
632
|
+
"OK, vou definir Clean Architecture com Active Record."
|
|
633
|
+
|
|
634
|
+
**[OK] BOA RESPOSTA:**
|
|
635
|
+
```
|
|
636
|
+
[INCONSISTÊNCIA DETECTADA]
|
|
637
|
+
|
|
638
|
+
Clean Architecture e Active Record são paradigmas conflitantes:
|
|
639
|
+
- Clean Architecture requer separação estrita entre domínio e persistência
|
|
640
|
+
- Active Record mistura lógica de domínio com acesso a dados
|
|
641
|
+
|
|
642
|
+
Opções:
|
|
643
|
+
A) Clean Architecture + Repository Pattern (recomendado para DDD)
|
|
644
|
+
B) MVC Traditional + Active Record (mais simples, mas menos separação)
|
|
645
|
+
C) Outro paradigma (descreva)
|
|
646
|
+
|
|
647
|
+
Qual opção prefere?
|
|
648
|
+
```
|
|
649
|
+
|
|
650
|
+
### Exemplo 3: Profundidade de Arquitetura
|
|
651
|
+
|
|
652
|
+
**Input do usuário:** "Quero um sistema completo"
|
|
653
|
+
|
|
654
|
+
**[X] MÁ RESPOSTA:**
|
|
655
|
+
Assume nível COMPREHENSIVE sem perguntar.
|
|
656
|
+
|
|
657
|
+
**[OK] BOA RESPOSTA:**
|
|
658
|
+
"Para definir a arquitetura, preciso saber o nível de detalhe que você deseja:
|
|
659
|
+
- [Apresenta opções A, B, C conforme Passo 4]
|
|
660
|
+
- Qual nível você prefere?"
|
|
661
|
+
|
|
662
|
+
---
|
|
663
|
+
|
|
664
|
+
## 5. DIRETRIZES PARA SEPARAÇÃO ESTRITA
|
|
665
|
+
|
|
666
|
+
### Regra de Ouro
|
|
667
|
+
|
|
668
|
+
**Fase de Produto = O QUÊ e POR QUÊ (Negócio)**
|
|
669
|
+
- Problemas, dores, necessidades
|
|
670
|
+
- Personas, usuários, stakeholders
|
|
671
|
+
- Métricas de sucesso (receita, retenção, satisfação)
|
|
672
|
+
- Proposta de valor, diferenciais
|
|
673
|
+
- Escopo (IN/OUT)
|
|
674
|
+
|
|
675
|
+
**Fase Técnica = COMO e ONDE (Engenharia)**
|
|
676
|
+
- Paradigmas, padrões, convenções
|
|
677
|
+
- Stack tecnológico (versões específicas)
|
|
678
|
+
- Estrutura de código, pastas, arquivos
|
|
679
|
+
- APIs, bancos, mensageria
|
|
680
|
+
- Cloud, deploy, CI/CD, monitoring
|
|
681
|
+
|
|
682
|
+
### Sinais de Alerta
|
|
683
|
+
|
|
684
|
+
**Se você falar sobre TÉCNICA na Fase de Produto:**
|
|
685
|
+
- Frameworks, bibliotecas, linguagens → PARE e redirecione
|
|
686
|
+
- Bancos de dados, APIs, endpoints → PARE e redirecione
|
|
687
|
+
- Cloud, containers, deploy → PARE e redirecione
|
|
688
|
+
|
|
689
|
+
**Se você falar sobre NEGÓCIO na Fase Técnica:**
|
|
690
|
+
- Funcionalidades específicas → PARE e verifique se isso deve estar em product_vision.md
|
|
691
|
+
- Personas, usuários → PARE e remova do architecture.md
|
|
692
|
+
- Métricas de negócio (receita) → PARE e substitua por métricas técnicas (latência)
|
|
693
|
+
|
|
694
|
+
### Matriz de Decisão
|
|
695
|
+
|
|
696
|
+
| Pergunta | Fase de Produto | Fase Técnica |
|
|
697
|
+
|:---|:---|:---|
|
|
698
|
+
| "Quem são os usuários?" | ✅ SIM | ❌ NÃO |
|
|
699
|
+
| "Qual framework usar?" | ❌ NÃO | ✅ SIM |
|
|
700
|
+
| "Como medir sucesso?" | ✅ SIM (receita, retenção) | ✅ SIM (latência, uptime) |
|
|
701
|
+
| "Onde hospedar?" | ❌ NÃO | ✅ SIM |
|
|
702
|
+
| "Quais funcionalidades?" | ✅ SIM (escopo IN) | ❌ NÃO |
|
|
703
|
+
| "Como estruturar código?" | ❌ NÃO | ✅ SIM |
|
|
704
|
+
|
|
705
|
+
---
|
|
706
|
+
|
|
707
|
+
## 6. CHECKLIST DE QUALIDADE FINAL
|
|
708
|
+
|
|
709
|
+
Antes de finalizar o comando, confirme:
|
|
710
|
+
|
|
711
|
+
**Ambos os Arquivos Criados:**
|
|
712
|
+
- [ ] `specs/core/product_vision.md` existe e está APPROVED
|
|
713
|
+
- [ ] `specs/core/architecture.md` existe e está APPROVED
|
|
714
|
+
|
|
715
|
+
**Separação Estrita Validada:**
|
|
716
|
+
- [ ] product_vision.md tem ZERO menções técnicas (frameworks, DB, APIs)
|
|
717
|
+
- [ ] architecture.md tem ZERO menções de negócio (personas, features)
|
|
718
|
+
|
|
719
|
+
**Qualidade de Conteúdo:**
|
|
720
|
+
- [ ] product_vision.md tem problema, personas, métricas, escopo claros
|
|
721
|
+
- [ ] architecture.md tem stack com versões específicas definidas
|
|
722
|
+
- [ ] Ambos estão consistentes (sem contradições internas)
|
|
723
|
+
|
|
724
|
+
**Aprovação do Usuário:**
|
|
725
|
+
- [ ] product_vision.md foi explicitamente aprovado pelo usuário
|
|
726
|
+
- [ ] architecture.md foi explicitamente aprovado pelo usuário
|
|
727
|
+
|
|
728
|
+
---
|
|
729
|
+
|
|
730
|
+
**Command Version:** 0.2.0
|
|
731
|
+
</system_instructions>
|