@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.
Files changed (99) hide show
  1. package/dist/constants.d.ts +1 -1
  2. package/dist/constants.js +1 -1
  3. package/dist/content/skills/specialist-api-contract/SKILL.md +98 -0
  4. package/dist/content/skills/specialist-api-contract/resources/checklists/gate-checklist.md +38 -0
  5. package/dist/content/skills/specialist-api-contract/resources/reference/guide.md +109 -0
  6. package/dist/content/skills/specialist-architect/SKILL.md +111 -0
  7. package/dist/content/skills/specialist-architect/resources/checklists/gate-checklist.md +45 -0
  8. package/dist/content/skills/specialist-architect/resources/examples/example-architecture.md +345 -0
  9. package/dist/content/skills/specialist-architect/resources/reference/guide.md +86 -0
  10. package/dist/content/skills/specialist-architect/resources/templates/arquitetura.md +282 -0
  11. package/dist/content/skills/specialist-backend/SKILL.md +100 -0
  12. package/dist/content/skills/specialist-backend/resources/checklists/gate-checklist.md +38 -0
  13. package/dist/content/skills/specialist-backend/resources/reference/guide.md +160 -0
  14. package/dist/content/skills/specialist-design/SKILL.md +107 -0
  15. package/dist/content/skills/specialist-design/resources/checklists/gate-checklist.md +45 -0
  16. package/dist/content/skills/specialist-design/resources/examples/example-design.md +294 -0
  17. package/dist/content/skills/specialist-design/resources/reference/guide.md +67 -0
  18. package/dist/content/skills/specialist-design/resources/templates/design-doc.md +232 -0
  19. package/dist/content/skills/specialist-devops/SKILL.md +99 -0
  20. package/dist/content/skills/specialist-devops/resources/checklists/gate-checklist.md +38 -0
  21. package/dist/content/skills/specialist-devops/resources/reference/guide.md +116 -0
  22. package/dist/content/skills/specialist-discovery/SKILL.md +109 -0
  23. package/dist/content/skills/specialist-discovery/resources/checklists/gate-checklist.md +45 -0
  24. package/dist/content/skills/specialist-discovery/resources/examples/example-discovery.md +179 -0
  25. package/dist/content/skills/specialist-discovery/resources/reference/guide.md +48 -0
  26. package/dist/content/skills/specialist-discovery/resources/templates/discovery.md +187 -0
  27. package/dist/content/skills/specialist-domain/SKILL.md +105 -0
  28. package/dist/content/skills/specialist-domain/resources/checklists/gate-checklist.md +37 -0
  29. package/dist/content/skills/specialist-domain/resources/reference/guide.md +80 -0
  30. package/dist/content/skills/specialist-frontend/SKILL.md +99 -0
  31. package/dist/content/skills/specialist-frontend/resources/checklists/gate-checklist.md +38 -0
  32. package/dist/content/skills/specialist-frontend/resources/reference/guide.md +90 -0
  33. package/dist/content/skills/specialist-operations/SKILL.md +109 -0
  34. package/dist/content/skills/specialist-operations/resources/checklists/gate-checklist.md +38 -0
  35. package/dist/content/skills/specialist-operations/resources/reference/guide.md +129 -0
  36. package/dist/content/skills/specialist-planning/SKILL.md +100 -0
  37. package/dist/content/skills/specialist-planning/resources/checklists/gate-checklist.md +38 -0
  38. package/dist/content/skills/specialist-planning/resources/reference/guide.md +88 -0
  39. package/dist/content/skills/specialist-product/SKILL.md +113 -0
  40. package/dist/content/skills/specialist-product/resources/checklists/gate-checklist.md +40 -0
  41. package/dist/content/skills/specialist-product/resources/reference/guide.md +43 -0
  42. package/dist/content/skills/specialist-product/resources/templates/PRD.md +191 -0
  43. package/dist/content/skills/specialist-requirements/SKILL.md +107 -0
  44. package/dist/content/skills/specialist-requirements/resources/checklists/gate-checklist.md +36 -0
  45. package/dist/content/skills/specialist-requirements/resources/reference/guide.md +66 -0
  46. package/dist/content/skills/specialist-technical-design/SKILL.md +114 -0
  47. package/dist/content/skills/specialist-technical-design/resources/checklists/gate-checklist.md +38 -0
  48. package/dist/content/skills/specialist-technical-design/resources/reference/guide.md +86 -0
  49. package/dist/flows/types.d.ts +13 -8
  50. package/dist/flows/types.d.ts.map +1 -1
  51. package/dist/flows/types.js +256 -324
  52. package/dist/flows/types.js.map +1 -1
  53. package/dist/gates/readiness-gate.d.ts +48 -0
  54. package/dist/gates/readiness-gate.d.ts.map +1 -0
  55. package/dist/gates/readiness-gate.js +301 -0
  56. package/dist/gates/readiness-gate.js.map +1 -0
  57. package/dist/handlers/code-phase-handler.js +11 -4
  58. package/dist/handlers/code-phase-handler.js.map +1 -1
  59. package/dist/handlers/specialist-phase-handler.d.ts +11 -10
  60. package/dist/handlers/specialist-phase-handler.d.ts.map +1 -1
  61. package/dist/handlers/specialist-phase-handler.js +160 -64
  62. package/dist/handlers/specialist-phase-handler.js.map +1 -1
  63. package/dist/services/phase-config-loader.d.ts +28 -0
  64. package/dist/services/phase-config-loader.d.ts.map +1 -0
  65. package/dist/services/phase-config-loader.js +200 -0
  66. package/dist/services/phase-config-loader.js.map +1 -0
  67. package/dist/services/scoring-config.d.ts.map +1 -1
  68. package/dist/services/scoring-config.js +13 -10
  69. package/dist/services/scoring-config.js.map +1 -1
  70. package/dist/tools/consolidated/avancar.d.ts.map +1 -1
  71. package/dist/tools/consolidated/avancar.js +86 -5
  72. package/dist/tools/consolidated/avancar.js.map +1 -1
  73. package/dist/tools/iniciar-projeto.d.ts.map +1 -1
  74. package/dist/tools/iniciar-projeto.js +46 -0
  75. package/dist/tools/iniciar-projeto.js.map +1 -1
  76. package/dist/tools/proximo.d.ts +1 -0
  77. package/dist/tools/proximo.d.ts.map +1 -1
  78. package/dist/tools/proximo.js +35 -21
  79. package/dist/tools/proximo.js.map +1 -1
  80. package/dist/types/index.d.ts +2 -0
  81. package/dist/types/index.d.ts.map +1 -1
  82. package/dist/types/index.js.map +1 -1
  83. package/dist/types/phase-config.d.ts +65 -0
  84. package/dist/types/phase-config.d.ts.map +1 -0
  85. package/dist/types/phase-config.js +11 -0
  86. package/dist/types/phase-config.js.map +1 -0
  87. package/dist/utils/migration-v10.d.ts +31 -0
  88. package/dist/utils/migration-v10.d.ts.map +1 -0
  89. package/dist/utils/migration-v10.js +145 -0
  90. package/dist/utils/migration-v10.js.map +1 -0
  91. package/dist/utils/prompt-mapper.d.ts +6 -2
  92. package/dist/utils/prompt-mapper.d.ts.map +1 -1
  93. package/dist/utils/prompt-mapper.js +72 -91
  94. package/dist/utils/prompt-mapper.js.map +1 -1
  95. package/dist/utils/skill-deployer.d.ts +32 -0
  96. package/dist/utils/skill-deployer.d.ts.map +1 -0
  97. package/dist/utils/skill-deployer.js +150 -0
  98. package/dist/utils/skill-deployer.js.map +1 -0
  99. package/package.json +2 -2
@@ -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
- * Nota: "Testes" é fase de DOCUMENTO (plano-testes.md), não de código.
6
- * "Deploy Final" é fase de código (release.md + CI/CD).
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 v9.0
9
+ * @since v10.0
9
10
  */
10
- export const CODE_PHASE_NAMES = ['Frontend', 'Backend', 'Integração', 'Deploy Final'];
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
- * @since v9.0 movido de proximo.ts (era local)
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
- 'UX Design': 'derived',
32
- 'Modelo de Domínio': 'derived',
37
+ 'Design': 'derived',
33
38
  'Arquitetura': 'derived',
34
- 'Arquitetura Avançada': 'derived',
35
- 'Backlog': 'derived',
39
+ 'Design Técnico': 'derived',
40
+ 'Modelo de Domínio': 'derived',
36
41
  'Contrato API': 'derived',
42
+ 'Planejamento': 'derived',
37
43
  'Prototipagem': 'derived',
38
- 'Banco de Dados': 'technical',
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 Final': 'technical',
49
+ 'Deploy & Operação': 'technical',
47
50
  };
48
- // Fluxo para projetos simples (7 fases)
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: 7,
87
+ total_fases: 5,
52
88
  fases: [
53
89
  {
54
90
  numero: 1,
55
- nome: "Produto",
56
- especialista: "Gestão de Produto",
57
- template: "PRD",
58
- skill: "specialist-gestao-produto",
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
- "Critérios de aceite especificados",
101
+ "North Star Metric definida e mensurável",
102
+ "Riscos identificados com mitigação",
76
103
  ],
77
- entregavel_esperado: "requisitos.md",
104
+ entregavel_esperado: "discovery.md",
78
105
  },
79
106
  {
80
- numero: 3,
81
- nome: "UX Design",
82
- especialista: "UX Design",
107
+ numero: 2,
108
+ nome: "Design",
109
+ especialista: "UX Designer Lead",
83
110
  template: "design-doc",
84
- skill: "specialist-ux-design",
111
+ skill: "specialist-design",
85
112
  gate_checklist: [
86
- "Wireframes ou protótipos criados",
87
- "Jornadas do usuário mapeadas",
88
- "Fluxos de navegação definidos",
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: 4,
124
+ numero: 3,
94
125
  nome: "Arquitetura",
95
- especialista: "Arquitetura de Software",
126
+ especialista: "Arquiteto de Soluções",
96
127
  template: "arquitetura",
97
- skill: "specialist-arquitetura-software",
128
+ skill: "specialist-architect",
98
129
  gate_checklist: [
99
- "Stack tecnológica definida",
100
- "Diagrama C4 básico",
101
- "ADRs documentados",
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: 5,
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: "Desenvolvimento Frontend",
143
+ especialista: "Frontend Developer Lead",
122
144
  template: "historia-usuario",
123
- skill: "specialist-desenvolvimento-frontend",
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: 7,
150
+ numero: 5,
137
151
  nome: "Backend",
138
- especialista: "Desenvolvimento",
152
+ especialista: "Backend Developer Lead",
139
153
  template: "historia-usuario",
140
- skill: "specialist-desenvolvimento-backend",
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
- // Fluxo para projetos médios (13 fases)
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: 13,
167
+ total_fases: 8,
158
168
  fases: [
159
169
  {
160
170
  numero: 1,
161
171
  nome: "Produto",
162
- especialista: "Gestão de Produto",
172
+ especialista: "Product Manager",
163
173
  template: "PRD",
174
+ skill: "specialist-product",
164
175
  gate_checklist: [
165
- "Problema claramente definido",
166
- "Personas identificadas",
167
- "MVP com funcionalidades listadas",
168
- "North Star Metric definida",
169
- "Cronograma estimado",
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: "Engenharia de Requisitos",
189
+ especialista: "Engenheiro de Requisitos",
177
190
  template: "requisitos",
191
+ skill: "specialist-requirements",
178
192
  gate_checklist: [
179
- "Requisitos funcionais com IDs únicos",
180
- "Requisitos não-funcionais definidos",
181
- "Critérios de aceite em Gherkin",
182
- "Matriz de rastreabilidade iniciada",
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: "UX Design",
189
- especialista: "UX Design",
203
+ nome: "Design",
204
+ especialista: "UX Designer Lead",
190
205
  template: "design-doc",
206
+ skill: "specialist-design",
191
207
  gate_checklist: [
192
- "Jornadas do usuário mapeadas",
193
- "Wireframes criados",
194
- "Acessibilidade considerada",
195
- "Mapa de navegação definido",
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: "Modelo de Domínio",
202
- especialista: "Modelagem e Arquitetura de Domínio com IA",
203
- template: "modelo-dominio",
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 identificadas",
206
- "Relacionamentos definidos",
207
- "Regras de negócio documentadas",
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: "modelo-dominio.md",
234
+ entregavel_esperado: "technical-design.md",
210
235
  },
211
236
  {
212
237
  numero: 5,
213
- nome: "Banco de Dados",
214
- especialista: "Banco de Dados",
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 definidos",
267
- "Features priorizadas",
268
- "Histórias detalhadas",
269
- "Definition of Done estabelecido",
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: 10,
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: "Desenvolvimento Frontend",
256
+ especialista: "Frontend Developer Lead",
289
257
  template: "historia-usuario",
290
- gate_checklist: [
291
- "Componentes implementados conforme design doc e user stories do backlog",
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: 12,
263
+ numero: 7,
303
264
  nome: "Backend",
304
- especialista: "Desenvolvimento e Vibe Coding Estruturado",
265
+ especialista: "Backend Developer Lead",
305
266
  template: "historia-usuario",
306
- gate_checklist: [
307
- "Endpoints implementados conforme contrato OpenAPI",
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: 13,
319
- nome: "Integração",
320
- especialista: "DevOps e Infraestrutura",
321
- template: "arquitetura",
322
- gate_checklist: [
323
- "Frontend conectado ao Backend real (mocks removidos)",
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
- // Fluxo para projetos complexos (17 fases)
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: 17,
289
+ total_fases: 11,
337
290
  fases: [
338
- ...FLUXO_MEDIO.fases.slice(0, 6), // Produto até Arquitetura
291
+ // Fases 1-3: iguais ao médio (Produto, Requisitos, Design)
292
+ ...FLUXO_MEDIO.fases.slice(0, 3),
339
293
  {
340
- numero: 7,
341
- nome: "Arquitetura Avançada",
342
- especialista: "Arquitetura Avançada",
343
- template: "arquitetura",
344
- gate_checklist: [
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
- "Load testing planejado",
372
- "Caching strategy definida",
373
- "Métricas de performance definidas",
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: "plano-performance.md",
309
+ entregavel_esperado: "modelo-dominio.md",
376
310
  },
377
311
  {
378
- numero: 10,
379
- nome: "Observabilidade",
380
- especialista: "Observabilidade",
381
- template: "arquitetura",
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
- "Estratégia de logs definida",
384
- "Métricas configuradas",
385
- "Tracing distribuído planejado",
386
- "Dashboards definidos",
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: "observabilidade.md",
327
+ entregavel_esperado: "technical-design.md",
389
328
  },
390
329
  {
391
- numero: 11,
392
- nome: "Testes",
393
- especialista: "Análise de Testes",
394
- template: "plano-testes",
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
- "Pirâmide de testes definida",
397
- "Contract testing planejado",
398
- "E2E strategy definida",
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: "plano-testes.md",
344
+ entregavel_esperado: "openapi.yaml",
401
345
  },
402
346
  {
403
- numero: 12,
404
- nome: "Backlog",
405
- especialista: "Plano de Execução com IA",
347
+ numero: 7,
348
+ nome: "Planejamento",
349
+ especialista: "Tech Lead",
406
350
  template: "backlog",
351
+ skill: "specialist-planning",
407
352
  gate_checklist: [
408
- "Épicos definidos",
409
- "Features priorizadas",
410
- "Histórias com dependências",
411
- "Sprints planejadas",
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: 13,
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: "Desenvolvimento Frontend",
365
+ especialista: "Frontend Developer Lead",
431
366
  template: "historia-usuario",
432
- gate_checklist: [
433
- "Componentes implementados conforme design doc e user stories do backlog",
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: 15,
372
+ numero: 9,
445
373
  nome: "Backend",
446
- especialista: "Desenvolvimento e Vibe Coding Estruturado",
374
+ especialista: "Backend Developer Lead",
447
375
  template: "historia-usuario",
448
- gate_checklist: [
449
- "Endpoints implementados conforme contrato OpenAPI",
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: 16,
381
+ numero: 10,
461
382
  nome: "Integração",
462
- especialista: "DevOps e Infraestrutura",
463
- template: "arquitetura",
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: 17,
475
- nome: "Deploy Final",
476
- especialista: "DevOps e Infraestrutura",
477
- template: "arquitetura",
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
- "Runbook de operações documentado",
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 após UX Design (fase 3)
528
- * Isso garante que o Design Doc com estilo visual esteja pronto antes de prototipar
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
- // Insere Stitch como fase 4 (após UX Design)
536
- // Fluxo: Produto(1) -> Requisitos(2) -> UX Design(3) -> Stitch(4) -> ...
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, 3), // Fases 1-3: Produto + Requisitos + UX Design
539
- { ...FASE_STITCH, numero: 4 }, // Stitch como fase 4
540
- ...base.fases.slice(3).map(f => ({ ...f, numero: f.numero + 1 })) // Renumera restante
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,