@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
package/dist/flows/types.js
CHANGED
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
* Nomes canônicos das fases de desenvolvimento de código.
|
|
3
3
|
* FONTE ÚNICA DE VERDADE — todos os arquivos devem importar daqui.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
* "Deploy
|
|
5
|
+
* v10.0: Atualizado para fluxos enxutos.
|
|
6
|
+
* "Integração & Deploy" é fase de código (deploy.md + CI/CD + E2E).
|
|
7
|
+
* "Deploy & Operação" é fase de código (release.md + SLOs + runbooks).
|
|
7
8
|
*
|
|
8
|
-
* @since
|
|
9
|
+
* @since v10.0
|
|
9
10
|
*/
|
|
10
|
-
export const CODE_PHASE_NAMES = ['Frontend', 'Backend', 'Integração', 'Deploy
|
|
11
|
+
export const CODE_PHASE_NAMES = ['Frontend', 'Backend', 'Integração & Deploy', 'Integração', 'Deploy & Operação'];
|
|
11
12
|
/**
|
|
12
13
|
* Verifica se uma fase é de código (desenvolvimento).
|
|
13
14
|
* Usa CODE_PHASE_NAMES como fonte única.
|
|
@@ -23,444 +24,365 @@ export function isCodePhaseName(faseNome) {
|
|
|
23
24
|
* Classificação de tipo de fase para Smart Auto-Flow.
|
|
24
25
|
* Usado por proximo.ts para decidir se a próxima fase precisa de input do usuário.
|
|
25
26
|
*
|
|
26
|
-
*
|
|
27
|
+
* v10.0: Atualizado com nomes de fases consolidadas.
|
|
28
|
+
*
|
|
29
|
+
* @since v10.0
|
|
27
30
|
*/
|
|
28
31
|
export const PHASE_TYPE_MAP = {
|
|
32
|
+
// Fases que requerem input do usuário (coleta conversacional)
|
|
33
|
+
'Discovery': 'input_required',
|
|
29
34
|
'Produto': 'input_required',
|
|
35
|
+
// Fases derivadas (IA gera a partir de docs anteriores + coleta complementar)
|
|
30
36
|
'Requisitos': 'derived',
|
|
31
|
-
'
|
|
32
|
-
'Modelo de Domínio': 'derived',
|
|
37
|
+
'Design': 'derived',
|
|
33
38
|
'Arquitetura': 'derived',
|
|
34
|
-
'
|
|
35
|
-
'
|
|
39
|
+
'Design Técnico': 'derived',
|
|
40
|
+
'Modelo de Domínio': 'derived',
|
|
36
41
|
'Contrato API': 'derived',
|
|
42
|
+
'Planejamento': 'derived',
|
|
37
43
|
'Prototipagem': 'derived',
|
|
38
|
-
|
|
39
|
-
'Segurança': 'technical',
|
|
40
|
-
'Testes': 'technical',
|
|
41
|
-
'Performance': 'technical',
|
|
42
|
-
'Observabilidade': 'technical',
|
|
44
|
+
// Fases técnicas (código e infra)
|
|
43
45
|
'Frontend': 'technical',
|
|
44
46
|
'Backend': 'technical',
|
|
47
|
+
'Integração & Deploy': 'technical',
|
|
45
48
|
'Integração': 'technical',
|
|
46
|
-
'Deploy
|
|
49
|
+
'Deploy & Operação': 'technical',
|
|
47
50
|
};
|
|
48
|
-
//
|
|
51
|
+
// ============================================================
|
|
52
|
+
// GATE CHECKLISTS COMPARTILHADOS (reutilizados entre fluxos)
|
|
53
|
+
// ============================================================
|
|
54
|
+
const GATE_FRONTEND = [
|
|
55
|
+
"Componentes implementados conforme design doc e user stories",
|
|
56
|
+
"Pages com rotas configuradas para cada fluxo",
|
|
57
|
+
"State management conectado (hooks/stores)",
|
|
58
|
+
"Integração com mocks ou API real",
|
|
59
|
+
"Testes unitários para componentes críticos",
|
|
60
|
+
"Responsivo mobile-first e acessível",
|
|
61
|
+
"Loading, empty e error states em todas as telas",
|
|
62
|
+
];
|
|
63
|
+
const GATE_BACKEND = [
|
|
64
|
+
"Endpoints implementados conforme modelo de dados da arquitetura",
|
|
65
|
+
"DTOs com validação de input para cada endpoint",
|
|
66
|
+
"Services com regras de negócio do modelo de domínio",
|
|
67
|
+
"Testes unitários para services e controllers",
|
|
68
|
+
"Migrações de banco executáveis",
|
|
69
|
+
"Error handling padronizado conforme schema de erros",
|
|
70
|
+
"Autenticação implementada conforme arquitetura",
|
|
71
|
+
];
|
|
72
|
+
const GATE_INTEGRACAO_DEPLOY = [
|
|
73
|
+
"Frontend conectado ao Backend real (mocks removidos)",
|
|
74
|
+
"Todos os endpoints funcionando end-to-end",
|
|
75
|
+
"Testes E2E para fluxos críticos",
|
|
76
|
+
"CORS e variáveis de ambiente configurados",
|
|
77
|
+
"Pipeline CI/CD verde com testes automatizados",
|
|
78
|
+
"Health check respondendo corretamente",
|
|
79
|
+
"Monitoramento ativo (error tracking)",
|
|
80
|
+
];
|
|
81
|
+
// ============================================================
|
|
82
|
+
// FLUXO SIMPLES — 5 fases (v10.0, antes: 7)
|
|
83
|
+
// Discovery (PRD+Requisitos), Design, Arquitetura, Frontend, Backend
|
|
84
|
+
// ============================================================
|
|
49
85
|
export const FLUXO_SIMPLES = {
|
|
50
86
|
nivel: "simples",
|
|
51
|
-
total_fases:
|
|
87
|
+
total_fases: 5,
|
|
52
88
|
fases: [
|
|
53
89
|
{
|
|
54
90
|
numero: 1,
|
|
55
|
-
nome: "
|
|
56
|
-
especialista: "
|
|
57
|
-
template: "
|
|
58
|
-
skill: "specialist-
|
|
59
|
-
gate_checklist: [
|
|
60
|
-
"Problema claramente definido",
|
|
61
|
-
"MVP com funcionalidades listadas",
|
|
62
|
-
"Personas identificadas",
|
|
63
|
-
],
|
|
64
|
-
entregavel_esperado: "PRD.md",
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
numero: 2,
|
|
68
|
-
nome: "Requisitos",
|
|
69
|
-
especialista: "Engenharia de Requisitos",
|
|
70
|
-
template: "requisitos",
|
|
71
|
-
skill: "specialist-engenharia-requisitos-ia",
|
|
91
|
+
nome: "Discovery",
|
|
92
|
+
especialista: "Product Discovery Lead",
|
|
93
|
+
template: "discovery",
|
|
94
|
+
skill: "specialist-discovery",
|
|
72
95
|
gate_checklist: [
|
|
96
|
+
"Problema definido com impacto quantificado",
|
|
97
|
+
"Mínimo 2 personas com JTBD",
|
|
98
|
+
"MVP com 3-5 funcionalidades priorizadas",
|
|
73
99
|
"Requisitos funcionais com IDs únicos",
|
|
74
100
|
"Requisitos não-funcionais definidos",
|
|
75
|
-
"
|
|
101
|
+
"North Star Metric definida e mensurável",
|
|
102
|
+
"Riscos identificados com mitigação",
|
|
76
103
|
],
|
|
77
|
-
entregavel_esperado: "
|
|
104
|
+
entregavel_esperado: "discovery.md",
|
|
78
105
|
},
|
|
79
106
|
{
|
|
80
|
-
numero:
|
|
81
|
-
nome: "
|
|
82
|
-
especialista: "UX
|
|
107
|
+
numero: 2,
|
|
108
|
+
nome: "Design",
|
|
109
|
+
especialista: "UX Designer Lead",
|
|
83
110
|
template: "design-doc",
|
|
84
|
-
skill: "specialist-
|
|
111
|
+
skill: "specialist-design",
|
|
85
112
|
gate_checklist: [
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
113
|
+
"Jornada do usuário principal mapeada completa",
|
|
114
|
+
"Wireframes cobrem todas as telas do MVP",
|
|
115
|
+
"Design system definido (cores, tipografia, componentes)",
|
|
116
|
+
"Navegação e arquitetura de informação clara",
|
|
117
|
+
"Estados de UI (loading, empty, error) documentados",
|
|
118
|
+
"Acessibilidade WCAG 2.1 AA considerada",
|
|
119
|
+
"Responsividade mobile-first planejada",
|
|
89
120
|
],
|
|
90
121
|
entregavel_esperado: "design-doc.md",
|
|
91
122
|
},
|
|
92
123
|
{
|
|
93
|
-
numero:
|
|
124
|
+
numero: 3,
|
|
94
125
|
nome: "Arquitetura",
|
|
95
|
-
especialista: "
|
|
126
|
+
especialista: "Arquiteto de Soluções",
|
|
96
127
|
template: "arquitetura",
|
|
97
|
-
skill: "specialist-
|
|
128
|
+
skill: "specialist-architect",
|
|
98
129
|
gate_checklist: [
|
|
99
|
-
"Stack tecnológica
|
|
100
|
-
"Diagrama C4
|
|
101
|
-
"
|
|
130
|
+
"Stack tecnológica justificada com ADRs",
|
|
131
|
+
"Diagrama C4 nível 1 e 2 presentes",
|
|
132
|
+
"Modelo de dados com entidades e relacionamentos",
|
|
133
|
+
"Schema de banco com PKs, FKs e índices",
|
|
134
|
+
"Autenticação e autorização definidas",
|
|
135
|
+
"NFRs mensuráveis (tempo de resposta, disponibilidade)",
|
|
136
|
+
"Mínimo 2 ADRs documentados",
|
|
102
137
|
],
|
|
103
138
|
entregavel_esperado: "arquitetura.md",
|
|
104
139
|
},
|
|
105
140
|
{
|
|
106
|
-
numero:
|
|
107
|
-
nome: "Backlog",
|
|
108
|
-
especialista: "Plano de Execução",
|
|
109
|
-
template: "backlog",
|
|
110
|
-
skill: "specialist-plano-execucao-ia",
|
|
111
|
-
gate_checklist: [
|
|
112
|
-
"Épicos definidos",
|
|
113
|
-
"Histórias de usuário criadas",
|
|
114
|
-
"Definition of Done estabelecido",
|
|
115
|
-
],
|
|
116
|
-
entregavel_esperado: "backlog.md",
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
numero: 6,
|
|
141
|
+
numero: 4,
|
|
120
142
|
nome: "Frontend",
|
|
121
|
-
especialista: "
|
|
143
|
+
especialista: "Frontend Developer Lead",
|
|
122
144
|
template: "historia-usuario",
|
|
123
|
-
skill: "specialist-
|
|
124
|
-
gate_checklist:
|
|
125
|
-
"Componentes implementados conforme design doc e user stories do backlog",
|
|
126
|
-
"Pages com rotas configuradas para cada fluxo",
|
|
127
|
-
"State management conectado (hooks/stores)",
|
|
128
|
-
"Integração com mocks do contrato API",
|
|
129
|
-
"Testes unitários para componentes críticos",
|
|
130
|
-
"Responsivo mobile-first e acessível",
|
|
131
|
-
"Loading, empty e error states em todas as telas",
|
|
132
|
-
],
|
|
145
|
+
skill: "specialist-frontend",
|
|
146
|
+
gate_checklist: GATE_FRONTEND,
|
|
133
147
|
entregavel_esperado: "frontend-code",
|
|
134
148
|
},
|
|
135
149
|
{
|
|
136
|
-
numero:
|
|
150
|
+
numero: 5,
|
|
137
151
|
nome: "Backend",
|
|
138
|
-
especialista: "
|
|
152
|
+
especialista: "Backend Developer Lead",
|
|
139
153
|
template: "historia-usuario",
|
|
140
|
-
skill: "specialist-
|
|
141
|
-
gate_checklist:
|
|
142
|
-
"Endpoints implementados conforme contrato OpenAPI",
|
|
143
|
-
"DTOs com validação de input para cada endpoint",
|
|
144
|
-
"Services com regras de negócio do modelo de domínio",
|
|
145
|
-
"Testes unitários para services e controllers",
|
|
146
|
-
"Migrações de banco executáveis",
|
|
147
|
-
"Error handling padronizado conforme schema de erros",
|
|
148
|
-
"Autenticação implementada conforme arquitetura",
|
|
149
|
-
],
|
|
154
|
+
skill: "specialist-backend",
|
|
155
|
+
gate_checklist: GATE_BACKEND,
|
|
150
156
|
entregavel_esperado: "backend-code",
|
|
151
157
|
},
|
|
152
158
|
],
|
|
153
159
|
};
|
|
154
|
-
//
|
|
160
|
+
// ============================================================
|
|
161
|
+
// FLUXO MÉDIO — 8 fases (v10.0, antes: 13)
|
|
162
|
+
// Produto, Requisitos, Design, Design Técnico, Planejamento,
|
|
163
|
+
// Frontend, Backend, Integração & Deploy
|
|
164
|
+
// ============================================================
|
|
155
165
|
export const FLUXO_MEDIO = {
|
|
156
166
|
nivel: "medio",
|
|
157
|
-
total_fases:
|
|
167
|
+
total_fases: 8,
|
|
158
168
|
fases: [
|
|
159
169
|
{
|
|
160
170
|
numero: 1,
|
|
161
171
|
nome: "Produto",
|
|
162
|
-
especialista: "
|
|
172
|
+
especialista: "Product Manager",
|
|
163
173
|
template: "PRD",
|
|
174
|
+
skill: "specialist-product",
|
|
164
175
|
gate_checklist: [
|
|
165
|
-
"Problema
|
|
166
|
-
"
|
|
167
|
-
"MVP com funcionalidades
|
|
168
|
-
"
|
|
169
|
-
"
|
|
176
|
+
"Problema definido com impacto quantificado",
|
|
177
|
+
"Mínimo 2 personas detalhadas com JTBD",
|
|
178
|
+
"MVP com 3-7 funcionalidades priorizadas (RICE ou MoSCoW)",
|
|
179
|
+
"Escopo negativo definido (o que NÃO está no MVP)",
|
|
180
|
+
"North Star Metric com metas de 3 e 6 meses",
|
|
181
|
+
"Top 5 riscos com mitigação",
|
|
182
|
+
"Modelo de negócio claro",
|
|
170
183
|
],
|
|
171
184
|
entregavel_esperado: "PRD.md",
|
|
172
185
|
},
|
|
173
186
|
{
|
|
174
187
|
numero: 2,
|
|
175
188
|
nome: "Requisitos",
|
|
176
|
-
especialista: "
|
|
189
|
+
especialista: "Engenheiro de Requisitos",
|
|
177
190
|
template: "requisitos",
|
|
191
|
+
skill: "specialist-requirements",
|
|
178
192
|
gate_checklist: [
|
|
179
|
-
"Requisitos funcionais com IDs únicos",
|
|
180
|
-
"
|
|
181
|
-
"
|
|
182
|
-
"
|
|
193
|
+
"Requisitos funcionais com IDs únicos e descrição clara",
|
|
194
|
+
"Critérios de aceite em Gherkin para RFs de prioridade Alta",
|
|
195
|
+
"Requisitos não-funcionais mensuráveis",
|
|
196
|
+
"Regras de negócio documentadas",
|
|
197
|
+
"Matriz de rastreabilidade RF ↔ PRD",
|
|
183
198
|
],
|
|
184
199
|
entregavel_esperado: "requisitos.md",
|
|
185
200
|
},
|
|
186
201
|
{
|
|
187
202
|
numero: 3,
|
|
188
|
-
nome: "
|
|
189
|
-
especialista: "UX
|
|
203
|
+
nome: "Design",
|
|
204
|
+
especialista: "UX Designer Lead",
|
|
190
205
|
template: "design-doc",
|
|
206
|
+
skill: "specialist-design",
|
|
191
207
|
gate_checklist: [
|
|
192
|
-
"
|
|
193
|
-
"Wireframes
|
|
194
|
-
"
|
|
195
|
-
"
|
|
208
|
+
"Jornada do usuário principal mapeada completa",
|
|
209
|
+
"Wireframes cobrem todas as telas do MVP",
|
|
210
|
+
"Design system definido (cores, tipografia, componentes)",
|
|
211
|
+
"Navegação e arquitetura de informação clara",
|
|
212
|
+
"Estados de UI (loading, empty, error) documentados",
|
|
213
|
+
"Acessibilidade WCAG 2.1 AA considerada",
|
|
214
|
+
"Responsividade mobile-first planejada",
|
|
196
215
|
],
|
|
197
216
|
entregavel_esperado: "design-doc.md",
|
|
198
217
|
},
|
|
199
218
|
{
|
|
200
219
|
numero: 4,
|
|
201
|
-
nome: "
|
|
202
|
-
especialista: "
|
|
203
|
-
template: "
|
|
220
|
+
nome: "Design Técnico",
|
|
221
|
+
especialista: "Arquiteto de Soluções",
|
|
222
|
+
template: "technical-design",
|
|
223
|
+
skill: "specialist-technical-design",
|
|
204
224
|
gate_checklist: [
|
|
205
|
-
"Entidades
|
|
206
|
-
"
|
|
207
|
-
"
|
|
225
|
+
"Entidades do domínio com atributos e relacionamentos completos",
|
|
226
|
+
"Schema de banco com tipos reais, PKs/FKs e índices planejados",
|
|
227
|
+
"Stack tecnológica justificada com mínimo 3 ADRs",
|
|
228
|
+
"Diagrama C4 nível 1 e 2",
|
|
229
|
+
"Autenticação e autorização definidas",
|
|
230
|
+
"OWASP Top 5 mitigado",
|
|
231
|
+
"NFRs mensuráveis (tempo resposta, disponibilidade, escala)",
|
|
232
|
+
"Estratégia de deploy com ambientes",
|
|
208
233
|
],
|
|
209
|
-
entregavel_esperado: "
|
|
234
|
+
entregavel_esperado: "technical-design.md",
|
|
210
235
|
},
|
|
211
236
|
{
|
|
212
237
|
numero: 5,
|
|
213
|
-
nome: "
|
|
214
|
-
especialista: "
|
|
215
|
-
template: "design-banco",
|
|
216
|
-
gate_checklist: [
|
|
217
|
-
"Modelo relacional definido",
|
|
218
|
-
"Índices planejados",
|
|
219
|
-
"Scripts de migração criados",
|
|
220
|
-
],
|
|
221
|
-
entregavel_esperado: "design-banco.md",
|
|
222
|
-
},
|
|
223
|
-
{
|
|
224
|
-
numero: 6,
|
|
225
|
-
nome: "Arquitetura",
|
|
226
|
-
especialista: "Arquitetura de Software",
|
|
227
|
-
template: "arquitetura",
|
|
228
|
-
gate_checklist: [
|
|
229
|
-
"Diagrama C4 completo",
|
|
230
|
-
"Stack justificada",
|
|
231
|
-
"ADRs documentados",
|
|
232
|
-
"Pontos de integração definidos",
|
|
233
|
-
],
|
|
234
|
-
entregavel_esperado: "arquitetura.md",
|
|
235
|
-
},
|
|
236
|
-
{
|
|
237
|
-
numero: 7,
|
|
238
|
-
nome: "Segurança",
|
|
239
|
-
especialista: "Segurança da Informação",
|
|
240
|
-
template: "checklist-seguranca",
|
|
241
|
-
gate_checklist: [
|
|
242
|
-
"OWASP Top 10 avaliado",
|
|
243
|
-
"Autenticação definida",
|
|
244
|
-
"Dados sensíveis mapeados",
|
|
245
|
-
],
|
|
246
|
-
entregavel_esperado: "checklist-seguranca.md",
|
|
247
|
-
},
|
|
248
|
-
{
|
|
249
|
-
numero: 8,
|
|
250
|
-
nome: "Testes",
|
|
251
|
-
especialista: "Análise de Testes",
|
|
252
|
-
template: "plano-testes",
|
|
253
|
-
gate_checklist: [
|
|
254
|
-
"Estratégia definida",
|
|
255
|
-
"Casos de teste mapeados",
|
|
256
|
-
"Ferramentas selecionadas",
|
|
257
|
-
],
|
|
258
|
-
entregavel_esperado: "plano-testes.md",
|
|
259
|
-
},
|
|
260
|
-
{
|
|
261
|
-
numero: 9,
|
|
262
|
-
nome: "Backlog",
|
|
263
|
-
especialista: "Plano de Execução com IA",
|
|
238
|
+
nome: "Planejamento",
|
|
239
|
+
especialista: "Tech Lead",
|
|
264
240
|
template: "backlog",
|
|
241
|
+
skill: "specialist-planning",
|
|
265
242
|
gate_checklist: [
|
|
266
|
-
"Épicos
|
|
267
|
-
"
|
|
268
|
-
"
|
|
269
|
-
"
|
|
243
|
+
"Épicos mapeiam funcionalidades do MVP",
|
|
244
|
+
"User Stories com IDs, tipo FE/BE e story points",
|
|
245
|
+
"Top 10 US com critérios de aceite detalhados",
|
|
246
|
+
"Endpoints de API derivados do modelo de dados",
|
|
247
|
+
"Sprints planejados com objetivo e US incluídas",
|
|
248
|
+
"Estratégia de testes com ferramentas e cobertura",
|
|
249
|
+
"Definition of Done definido",
|
|
270
250
|
],
|
|
271
251
|
entregavel_esperado: "backlog.md",
|
|
272
252
|
},
|
|
273
253
|
{
|
|
274
|
-
numero:
|
|
275
|
-
nome: "Contrato API",
|
|
276
|
-
especialista: "Contrato de API",
|
|
277
|
-
template: "contrato-api",
|
|
278
|
-
gate_checklist: [
|
|
279
|
-
"Esquema OpenAPI definido",
|
|
280
|
-
"Tipos gerados para FE e BE",
|
|
281
|
-
"Mocks disponíveis",
|
|
282
|
-
],
|
|
283
|
-
entregavel_esperado: "openapi.yaml",
|
|
284
|
-
},
|
|
285
|
-
{
|
|
286
|
-
numero: 11,
|
|
254
|
+
numero: 6,
|
|
287
255
|
nome: "Frontend",
|
|
288
|
-
especialista: "
|
|
256
|
+
especialista: "Frontend Developer Lead",
|
|
289
257
|
template: "historia-usuario",
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
"Pages com rotas configuradas para cada fluxo",
|
|
293
|
-
"State management conectado (hooks/stores)",
|
|
294
|
-
"Integração com mocks do contrato API",
|
|
295
|
-
"Testes unitários para componentes críticos",
|
|
296
|
-
"Responsivo mobile-first e acessível",
|
|
297
|
-
"Loading, empty e error states em todas as telas",
|
|
298
|
-
],
|
|
258
|
+
skill: "specialist-frontend",
|
|
259
|
+
gate_checklist: GATE_FRONTEND,
|
|
299
260
|
entregavel_esperado: "frontend-code",
|
|
300
261
|
},
|
|
301
262
|
{
|
|
302
|
-
numero:
|
|
263
|
+
numero: 7,
|
|
303
264
|
nome: "Backend",
|
|
304
|
-
especialista: "
|
|
265
|
+
especialista: "Backend Developer Lead",
|
|
305
266
|
template: "historia-usuario",
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
"DTOs com validação de input para cada endpoint",
|
|
309
|
-
"Services com regras de negócio do modelo de domínio",
|
|
310
|
-
"Testes unitários para services e controllers",
|
|
311
|
-
"Migrações de banco executáveis",
|
|
312
|
-
"Error handling padronizado conforme schema de erros",
|
|
313
|
-
"Autenticação implementada conforme arquitetura",
|
|
314
|
-
],
|
|
267
|
+
skill: "specialist-backend",
|
|
268
|
+
gate_checklist: GATE_BACKEND,
|
|
315
269
|
entregavel_esperado: "backend-code",
|
|
316
270
|
},
|
|
317
271
|
{
|
|
318
|
-
numero:
|
|
319
|
-
nome: "Integração",
|
|
320
|
-
especialista: "DevOps
|
|
321
|
-
template: "
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
"Todos os endpoints do OpenAPI funcionando end-to-end",
|
|
325
|
-
"Testes E2E para fluxos críticos",
|
|
326
|
-
"CORS e variáveis de ambiente configurados",
|
|
327
|
-
"Pipeline CI/CD verde com testes automatizados",
|
|
328
|
-
],
|
|
272
|
+
numero: 8,
|
|
273
|
+
nome: "Integração & Deploy",
|
|
274
|
+
especialista: "DevOps / SRE Engineer",
|
|
275
|
+
template: "deploy",
|
|
276
|
+
skill: "specialist-devops",
|
|
277
|
+
gate_checklist: GATE_INTEGRACAO_DEPLOY,
|
|
329
278
|
entregavel_esperado: "deploy.md",
|
|
330
279
|
},
|
|
331
280
|
],
|
|
332
281
|
};
|
|
333
|
-
//
|
|
282
|
+
// ============================================================
|
|
283
|
+
// FLUXO COMPLEXO — 11 fases (v10.0, antes: 17)
|
|
284
|
+
// Produto, Requisitos, Design, Modelo de Domínio, Design Técnico,
|
|
285
|
+
// Contrato API, Planejamento, Frontend, Backend, Integração, Deploy & Operação
|
|
286
|
+
// ============================================================
|
|
334
287
|
export const FLUXO_COMPLEXO = {
|
|
335
288
|
nivel: "complexo",
|
|
336
|
-
total_fases:
|
|
289
|
+
total_fases: 11,
|
|
337
290
|
fases: [
|
|
338
|
-
|
|
291
|
+
// Fases 1-3: iguais ao médio (Produto, Requisitos, Design)
|
|
292
|
+
...FLUXO_MEDIO.fases.slice(0, 3),
|
|
339
293
|
{
|
|
340
|
-
numero:
|
|
341
|
-
nome: "
|
|
342
|
-
especialista: "
|
|
343
|
-
template: "
|
|
344
|
-
|
|
345
|
-
"Bounded Contexts definidos",
|
|
346
|
-
"CQRS avaliado",
|
|
347
|
-
"Event Sourcing planejado",
|
|
348
|
-
"Microserviços mapeados",
|
|
349
|
-
],
|
|
350
|
-
entregavel_esperado: "arquitetura-avancada.md",
|
|
351
|
-
},
|
|
352
|
-
{
|
|
353
|
-
numero: 8,
|
|
354
|
-
nome: "Segurança",
|
|
355
|
-
especialista: "Segurança da Informação",
|
|
356
|
-
template: "checklist-seguranca",
|
|
357
|
-
gate_checklist: [
|
|
358
|
-
"OWASP Top 10 avaliado",
|
|
359
|
-
"Threat modeling realizado",
|
|
360
|
-
"Pentest planejado",
|
|
361
|
-
"Compliance verificado",
|
|
362
|
-
],
|
|
363
|
-
entregavel_esperado: "checklist-seguranca.md",
|
|
364
|
-
},
|
|
365
|
-
{
|
|
366
|
-
numero: 9,
|
|
367
|
-
nome: "Performance",
|
|
368
|
-
especialista: "Performance e Escalabilidade",
|
|
369
|
-
template: "plano-testes",
|
|
294
|
+
numero: 4,
|
|
295
|
+
nome: "Modelo de Domínio",
|
|
296
|
+
especialista: "Domain Expert / DDD Strategist",
|
|
297
|
+
template: "modelo-dominio",
|
|
298
|
+
skill: "specialist-domain",
|
|
370
299
|
gate_checklist: [
|
|
371
|
-
"
|
|
372
|
-
"
|
|
373
|
-
"
|
|
300
|
+
"Bounded contexts identificados com responsabilidades claras",
|
|
301
|
+
"Linguagem ubíqua documentada (glossário com 10+ termos)",
|
|
302
|
+
"Aggregates com aggregate roots identificados",
|
|
303
|
+
"Entidades com atributos e identidade definida",
|
|
304
|
+
"Value Objects identificados (imutáveis, sem identidade)",
|
|
305
|
+
"Invariantes/regras de negócio por aggregate",
|
|
306
|
+
"Domain events mapeados (mínimo 5)",
|
|
307
|
+
"Context map com relações entre bounded contexts",
|
|
374
308
|
],
|
|
375
|
-
entregavel_esperado: "
|
|
309
|
+
entregavel_esperado: "modelo-dominio.md",
|
|
376
310
|
},
|
|
377
311
|
{
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
312
|
+
// Design Técnico no complexo: sem seção de domínio (já coberta na fase 4)
|
|
313
|
+
numero: 5,
|
|
314
|
+
nome: "Design Técnico",
|
|
315
|
+
especialista: "Arquiteto de Soluções",
|
|
316
|
+
template: "technical-design",
|
|
317
|
+
skill: "specialist-technical-design",
|
|
382
318
|
gate_checklist: [
|
|
383
|
-
"
|
|
384
|
-
"
|
|
385
|
-
"
|
|
386
|
-
"
|
|
319
|
+
"Schema de banco com tipos reais, PKs/FKs e índices planejados",
|
|
320
|
+
"Stack tecnológica justificada com mínimo 3 ADRs",
|
|
321
|
+
"Diagrama C4 nível 1 e 2",
|
|
322
|
+
"Autenticação e autorização definidas",
|
|
323
|
+
"OWASP Top 5 mitigado",
|
|
324
|
+
"NFRs mensuráveis (tempo resposta, disponibilidade, escala)",
|
|
325
|
+
"Estratégia de deploy com ambientes",
|
|
387
326
|
],
|
|
388
|
-
entregavel_esperado: "
|
|
327
|
+
entregavel_esperado: "technical-design.md",
|
|
389
328
|
},
|
|
390
329
|
{
|
|
391
|
-
numero:
|
|
392
|
-
nome: "
|
|
393
|
-
especialista: "
|
|
394
|
-
template: "
|
|
330
|
+
numero: 6,
|
|
331
|
+
nome: "Contrato API",
|
|
332
|
+
especialista: "API Designer",
|
|
333
|
+
template: "contrato-api",
|
|
334
|
+
skill: "specialist-api-contract",
|
|
395
335
|
gate_checklist: [
|
|
396
|
-
"
|
|
397
|
-
"
|
|
398
|
-
"
|
|
336
|
+
"OpenAPI 3.0+ válido (parseable por ferramentas)",
|
|
337
|
+
"CRUD completo para cada entidade principal",
|
|
338
|
+
"Schemas de request e response com tipos reais",
|
|
339
|
+
"Autenticação definida (security schemes)",
|
|
340
|
+
"Paginação em endpoints que retornam listas",
|
|
341
|
+
"Error responses padronizadas",
|
|
342
|
+
"Pelo menos 1 exemplo por endpoint",
|
|
399
343
|
],
|
|
400
|
-
entregavel_esperado: "
|
|
344
|
+
entregavel_esperado: "openapi.yaml",
|
|
401
345
|
},
|
|
402
346
|
{
|
|
403
|
-
numero:
|
|
404
|
-
nome: "
|
|
405
|
-
especialista: "
|
|
347
|
+
numero: 7,
|
|
348
|
+
nome: "Planejamento",
|
|
349
|
+
especialista: "Tech Lead",
|
|
406
350
|
template: "backlog",
|
|
351
|
+
skill: "specialist-planning",
|
|
407
352
|
gate_checklist: [
|
|
408
|
-
"Épicos
|
|
409
|
-
"
|
|
410
|
-
"
|
|
411
|
-
"Sprints
|
|
353
|
+
"Épicos mapeiam funcionalidades do MVP",
|
|
354
|
+
"User Stories com IDs, tipo FE/BE e story points",
|
|
355
|
+
"Top 10 US com critérios de aceite detalhados",
|
|
356
|
+
"Sprints planejados com objetivo e US incluídas",
|
|
357
|
+
"Estratégia de testes com ferramentas e cobertura",
|
|
358
|
+
"Definition of Done definido",
|
|
412
359
|
],
|
|
413
360
|
entregavel_esperado: "backlog.md",
|
|
414
361
|
},
|
|
415
362
|
{
|
|
416
|
-
numero:
|
|
417
|
-
nome: "Contrato API",
|
|
418
|
-
especialista: "Contrato de API",
|
|
419
|
-
template: "contrato-api",
|
|
420
|
-
gate_checklist: [
|
|
421
|
-
"OpenAPI completo",
|
|
422
|
-
"Versionamento definido",
|
|
423
|
-
"Breaking changes documentados",
|
|
424
|
-
],
|
|
425
|
-
entregavel_esperado: "openapi.yaml",
|
|
426
|
-
},
|
|
427
|
-
{
|
|
428
|
-
numero: 14,
|
|
363
|
+
numero: 8,
|
|
429
364
|
nome: "Frontend",
|
|
430
|
-
especialista: "
|
|
365
|
+
especialista: "Frontend Developer Lead",
|
|
431
366
|
template: "historia-usuario",
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
"Pages com rotas configuradas para cada fluxo",
|
|
435
|
-
"State management conectado (hooks/stores)",
|
|
436
|
-
"Integração com mocks do contrato API",
|
|
437
|
-
"Testes unitários para componentes críticos",
|
|
438
|
-
"Responsivo mobile-first e acessível",
|
|
439
|
-
"Loading, empty e error states em todas as telas",
|
|
440
|
-
],
|
|
367
|
+
skill: "specialist-frontend",
|
|
368
|
+
gate_checklist: GATE_FRONTEND,
|
|
441
369
|
entregavel_esperado: "frontend-code",
|
|
442
370
|
},
|
|
443
371
|
{
|
|
444
|
-
numero:
|
|
372
|
+
numero: 9,
|
|
445
373
|
nome: "Backend",
|
|
446
|
-
especialista: "
|
|
374
|
+
especialista: "Backend Developer Lead",
|
|
447
375
|
template: "historia-usuario",
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
"DTOs com validação de input para cada endpoint",
|
|
451
|
-
"Services com regras de negócio do modelo de domínio",
|
|
452
|
-
"Testes unitários para services e controllers",
|
|
453
|
-
"Migrações de banco executáveis",
|
|
454
|
-
"Error handling padronizado conforme schema de erros",
|
|
455
|
-
"Autenticação implementada conforme arquitetura",
|
|
456
|
-
],
|
|
376
|
+
skill: "specialist-backend",
|
|
377
|
+
gate_checklist: GATE_BACKEND,
|
|
457
378
|
entregavel_esperado: "backend-code",
|
|
458
379
|
},
|
|
459
380
|
{
|
|
460
|
-
numero:
|
|
381
|
+
numero: 10,
|
|
461
382
|
nome: "Integração",
|
|
462
|
-
especialista: "DevOps
|
|
463
|
-
template: "
|
|
383
|
+
especialista: "DevOps / SRE Engineer",
|
|
384
|
+
template: "deploy",
|
|
385
|
+
skill: "specialist-devops",
|
|
464
386
|
gate_checklist: [
|
|
465
387
|
"Frontend conectado ao Backend real (mocks removidos)",
|
|
466
388
|
"Todos os endpoints do OpenAPI funcionando end-to-end",
|
|
@@ -471,15 +393,17 @@ export const FLUXO_COMPLEXO = {
|
|
|
471
393
|
entregavel_esperado: "deploy.md",
|
|
472
394
|
},
|
|
473
395
|
{
|
|
474
|
-
numero:
|
|
475
|
-
nome: "Deploy
|
|
476
|
-
especialista: "
|
|
477
|
-
template: "
|
|
396
|
+
numero: 11,
|
|
397
|
+
nome: "Deploy & Operação",
|
|
398
|
+
especialista: "SRE Senior / Platform Engineer",
|
|
399
|
+
template: "release",
|
|
400
|
+
skill: "specialist-operations",
|
|
478
401
|
gate_checklist: [
|
|
479
402
|
"Deploy em produção realizado com sucesso",
|
|
480
403
|
"Monitoramento ativo com métricas e alertas",
|
|
481
|
-
"Health checks respondendo corretamente",
|
|
482
|
-
"
|
|
404
|
+
"Health checks respondendo corretamente (liveness + readiness)",
|
|
405
|
+
"SLOs definidos com SLIs mensuráveis",
|
|
406
|
+
"Runbook de operações documentado (mínimo 3 cenários)",
|
|
483
407
|
"Rollback testado e funcional",
|
|
484
408
|
],
|
|
485
409
|
entregavel_esperado: "release.md",
|
|
@@ -523,21 +447,29 @@ const FASE_STITCH = {
|
|
|
523
447
|
entregavel_esperado: "prototipos.md",
|
|
524
448
|
};
|
|
525
449
|
/**
|
|
526
|
-
* Obtém fluxo com fase de Stitch opcional
|
|
527
|
-
* Se usarStitch=true, insere fase de prototipagem
|
|
528
|
-
*
|
|
450
|
+
* Obtém fluxo com fase de Stitch opcional.
|
|
451
|
+
* Se usarStitch=true, insere fase de prototipagem APÓS a fase "Design".
|
|
452
|
+
*
|
|
453
|
+
* v10.0: Busca dinamicamente a fase "Design" em vez de hardcoded na posição 3,
|
|
454
|
+
* porque no fluxo simples Design é fase 2, e no médio/complexo é fase 3.
|
|
529
455
|
*/
|
|
530
456
|
export function getFluxoComStitch(nivel, usarStitch) {
|
|
531
457
|
const base = getFluxo(nivel);
|
|
532
458
|
if (!usarStitch) {
|
|
533
459
|
return base;
|
|
534
460
|
}
|
|
535
|
-
//
|
|
536
|
-
|
|
461
|
+
// Encontrar a fase "Design" dinamicamente
|
|
462
|
+
const designIndex = base.fases.findIndex(f => f.nome === 'Design');
|
|
463
|
+
if (designIndex === -1) {
|
|
464
|
+
// Sem fase de Design, retorna fluxo base sem Stitch
|
|
465
|
+
return base;
|
|
466
|
+
}
|
|
467
|
+
const insertAfter = designIndex + 1; // Inserir APÓS Design
|
|
468
|
+
const stitchNumero = base.fases[designIndex].numero + 1;
|
|
537
469
|
const fasesComStitch = [
|
|
538
|
-
...base.fases.slice(0,
|
|
539
|
-
{ ...FASE_STITCH, numero:
|
|
540
|
-
...base.fases.slice(
|
|
470
|
+
...base.fases.slice(0, insertAfter),
|
|
471
|
+
{ ...FASE_STITCH, numero: stitchNumero },
|
|
472
|
+
...base.fases.slice(insertAfter).map(f => ({ ...f, numero: f.numero + 1 }))
|
|
541
473
|
];
|
|
542
474
|
return {
|
|
543
475
|
nivel: base.nivel,
|