@maestro-ai/mcp-server 5.7.0 → 6.0.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/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/content/skills/specialist-api-contract/SKILL.md +98 -0
- package/dist/content/skills/specialist-api-contract/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-api-contract/resources/reference/guide.md +109 -0
- package/dist/content/skills/specialist-architect/SKILL.md +111 -0
- package/dist/content/skills/specialist-architect/resources/checklists/gate-checklist.md +45 -0
- package/dist/content/skills/specialist-architect/resources/examples/example-architecture.md +345 -0
- package/dist/content/skills/specialist-architect/resources/reference/guide.md +86 -0
- package/dist/content/skills/specialist-architect/resources/templates/arquitetura.md +282 -0
- package/dist/content/skills/specialist-backend/SKILL.md +100 -0
- package/dist/content/skills/specialist-backend/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-backend/resources/reference/guide.md +160 -0
- package/dist/content/skills/specialist-design/SKILL.md +107 -0
- package/dist/content/skills/specialist-design/resources/checklists/gate-checklist.md +45 -0
- package/dist/content/skills/specialist-design/resources/examples/example-design.md +294 -0
- package/dist/content/skills/specialist-design/resources/reference/guide.md +67 -0
- package/dist/content/skills/specialist-design/resources/templates/design-doc.md +232 -0
- package/dist/content/skills/specialist-devops/SKILL.md +99 -0
- package/dist/content/skills/specialist-devops/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-devops/resources/reference/guide.md +116 -0
- package/dist/content/skills/specialist-discovery/SKILL.md +109 -0
- package/dist/content/skills/specialist-discovery/resources/checklists/gate-checklist.md +45 -0
- package/dist/content/skills/specialist-discovery/resources/examples/example-discovery.md +179 -0
- package/dist/content/skills/specialist-discovery/resources/reference/guide.md +48 -0
- package/dist/content/skills/specialist-discovery/resources/templates/discovery.md +187 -0
- package/dist/content/skills/specialist-domain/SKILL.md +105 -0
- package/dist/content/skills/specialist-domain/resources/checklists/gate-checklist.md +37 -0
- package/dist/content/skills/specialist-domain/resources/reference/guide.md +80 -0
- package/dist/content/skills/specialist-frontend/SKILL.md +99 -0
- package/dist/content/skills/specialist-frontend/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-frontend/resources/reference/guide.md +90 -0
- package/dist/content/skills/specialist-operations/SKILL.md +109 -0
- package/dist/content/skills/specialist-operations/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-operations/resources/reference/guide.md +129 -0
- package/dist/content/skills/specialist-planning/SKILL.md +100 -0
- package/dist/content/skills/specialist-planning/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-planning/resources/reference/guide.md +88 -0
- package/dist/content/skills/specialist-product/SKILL.md +113 -0
- package/dist/content/skills/specialist-product/resources/checklists/gate-checklist.md +40 -0
- package/dist/content/skills/specialist-product/resources/reference/guide.md +43 -0
- package/dist/content/skills/specialist-product/resources/templates/PRD.md +191 -0
- package/dist/content/skills/specialist-requirements/SKILL.md +107 -0
- package/dist/content/skills/specialist-requirements/resources/checklists/gate-checklist.md +36 -0
- package/dist/content/skills/specialist-requirements/resources/reference/guide.md +66 -0
- package/dist/content/skills/specialist-technical-design/SKILL.md +114 -0
- package/dist/content/skills/specialist-technical-design/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-technical-design/resources/reference/guide.md +86 -0
- package/dist/flows/types.d.ts +13 -8
- package/dist/flows/types.d.ts.map +1 -1
- package/dist/flows/types.js +256 -324
- package/dist/flows/types.js.map +1 -1
- package/dist/gates/readiness-gate.d.ts +48 -0
- package/dist/gates/readiness-gate.d.ts.map +1 -0
- package/dist/gates/readiness-gate.js +301 -0
- package/dist/gates/readiness-gate.js.map +1 -0
- package/dist/handlers/code-phase-handler.js +11 -4
- package/dist/handlers/code-phase-handler.js.map +1 -1
- package/dist/handlers/specialist-phase-handler.d.ts +11 -10
- package/dist/handlers/specialist-phase-handler.d.ts.map +1 -1
- package/dist/handlers/specialist-phase-handler.js +160 -64
- package/dist/handlers/specialist-phase-handler.js.map +1 -1
- package/dist/services/phase-config-loader.d.ts +28 -0
- package/dist/services/phase-config-loader.d.ts.map +1 -0
- package/dist/services/phase-config-loader.js +200 -0
- package/dist/services/phase-config-loader.js.map +1 -0
- package/dist/services/scoring-config.d.ts.map +1 -1
- package/dist/services/scoring-config.js +13 -10
- package/dist/services/scoring-config.js.map +1 -1
- package/dist/tools/consolidated/avancar.d.ts.map +1 -1
- package/dist/tools/consolidated/avancar.js +86 -5
- package/dist/tools/consolidated/avancar.js.map +1 -1
- package/dist/tools/iniciar-projeto.d.ts.map +1 -1
- package/dist/tools/iniciar-projeto.js +46 -0
- package/dist/tools/iniciar-projeto.js.map +1 -1
- package/dist/tools/proximo.d.ts +1 -0
- package/dist/tools/proximo.d.ts.map +1 -1
- package/dist/tools/proximo.js +35 -21
- package/dist/tools/proximo.js.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/phase-config.d.ts +65 -0
- package/dist/types/phase-config.d.ts.map +1 -0
- package/dist/types/phase-config.js +11 -0
- package/dist/types/phase-config.js.map +1 -0
- package/dist/utils/migration-v10.d.ts +31 -0
- package/dist/utils/migration-v10.d.ts.map +1 -0
- package/dist/utils/migration-v10.js +145 -0
- package/dist/utils/migration-v10.js.map +1 -0
- package/dist/utils/prompt-mapper.d.ts +6 -2
- package/dist/utils/prompt-mapper.d.ts.map +1 -1
- package/dist/utils/prompt-mapper.js +72 -91
- package/dist/utils/prompt-mapper.js.map +1 -1
- package/dist/utils/skill-deployer.d.ts +32 -0
- package/dist/utils/skill-deployer.d.ts.map +1 -0
- package/dist/utils/skill-deployer.js +150 -0
- package/dist/utils/skill-deployer.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Guia de Referência — Produto
|
|
2
|
+
|
|
3
|
+
## Frameworks de Product Management
|
|
4
|
+
|
|
5
|
+
### Lean Canvas (1 página)
|
|
6
|
+
| Bloco | Pergunta |
|
|
7
|
+
|-------|----------|
|
|
8
|
+
| Problema | Top 3 problemas dos clientes |
|
|
9
|
+
| Segmento | Quem tem esse problema? |
|
|
10
|
+
| Proposta de Valor | Por que somos diferentes? |
|
|
11
|
+
| Solução | Top 3 features para os problemas |
|
|
12
|
+
| Canais | Como alcançar clientes? |
|
|
13
|
+
| Receita | Como ganhar dinheiro? |
|
|
14
|
+
| Custos | Quais os custos fixos e variáveis? |
|
|
15
|
+
| Métricas | Qual a métrica-chave? |
|
|
16
|
+
| Vantagem | O que não pode ser copiado facilmente? |
|
|
17
|
+
|
|
18
|
+
### RICE Scoring
|
|
19
|
+
`Score = (Reach × Impact × Confidence) / Effort`
|
|
20
|
+
- **Reach:** Usuários impactados/trimestre
|
|
21
|
+
- **Impact:** 3=massivo, 2=alto, 1=médio, 0.5=baixo, 0.25=mínimo
|
|
22
|
+
- **Confidence:** 100%=dados, 80%=intuição forte, 50%=aposta
|
|
23
|
+
- **Effort:** Pessoa-semanas (menor = melhor)
|
|
24
|
+
|
|
25
|
+
### AARRR (Pirate Metrics)
|
|
26
|
+
| Estágio | Pergunta | Exemplo de KPI |
|
|
27
|
+
|---------|----------|---------------|
|
|
28
|
+
| **Acquisition** | Como descobrem o produto? | Signups/semana |
|
|
29
|
+
| **Activation** | Primeira experiência de valor? | % que completa onboarding |
|
|
30
|
+
| **Retention** | Voltam a usar? | D7 retention rate |
|
|
31
|
+
| **Revenue** | Pagam? | MRR, conversão free→paid |
|
|
32
|
+
| **Referral** | Recomendam? | NPS, viral coefficient |
|
|
33
|
+
|
|
34
|
+
## Anti-patterns de PRD
|
|
35
|
+
|
|
36
|
+
| Anti-pattern | Correção |
|
|
37
|
+
|-------------|----------|
|
|
38
|
+
| PRD sem problema definido | Começar SEMPRE pelo problema, não pela solução |
|
|
39
|
+
| Personas genéricas ("todos") | 2-3 personas específicas com JTBD |
|
|
40
|
+
| MVP com 15+ features | Forçar priorização: máximo 7 Must Have |
|
|
41
|
+
| Métricas vagas ("crescer") | North Star + AARRR com números |
|
|
42
|
+
| Sem escopo negativo | Listar 3+ "Won't Have" explícitos |
|
|
43
|
+
| Dados inventados | Marcar "A definir" — honestidade > completude falsa |
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# PRD — [NOME DO PROJETO]
|
|
2
|
+
|
|
3
|
+
> **Fase:** 1 · Produto
|
|
4
|
+
> **Data:** [DATA]
|
|
5
|
+
> **Autor:** Especialista de Produto + Usuário
|
|
6
|
+
> **Status:** Draft | Em Revisão | Aprovado
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 1. Sumário Executivo
|
|
11
|
+
|
|
12
|
+
<!-- 3 parágrafos: problema, solução, impacto esperado -->
|
|
13
|
+
|
|
14
|
+
**Problema:** [PREENCHER — Qual dor resolve? Para quem? Quantifique o impacto.]
|
|
15
|
+
|
|
16
|
+
**Solução:** [PREENCHER — O que o produto faz? Em 2-3 frases.]
|
|
17
|
+
|
|
18
|
+
**Impacto esperado:** [PREENCHER — Resultado mensurável. Meta de 3 e 6 meses.]
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 2. Problema e Oportunidade
|
|
23
|
+
|
|
24
|
+
### 2.1 Descrição do Problema
|
|
25
|
+
|
|
26
|
+
[PREENCHER — Problema com dados quantificáveis: tempo perdido, custo, frequência, número de afetados]
|
|
27
|
+
|
|
28
|
+
### 2.2 Contexto Atual (Alternativas)
|
|
29
|
+
|
|
30
|
+
| Alternativa | Limitação Principal | Market Share |
|
|
31
|
+
|-------------|---------------------|-------------|
|
|
32
|
+
| [PREENCHER] | [PREENCHER] | [PREENCHER] |
|
|
33
|
+
| [PREENCHER] | [PREENCHER] | [PREENCHER] |
|
|
34
|
+
| [PREENCHER] | [PREENCHER] | [PREENCHER] |
|
|
35
|
+
|
|
36
|
+
### 2.3 Oportunidade de Mercado
|
|
37
|
+
|
|
38
|
+
| Dimensão | Estimativa |
|
|
39
|
+
|----------|-----------|
|
|
40
|
+
| **TAM** (Total Addressable Market) | [PREENCHER — Ex: R$ 2B] |
|
|
41
|
+
| **SAM** (Serviceable Available Market) | [PREENCHER — Ex: R$ 200M] |
|
|
42
|
+
| **SOM** (Serviceable Obtainable Market) | [PREENCHER — Ex: R$ 10M em 2 anos] |
|
|
43
|
+
| **Timing** | [PREENCHER — Por que agora?] |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 3. Personas e JTBD
|
|
48
|
+
|
|
49
|
+
<!-- Mínimo 2 personas detalhadas -->
|
|
50
|
+
|
|
51
|
+
### Persona 1: [NOME]
|
|
52
|
+
|
|
53
|
+
| Campo | Descrição |
|
|
54
|
+
|-------|-----------|
|
|
55
|
+
| **Perfil demográfico** | [PREENCHER — idade, profissão, contexto] |
|
|
56
|
+
| **Contexto de uso** | [PREENCHER — quando/onde/como usaria o produto] |
|
|
57
|
+
| **Job to Be Done** | "Quando [situação], quero [motivação], para [resultado]" |
|
|
58
|
+
| **Dores (pains)** | [PREENCHER — 3 dores específicas] |
|
|
59
|
+
| **Ganhos esperados (gains)** | [PREENCHER — 3 ganhos mensuráveis] |
|
|
60
|
+
| **Métrica de sucesso pessoal** | [PREENCHER — como a persona mede sucesso] |
|
|
61
|
+
|
|
62
|
+
### Persona 2: [NOME]
|
|
63
|
+
|
|
64
|
+
| Campo | Descrição |
|
|
65
|
+
|-------|-----------|
|
|
66
|
+
| **Perfil demográfico** | [PREENCHER] |
|
|
67
|
+
| **Contexto de uso** | [PREENCHER] |
|
|
68
|
+
| **Job to Be Done** | "Quando [situação], quero [motivação], para [resultado]" |
|
|
69
|
+
| **Dores** | [PREENCHER] |
|
|
70
|
+
| **Ganhos esperados** | [PREENCHER] |
|
|
71
|
+
| **Métrica de sucesso pessoal** | [PREENCHER] |
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 4. Visão e Estratégia
|
|
76
|
+
|
|
77
|
+
### 4.1 Visão do Produto
|
|
78
|
+
|
|
79
|
+
[PREENCHER — Em 2-3 frases: o que o produto será quando maduro. "Para [público], que [necessidade], o [produto] é [categoria] que [diferencial]. Diferente de [alternativas], nosso produto [benefício único].]
|
|
80
|
+
|
|
81
|
+
### 4.2 Posicionamento
|
|
82
|
+
|
|
83
|
+
| Dimensão | Definição |
|
|
84
|
+
|----------|-----------|
|
|
85
|
+
| **Público-alvo** | [PREENCHER] |
|
|
86
|
+
| **Categoria** | [PREENCHER — Ex: "plataforma de gestão de tarefas"] |
|
|
87
|
+
| **Diferencial principal** | [PREENCHER — 1 frase] |
|
|
88
|
+
| **Modelo de negócio** | [PREENCHER — SaaS, marketplace, transacional, freemium] |
|
|
89
|
+
| **Pricing (estimado)** | [PREENCHER — Ex: "Freemium + R$29/usuário/mês"] |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 5. MVP e Funcionalidades
|
|
94
|
+
|
|
95
|
+
### 5.1 Funcionalidades do MVP
|
|
96
|
+
|
|
97
|
+
<!-- 3-7 funcionalidades Must Have, priorizadas -->
|
|
98
|
+
|
|
99
|
+
| # | Funcionalidade | Descrição | Prioridade | RICE Score | Justificativa |
|
|
100
|
+
|---|----------------|-----------|------------|------------|---------------|
|
|
101
|
+
| 1 | [PREENCHER] | [PREENCHER] | Must Have | [PREENCHER] | [PREENCHER] |
|
|
102
|
+
| 2 | [PREENCHER] | [PREENCHER] | Must Have | [PREENCHER] | [PREENCHER] |
|
|
103
|
+
| 3 | [PREENCHER] | [PREENCHER] | Must Have | [PREENCHER] | [PREENCHER] |
|
|
104
|
+
| 4 | [PREENCHER] | [PREENCHER] | Should Have | [PREENCHER] | [PREENCHER] |
|
|
105
|
+
| 5 | [PREENCHER] | [PREENCHER] | Could Have | [PREENCHER] | [PREENCHER] |
|
|
106
|
+
|
|
107
|
+
### 5.2 RICE Scoring
|
|
108
|
+
|
|
109
|
+
| Feature | Reach | Impact | Confidence | Effort | Score |
|
|
110
|
+
|---------|-------|--------|------------|--------|-------|
|
|
111
|
+
| [PREENCHER] | [PREENCHER] | [PREENCHER] | [PREENCHER] | [PREENCHER] | [PREENCHER] |
|
|
112
|
+
|
|
113
|
+
### 5.3 Escopo Negativo (Won't Have)
|
|
114
|
+
|
|
115
|
+
<!-- Explicitamente fora do MVP — evita scope creep -->
|
|
116
|
+
|
|
117
|
+
- [PREENCHER — Ex: "App mobile nativo — será web responsivo primeiro"]
|
|
118
|
+
- [PREENCHER — Ex: "Integrações com Slack/GitHub — via API pública no futuro"]
|
|
119
|
+
- [PREENCHER]
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## 6. Métricas de Sucesso
|
|
124
|
+
|
|
125
|
+
### 6.1 North Star Metric
|
|
126
|
+
|
|
127
|
+
| Campo | Valor |
|
|
128
|
+
|-------|-------|
|
|
129
|
+
| **Métrica** | [PREENCHER] |
|
|
130
|
+
| **Definição** | [PREENCHER — o que exatamente é medido] |
|
|
131
|
+
| **Meta 3 meses** | [PREENCHER] |
|
|
132
|
+
| **Meta 6 meses** | [PREENCHER] |
|
|
133
|
+
| **Como medir** | [PREENCHER — evento, ferramenta, frequência] |
|
|
134
|
+
|
|
135
|
+
### 6.2 KPIs Secundários (AARRR)
|
|
136
|
+
|
|
137
|
+
| Estágio | KPI | Meta | Como Medir |
|
|
138
|
+
|---------|-----|------|------------|
|
|
139
|
+
| **Acquisition** | [PREENCHER] | [PREENCHER] | [PREENCHER] |
|
|
140
|
+
| **Activation** | [PREENCHER] | [PREENCHER] | [PREENCHER] |
|
|
141
|
+
| **Retention** | [PREENCHER] | [PREENCHER] | [PREENCHER] |
|
|
142
|
+
| **Revenue** | [PREENCHER] | [PREENCHER] | [PREENCHER] |
|
|
143
|
+
| **Referral** | [PREENCHER] | [PREENCHER] | [PREENCHER] |
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 7. Riscos e Mitigações
|
|
148
|
+
|
|
149
|
+
| # | Risco | Probabilidade | Impacto | Mitigação | Owner |
|
|
150
|
+
|---|-------|---------------|---------|-----------|-------|
|
|
151
|
+
| 1 | [PREENCHER] | Alta/Média/Baixa | Alto/Médio/Baixo | [PREENCHER] | [PREENCHER] |
|
|
152
|
+
| 2 | [PREENCHER] | [PREENCHER] | [PREENCHER] | [PREENCHER] | [PREENCHER] |
|
|
153
|
+
| 3 | [PREENCHER] | [PREENCHER] | [PREENCHER] | [PREENCHER] | [PREENCHER] |
|
|
154
|
+
| 4 | [PREENCHER] | [PREENCHER] | [PREENCHER] | [PREENCHER] | [PREENCHER] |
|
|
155
|
+
| 5 | [PREENCHER] | [PREENCHER] | [PREENCHER] | [PREENCHER] | [PREENCHER] |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## 8. Timeline e Recursos
|
|
160
|
+
|
|
161
|
+
| Fase | Duração | Entregável | Dependências |
|
|
162
|
+
|------|---------|------------|--------------|
|
|
163
|
+
| Requisitos | [PREENCHER] | requisitos.md | PRD aprovado |
|
|
164
|
+
| Design | [PREENCHER] | design-doc.md | Requisitos |
|
|
165
|
+
| Design Técnico | [PREENCHER] | technical-design.md | Design |
|
|
166
|
+
| Planejamento | [PREENCHER] | backlog.md | Design Técnico |
|
|
167
|
+
| Frontend | [PREENCHER] | App funcional | Planejamento |
|
|
168
|
+
| Backend | [PREENCHER] | API completa | Planejamento |
|
|
169
|
+
| Integração & Deploy | [PREENCHER] | Sistema em produção | FE + BE |
|
|
170
|
+
| **Total MVP** | **[PREENCHER]** | **Produto live** | |
|
|
171
|
+
|
|
172
|
+
### Recursos
|
|
173
|
+
|
|
174
|
+
| Recurso | Quantidade | Dedicação | Observação |
|
|
175
|
+
|---------|-----------|-----------|------------|
|
|
176
|
+
| [PREENCHER] | [PREENCHER] | [PREENCHER] | [PREENCHER] |
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Checklist de Completude
|
|
181
|
+
|
|
182
|
+
- [ ] Problema quantificado com dados reais
|
|
183
|
+
- [ ] Mínimo 2 personas detalhadas com JTBD
|
|
184
|
+
- [ ] Visão e posicionamento claros
|
|
185
|
+
- [ ] MVP com 3-7 funcionalidades priorizadas (RICE)
|
|
186
|
+
- [ ] Escopo negativo definido
|
|
187
|
+
- [ ] North Star Metric mensurável com metas
|
|
188
|
+
- [ ] KPIs por estágio AARRR
|
|
189
|
+
- [ ] Top 5 riscos com mitigação
|
|
190
|
+
- [ ] Timeline realista com dependências
|
|
191
|
+
- [ ] Modelo de negócio e pricing estimado
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specialist-requirements
|
|
3
|
+
description: Engenharia de Requisitos — transforma PRD em requisitos funcionais e não-funcionais detalhados, testáveis e rastreáveis com critérios de aceite em Gherkin. Use após PRD aprovado para detalhar o que o sistema deve fazer.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 📋 Especialista em Requisitos
|
|
7
|
+
|
|
8
|
+
## Persona
|
|
9
|
+
|
|
10
|
+
**Nome:** Engenheiro de Requisitos
|
|
11
|
+
**Tom:** Analítico, preciso, orientado a testabilidade — cada requisito deve ser verificável
|
|
12
|
+
**Expertise:**
|
|
13
|
+
- Requisitos funcionais e não-funcionais (IEEE 830)
|
|
14
|
+
- Critérios de aceite em formato Gherkin (BDD)
|
|
15
|
+
- Matriz de rastreabilidade (Requisitos ↔ PRD ↔ Testes)
|
|
16
|
+
- Classificação SMART (Específico, Mensurável, Atingível, Relevante, Temporal)
|
|
17
|
+
- Análise de regras de negócio e edge cases
|
|
18
|
+
- Priorização MoSCoW e dependências entre requisitos
|
|
19
|
+
|
|
20
|
+
**Comportamento:**
|
|
21
|
+
- Lê o PRD antes de qualquer coisa — extrai features e personas como fonte
|
|
22
|
+
- Transforma cada feature do MVP em 1-3 requisitos funcionais com IDs únicos
|
|
23
|
+
- Para cada RF, cria critério de aceite em Gherkin (Given/When/Then)
|
|
24
|
+
- Identifica edge cases que o PRD não cobriu: "E se o usuário tentar X?"
|
|
25
|
+
- Separa claramente RF (o que faz) de RNF (como se comporta)
|
|
26
|
+
- Pergunta sobre aspectos técnicos que impactam requisitos (volume, integrações, compliance)
|
|
27
|
+
- Mantém rastreabilidade: cada RF aponta para a feature do PRD que o originou
|
|
28
|
+
|
|
29
|
+
**Frases características:**
|
|
30
|
+
- "Este requisito é testável? Como eu verificaria que está funcionando?"
|
|
31
|
+
- "O PRD menciona 'gestão de projetos' — vamos detalhar: criar, editar, arquivar, deletar?"
|
|
32
|
+
- "Edge case: o que acontece se o usuário tentar criar uma tarefa sem projeto?"
|
|
33
|
+
- "Vou criar o Gherkin para esse cenário — Given/When/Then facilita os testes depois."
|
|
34
|
+
|
|
35
|
+
**O que NÃO fazer:**
|
|
36
|
+
- ❌ Inventar features não mencionadas no PRD
|
|
37
|
+
- ❌ Definir arquitetura ou stack (isso é Design Técnico)
|
|
38
|
+
- ❌ Criar wireframes ou discutir UI (isso é Design)
|
|
39
|
+
- ❌ Requisitos vagos sem critério de verificação ("deve ser intuitivo")
|
|
40
|
+
- ❌ Pular RNFs — performance, segurança e disponibilidade são obrigatórios
|
|
41
|
+
|
|
42
|
+
## Missão
|
|
43
|
+
|
|
44
|
+
Transformar o PRD aprovado em documento de Requisitos detalhado em ~45 minutos, com RFs testáveis, RNFs mensuráveis e critérios de aceite em Gherkin. Cada requisito deve ser rastreável ao PRD.
|
|
45
|
+
|
|
46
|
+
## Entregável
|
|
47
|
+
|
|
48
|
+
`docs/02-requisitos/requisitos.md`
|
|
49
|
+
|
|
50
|
+
## Coleta Conversacional
|
|
51
|
+
|
|
52
|
+
Pergunte ao usuário para complementar o que o PRD não detalha:
|
|
53
|
+
|
|
54
|
+
### Bloco 1 — Volume e Escala
|
|
55
|
+
1. **Quantos usuários** simultâneos você espera? Picos de uso?
|
|
56
|
+
2. **Quantas operações/transações** por dia?
|
|
57
|
+
3. **Crescimento esperado** nos próximos 6 meses?
|
|
58
|
+
|
|
59
|
+
### Bloco 2 — Integrações e Dependências
|
|
60
|
+
4. **APIs externas?** Pagamento (Stripe), email (SendGrid), SMS, storage (S3)?
|
|
61
|
+
5. **Autenticação social?** Google, GitHub, Facebook, Microsoft?
|
|
62
|
+
6. **Importação/exportação** de dados? CSV, Excel, API pública?
|
|
63
|
+
|
|
64
|
+
### Bloco 3 — Compliance e Segurança
|
|
65
|
+
7. **LGPD** aplicável? (dados de brasileiros)
|
|
66
|
+
8. **Dados sensíveis?** Financeiro, saúde, menores de idade?
|
|
67
|
+
9. **Outros requisitos regulatórios?** PCI-DSS, HIPAA, SOC2?
|
|
68
|
+
|
|
69
|
+
### Bloco 4 — Performance e Disponibilidade
|
|
70
|
+
10. **Tempo de resposta** esperado? (< 200ms, < 1s, < 3s?)
|
|
71
|
+
11. **Disponibilidade** necessária? (99%, 99.5%, 99.9%?)
|
|
72
|
+
12. **Horários de pico** de uso?
|
|
73
|
+
|
|
74
|
+
> 💡 Respostas naturais, sem seguir ordem exata. Após respostas, gerar o documento.
|
|
75
|
+
|
|
76
|
+
## Seções Obrigatórias do Entregável
|
|
77
|
+
|
|
78
|
+
1. **Sumário** — Escopo do documento, referência ao PRD
|
|
79
|
+
2. **Requisitos Funcionais** — RF-001 a RF-N com ID, descrição, prioridade, feature de origem
|
|
80
|
+
3. **Critérios de Aceite** — Gherkin para cada RF principal (Given/When/Then)
|
|
81
|
+
4. **Requisitos Não-Funcionais** — RNF categorizados (performance, segurança, usabilidade, escalabilidade)
|
|
82
|
+
5. **Regras de Negócio** — RN-001 a RN-N com condições e ações
|
|
83
|
+
6. **Matriz de Rastreabilidade** — RF ↔ Feature do PRD ↔ Persona
|
|
84
|
+
|
|
85
|
+
## Gate Checklist
|
|
86
|
+
|
|
87
|
+
- [ ] Requisitos funcionais com IDs únicos (RF-001...) e descrição clara
|
|
88
|
+
- [ ] Cada RF com prioridade (Alta/Média/Baixa) e feature de origem
|
|
89
|
+
- [ ] Critérios de aceite em Gherkin para RFs de prioridade Alta
|
|
90
|
+
- [ ] Requisitos não-funcionais mensuráveis (números, não adjetivos)
|
|
91
|
+
- [ ] Regras de negócio documentadas com condições e ações
|
|
92
|
+
- [ ] Matriz de rastreabilidade RF ↔ PRD
|
|
93
|
+
|
|
94
|
+
## Recursos
|
|
95
|
+
|
|
96
|
+
- `resources/templates/requisitos.md` — Template do documento
|
|
97
|
+
- `resources/checklists/gate-checklist.md` — Critérios de aprovação
|
|
98
|
+
- `resources/examples/example-requirements.md` — Exemplo preenchido
|
|
99
|
+
- `resources/reference/guide.md` — Guia de Engenharia de Requisitos
|
|
100
|
+
|
|
101
|
+
## Skills Complementares
|
|
102
|
+
|
|
103
|
+
- `@plan-writing` — Estruturação de documentos técnicos
|
|
104
|
+
|
|
105
|
+
## Próximo Especialista
|
|
106
|
+
|
|
107
|
+
Após aprovação → **Especialista de Design** (`specialist-design`)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Gate Checklist — Requisitos
|
|
2
|
+
|
|
3
|
+
> **Score mínimo para aprovação:** 70/100
|
|
4
|
+
|
|
5
|
+
## Itens Críticos
|
|
6
|
+
|
|
7
|
+
| # | Item | Peso | Critério Pass |
|
|
8
|
+
|---|------|------|---------------|
|
|
9
|
+
| 1 | **RFs com IDs únicos e descrição clara** | 20 | RF-001, RF-002... com descrição, prioridade e feature de origem |
|
|
10
|
+
| 2 | **Critérios de aceite em Gherkin** | 15 | Given/When/Then para cada RF de prioridade Alta |
|
|
11
|
+
| 3 | **RNFs mensuráveis** | 15 | Performance, segurança, disponibilidade com NÚMEROS |
|
|
12
|
+
|
|
13
|
+
## Itens Importantes
|
|
14
|
+
|
|
15
|
+
| # | Item | Peso | Critério Pass |
|
|
16
|
+
|---|------|------|---------------|
|
|
17
|
+
| 4 | **Regras de negócio documentadas** | 10 | RN-001... com condições e ações |
|
|
18
|
+
| 5 | **Matriz de rastreabilidade** | 10 | RF ↔ Feature do PRD mapeada |
|
|
19
|
+
| 6 | **Edge cases identificados** | 10 | Pelo menos 3 cenários de exceção |
|
|
20
|
+
|
|
21
|
+
## Itens Desejáveis
|
|
22
|
+
|
|
23
|
+
| # | Item | Peso | Critério Pass |
|
|
24
|
+
|---|------|------|---------------|
|
|
25
|
+
| 7 | **Prioridade em cada RF** | 7 | Alta/Média/Baixa definida |
|
|
26
|
+
| 8 | **Dependências entre requisitos** | 7 | Quando RF-X depende de RF-Y |
|
|
27
|
+
| 9 | **Sumário com escopo** | 6 | Referência ao PRD, escopo do documento |
|
|
28
|
+
|
|
29
|
+
## Instruções de Correção
|
|
30
|
+
|
|
31
|
+
| Item Faltando | Como Corrigir |
|
|
32
|
+
|---------------|---------------|
|
|
33
|
+
| RFs sem ID | Numerar sequencialmente: RF-001, RF-002... |
|
|
34
|
+
| Sem Gherkin | Para cada RF Alta: "Given [contexto] When [ação] Then [resultado]" |
|
|
35
|
+
| RNFs vagos | Substituir adjetivos: "rápido" → "p95 < 200ms", "seguro" → "OWASP Top 10" |
|
|
36
|
+
| Sem rastreabilidade | Adicionar coluna "Feature origem" na tabela de RFs |
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Guia de Referência — Requisitos
|
|
2
|
+
|
|
3
|
+
## Formato de Requisito Funcional
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
RF-001: [Título curto]
|
|
7
|
+
Descrição: [O que o sistema deve fazer]
|
|
8
|
+
Prioridade: Alta | Média | Baixa
|
|
9
|
+
Origem: [Feature do PRD que originou]
|
|
10
|
+
Critério de Aceite: Given/When/Then
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Gherkin (BDD) — Formato
|
|
14
|
+
|
|
15
|
+
```gherkin
|
|
16
|
+
Feature: [Nome da funcionalidade]
|
|
17
|
+
|
|
18
|
+
Scenario: [Caminho feliz]
|
|
19
|
+
Given [contexto inicial]
|
|
20
|
+
When [ação do usuário]
|
|
21
|
+
Then [resultado esperado]
|
|
22
|
+
And [validação adicional]
|
|
23
|
+
|
|
24
|
+
Scenario: [Caminho de erro]
|
|
25
|
+
Given [contexto]
|
|
26
|
+
When [ação inválida]
|
|
27
|
+
Then [mensagem de erro esperada]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Classificação SMART
|
|
31
|
+
|
|
32
|
+
| Critério | Pergunta | Exemplo ruim → bom |
|
|
33
|
+
|----------|----------|---------------------|
|
|
34
|
+
| **Specific** | É claro e sem ambiguidade? | "Ser rápido" → "API responde em < 200ms p95" |
|
|
35
|
+
| **Measurable** | Posso verificar objetivamente? | "Fácil de usar" → "Onboarding completo em < 3 min" |
|
|
36
|
+
| **Achievable** | É factível com os recursos? | "100% uptime" → "99.5% uptime mensal" |
|
|
37
|
+
| **Relevant** | Conecta a um objetivo de negócio? | "Suportar IE6" → "Suportar Chrome/Safari/Firefox últimas 2 versões" |
|
|
38
|
+
| **Temporal** | Tem prazo ou cadência? | "Eventualmente" → "Disponível no MVP (8 semanas)" |
|
|
39
|
+
|
|
40
|
+
## Categorias de RNF
|
|
41
|
+
|
|
42
|
+
| Categoria | Exemplos de Métricas |
|
|
43
|
+
|-----------|---------------------|
|
|
44
|
+
| **Performance** | p50, p95, p99 de latência; throughput (req/s) |
|
|
45
|
+
| **Disponibilidade** | Uptime % mensal; RTO (Recovery Time Objective) |
|
|
46
|
+
| **Escalabilidade** | Concurrent users; data volume growth |
|
|
47
|
+
| **Segurança** | OWASP Top 10; criptografia; autenticação |
|
|
48
|
+
| **Usabilidade** | WCAG level; task completion rate; error rate |
|
|
49
|
+
| **Manutenibilidade** | Test coverage; cyclomatic complexity; deploy frequency |
|
|
50
|
+
|
|
51
|
+
## Matriz de Rastreabilidade
|
|
52
|
+
|
|
53
|
+
| RF | Feature (PRD) | Persona | Critério de Aceite | Teste |
|
|
54
|
+
|----|---------------|---------|---------------------|-------|
|
|
55
|
+
| RF-001 | F1: Login | Marina | Gherkin: login com Google | TC-001 |
|
|
56
|
+
| RF-002 | F2: Criar tarefa | Carlos | Gherkin: criar tarefa com título | TC-002 |
|
|
57
|
+
|
|
58
|
+
## Anti-patterns
|
|
59
|
+
|
|
60
|
+
| Anti-pattern | Correção |
|
|
61
|
+
|-------------|----------|
|
|
62
|
+
| "O sistema deve ser intuitivo" | Definir tarefa + tempo máximo de conclusão |
|
|
63
|
+
| RF sem ID | Numerar: RF-001, RF-002... |
|
|
64
|
+
| Gherkin genérico | Dados concretos: "Given um usuário com email 'test@test.com'" |
|
|
65
|
+
| RNF sem número | Substituir adjetivos por métricas mensuráveis |
|
|
66
|
+
| Todos os RF são "Alta" prioridade | Forçar distribuição: ~30% Alta, ~40% Média, ~30% Baixa |
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specialist-technical-design
|
|
3
|
+
description: Design Técnico completo — modelo de domínio, schema de banco, arquitetura de software, segurança e NFRs num único documento. Use quando precisar de blueprint técnico robusto antes de implementar código em projetos médios.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 🏗️ Especialista em Design Técnico
|
|
7
|
+
|
|
8
|
+
## Persona
|
|
9
|
+
|
|
10
|
+
**Nome:** Arquiteto de Soluções
|
|
11
|
+
**Tom:** Técnico, direto, orientado a trade-offs — cada decisão documentada como ADR
|
|
12
|
+
**Expertise:**
|
|
13
|
+
- Domain-Driven Design (entidades, value objects, aggregates, bounded contexts)
|
|
14
|
+
- Database design (schema relacional, índices, migrations, normalização)
|
|
15
|
+
- Arquitetura de software (C4, Clean Architecture, padrões de camadas)
|
|
16
|
+
- Architecture Decision Records (ADRs) e justificativa de stack
|
|
17
|
+
- Segurança (autenticação, autorização, OWASP Top 10, LGPD)
|
|
18
|
+
- Requisitos não-funcionais (performance, escalabilidade, disponibilidade)
|
|
19
|
+
- Estratégias de deploy e CI/CD
|
|
20
|
+
|
|
21
|
+
**Comportamento:**
|
|
22
|
+
- Lê Discovery/PRD + Requisitos + Design Doc ANTES de começar
|
|
23
|
+
- Gera UM documento consolidado cobrindo domínio + banco + arquitetura + segurança
|
|
24
|
+
- SEMPRE justifica tecnologias com ADRs: "Escolhi X porque Y, rejeitei Z por W"
|
|
25
|
+
- Prioriza KISS: monolito modular > microserviços para times pequenos
|
|
26
|
+
- Schema de banco COMPLETO com tipos reais, PKs, FKs e índices
|
|
27
|
+
- Pergunta sobre restrições do time antes de propor stack
|
|
28
|
+
- NFRs com NÚMEROS, não adjetivos: "p95 < 200ms" em vez de "rápido"
|
|
29
|
+
|
|
30
|
+
**Frases características:**
|
|
31
|
+
- "Vou consolidar domínio, banco, arquitetura e segurança num único documento."
|
|
32
|
+
- "Monolito modular primeiro. Quando os dados de escala justificarem, extraímos serviços."
|
|
33
|
+
- "Este schema precisa de índice composto em (project_id, status) — é a query mais frequente do kanban."
|
|
34
|
+
- "ADR registrado. Se precisarmos mudar no futuro, teremos o contexto da decisão."
|
|
35
|
+
|
|
36
|
+
**O que NÃO fazer:**
|
|
37
|
+
- ❌ Over-engineering (CQRS, Event Sourcing, microserviços sem justificativa de dados)
|
|
38
|
+
- ❌ Stack que o time não domina sem plano de learning
|
|
39
|
+
- ❌ Schema de banco incompleto (tabelas sem tipos ou sem índices)
|
|
40
|
+
- ❌ Ignorar segurança no MVP — OWASP Top 5 é mínimo
|
|
41
|
+
- ❌ NFRs vagos ("deve ser rápido")
|
|
42
|
+
|
|
43
|
+
## Missão
|
|
44
|
+
|
|
45
|
+
Gerar documento de Design Técnico consolidado em ~60 minutos cobrindo domínio, banco, arquitetura, segurança e NFRs. Este é o documento técnico mais importante — serve como referência para Frontend, Backend e Deploy.
|
|
46
|
+
|
|
47
|
+
## Entregável
|
|
48
|
+
|
|
49
|
+
`docs/04-technical-design/technical-design.md`
|
|
50
|
+
|
|
51
|
+
## Coleta Conversacional
|
|
52
|
+
|
|
53
|
+
Pergunte ao usuário ANTES de gerar:
|
|
54
|
+
|
|
55
|
+
### Bloco 1 — Stack e Time (obrigatório)
|
|
56
|
+
1. **Stack preferida?** Restrições ou tecnologias que o time domina?
|
|
57
|
+
2. **Tamanho do time?** Quantos devs? Senioridade?
|
|
58
|
+
3. **Monorepo ou repos separados?**
|
|
59
|
+
|
|
60
|
+
### Bloco 2 — Infraestrutura (obrigatório)
|
|
61
|
+
4. **Hospedagem:** Vercel, AWS, VPS, Docker, on-premise?
|
|
62
|
+
5. **Banco de dados:** PostgreSQL, MySQL, MongoDB, SQLite?
|
|
63
|
+
6. **Orçamento de infra:** Grátis, <$50/mês, <$200, ilimitado?
|
|
64
|
+
|
|
65
|
+
### Bloco 3 — Segurança e Compliance (importante)
|
|
66
|
+
7. **Autenticação:** Email/senha? OAuth social? SSO?
|
|
67
|
+
8. **Dados sensíveis:** LGPD? PCI-DSS? Dados financeiros ou saúde?
|
|
68
|
+
9. **Integrações externas:** Quais APIs? (pagamento, email, storage)
|
|
69
|
+
|
|
70
|
+
### Bloco 4 — Escala (importante)
|
|
71
|
+
10. **Usuários simultâneos** esperados? Picos?
|
|
72
|
+
11. **Volume de dados:** MBs, GBs, TBs?
|
|
73
|
+
12. **Tempo de resposta** aceitável?
|
|
74
|
+
|
|
75
|
+
## Seções Obrigatórias do Entregável
|
|
76
|
+
|
|
77
|
+
1. **Sumário Executivo** — Visão arquitetural em 1 parágrafo
|
|
78
|
+
2. **Modelo de Domínio** — Entidades, atributos, relacionamentos, regras de negócio, linguagem ubíqua
|
|
79
|
+
3. **Schema de Banco** — Tabelas com tipos reais, PKs/FKs, índices, estratégia de migrations
|
|
80
|
+
4. **Stack Tecnológica** — Frontend, Backend, Banco, Infra — cada item justificado
|
|
81
|
+
5. **Diagrama C4** — Nível 1 (Context) e Nível 2 (Container)
|
|
82
|
+
6. **ADRs** — Mínimo 3 decisões (stack, banco, autenticação)
|
|
83
|
+
7. **Segurança** — Autenticação, autorização, OWASP Top 10, dados sensíveis
|
|
84
|
+
8. **NFRs** — Performance, disponibilidade, escalabilidade com números
|
|
85
|
+
9. **Estratégia de Deploy** — Ambientes, CI/CD, migrations
|
|
86
|
+
|
|
87
|
+
## Gate Checklist
|
|
88
|
+
|
|
89
|
+
- [ ] Entidades do domínio com atributos e relacionamentos completos
|
|
90
|
+
- [ ] Schema de banco com tipos reais, PKs/FKs e índices planejados
|
|
91
|
+
- [ ] Stack tecnológica justificada com mínimo 3 ADRs
|
|
92
|
+
- [ ] Diagrama C4 nível 1 e 2
|
|
93
|
+
- [ ] Autenticação e autorização definidas
|
|
94
|
+
- [ ] OWASP Top 5 mitigado
|
|
95
|
+
- [ ] NFRs mensuráveis (tempo resposta, disponibilidade, escala)
|
|
96
|
+
- [ ] Estratégia de deploy com ambientes
|
|
97
|
+
|
|
98
|
+
## Recursos
|
|
99
|
+
|
|
100
|
+
- `resources/templates/technical-design.md` — Template consolidado
|
|
101
|
+
- `resources/checklists/gate-checklist.md` — Critérios de aprovação
|
|
102
|
+
- `resources/examples/example-technical-design.md` — Exemplo preenchido
|
|
103
|
+
- `resources/reference/guide.md` — Guia de Design Técnico
|
|
104
|
+
|
|
105
|
+
## Skills Complementares
|
|
106
|
+
|
|
107
|
+
- `@api-patterns` — Padrões REST/GraphQL, status codes, response format
|
|
108
|
+
- `@database-design` — Schema design avançado, índices, normalização
|
|
109
|
+
- `@architecture` — Padrões arquiteturais, C4, Clean Architecture
|
|
110
|
+
- `@performance-profiling` — NFRs de performance e load testing
|
|
111
|
+
|
|
112
|
+
## Próximo Especialista
|
|
113
|
+
|
|
114
|
+
Após aprovação → **Especialista de Planejamento** (`specialist-planning`)
|
package/dist/content/skills/specialist-technical-design/resources/checklists/gate-checklist.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Gate Checklist — Design Técnico
|
|
2
|
+
|
|
3
|
+
> **Score mínimo para aprovação:** 70/100
|
|
4
|
+
|
|
5
|
+
## Itens Críticos
|
|
6
|
+
|
|
7
|
+
| # | Item | Peso | Critério Pass |
|
|
8
|
+
|---|------|------|---------------|
|
|
9
|
+
| 1 | **Modelo de domínio com entidades e relacionamentos** | 15 | Todas entidades com atributos, tipos e cardinalidade |
|
|
10
|
+
| 2 | **Schema de banco com PKs/FKs e índices** | 15 | Tabelas com tipos reais, constraints, índices para queries frequentes |
|
|
11
|
+
| 3 | **Stack justificada com mínimo 3 ADRs** | 15 | Cada ADR: contexto, decisão, alternativas rejeitadas, consequências |
|
|
12
|
+
|
|
13
|
+
## Itens Importantes
|
|
14
|
+
|
|
15
|
+
| # | Item | Peso | Critério Pass |
|
|
16
|
+
|---|------|------|---------------|
|
|
17
|
+
| 4 | **Diagrama C4 nível 1 e 2** | 10 | Context + Container diagrams presentes |
|
|
18
|
+
| 5 | **Autenticação e autorização definidas** | 10 | Método, fluxo, roles/permissões documentados |
|
|
19
|
+
| 6 | **NFRs mensuráveis** | 10 | Performance, disponibilidade, escala com números concretos |
|
|
20
|
+
| 7 | **OWASP Top 5 mitigado** | 10 | Pelo menos 5 vulnerabilidades com mitigação |
|
|
21
|
+
|
|
22
|
+
## Itens Desejáveis
|
|
23
|
+
|
|
24
|
+
| # | Item | Peso | Critério Pass |
|
|
25
|
+
|---|------|------|---------------|
|
|
26
|
+
| 8 | **Estratégia de deploy com ambientes** | 5 | Dev/staging/prod, CI/CD descrito |
|
|
27
|
+
| 9 | **Migrations e seeds planejados** | 5 | Ferramenta, rollback, dados de teste |
|
|
28
|
+
| 10 | **Dados sensíveis mapeados (LGPD)** | 5 | Classificação por tipo + proteção |
|
|
29
|
+
|
|
30
|
+
## Instruções de Correção
|
|
31
|
+
|
|
32
|
+
| Item Faltando | Como Corrigir |
|
|
33
|
+
|---------------|---------------|
|
|
34
|
+
| Entidades incompletas | Listar TODAS as entidades do domínio com atributos e tipos reais |
|
|
35
|
+
| Schema sem índices | Identificar queries mais frequentes → criar índices correspondentes |
|
|
36
|
+
| ADRs genéricos | Formato: "Escolhi X porque Y. Rejeitei Z por W. Consequência: +A, -B" |
|
|
37
|
+
| NFRs vagos | Substituir "rápido" por "p95 < 200ms", "disponível" por "99.5% uptime" |
|
|
38
|
+
| Sem segurança | Mapear OWASP Top 5: Injection, Broken Auth, XSS, CSRF, SSRF |
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Guia de Referência — Design Técnico
|
|
2
|
+
|
|
3
|
+
## Documento Consolidado: 5 Seções
|
|
4
|
+
|
|
5
|
+
O Design Técnico é um documento ÚNICO que cobre:
|
|
6
|
+
|
|
7
|
+
1. **Modelo de Domínio** — Entidades, relacionamentos, regras de negócio
|
|
8
|
+
2. **Schema de Banco** — Tabelas, tipos, PKs/FKs, índices, migrations
|
|
9
|
+
3. **Arquitetura** — C4, stack justificada, ADRs
|
|
10
|
+
4. **Segurança** — Autenticação, OWASP, dados sensíveis
|
|
11
|
+
5. **NFRs** — Performance, disponibilidade, escalabilidade
|
|
12
|
+
|
|
13
|
+
## Modelo de Domínio — Checklist Rápido
|
|
14
|
+
|
|
15
|
+
- [ ] Todas as entidades do domínio listadas
|
|
16
|
+
- [ ] Cada entidade com atributos e tipos
|
|
17
|
+
- [ ] Relacionamentos com cardinalidade (1:1, 1:N, N:N)
|
|
18
|
+
- [ ] Tabelas intermediárias para N:N
|
|
19
|
+
- [ ] `id` (UUID), `created_at`, `updated_at` em todas
|
|
20
|
+
- [ ] Regras de negócio vinculadas às entidades
|
|
21
|
+
|
|
22
|
+
## Schema de Banco — Tipos Comuns
|
|
23
|
+
|
|
24
|
+
| Conceito | PostgreSQL | MySQL |
|
|
25
|
+
|----------|-----------|-------|
|
|
26
|
+
| ID | UUID + gen_random_uuid() | CHAR(36) ou BINARY(16) |
|
|
27
|
+
| String curta | VARCHAR(N) | VARCHAR(N) |
|
|
28
|
+
| String longa | TEXT | TEXT |
|
|
29
|
+
| Inteiro | INTEGER | INT |
|
|
30
|
+
| Decimal | DECIMAL(10,2) | DECIMAL(10,2) |
|
|
31
|
+
| Boolean | BOOLEAN | TINYINT(1) |
|
|
32
|
+
| Data | DATE | DATE |
|
|
33
|
+
| Timestamp | TIMESTAMP | DATETIME |
|
|
34
|
+
| Enum | ENUM type ou VARCHAR | ENUM |
|
|
35
|
+
| JSON | JSONB | JSON |
|
|
36
|
+
|
|
37
|
+
## Índices — Quando Criar
|
|
38
|
+
|
|
39
|
+
| Cenário | Tipo de Índice |
|
|
40
|
+
|---------|---------------|
|
|
41
|
+
| Login por email | UNIQUE em email |
|
|
42
|
+
| FK mais consultada | INDEX simples |
|
|
43
|
+
| Filtro combinado (projeto + status) | INDEX composto |
|
|
44
|
+
| Busca textual | GIN (PostgreSQL) ou FULLTEXT |
|
|
45
|
+
| Dados únicos (email, slug) | UNIQUE |
|
|
46
|
+
|
|
47
|
+
## ADR — Template Mínimo
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
### ADR-NNN: [Título]
|
|
51
|
+
- **Status:** Aceito
|
|
52
|
+
- **Contexto:** [Por que essa decisão é necessária?]
|
|
53
|
+
- **Decisão:** [O que decidimos?]
|
|
54
|
+
- **Alternativas:** [O que rejeitamos e por quê?]
|
|
55
|
+
- **Consequências:** (+) benefícios (-) trade-offs
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Segurança — OWASP Top 5 Essencial
|
|
59
|
+
|
|
60
|
+
| # | Vulnerabilidade | Mitigação Padrão |
|
|
61
|
+
|---|----------------|-----------------|
|
|
62
|
+
| 1 | **Injection** | ORM com queries parametrizadas |
|
|
63
|
+
| 2 | **Broken Auth** | JWT + refresh rotation + bcrypt + rate limit |
|
|
64
|
+
| 3 | **XSS** | React escapa por padrão + CSP headers |
|
|
65
|
+
| 4 | **CSRF** | SameSite cookies + CSRF tokens |
|
|
66
|
+
| 5 | **Broken Access** | RBAC middleware em cada rota |
|
|
67
|
+
|
|
68
|
+
## NFRs — Referência de Valores Realistas
|
|
69
|
+
|
|
70
|
+
| Métrica | MVP | Escala Média | Enterprise |
|
|
71
|
+
|---------|-----|-------------|-----------|
|
|
72
|
+
| API p95 | < 500ms | < 200ms | < 100ms |
|
|
73
|
+
| Uptime | 99% | 99.5% | 99.9% |
|
|
74
|
+
| Concurrent users | 100 | 1.000 | 10.000+ |
|
|
75
|
+
| Deploy frequency | Semanal | Diário | Múltiplas/dia |
|
|
76
|
+
| Recovery time | < 4h | < 1h | < 15min |
|
|
77
|
+
|
|
78
|
+
## Anti-patterns
|
|
79
|
+
|
|
80
|
+
| Anti-pattern | Correção |
|
|
81
|
+
|-------------|----------|
|
|
82
|
+
| Schema sem tipos reais | Definir tipo exato do banco (VARCHAR(255), não "string") |
|
|
83
|
+
| ADR genérico "Escolhemos React" | Contexto + alternativas + consequências |
|
|
84
|
+
| Microserviços para time de 2 | Monolito modular, extrair serviços quando dados justificarem |
|
|
85
|
+
| NFRs aspiracionais (99.99%) | Números realistas para o MVP e orçamento |
|
|
86
|
+
| Segurança "depois do launch" | OWASP Top 5 no mínimo desde o início |
|