@maestro-ai/mcp-server 5.6.5 → 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 (109) 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 +33 -3
  50. package/dist/flows/types.d.ts.map +1 -1
  51. package/dist/flows/types.js +288 -309
  52. package/dist/flows/types.js.map +1 -1
  53. package/dist/gates/code-validator.d.ts +47 -0
  54. package/dist/gates/code-validator.d.ts.map +1 -0
  55. package/dist/gates/code-validator.js +225 -0
  56. package/dist/gates/code-validator.js.map +1 -0
  57. package/dist/gates/readiness-gate.d.ts +48 -0
  58. package/dist/gates/readiness-gate.d.ts.map +1 -0
  59. package/dist/gates/readiness-gate.js +301 -0
  60. package/dist/gates/readiness-gate.js.map +1 -0
  61. package/dist/handlers/code-phase-handler.d.ts +1 -0
  62. package/dist/handlers/code-phase-handler.d.ts.map +1 -1
  63. package/dist/handlers/code-phase-handler.js +176 -27
  64. package/dist/handlers/code-phase-handler.js.map +1 -1
  65. package/dist/handlers/specialist-phase-handler.d.ts +11 -10
  66. package/dist/handlers/specialist-phase-handler.d.ts.map +1 -1
  67. package/dist/handlers/specialist-phase-handler.js +160 -64
  68. package/dist/handlers/specialist-phase-handler.js.map +1 -1
  69. package/dist/services/deliverable-gate.service.d.ts +40 -0
  70. package/dist/services/deliverable-gate.service.d.ts.map +1 -0
  71. package/dist/services/deliverable-gate.service.js +88 -0
  72. package/dist/services/deliverable-gate.service.js.map +1 -0
  73. package/dist/services/phase-config-loader.d.ts +28 -0
  74. package/dist/services/phase-config-loader.d.ts.map +1 -0
  75. package/dist/services/phase-config-loader.js +200 -0
  76. package/dist/services/phase-config-loader.js.map +1 -0
  77. package/dist/services/scoring-config.d.ts.map +1 -1
  78. package/dist/services/scoring-config.js +13 -10
  79. package/dist/services/scoring-config.js.map +1 -1
  80. package/dist/tools/consolidated/avancar.d.ts.map +1 -1
  81. package/dist/tools/consolidated/avancar.js +89 -8
  82. package/dist/tools/consolidated/avancar.js.map +1 -1
  83. package/dist/tools/iniciar-projeto.d.ts.map +1 -1
  84. package/dist/tools/iniciar-projeto.js +46 -0
  85. package/dist/tools/iniciar-projeto.js.map +1 -1
  86. package/dist/tools/proximo.d.ts +1 -0
  87. package/dist/tools/proximo.d.ts.map +1 -1
  88. package/dist/tools/proximo.js +41 -126
  89. package/dist/tools/proximo.js.map +1 -1
  90. package/dist/types/index.d.ts +2 -0
  91. package/dist/types/index.d.ts.map +1 -1
  92. package/dist/types/index.js.map +1 -1
  93. package/dist/types/phase-config.d.ts +65 -0
  94. package/dist/types/phase-config.d.ts.map +1 -0
  95. package/dist/types/phase-config.js +11 -0
  96. package/dist/types/phase-config.js.map +1 -0
  97. package/dist/utils/migration-v10.d.ts +31 -0
  98. package/dist/utils/migration-v10.d.ts.map +1 -0
  99. package/dist/utils/migration-v10.js +145 -0
  100. package/dist/utils/migration-v10.js.map +1 -0
  101. package/dist/utils/prompt-mapper.d.ts +6 -2
  102. package/dist/utils/prompt-mapper.d.ts.map +1 -1
  103. package/dist/utils/prompt-mapper.js +72 -91
  104. package/dist/utils/prompt-mapper.js.map +1 -1
  105. package/dist/utils/skill-deployer.d.ts +32 -0
  106. package/dist/utils/skill-deployer.d.ts.map +1 -0
  107. package/dist/utils/skill-deployer.js +150 -0
  108. package/dist/utils/skill-deployer.js.map +1 -0
  109. package/package.json +2 -2
@@ -1,419 +1,388 @@
1
- // Fluxo para projetos simples (7 fases)
1
+ /**
2
+ * Nomes canônicos das fases de desenvolvimento de código.
3
+ * FONTE ÚNICA DE VERDADE — todos os arquivos devem importar daqui.
4
+ *
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).
8
+ *
9
+ * @since v10.0
10
+ */
11
+ export const CODE_PHASE_NAMES = ['Frontend', 'Backend', 'Integração & Deploy', 'Integração', 'Deploy & Operação'];
12
+ /**
13
+ * Verifica se uma fase é de código (desenvolvimento).
14
+ * Usa CODE_PHASE_NAMES como fonte única.
15
+ *
16
+ * @since v9.0
17
+ */
18
+ export function isCodePhaseName(faseNome) {
19
+ if (!faseNome)
20
+ return false;
21
+ return CODE_PHASE_NAMES.some(k => faseNome.includes(k));
22
+ }
23
+ /**
24
+ * Classificação de tipo de fase para Smart Auto-Flow.
25
+ * Usado por proximo.ts para decidir se a próxima fase precisa de input do usuário.
26
+ *
27
+ * v10.0: Atualizado com nomes de fases consolidadas.
28
+ *
29
+ * @since v10.0
30
+ */
31
+ export const PHASE_TYPE_MAP = {
32
+ // Fases que requerem input do usuário (coleta conversacional)
33
+ 'Discovery': 'input_required',
34
+ 'Produto': 'input_required',
35
+ // Fases derivadas (IA gera a partir de docs anteriores + coleta complementar)
36
+ 'Requisitos': 'derived',
37
+ 'Design': 'derived',
38
+ 'Arquitetura': 'derived',
39
+ 'Design Técnico': 'derived',
40
+ 'Modelo de Domínio': 'derived',
41
+ 'Contrato API': 'derived',
42
+ 'Planejamento': 'derived',
43
+ 'Prototipagem': 'derived',
44
+ // Fases técnicas (código e infra)
45
+ 'Frontend': 'technical',
46
+ 'Backend': 'technical',
47
+ 'Integração & Deploy': 'technical',
48
+ 'Integração': 'technical',
49
+ 'Deploy & Operação': 'technical',
50
+ };
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
+ // ============================================================
2
85
  export const FLUXO_SIMPLES = {
3
86
  nivel: "simples",
4
- total_fases: 7,
87
+ total_fases: 5,
5
88
  fases: [
6
89
  {
7
90
  numero: 1,
8
- nome: "Produto",
9
- especialista: "Gestão de Produto",
10
- template: "PRD",
11
- skill: "specialist-gestao-produto",
12
- gate_checklist: [
13
- "Problema claramente definido",
14
- "MVP com funcionalidades listadas",
15
- "Personas identificadas",
16
- ],
17
- entregavel_esperado: "PRD.md",
18
- },
19
- {
20
- numero: 2,
21
- nome: "Requisitos",
22
- especialista: "Engenharia de Requisitos",
23
- template: "requisitos",
24
- skill: "specialist-engenharia-requisitos-ia",
91
+ nome: "Discovery",
92
+ especialista: "Product Discovery Lead",
93
+ template: "discovery",
94
+ skill: "specialist-discovery",
25
95
  gate_checklist: [
96
+ "Problema definido com impacto quantificado",
97
+ "Mínimo 2 personas com JTBD",
98
+ "MVP com 3-5 funcionalidades priorizadas",
26
99
  "Requisitos funcionais com IDs únicos",
27
100
  "Requisitos não-funcionais definidos",
28
- "Critérios de aceite especificados",
101
+ "North Star Metric definida e mensurável",
102
+ "Riscos identificados com mitigação",
29
103
  ],
30
- entregavel_esperado: "requisitos.md",
104
+ entregavel_esperado: "discovery.md",
31
105
  },
32
106
  {
33
- numero: 3,
34
- nome: "UX Design",
35
- especialista: "UX Design",
107
+ numero: 2,
108
+ nome: "Design",
109
+ especialista: "UX Designer Lead",
36
110
  template: "design-doc",
37
- skill: "specialist-ux-design",
111
+ skill: "specialist-design",
38
112
  gate_checklist: [
39
- "Wireframes ou protótipos criados",
40
- "Jornadas do usuário mapeadas",
41
- "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",
42
120
  ],
43
121
  entregavel_esperado: "design-doc.md",
44
122
  },
45
123
  {
46
- numero: 4,
124
+ numero: 3,
47
125
  nome: "Arquitetura",
48
- especialista: "Arquitetura de Software",
126
+ especialista: "Arquiteto de Soluções",
49
127
  template: "arquitetura",
50
- skill: "specialist-arquitetura-software",
128
+ skill: "specialist-architect",
51
129
  gate_checklist: [
52
- "Stack tecnológica definida",
53
- "Diagrama C4 básico",
54
- "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",
55
137
  ],
56
138
  entregavel_esperado: "arquitetura.md",
57
139
  },
58
140
  {
59
- numero: 5,
60
- nome: "Backlog",
61
- especialista: "Plano de Execução",
62
- template: "backlog",
63
- skill: "specialist-plano-execucao-ia",
64
- gate_checklist: [
65
- "Épicos definidos",
66
- "Histórias de usuário criadas",
67
- "Definition of Done estabelecido",
68
- ],
69
- entregavel_esperado: "backlog.md",
70
- },
71
- {
72
- numero: 6,
141
+ numero: 4,
73
142
  nome: "Frontend",
74
- especialista: "Desenvolvimento Frontend",
143
+ especialista: "Frontend Developer Lead",
75
144
  template: "historia-usuario",
76
- skill: "specialist-desenvolvimento-frontend",
77
- gate_checklist: [
78
- "Componentes implementados conforme design doc e user stories do backlog",
79
- "Pages com rotas configuradas para cada fluxo",
80
- "State management conectado (hooks/stores)",
81
- "Integração com mocks do contrato API",
82
- "Testes unitários para componentes críticos",
83
- "Responsivo mobile-first e acessível",
84
- "Loading, empty e error states em todas as telas",
85
- ],
145
+ skill: "specialist-frontend",
146
+ gate_checklist: GATE_FRONTEND,
86
147
  entregavel_esperado: "frontend-code",
87
148
  },
88
149
  {
89
- numero: 7,
150
+ numero: 5,
90
151
  nome: "Backend",
91
- especialista: "Desenvolvimento",
152
+ especialista: "Backend Developer Lead",
92
153
  template: "historia-usuario",
93
- skill: "specialist-desenvolvimento-backend",
94
- gate_checklist: [
95
- "Endpoints implementados conforme contrato OpenAPI",
96
- "DTOs com validação de input para cada endpoint",
97
- "Services com regras de negócio do modelo de domínio",
98
- "Testes unitários para services e controllers",
99
- "Migrações de banco executáveis",
100
- "Error handling padronizado conforme schema de erros",
101
- "Autenticação implementada conforme arquitetura",
102
- ],
154
+ skill: "specialist-backend",
155
+ gate_checklist: GATE_BACKEND,
103
156
  entregavel_esperado: "backend-code",
104
157
  },
105
158
  ],
106
159
  };
107
- // 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
+ // ============================================================
108
165
  export const FLUXO_MEDIO = {
109
166
  nivel: "medio",
110
- total_fases: 13,
167
+ total_fases: 8,
111
168
  fases: [
112
169
  {
113
170
  numero: 1,
114
171
  nome: "Produto",
115
- especialista: "Gestão de Produto",
172
+ especialista: "Product Manager",
116
173
  template: "PRD",
174
+ skill: "specialist-product",
117
175
  gate_checklist: [
118
- "Problema claramente definido",
119
- "Personas identificadas",
120
- "MVP com funcionalidades listadas",
121
- "North Star Metric definida",
122
- "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",
123
183
  ],
124
184
  entregavel_esperado: "PRD.md",
125
185
  },
126
186
  {
127
187
  numero: 2,
128
188
  nome: "Requisitos",
129
- especialista: "Engenharia de Requisitos",
189
+ especialista: "Engenheiro de Requisitos",
130
190
  template: "requisitos",
191
+ skill: "specialist-requirements",
131
192
  gate_checklist: [
132
- "Requisitos funcionais com IDs únicos",
133
- "Requisitos não-funcionais definidos",
134
- "Critérios de aceite em Gherkin",
135
- "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",
136
198
  ],
137
199
  entregavel_esperado: "requisitos.md",
138
200
  },
139
201
  {
140
202
  numero: 3,
141
- nome: "UX Design",
142
- especialista: "UX Design",
203
+ nome: "Design",
204
+ especialista: "UX Designer Lead",
143
205
  template: "design-doc",
206
+ skill: "specialist-design",
144
207
  gate_checklist: [
145
- "Jornadas do usuário mapeadas",
146
- "Wireframes criados",
147
- "Acessibilidade considerada",
148
- "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",
149
215
  ],
150
216
  entregavel_esperado: "design-doc.md",
151
217
  },
152
218
  {
153
219
  numero: 4,
154
- nome: "Modelo de Domínio",
155
- especialista: "Modelagem e Arquitetura de Domínio com IA",
156
- template: "modelo-dominio",
220
+ nome: "Design Técnico",
221
+ especialista: "Arquiteto de Soluções",
222
+ template: "technical-design",
223
+ skill: "specialist-technical-design",
157
224
  gate_checklist: [
158
- "Entidades identificadas",
159
- "Relacionamentos definidos",
160
- "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",
161
233
  ],
162
- entregavel_esperado: "modelo-dominio.md",
234
+ entregavel_esperado: "technical-design.md",
163
235
  },
164
236
  {
165
237
  numero: 5,
166
- nome: "Banco de Dados",
167
- especialista: "Banco de Dados",
168
- template: "design-banco",
169
- gate_checklist: [
170
- "Modelo relacional definido",
171
- "Índices planejados",
172
- "Scripts de migração criados",
173
- ],
174
- entregavel_esperado: "design-banco.md",
175
- },
176
- {
177
- numero: 6,
178
- nome: "Arquitetura",
179
- especialista: "Arquitetura de Software",
180
- template: "arquitetura",
181
- gate_checklist: [
182
- "Diagrama C4 completo",
183
- "Stack justificada",
184
- "ADRs documentados",
185
- "Pontos de integração definidos",
186
- ],
187
- entregavel_esperado: "arquitetura.md",
188
- },
189
- {
190
- numero: 7,
191
- nome: "Segurança",
192
- especialista: "Segurança da Informação",
193
- template: "checklist-seguranca",
194
- gate_checklist: [
195
- "OWASP Top 10 avaliado",
196
- "Autenticação definida",
197
- "Dados sensíveis mapeados",
198
- ],
199
- entregavel_esperado: "checklist-seguranca.md",
200
- },
201
- {
202
- numero: 8,
203
- nome: "Testes",
204
- especialista: "Análise de Testes",
205
- template: "plano-testes",
206
- gate_checklist: [
207
- "Estratégia definida",
208
- "Casos de teste mapeados",
209
- "Ferramentas selecionadas",
210
- ],
211
- entregavel_esperado: "plano-testes.md",
212
- },
213
- {
214
- numero: 9,
215
- nome: "Backlog",
216
- especialista: "Plano de Execução com IA",
238
+ nome: "Planejamento",
239
+ especialista: "Tech Lead",
217
240
  template: "backlog",
241
+ skill: "specialist-planning",
218
242
  gate_checklist: [
219
- "Épicos definidos",
220
- "Features priorizadas",
221
- "Histórias detalhadas",
222
- "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",
223
250
  ],
224
251
  entregavel_esperado: "backlog.md",
225
252
  },
226
253
  {
227
- numero: 10,
228
- nome: "Contrato API",
229
- especialista: "Contrato de API",
230
- template: "contrato-api",
231
- gate_checklist: [
232
- "Esquema OpenAPI definido",
233
- "Tipos gerados para FE e BE",
234
- "Mocks disponíveis",
235
- ],
236
- entregavel_esperado: "openapi.yaml",
237
- },
238
- {
239
- numero: 11,
254
+ numero: 6,
240
255
  nome: "Frontend",
241
- especialista: "Desenvolvimento Frontend",
256
+ especialista: "Frontend Developer Lead",
242
257
  template: "historia-usuario",
243
- gate_checklist: [
244
- "Componentes implementados conforme design doc e user stories do backlog",
245
- "Pages com rotas configuradas para cada fluxo",
246
- "State management conectado (hooks/stores)",
247
- "Integração com mocks do contrato API",
248
- "Testes unitários para componentes críticos",
249
- "Responsivo mobile-first e acessível",
250
- "Loading, empty e error states em todas as telas",
251
- ],
258
+ skill: "specialist-frontend",
259
+ gate_checklist: GATE_FRONTEND,
252
260
  entregavel_esperado: "frontend-code",
253
261
  },
254
262
  {
255
- numero: 12,
263
+ numero: 7,
256
264
  nome: "Backend",
257
- especialista: "Desenvolvimento e Vibe Coding Estruturado",
265
+ especialista: "Backend Developer Lead",
258
266
  template: "historia-usuario",
259
- gate_checklist: [
260
- "Endpoints implementados conforme contrato OpenAPI",
261
- "DTOs com validação de input para cada endpoint",
262
- "Services com regras de negócio do modelo de domínio",
263
- "Testes unitários para services e controllers",
264
- "Migrações de banco executáveis",
265
- "Error handling padronizado conforme schema de erros",
266
- "Autenticação implementada conforme arquitetura",
267
- ],
267
+ skill: "specialist-backend",
268
+ gate_checklist: GATE_BACKEND,
268
269
  entregavel_esperado: "backend-code",
269
270
  },
270
271
  {
271
- numero: 13,
272
- nome: "Integração",
273
- especialista: "DevOps e Infraestrutura",
274
- template: "arquitetura",
275
- gate_checklist: [
276
- "Frontend conectado ao Backend real (mocks removidos)",
277
- "Todos os endpoints do OpenAPI funcionando end-to-end",
278
- "Testes E2E para fluxos críticos",
279
- "CORS e variáveis de ambiente configurados",
280
- "Pipeline CI/CD verde com testes automatizados",
281
- ],
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,
282
278
  entregavel_esperado: "deploy.md",
283
279
  },
284
280
  ],
285
281
  };
286
- // 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
+ // ============================================================
287
287
  export const FLUXO_COMPLEXO = {
288
288
  nivel: "complexo",
289
- total_fases: 17,
289
+ total_fases: 11,
290
290
  fases: [
291
- ...FLUXO_MEDIO.fases.slice(0, 6), // Produto até Arquitetura
292
- {
293
- numero: 7,
294
- nome: "Arquitetura Avançada",
295
- especialista: "Arquitetura Avançada",
296
- template: "arquitetura",
297
- gate_checklist: [
298
- "Bounded Contexts definidos",
299
- "CQRS avaliado",
300
- "Event Sourcing planejado",
301
- "Microserviços mapeados",
302
- ],
303
- entregavel_esperado: "arquitetura-avancada.md",
304
- },
305
- {
306
- numero: 8,
307
- nome: "Segurança",
308
- especialista: "Segurança da Informação",
309
- template: "checklist-seguranca",
310
- gate_checklist: [
311
- "OWASP Top 10 avaliado",
312
- "Threat modeling realizado",
313
- "Pentest planejado",
314
- "Compliance verificado",
315
- ],
316
- entregavel_esperado: "checklist-seguranca.md",
317
- },
291
+ // Fases 1-3: iguais ao médio (Produto, Requisitos, Design)
292
+ ...FLUXO_MEDIO.fases.slice(0, 3),
318
293
  {
319
- numero: 9,
320
- nome: "Performance",
321
- especialista: "Performance e Escalabilidade",
322
- 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",
323
299
  gate_checklist: [
324
- "Load testing planejado",
325
- "Caching strategy definida",
326
- "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",
327
308
  ],
328
- entregavel_esperado: "plano-performance.md",
309
+ entregavel_esperado: "modelo-dominio.md",
329
310
  },
330
311
  {
331
- numero: 10,
332
- nome: "Observabilidade",
333
- especialista: "Observabilidade",
334
- 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",
335
318
  gate_checklist: [
336
- "Estratégia de logs definida",
337
- "Métricas configuradas",
338
- "Tracing distribuído planejado",
339
- "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",
340
326
  ],
341
- entregavel_esperado: "observabilidade.md",
327
+ entregavel_esperado: "technical-design.md",
342
328
  },
343
329
  {
344
- numero: 11,
345
- nome: "Testes",
346
- especialista: "Análise de Testes",
347
- template: "plano-testes",
330
+ numero: 6,
331
+ nome: "Contrato API",
332
+ especialista: "API Designer",
333
+ template: "contrato-api",
334
+ skill: "specialist-api-contract",
348
335
  gate_checklist: [
349
- "Pirâmide de testes definida",
350
- "Contract testing planejado",
351
- "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",
352
343
  ],
353
- entregavel_esperado: "plano-testes.md",
344
+ entregavel_esperado: "openapi.yaml",
354
345
  },
355
346
  {
356
- numero: 12,
357
- nome: "Backlog",
358
- especialista: "Plano de Execução com IA",
347
+ numero: 7,
348
+ nome: "Planejamento",
349
+ especialista: "Tech Lead",
359
350
  template: "backlog",
351
+ skill: "specialist-planning",
360
352
  gate_checklist: [
361
- "Épicos definidos",
362
- "Features priorizadas",
363
- "Histórias com dependências",
364
- "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",
365
359
  ],
366
360
  entregavel_esperado: "backlog.md",
367
361
  },
368
362
  {
369
- numero: 13,
370
- nome: "Contrato API",
371
- especialista: "Contrato de API",
372
- template: "contrato-api",
373
- gate_checklist: [
374
- "OpenAPI completo",
375
- "Versionamento definido",
376
- "Breaking changes documentados",
377
- ],
378
- entregavel_esperado: "openapi.yaml",
379
- },
380
- {
381
- numero: 14,
363
+ numero: 8,
382
364
  nome: "Frontend",
383
- especialista: "Desenvolvimento Frontend",
365
+ especialista: "Frontend Developer Lead",
384
366
  template: "historia-usuario",
385
- gate_checklist: [
386
- "Componentes implementados conforme design doc e user stories do backlog",
387
- "Pages com rotas configuradas para cada fluxo",
388
- "State management conectado (hooks/stores)",
389
- "Integração com mocks do contrato API",
390
- "Testes unitários para componentes críticos",
391
- "Responsivo mobile-first e acessível",
392
- "Loading, empty e error states em todas as telas",
393
- ],
367
+ skill: "specialist-frontend",
368
+ gate_checklist: GATE_FRONTEND,
394
369
  entregavel_esperado: "frontend-code",
395
370
  },
396
371
  {
397
- numero: 15,
372
+ numero: 9,
398
373
  nome: "Backend",
399
- especialista: "Desenvolvimento e Vibe Coding Estruturado",
374
+ especialista: "Backend Developer Lead",
400
375
  template: "historia-usuario",
401
- gate_checklist: [
402
- "Endpoints implementados conforme contrato OpenAPI",
403
- "DTOs com validação de input para cada endpoint",
404
- "Services com regras de negócio do modelo de domínio",
405
- "Testes unitários para services e controllers",
406
- "Migrações de banco executáveis",
407
- "Error handling padronizado conforme schema de erros",
408
- "Autenticação implementada conforme arquitetura",
409
- ],
376
+ skill: "specialist-backend",
377
+ gate_checklist: GATE_BACKEND,
410
378
  entregavel_esperado: "backend-code",
411
379
  },
412
380
  {
413
- numero: 16,
381
+ numero: 10,
414
382
  nome: "Integração",
415
- especialista: "DevOps e Infraestrutura",
416
- template: "arquitetura",
383
+ especialista: "DevOps / SRE Engineer",
384
+ template: "deploy",
385
+ skill: "specialist-devops",
417
386
  gate_checklist: [
418
387
  "Frontend conectado ao Backend real (mocks removidos)",
419
388
  "Todos os endpoints do OpenAPI funcionando end-to-end",
@@ -424,15 +393,17 @@ export const FLUXO_COMPLEXO = {
424
393
  entregavel_esperado: "deploy.md",
425
394
  },
426
395
  {
427
- numero: 17,
428
- nome: "Deploy Final",
429
- especialista: "DevOps e Infraestrutura",
430
- template: "arquitetura",
396
+ numero: 11,
397
+ nome: "Deploy & Operação",
398
+ especialista: "SRE Senior / Platform Engineer",
399
+ template: "release",
400
+ skill: "specialist-operations",
431
401
  gate_checklist: [
432
402
  "Deploy em produção realizado com sucesso",
433
403
  "Monitoramento ativo com métricas e alertas",
434
- "Health checks respondendo corretamente",
435
- "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)",
436
407
  "Rollback testado e funcional",
437
408
  ],
438
409
  entregavel_esperado: "release.md",
@@ -476,21 +447,29 @@ const FASE_STITCH = {
476
447
  entregavel_esperado: "prototipos.md",
477
448
  };
478
449
  /**
479
- * Obtém fluxo com fase de Stitch opcional
480
- * Se usarStitch=true, insere fase de prototipagem após UX Design (fase 3)
481
- * 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.
482
455
  */
483
456
  export function getFluxoComStitch(nivel, usarStitch) {
484
457
  const base = getFluxo(nivel);
485
458
  if (!usarStitch) {
486
459
  return base;
487
460
  }
488
- // Insere Stitch como fase 4 (após UX Design)
489
- // 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;
490
469
  const fasesComStitch = [
491
- ...base.fases.slice(0, 3), // Fases 1-3: Produto + Requisitos + UX Design
492
- { ...FASE_STITCH, numero: 4 }, // Stitch como fase 4
493
- ...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 }))
494
473
  ];
495
474
  return {
496
475
  nivel: base.nivel,