@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
@@ -1 +1 @@
1
- {"version":3,"file":"specialist-phase-handler.d.ts","sourceRoot":"","sources":["../../src/handlers/specialist-phase-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AA6DnE,UAAU,mBAAmB;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CA4C1F;AAokBD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"specialist-phase-handler.d.ts","sourceRoot":"","sources":["../../src/handlers/specialist-phase-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AA4D5D,UAAU,mBAAmB;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B;AAGD;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAqD1F;AA0qBD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1,17 +1,15 @@
1
1
  /**
2
- * Specialist Phase Handler (v6.1)
2
+ * Specialist Phase Handler (v10.0)
3
3
  *
4
- * Handler central do novo fluxo de onboarding unificado.
4
+ * Handler central do fluxo de fases de documento.
5
5
  * Gerencia o ciclo: specialist_active → collecting → generating → validating → approved
6
6
  *
7
- * v6.1 Fixes:
8
- * - FIX: PRD validation score (was always 15/100 due to regex/escape bug)
9
- * - FIX: prazo_mvp alias mapping
10
- * - FIX: Infinite retry loop (max 3 attempts)
11
- * - FIX: File-based PRD validation (eliminates JSON escape issues)
12
- * - FIX: Reduced template repetition in context
13
- * - FIX: Standardized output with AI instruction markers
14
- * - FIX: Resource loading instructions in output
7
+ * v10.0: Generalizado para aceitar PhaseConfig dinâmico (qualquer fase, não apenas PRD).
8
+ * Quando phaseConfig é fornecido, usa dados da skill. Sem config, mantém comportamento v9 (PRD).
9
+ *
10
+ * v6.1 Fixes mantidos:
11
+ * - FIX: PRD validation score, prazo_mvp alias, retry limit
12
+ * - FIX: File-based validation, reduced template repetition
15
13
  */
16
14
  import { formatResponse, formatError } from "../utils/response-formatter.js";
17
15
  import { serializarEstado } from "../state/storage.js";
@@ -23,9 +21,9 @@ import { getFaseComStitch } from "../flows/types.js";
23
21
  import { normalizeFieldKey, getRequiredFields } from "./field-normalizer.js";
24
22
  import { calculatePrdScore, calculatePrdScoreDetailed, identifyPrdGaps, normalizePrdContent } from "./prd-scorer.js";
25
23
  import { loadCollectingContext, formatMissingFieldsByBlock, truncateValue, buildCollectionPrompt } from "./specialist-formatters.js";
26
- /** Maximum number of automatic PRD validation retries before requiring user approval */
27
- const MAX_PRD_VALIDATION_RETRIES = 3;
28
- /** Paths padrão para saída de documentos — a IA DEVE usar estes paths */
24
+ /** Maximum number of automatic validation retries before requiring user approval */
25
+ const MAX_VALIDATION_RETRIES = 3;
26
+ /** Paths padrão para saída de documentos — fallback para PRD (v9 compat) */
29
27
  const PRD_OUTPUT_PATHS = {
30
28
  primary: 'docs/01-produto/PRD.md',
31
29
  draft: '.maestro/entregaveis/prd-draft.md',
@@ -74,14 +72,22 @@ export async function handleSpecialistPhase(args) {
74
72
  };
75
73
  }
76
74
  const sp = onboarding.specialistPhase;
75
+ // v10.0: Resolver output path dinâmico (PhaseConfig ou fallback PRD)
76
+ const outputPath = args.phaseConfig
77
+ ? `${diretorio}/${args.phaseConfig.outputPath}`
78
+ : getPrdOutputPath(diretorio);
79
+ const draftPath = args.phaseConfig
80
+ ? `${diretorio}/.maestro/entregaveis/${args.phaseConfig.outputFilename}`
81
+ : getPrdDraftPath(diretorio);
82
+ const specialistName = args.phaseConfig?.specialistName || 'Gestão de Produto';
77
83
  switch (sp.status) {
78
84
  case 'active':
79
85
  case 'collecting':
80
86
  return handleCollecting(args, onboarding, sp);
81
87
  case 'generating': {
82
88
  // v7.1: File-first — verificar disco OU param entregavel
83
- const hasPrdOnDisk = existsSync(getPrdOutputPath(diretorio)) || existsSync(getPrdDraftPath(diretorio));
84
- if (args.entregavel || hasPrdOnDisk) {
89
+ const hasDocOnDisk = existsSync(outputPath) || existsSync(draftPath);
90
+ if (args.entregavel || hasDocOnDisk) {
85
91
  sp.status = 'validating';
86
92
  return handleValidating(args, onboarding, sp);
87
93
  }
@@ -100,12 +106,19 @@ export async function handleSpecialistPhase(args) {
100
106
  }
101
107
  /**
102
108
  * Handler: collecting — Recebe respostas do usuário e acumula dados
109
+ * v10.0: Usa PhaseConfig.collectFields quando disponível, fallback para getRequiredFields(mode).
103
110
  */
104
111
  async function handleCollecting(args, onboarding, sp) {
105
112
  const { estado, diretorio, respostas } = args;
106
113
  const mode = onboarding.mode || 'balanced';
114
+ const config = args.phaseConfig;
115
+ const specialistLabel = config?.specialistName || 'Gestão de Produto';
107
116
  // Se não há respostas, mostrar o que falta
108
117
  if (!respostas || Object.keys(respostas).length === 0) {
118
+ // v10.0: Se temos PhaseConfig com collectFields, usar diretamente
119
+ if (config && config.collectFields.length > 0) {
120
+ return buildDynamicCollectionPrompt(estado, diretorio, sp, config, resolveIDEForProject);
121
+ }
109
122
  return buildCollectionPrompt(estado, diretorio, sp, mode, resolveIDEForProject);
110
123
  }
111
124
  // Acumular dados recebidos (com fuzzy matching de campos — Sprint 5)
@@ -119,19 +132,19 @@ async function handleCollecting(args, onboarding, sp) {
119
132
  sp.status = 'collecting';
120
133
  onboarding.totalInteractions++;
121
134
  onboarding.lastInteractionAt = new Date().toISOString();
122
- // Verificar se tem dados suficientes para gerar PRD
123
- const required = getRequiredFields(mode);
135
+ // v10.0: Usar campos da PhaseConfig se disponíveis, senão fallback PRD
136
+ const required = (config && config.collectFields.length > 0)
137
+ ? config.collectFields.filter(f => f.required).map(f => ({ id: f.id, label: f.label, block: f.block, hint: f.hint, example: f.example || '', required: f.required, modes: ['economy', 'balanced', 'quality'] }))
138
+ : getRequiredFields(mode);
124
139
  const missing = required.filter(f => !sp.collectedData[f.id]);
125
140
  const collected = required.filter(f => sp.collectedData[f.id]);
126
141
  if (missing.length === 0) {
127
142
  // Todos os campos obrigatórios preenchidos
128
143
  if (args.entregavel) {
129
- // Entregável já presente → skip generating, ir direto para validating
130
144
  sp.status = 'validating';
131
145
  await persistState(estado, onboarding, diretorio);
132
146
  return handleValidating(args, onboarding, sp);
133
147
  }
134
- // Sem entregável → gerar PRD
135
148
  sp.status = 'generating';
136
149
  await persistState(estado, onboarding, diretorio);
137
150
  return handleGenerating(args, onboarding, sp);
@@ -139,14 +152,20 @@ async function handleCollecting(args, onboarding, sp) {
139
152
  // Ainda faltam campos — pedir mais informações
140
153
  await persistState(estado, onboarding, diretorio);
141
154
  const progressPct = Math.round((collected.length / required.length) * 100);
142
- // v6.0 (P11): next_action com parâmetros COMPLETOS e EXATOS
143
155
  const missingTemplate = {};
144
156
  for (const f of missing) {
145
157
  missingTemplate[f.id] = `<${f.label}>`;
146
158
  }
159
+ // v10.0: Persona dinâmica da config ou fallback
160
+ const persona = config?.persona || {
161
+ name: 'Gestão de Produto',
162
+ tone: 'Estratégico e orientado ao usuário',
163
+ expertise: ['product discovery', 'lean startup', 'user stories', 'MVP definition'],
164
+ instructions: 'Conduza a coleta de forma conversacional. PERGUNTE — NÃO invente.',
165
+ };
147
166
  return {
148
167
  content: formatResponse({
149
- titulo: "🧠 Especialista: Gestão de Produto",
168
+ titulo: `🧠 Especialista: ${specialistLabel}`,
150
169
  resumo: `Dados recebidos! ${collected.length}/${required.length} campos preenchidos (${progressPct}%).`,
151
170
  dados: {
152
171
  "Campos preenchidos": `${collected.length}/${required.length}`,
@@ -163,16 +182,12 @@ ${collected.map(f => `✅ **${f.label}**: ${truncateValue(sp.collectedData[f.id]
163
182
  ${formatMissingFieldsByBlock(missing, mode)}
164
183
 
165
184
  ⚠️ REGRA CRÍTICA: Os dados devem vir DIRETAMENTE do usuário.
166
- Se o usuário pedir "crie os dados", "invente para teste" ou "preencha para mim":
167
- → Responda: "Preciso que VOCÊ me conte sobre o seu produto. Mesmo que seja simples, suas respostas reais vão gerar um PRD muito melhor do que dados inventados."
168
- → Reformule as perguntas de forma mais simples se o usuário parecer travado.
169
- → Ofereça exemplos para inspirar, mas NÃO use os exemplos como resposta.
185
+ NÃO invente dados. Se o usuário não souber, marque como "A definir".
170
186
 
171
187
  ## 📍 Onde Estamos
172
- ✅ Setup → 🔄 Coleta (${progressPct}%) → ⏳ Geração PRD → ⏳ Validação → ⏳ Aprovação
188
+ ✅ Setup → 🔄 Coleta (${progressPct}%) → ⏳ Geração → ⏳ Validação → ⏳ Aprovação
173
189
 
174
- ⚠️ Para avançar, SEMPRE use: \`executar({acao: "avancar"})\`
175
- ⚠️ NUNCA use: \`maestro({acao: "status"})\` para tentar avançar`,
190
+ ⚠️ Para avançar, SEMPRE use: \`executar({acao: "avancar"})\``,
176
191
  proximo_passo: {
177
192
  tool: "executar",
178
193
  descricao: `Enviar respostas dos campos faltantes`,
@@ -184,19 +199,15 @@ Se o usuário pedir "crie os dados", "invente para teste" ou "preencha para mim"
184
199
  next_action: {
185
200
  tool: "executar",
186
201
  description: `Enviar respostas: ${missing.map(f => f.label).join(', ')}`,
187
- args_template: {
188
- diretorio,
189
- acao: "avancar",
190
- respostas: missingTemplate,
191
- },
202
+ args_template: { diretorio, acao: "avancar", respostas: missingTemplate },
192
203
  requires_user_input: true,
193
204
  user_prompt: `Responda: ${missing.map(f => f.label).join(', ')}`,
194
205
  },
195
206
  specialist_persona: {
196
- name: "Gestão de Produto",
197
- tone: "Estratégico e orientado ao usuário",
198
- expertise: ["product discovery", "lean startup", "user stories", "MVP definition"],
199
- instructions: "Conduza a coleta de forma conversacional focada em PRODUTO. PERGUNTE — NÃO invente. Faça follow-up quando respostas forem vagas (< 20 palavras).",
207
+ name: persona.name,
208
+ tone: persona.tone,
209
+ expertise: persona.expertise,
210
+ instructions: persona.instructions,
200
211
  },
201
212
  progress: {
202
213
  current_phase: "specialist_collecting",
@@ -207,25 +218,114 @@ Se o usuário pedir "crie os dados", "invente para teste" ou "preencha para mim"
207
218
  };
208
219
  }
209
220
  /**
210
- * Handler: generating Gera PRD draft a partir dos dados coletados
221
+ * v10.0: Prompt de coleta dinâmico usando PhaseConfig.collectFields.
222
+ * Usado quando a skill tem campos de coleta definidos.
223
+ */
224
+ async function buildDynamicCollectionPrompt(estado, diretorio, sp, config, resolveIDE) {
225
+ const allFields = config.collectFields;
226
+ const requiredFields = allFields.filter(f => f.required);
227
+ const missing = requiredFields.filter(f => !sp.collectedData[f.id]);
228
+ const collected = requiredFields.filter(f => sp.collectedData[f.id]);
229
+ const missingTemplate = {};
230
+ for (const f of missing) {
231
+ missingTemplate[f.id] = `<${f.label}>`;
232
+ }
233
+ const collectedInfo = collected.length > 0
234
+ ? `\nCampos já coletados:\n${collected.map(f => `✅ **${f.label}**: ${truncateValue(sp.collectedData[f.id])}`).join('\n')}`
235
+ : '';
236
+ // Agrupar campos faltantes por bloco
237
+ const blockMap = {};
238
+ for (const f of missing) {
239
+ if (!blockMap[f.block])
240
+ blockMap[f.block] = [];
241
+ blockMap[f.block].push(f);
242
+ }
243
+ let missingMd = '## Campos que FALTAM (pergunte ao usuário):\n\n';
244
+ for (const [block, fields] of Object.entries(blockMap)) {
245
+ missingMd += `### ${block}\n\n`;
246
+ for (const f of fields) {
247
+ missingMd += `❌ **${f.label}**\n _${f.hint}_\n\n`;
248
+ }
249
+ }
250
+ const persona = config.persona || { name: config.specialistName, tone: 'Profissional', expertise: [], instructions: '' };
251
+ return {
252
+ content: formatResponse({
253
+ titulo: `🧠 Especialista: ${config.specialistName}`,
254
+ resumo: `Coleta de informações. ${collected.length}/${requiredFields.length} campos preenchidos.`,
255
+ instrucoes: `⚠️ OBRIGATÓRIO: Pergunte ao usuário os campos abaixo. NÃO invente dados.
256
+
257
+ ${loadCollectingContext(sp.skillName, resolveIDE(estado, diretorio), diretorio)}
258
+ ${collectedInfo}
259
+
260
+ ${missingMd}
261
+
262
+ ⚠️ REGRA CRÍTICA: Os dados devem vir DIRETAMENTE do usuário.
263
+
264
+ Após coletar as respostas, EXECUTE:
265
+ \`\`\`json
266
+ executar({
267
+ "diretorio": "${diretorio}",
268
+ "acao": "avancar",
269
+ "respostas": ${JSON.stringify(missingTemplate, null, 4)}
270
+ })
271
+ \`\`\``,
272
+ proximo_passo: {
273
+ tool: "executar",
274
+ descricao: "Enviar respostas coletadas do usuário",
275
+ args: `{ "diretorio": "${diretorio}", "acao": "avancar", "respostas": ${JSON.stringify(missingTemplate)} }`,
276
+ requer_input_usuario: true,
277
+ prompt_usuario: `Responda: ${missing.map(f => f.label).join(', ')}`,
278
+ },
279
+ }),
280
+ next_action: {
281
+ tool: "executar",
282
+ description: `Coletar e enviar: ${missing.map(f => f.label).join(', ')}`,
283
+ args_template: { diretorio, acao: "avancar", respostas: missingTemplate },
284
+ requires_user_input: true,
285
+ user_prompt: `Pergunte ao usuário: ${missing.map(f => f.label).join(', ')}`,
286
+ },
287
+ specialist_persona: {
288
+ name: persona.name,
289
+ tone: persona.tone,
290
+ expertise: persona.expertise,
291
+ instructions: persona.instructions,
292
+ },
293
+ progress: {
294
+ current_phase: "specialist_active",
295
+ total_phases: 5,
296
+ completed_phases: 1,
297
+ percentage: 20,
298
+ },
299
+ };
300
+ }
301
+ /**
302
+ * Handler: generating — Gera entregável a partir dos dados coletados
303
+ * v10.0: Usa PhaseConfig para outputPath e specialistName dinâmicos.
211
304
  */
212
305
  async function handleGenerating(args, onboarding, sp) {
213
306
  const { estado, diretorio } = args;
214
- const mode = onboarding.mode || 'balanced';
215
- // Montar contexto para geração do PRD
307
+ const config = args.phaseConfig;
216
308
  const collectedSummary = Object.entries(sp.collectedData)
217
309
  .map(([key, value]) => `- **${key}**: ${value}`)
218
310
  .join('\n');
219
- // v7.0: Resolver paths de skills adaptados para a IDE do projeto
220
- const skillPaths = getSkillPathForIDE(sp.skillName, estado, diretorio);
311
+ // v10.0: Output path dinâmico
312
+ const outputRelPath = config?.outputPath || PRD_OUTPUT_PATHS.primary;
313
+ const docLabel = config?.faseName || 'PRD';
314
+ const specialistLabel = config?.specialistName || 'Gestão de Produto';
221
315
  sp.status = 'generating';
222
316
  await persistState(estado, onboarding, diretorio);
317
+ const persona = config?.persona || {
318
+ name: 'Gestão de Produto',
319
+ tone: 'Completo e estruturado',
320
+ expertise: ['PRDs', 'especificações', 'escopo', 'métricas de sucesso'],
321
+ instructions: 'Gere o documento usando EXATAMENTE o template fornecido. Preencha com dados REAIS coletados. Marque gaps como "A definir".',
322
+ };
223
323
  return {
224
324
  content: formatResponse({
225
- titulo: "📝 Geração do PRD",
226
- resumo: "Todos os dados foram coletados. Gerando PRD draft usando o template do especialista.",
325
+ titulo: `📝 Geração: ${docLabel}`,
326
+ resumo: `Todos os dados foram coletados. Gerando ${docLabel} usando o template do especialista.`,
227
327
  instrucoes: `🤖 **AÇÃO AUTOMÁTICA REQUERIDA:**
228
- Você DEVE gerar o PRD e salvá-lo no disco IMEDIATAMENTE, sem esperar comando do usuário.
328
+ Você DEVE gerar o documento e salvá-lo no disco IMEDIATAMENTE, sem esperar comando do usuário.
229
329
 
230
330
  ## Dados Coletados do Usuário
231
331
 
@@ -239,7 +339,7 @@ ${formatSkillHydrationCommand(sp.skillName, resolveIDEForProject(estado, diretor
239
339
  1. Preencha CADA seção do template com os dados coletados
240
340
  2. Se um dado não foi coletado, marque como "A definir com o usuário"
241
341
  3. NÃO invente números, métricas ou dados que o usuário não forneceu
242
- 4. **SALVE O PRD** no arquivo \`${PRD_OUTPUT_PATHS.primary}\`
342
+ 4. **SALVE** no arquivo \`${outputRelPath}\`
243
343
  5. Após salvar, avance usando:
244
344
 
245
345
  \`\`\`json
@@ -254,13 +354,12 @@ executar({
254
354
  🤖 **NÃO ESPERE** o usuário dizer "pode seguir" ou "avançar". Salve o arquivo e execute a tool AGORA.
255
355
 
256
356
  ## 📍 Onde Estamos
257
- ✅ Setup → ✅ Coleta → 🔄 Geração PRD → ⏳ Validação → ⏳ Aprovação
357
+ ✅ Setup → ✅ Coleta → 🔄 Geração → ⏳ Validação → ⏳ Aprovação
258
358
 
259
- ⚠️ Para avançar, SEMPRE use: \`executar({acao: "avancar"})\`
260
- ⚠️ NUNCA use: \`maestro({acao: "status"})\` para tentar avançar`,
359
+ ⚠️ Para avançar, SEMPRE use: \`executar({acao: "avancar"})\``,
261
360
  proximo_passo: {
262
361
  tool: "executar",
263
- descricao: "Salvar PRD no disco e avançar para validação",
362
+ descricao: `Salvar ${docLabel} no disco e avançar para validação`,
264
363
  args: `{ "diretorio": "${diretorio}", "acao": "avancar" }`,
265
364
  requer_input_usuario: false,
266
365
  auto_execute: true,
@@ -268,19 +367,16 @@ executar({
268
367
  }),
269
368
  next_action: {
270
369
  tool: "executar",
271
- description: "Salvar PRD em docs/01-produto/PRD.md e avançar",
272
- args_template: {
273
- diretorio,
274
- acao: "avancar",
275
- },
370
+ description: `Salvar ${docLabel} em ${outputRelPath} e avançar`,
371
+ args_template: { diretorio, acao: "avancar" },
276
372
  requires_user_input: false,
277
373
  auto_execute: true,
278
374
  },
279
375
  specialist_persona: {
280
- name: "Gestão de Produto",
281
- tone: "Completo e estruturado",
282
- expertise: ["PRDs", "especificações", "escopo", "métricas de sucesso"],
283
- instructions: "Gere o PRD usando EXATAMENTE o template fornecido. Preencha com dados REAIS coletados. Marque gaps como 'A definir'.",
376
+ name: persona.name,
377
+ tone: persona.tone,
378
+ expertise: persona.expertise,
379
+ instructions: persona.instructions,
284
380
  },
285
381
  progress: {
286
382
  current_phase: "specialist_generating",
@@ -393,7 +489,7 @@ executar({
393
489
  return handleApproved(args, onboarding, sp);
394
490
  }
395
491
  // v6.1 (Bug #3): Check retry limit
396
- const retriesExhausted = sp.validationAttempts >= MAX_PRD_VALIDATION_RETRIES;
492
+ const retriesExhausted = sp.validationAttempts >= MAX_VALIDATION_RETRIES;
397
493
  // PRD precisa de melhorias
398
494
  const { details } = calculatePrdScoreDetailed(entregavel);
399
495
  const gaps = identifyPrdGaps(entregavel, onboarding.mode);
@@ -409,7 +505,7 @@ executar({
409
505
  resumo: `PRD validado com score ${score}/100 após ${sp.validationAttempts} tentativas. Requer decisão do usuário.`,
410
506
  dados: {
411
507
  "Score": `${score}/100`,
412
- "Tentativas": `${sp.validationAttempts}/${MAX_PRD_VALIDATION_RETRIES}`,
508
+ "Tentativas": `${sp.validationAttempts}/${MAX_VALIDATION_RETRIES}`,
413
509
  "Status": "⚠️ Limite de tentativas atingido",
414
510
  "Mínimo": "70/100",
415
511
  },
@@ -441,14 +537,14 @@ executar({
441
537
  return {
442
538
  content: formatResponse({
443
539
  titulo: "📊 Validação do PRD",
444
- resumo: `PRD recebido. Score: ${score}/100. Tentativa ${sp.validationAttempts}/${MAX_PRD_VALIDATION_RETRIES}.`,
540
+ resumo: `PRD recebido. Score: ${score}/100. Tentativa ${sp.validationAttempts}/${MAX_VALIDATION_RETRIES}.`,
445
541
  dados: {
446
542
  "Score": `${score}/100`,
447
- "Tentativa": `${sp.validationAttempts}/${MAX_PRD_VALIDATION_RETRIES}`,
543
+ "Tentativa": `${sp.validationAttempts}/${MAX_VALIDATION_RETRIES}`,
448
544
  "Status": "⚠️ Precisa de melhorias",
449
545
  "Mínimo": "70/100",
450
546
  },
451
- instrucoes: `## 📊 Detalhamento do Score\n\n${scoreBreakdown}\n\n${gaps.length > 0 ? `## Gaps Identificados\n\n${gaps.map(g => `- ${g}`).join('\n')}\n\n` : ''}🤖 **AÇÃO REQUERIDA (tentativa ${sp.validationAttempts + 1}/${MAX_PRD_VALIDATION_RETRIES}):**\nMelhore o PRD nos pontos acima.\n\n1. **Edite o arquivo** \`${PRD_OUTPUT_PATHS.primary}\` com as melhorias\n2. Após salvar, avance:\n\n\`\`\`json\nexecutar({\n "diretorio": "${diretorio}",\n "acao": "avancar"\n})\n\`\`\`\n\n⚠️ **NÃO passe o conteúdo via entregavel.** O MCP lê direto do arquivo.\n\n## 📍 Onde Estamos\n✅ Setup → ✅ Coleta → ✅ Geração PRD → 🔄 Validação → ⏳ Aprovação`,
547
+ instrucoes: `## 📊 Detalhamento do Score\n\n${scoreBreakdown}\n\n${gaps.length > 0 ? `## Gaps Identificados\n\n${gaps.map(g => `- ${g}`).join('\n')}\n\n` : ''}🤖 **AÇÃO REQUERIDA (tentativa ${sp.validationAttempts + 1}/${MAX_VALIDATION_RETRIES}):**\nMelhore o PRD nos pontos acima.\n\n1. **Edite o arquivo** \`${PRD_OUTPUT_PATHS.primary}\` com as melhorias\n2. Após salvar, avance:\n\n\`\`\`json\nexecutar({\n "diretorio": "${diretorio}",\n "acao": "avancar"\n})\n\`\`\`\n\n⚠️ **NÃO passe o conteúdo via entregavel.** O MCP lê direto do arquivo.\n\n## 📍 Onde Estamos\n✅ Setup → ✅ Coleta → ✅ Geração PRD → 🔄 Validação → ⏳ Aprovação`,
452
548
  proximo_passo: {
453
549
  tool: "executar",
454
550
  descricao: "Salvar PRD melhorado no disco e avançar",
@@ -1 +1 @@
1
- {"version":3,"file":"specialist-phase-handler.js","sourceRoot":"","sources":["../../src/handlers/specialist-phase-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"specialist-phase-handler.js","sourceRoot":"","sources":["../../src/handlers/specialist-phase-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Phase Config Loader (v10.0)
3
+ *
4
+ * Carrega PhaseConfig a partir da SKILL.md do especialista.
5
+ * Parseia seções "Coleta Conversacional" e extrai campos de coleta,
6
+ * permitindo que o specialist-phase-handler funcione para qualquer fase.
7
+ *
8
+ * Fallback: Se a skill não existir ou o parsing falhar, retorna config
9
+ * mínima com collectFields vazio (comportamento v9 — pula coleta).
10
+ *
11
+ * @since v10.0
12
+ */
13
+ import type { PhaseConfigResult } from "../types/phase-config.js";
14
+ import type { Fase } from "../types/index.js";
15
+ /**
16
+ * Carrega PhaseConfig para uma fase específica.
17
+ *
18
+ * 1. Resolve o nome da skill via FASE_SKILL_MAP
19
+ * 2. Lê o SKILL.md da skill
20
+ * 3. Parseia seções relevantes (Coleta Conversacional, Persona, etc.)
21
+ * 4. Monta PhaseConfig com dados da skill + dados do flows/types.ts
22
+ *
23
+ * @param diretorio Diretório do projeto
24
+ * @param faseInfo Informação da fase (de flows/types.ts)
25
+ * @param ide IDE detectada (windsurf, cursor, antigravity)
26
+ */
27
+ export declare function loadPhaseConfig(diretorio: string, faseInfo: Fase, ide?: string): Promise<PhaseConfigResult>;
28
+ //# sourceMappingURL=phase-config-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-config-loader.d.ts","sourceRoot":"","sources":["../../src/services/phase-config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAe,iBAAiB,EAAgB,MAAM,0BAA0B,CAAC;AAC7F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAK9C;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,IAAI,EACd,GAAG,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC,CAwC5B"}