@maestro-ai/mcp-server 5.4.5 → 5.5.1

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 (139) hide show
  1. package/README.md +68 -83
  2. package/dist/content/rules/RULES.md +14 -0
  3. package/dist/core/metrics/MetricsCollector.d.ts +28 -12
  4. package/dist/core/metrics/MetricsCollector.d.ts.map +1 -1
  5. package/dist/core/metrics/MetricsCollector.js +151 -12
  6. package/dist/core/metrics/MetricsCollector.js.map +1 -1
  7. package/dist/core/validation/ValidationPipeline.d.ts +24 -2
  8. package/dist/core/validation/ValidationPipeline.d.ts.map +1 -1
  9. package/dist/core/validation/ValidationPipeline.js +46 -2
  10. package/dist/core/validation/ValidationPipeline.js.map +1 -1
  11. package/dist/core/validation/layers/DeliverableValidator.d.ts +13 -0
  12. package/dist/core/validation/layers/DeliverableValidator.d.ts.map +1 -0
  13. package/dist/core/validation/layers/DeliverableValidator.js +276 -0
  14. package/dist/core/validation/layers/DeliverableValidator.js.map +1 -0
  15. package/dist/flows/onboarding-orchestrator.js +5 -5
  16. package/dist/flows/onboarding-orchestrator.js.map +1 -1
  17. package/dist/gates/contextual-recommender.d.ts.map +1 -1
  18. package/dist/gates/contextual-recommender.js +260 -1
  19. package/dist/gates/contextual-recommender.js.map +1 -1
  20. package/dist/gates/validator.d.ts +5 -6
  21. package/dist/gates/validator.d.ts.map +1 -1
  22. package/dist/gates/validator.js +9 -6
  23. package/dist/gates/validator.js.map +1 -1
  24. package/dist/handlers/shared-prompt-handler.d.ts.map +1 -1
  25. package/dist/handlers/shared-prompt-handler.js +15 -14
  26. package/dist/handlers/shared-prompt-handler.js.map +1 -1
  27. package/dist/middleware/adr-generation.middleware.d.ts +5 -0
  28. package/dist/middleware/adr-generation.middleware.d.ts.map +1 -0
  29. package/dist/middleware/adr-generation.middleware.js +214 -0
  30. package/dist/middleware/adr-generation.middleware.js.map +1 -0
  31. package/dist/middleware/flow-engine.middleware.d.ts +5 -3
  32. package/dist/middleware/flow-engine.middleware.d.ts.map +1 -1
  33. package/dist/middleware/flow-engine.middleware.js +18 -10
  34. package/dist/middleware/flow-engine.middleware.js.map +1 -1
  35. package/dist/middleware/index.d.ts +18 -11
  36. package/dist/middleware/index.d.ts.map +1 -1
  37. package/dist/middleware/index.js +24 -11
  38. package/dist/middleware/index.js.map +1 -1
  39. package/dist/middleware/orchestration-pipeline.middleware.d.ts +42 -0
  40. package/dist/middleware/orchestration-pipeline.middleware.d.ts.map +1 -0
  41. package/dist/middleware/orchestration-pipeline.middleware.js +57 -0
  42. package/dist/middleware/orchestration-pipeline.middleware.js.map +1 -0
  43. package/dist/middleware/skill-injection.middleware.d.ts.map +1 -1
  44. package/dist/middleware/skill-injection.middleware.js +6 -9
  45. package/dist/middleware/skill-injection.middleware.js.map +1 -1
  46. package/dist/middleware/validation.middleware.d.ts +11 -0
  47. package/dist/middleware/validation.middleware.d.ts.map +1 -1
  48. package/dist/middleware/validation.middleware.js +64 -4
  49. package/dist/middleware/validation.middleware.js.map +1 -1
  50. package/dist/router.d.ts.map +1 -1
  51. package/dist/router.js +20 -14
  52. package/dist/router.js.map +1 -1
  53. package/dist/services/flow-engine.d.ts +1 -0
  54. package/dist/services/flow-engine.d.ts.map +1 -1
  55. package/dist/services/flow-engine.js +22 -10
  56. package/dist/services/flow-engine.js.map +1 -1
  57. package/dist/services/watcher.service.d.ts +45 -0
  58. package/dist/services/watcher.service.d.ts.map +1 -0
  59. package/dist/services/watcher.service.js +106 -0
  60. package/dist/services/watcher.service.js.map +1 -0
  61. package/dist/state/context.d.ts +15 -4
  62. package/dist/state/context.d.ts.map +1 -1
  63. package/dist/state/context.js +36 -9
  64. package/dist/state/context.js.map +1 -1
  65. package/dist/state/storage.d.ts.map +1 -1
  66. package/dist/state/storage.js +6 -0
  67. package/dist/state/storage.js.map +1 -1
  68. package/dist/tests/aprovar-gate.test.d.ts +2 -0
  69. package/dist/tests/aprovar-gate.test.d.ts.map +1 -0
  70. package/dist/tests/aprovar-gate.test.js +113 -0
  71. package/dist/tests/aprovar-gate.test.js.map +1 -0
  72. package/dist/tests/deliverable-validator.test.d.ts +12 -0
  73. package/dist/tests/deliverable-validator.test.d.ts.map +1 -0
  74. package/dist/tests/deliverable-validator.test.js +214 -0
  75. package/dist/tests/deliverable-validator.test.js.map +1 -0
  76. package/dist/tests/flow-engine.test.d.ts +2 -0
  77. package/dist/tests/flow-engine.test.d.ts.map +1 -0
  78. package/dist/tests/flow-engine.test.js +85 -0
  79. package/dist/tests/flow-engine.test.js.map +1 -0
  80. package/dist/tests/gate-orientation.test.d.ts +2 -0
  81. package/dist/tests/gate-orientation.test.d.ts.map +1 -0
  82. package/dist/tests/gate-orientation.test.js +59 -0
  83. package/dist/tests/gate-orientation.test.js.map +1 -0
  84. package/dist/tests/middleware.test.js +30 -4
  85. package/dist/tests/middleware.test.js.map +1 -1
  86. package/dist/tests/watcher.service.test.d.ts +2 -0
  87. package/dist/tests/watcher.service.test.d.ts.map +1 -0
  88. package/dist/tests/watcher.service.test.js +119 -0
  89. package/dist/tests/watcher.service.test.js.map +1 -0
  90. package/dist/tools/aprovar-gate.d.ts.map +1 -1
  91. package/dist/tools/aprovar-gate.js +4 -0
  92. package/dist/tools/aprovar-gate.js.map +1 -1
  93. package/dist/tools/contexto.d.ts.map +1 -1
  94. package/dist/tools/contexto.js +41 -0
  95. package/dist/tools/contexto.js.map +1 -1
  96. package/dist/tools/iniciar-projeto.d.ts.map +1 -1
  97. package/dist/tools/iniciar-projeto.js +6 -40
  98. package/dist/tools/iniciar-projeto.js.map +1 -1
  99. package/dist/tools/maestro-tool.d.ts.map +1 -1
  100. package/dist/tools/maestro-tool.js +34 -14
  101. package/dist/tools/maestro-tool.js.map +1 -1
  102. package/dist/tools/proximo.d.ts.map +1 -1
  103. package/dist/tools/proximo.js +224 -71
  104. package/dist/tools/proximo.js.map +1 -1
  105. package/dist/tools/status.d.ts.map +1 -1
  106. package/dist/tools/status.js +27 -0
  107. package/dist/tools/status.js.map +1 -1
  108. package/dist/tools/validar-gate.d.ts +8 -1
  109. package/dist/tools/validar-gate.d.ts.map +1 -1
  110. package/dist/tools/validar-gate.js +147 -99
  111. package/dist/tools/validar-gate.js.map +1 -1
  112. package/dist/types/config.d.ts +2 -0
  113. package/dist/types/config.d.ts.map +1 -1
  114. package/dist/types/config.js +2 -0
  115. package/dist/types/config.js.map +1 -1
  116. package/dist/types/index.d.ts +6 -0
  117. package/dist/types/index.d.ts.map +1 -1
  118. package/dist/types/index.js.map +1 -1
  119. package/dist/utils/gate-orientation.d.ts +11 -0
  120. package/dist/utils/gate-orientation.d.ts.map +1 -0
  121. package/dist/utils/gate-orientation.js +64 -0
  122. package/dist/utils/gate-orientation.js.map +1 -0
  123. package/dist/utils/ide-paths.d.ts +11 -0
  124. package/dist/utils/ide-paths.d.ts.map +1 -1
  125. package/dist/utils/ide-paths.js +27 -0
  126. package/dist/utils/ide-paths.js.map +1 -1
  127. package/dist/utils/instructions.d.ts +6 -1
  128. package/dist/utils/instructions.d.ts.map +1 -1
  129. package/dist/utils/instructions.js +32 -1
  130. package/dist/utils/instructions.js.map +1 -1
  131. package/package.json +2 -1
  132. package/dist/gates/compatibility-wrapper.d.ts +0 -139
  133. package/dist/gates/compatibility-wrapper.d.ts.map +0 -1
  134. package/dist/gates/compatibility-wrapper.js +0 -362
  135. package/dist/gates/compatibility-wrapper.js.map +0 -1
  136. package/dist/gates/unified-validator.d.ts +0 -67
  137. package/dist/gates/unified-validator.d.ts.map +0 -1
  138. package/dist/gates/unified-validator.js +0 -234
  139. package/dist/gates/unified-validator.js.map +0 -1
@@ -3,27 +3,98 @@ import { existsSync, readdirSync } from "fs";
3
3
  import { parsearEstado, serializarEstado } from "../state/storage.js";
4
4
  import { getFaseComStitch, getFluxoComStitch } from "../flows/types.js";
5
5
  import { classificarPRD } from "../flows/classifier.js"; // @deprecated v6.0 - usar ClassificacaoProgressivaService
6
- import { validarGate, validarGateComTemplate } from "../gates/validator.js";
7
6
  import { setCurrentDirectory } from "../state/context.js";
8
7
  import { parsearResumo, serializarResumo, criarResumoInicial, extrairResumoEntregavel } from "../state/memory.js";
9
- import { gerarInstrucaoCorrecao } from "../utils/instructions.js";
8
+ import { gerarInstrucaoCorrecao, gerarInstrucaoContinuidade } from "../utils/instructions.js";
10
9
  import { logEvent, EventTypes } from "../utils/history.js";
11
10
  import { getSpecialistPersona } from "../services/specialist.service.js";
12
11
  import { gerarSystemMd } from "../utils/system-md.js";
13
12
  import { getSkillParaFase } from "../utils/prompt-mapper.js";
14
- import { validarEstrutura } from "../gates/estrutura.js";
15
- import { resolveProjectPath, getServerContentRoot } from "../utils/files.js";
16
- import { formatSkillMessage, detectIDE, getSkillResourcePath as getIDESkillResourcePath } from "../utils/ide-paths.js";
13
+ import { resolveProjectPath } from "../utils/files.js";
14
+ import { formatSkillHydrationCommand, detectIDE, getSkillResourcePath as getIDESkillResourcePath } from "../utils/ide-paths.js";
17
15
  import { inferirContextoBalanceado } from "../utils/inferencia-contextual.js";
18
16
  import { verificarSkillCarregada } from "../utils/content-injector.js";
19
- import { ContentResolverService } from "../services/content-resolver.service.js";
20
- import { SkillLoaderService } from "../services/skill-loader.service.js";
21
17
  import { saveFile, saveMultipleFiles, formatSavedFilesConfirmation } from "../utils/persistence.js";
22
18
  import { classificacaoProgressiva } from "../services/classificacao-progressiva.service.js"; // v6.0
23
19
  import { getSpecialistQuestions } from "../handlers/specialist-phase-handler.js"; // v7.0
24
20
  import { resolverPathEntregavel, listarPathsEsperados } from "../utils/entregavel-path.js"; // v5.5.0
25
21
  import { readFile } from "fs/promises";
26
22
  import { isPrototypePhase } from "../handlers/prototype-phase-handler.js"; // v9.0
23
+ // v6.3 S5.1: Autonomia calibrada
24
+ import { DecisionEngine } from "../core/decision/DecisionEngine.js";
25
+ // V6 Sprint 4+5: Gate orientation e watcher de entregáveis
26
+ import { generateGateOrientationDoc } from "../utils/gate-orientation.js";
27
+ import { startFileWatcher, stopFileWatcher } from "../services/watcher.service.js";
28
+ import { RiskEvaluator } from "../core/risk/RiskEvaluator.js";
29
+ /**
30
+ * v6.3 S5.2-S5.3: Avalia autonomia para o avanço de fase usando RiskEvaluator + DecisionEngine.
31
+ * Retorna null se pode prosseguir, ou ToolResult de bloqueio se requer aprovação humana.
32
+ */
33
+ async function avaliarAutonomia(estado, nomeFase, diretorio, autoFlow) {
34
+ if (autoFlow)
35
+ return null; // Modo automático: sempre passa direto
36
+ try {
37
+ const riskEvaluator = new RiskEvaluator(diretorio);
38
+ const decisionEngine = new DecisionEngine();
39
+ // Avaliar risco do avanço de fase
40
+ const riskInfo = await riskEvaluator.evaluate(`advance-phase-${nomeFase}`, {
41
+ filesAffected: 1,
42
+ hasTests: estado.gates_validados.length > 0,
43
+ });
44
+ // Mapear nível do RiskEvaluator para DecisionEngine
45
+ const riskMap = {
46
+ SAFE: 'baixo', LOW: 'baixo', MEDIUM: 'medio', HIGH: 'alto', DANGEROUS: 'critico',
47
+ };
48
+ const decisionRisk = riskMap[riskInfo.level] ?? 'medio';
49
+ const decision = await decisionEngine.evaluate({
50
+ operation: `advance-phase-${nomeFase}`,
51
+ riskLevel: decisionRisk,
52
+ context: {
53
+ fase: estado.fase_atual,
54
+ hasHistoricalMatch: estado.gates_validados.length > 0,
55
+ matchesKnownPattern: true,
56
+ isNovelOperation: estado.fase_atual === 1,
57
+ hasFullContext: !!nomeFase,
58
+ },
59
+ });
60
+ // v6.3 S5.4: Só bloqueia em risco crítico / human_only
61
+ if (decision.action === 'human_only') {
62
+ return {
63
+ content: [{
64
+ type: "text",
65
+ text: `# ✋ Aprovação Necessária — Autonomia Calibrada (v6.3)
66
+
67
+ O sistema avaliou que esta operação requer aprovação explícita do usuário.
68
+
69
+ | Fator | Valor |
70
+ |-------|-------|
71
+ | **Fase** | ${estado.fase_atual} — ${nomeFase} |
72
+ | **Risco** | ${riskInfo.level} (score: ${riskInfo.score}) |
73
+ | **Confiança da IA** | ${Math.round(decision.confidence * 100)}% |
74
+
75
+ ## Fatores de Risco Detectados
76
+ ${riskInfo.factors.map(f => `- **${f.name}** (peso: ${f.weight}) — ${f.description}`).join('\n')}
77
+
78
+ ## Raciocínio
79
+ \`\`\`
80
+ ${decision.reasoning}
81
+ \`\`\`
82
+
83
+ > 🔐 Para prosseguir, confirme: **"Confirmo o avanço da fase ${estado.fase_atual}"**
84
+ > Ou use \`auto_flow: true\` para modo automático sem checagens de risco.
85
+ `,
86
+ }],
87
+ };
88
+ }
89
+ // Para outros níveis, apenas loga (não bloqueia)
90
+ console.log(`[Autonomia v6.3] fase=${estado.fase_atual} nome=${nomeFase} confianca=${Math.round(decision.confidence * 100)}% risco=${riskInfo.level} acao=${decision.action}`);
91
+ }
92
+ catch (err) {
93
+ // Best-effort — nunca bloqueia o fluxo
94
+ console.warn('[Autonomia v6.3] Falha na avaliação (non-blocking):', err);
95
+ }
96
+ return null;
97
+ }
27
98
  /**
28
99
  * Calcula score de qualidade
29
100
  */
@@ -258,6 +329,10 @@ ${instrucoesSkill}
258
329
  // v5.5.0: Após validação, entregavel é garantidamente string não-vazia
259
330
  // TypeScript assertion para evitar erros de tipo
260
331
  const entregavelValidado = entregavel;
332
+ // v6.3 S5.3: Avaliação de autonomia — RiskEvaluator + DecisionEngine
333
+ const autonomiaBlock = await avaliarAutonomia(estado, faseAtualInfo?.nome ?? `Fase ${estado.fase_atual}`, diretorio, args.auto_flow ?? false);
334
+ if (autonomiaBlock)
335
+ return autonomiaBlock;
261
336
  // Verificar se há bloqueio de aprovação pendente (Gate)
262
337
  if (estado.aguardando_aprovacao) {
263
338
  // v5.5.0: Incluir instruções de correção no bloqueio
@@ -415,11 +490,11 @@ Inclua no MESMO prompt qualquer ajuste de domínio/stack ou integrações críti
415
490
  isError: true,
416
491
  };
417
492
  }
418
- // Enforcement de skill + template + checklist antes de avançar
419
- // AUTO-FLOW: pula verificação de skill carregada (assume que IA já seguiu o template)
493
+ // v6.0 Sprint 5: Enforcement de skill + template + checklist antes de avançar
494
+ // Verificação obrigatória em TODOS os modos (incluindo auto_flow)
420
495
  const ideDetectada = detectIDE(diretorio) || 'windsurf';
421
496
  const skillObrigatoria = getSkillParaFase(faseAtual.nome);
422
- if (skillObrigatoria && !args.auto_flow) {
497
+ if (skillObrigatoria) {
423
498
  const skillOk = await verificarSkillCarregada(diretorio, skillObrigatoria, ideDetectada).catch(() => false);
424
499
  if (!skillOk) {
425
500
  return {
@@ -441,48 +516,75 @@ Carregue e leia a skill antes de gerar o entregável:
441
516
  };
442
517
  }
443
518
  }
444
- // Tentar validação com template (novo sistema inteligente)
445
- const diretorioContent = getServerContentRoot();
519
+ // v6.1 Correção 1: Usar validateDeliverable() ao invés de validate()
520
+ // O validate() aplicava regras de TypeScript em documentos Markdown — ineficaz.
521
+ // validateDeliverable() valida conteúdo semântico por fase: seções, gate checklist, tamanho.
446
522
  const tier = estado.tier_gate || "base";
447
- const validacaoTemplate = validarGateComTemplate(faseAtual, entregavelValidado, tier, diretorioContent);
448
- let qualityScore;
449
- let gateResultado;
450
- let estruturaResult;
451
- let usouTemplate = false;
452
- if (validacaoTemplate.sucesso && validacaoTemplate.resultado) {
453
- // Usar validação baseada em template (enforcement)
454
- usouTemplate = true;
455
- const resultado = validacaoTemplate.resultado;
456
- // Converter resultado do template para formato legado para compatibilidade
457
- qualityScore = resultado.qualidade?.scoreGeral || resultado.score || 0;
458
- // Criar estrutura compatível para gateResultado
459
- gateResultado = {
460
- valido: resultado.valido,
461
- itens_validados: resultado.checkboxes?.preenchidos.map((c) => c.texto) || [],
462
- itens_pendentes: resultado.checkboxes?.faltando.map((c) => c.texto) || [],
463
- sugestoes: resultado.sugestoes || [],
464
- };
465
- // Criar estrutura compatível para estruturaResult
466
- estruturaResult = {
467
- valido: resultado.estrutura?.valida || false,
468
- score: resultado.estrutura?.score || 0,
469
- secoes_encontradas: resultado.estrutura?.secoesEncontradas || [],
470
- secoes_faltando: resultado.estrutura?.secoesFaltando || [],
471
- tamanho_ok: true,
472
- feedback: resultado.feedback || [],
473
- };
523
+ console.log(`[proximo] Iniciando validateDeliverable (fase: ${faseAtual.nome}, tier: ${tier})`);
524
+ const { ValidationPipeline } = await import("../core/validation/ValidationPipeline.js");
525
+ const validationPipeline = new ValidationPipeline();
526
+ let validationResult;
527
+ try {
528
+ validationResult = await validationPipeline.validateDeliverable(entregavelValidado, faseAtual.nome, tier, faseAtual.gate_checklist || []);
474
529
  }
475
- else {
476
- // Fallback para sistema legado
477
- usouTemplate = false;
478
- estruturaResult = validarEstrutura(estado.fase_atual, entregavelValidado, "base", faseAtual.nome);
479
- gateResultado = validarGate(faseAtual, entregavelValidado);
480
- qualityScore = calcularQualityScore(estruturaResult, gateResultado);
530
+ catch (error) {
531
+ console.error('[proximo] Erro ao executar validateDeliverable:', error);
532
+ return {
533
+ content: [{
534
+ type: "text",
535
+ text: `# Erro na Validação do Entregável
536
+
537
+ Ocorreu um erro ao validar o entregável da fase **${faseAtual.nome}**.
538
+
539
+ **Erro:** ${error instanceof Error ? error.message : String(error)}
540
+
541
+ Por favor, verifique:
542
+ 1. O entregável está formatado corretamente em Markdown?
543
+ 2. O conteúdo segue o template da fase?
544
+ 3. Todos os itens do gate checklist estão evidenciados?
545
+
546
+ Se o erro persistir, contate o suporte técnico.`,
547
+ }],
548
+ isError: true,
549
+ };
481
550
  }
551
+ const qualityScore = validationResult.overallScore;
552
+ // Converter resultado para formato compatível com mensagens de erro
553
+ const gateResultado = {
554
+ valido: validationResult.passed,
555
+ itens_validados: validationResult.results
556
+ .filter(r => r.passed)
557
+ .map(r => `${r.layer}: ${r.score.toFixed(0)}%`),
558
+ itens_pendentes: validationResult.results
559
+ .filter(r => !r.passed)
560
+ .flatMap(r => r.issues.map(i => `[${r.layer}] ${i.message}`)),
561
+ sugestoes: validationResult.recommendations
562
+ };
563
+ const estruturaResult = {
564
+ valido: validationResult.passed,
565
+ score: qualityScore,
566
+ secoes_encontradas: validationResult.results
567
+ .filter(r => r.passed)
568
+ .map(r => r.layer),
569
+ secoes_faltando: validationResult.results
570
+ .filter(r => !r.passed)
571
+ .map(r => r.layer),
572
+ tamanho_ok: true,
573
+ feedback: validationResult.recommendations
574
+ };
575
+ console.log(`[proximo] validateDeliverable completo — Score: ${qualityScore}/100, Passou: ${validationResult.passed}`);
482
576
  // Score < 50: BLOQUEAR com instruções detalhadas de correção
483
577
  if (qualityScore < 50) {
578
+ // V6 Sprint 2: Ativar modo compulsório também no score < 50
579
+ estado.em_estado_compulsorio = true;
580
+ estado.aguardando_aprovacao = false; // Score < 50 não aguarda aprovação — é bloqueio total
581
+ try {
582
+ await saveFile(`${diretorio}/.maestro/estado.json`, serializarEstado(estado).content);
583
+ }
584
+ catch { /* silencioso */ }
484
585
  const ideParaBloqueio = detectIDE(diretorio) || 'windsurf';
485
- const feedbackBloqueio = gerarInstrucaoCorrecao(faseAtual.nome, qualityScore, gateResultado.itens_validados || [], gateResultado.itens_pendentes || [], gateResultado.sugestoes || [], estruturaResult.secoes_faltando || [], ideParaBloqueio);
586
+ const feedbackBloqueio = gerarInstrucaoCorrecao(faseAtual.nome, qualityScore, gateResultado.itens_validados || [], gateResultado.itens_pendentes || [], gateResultado.sugestoes || [], estruturaResult.secoes_faltando || [], ideParaBloqueio, diretorio // V6 Sprint 1: payload de auto-correção
587
+ );
486
588
  // Feedback de leitura do disco
487
589
  const feedbackLeituraBloqueio = entregavelLidoDoDisco && caminhoResolvido
488
590
  ? `> 📄 **Entregável lido de:** \`${caminhoResolvido}\`\n\n`
@@ -512,6 +614,8 @@ ${feedbackBloqueio}
512
614
  estado.aguardando_aprovacao = true;
513
615
  estado.motivo_bloqueio = "Score abaixo de 70 - requer aprovação do usuário";
514
616
  estado.score_bloqueado = qualityScore;
617
+ // V6 Sprint 2: Ativar modo compulsório — bloqueia divagação da IA
618
+ estado.em_estado_compulsorio = true;
515
619
  // Serializar estado bloqueado
516
620
  const estadoBloqueado = serializarEstado(estado);
517
621
  // v5.3: Persistência direta para estado bloqueado
@@ -523,7 +627,8 @@ ${feedbackBloqueio}
523
627
  }
524
628
  // v5.5.0: Feedback instrutor com templates e checklists
525
629
  const ideParaAprovacao = detectIDE(diretorio) || 'windsurf';
526
- const feedbackAprovacao = gerarInstrucaoCorrecao(faseAtual.nome, qualityScore, gateResultado.itens_validados || [], gateResultado.itens_pendentes || [], gateResultado.sugestoes || [], estruturaResult.secoes_faltando || [], ideParaAprovacao);
630
+ const feedbackAprovacao = gerarInstrucaoCorrecao(faseAtual.nome, qualityScore, gateResultado.itens_validados || [], gateResultado.itens_pendentes || [], gateResultado.sugestoes || [], estruturaResult.secoes_faltando || [], ideParaAprovacao, diretorio // V6 Sprint 1: para payload de auto-correção
631
+ );
527
632
  // Feedback de leitura do disco
528
633
  const feedbackLeituraAprovacao = entregavelLidoDoDisco && caminhoResolvido
529
634
  ? `> 📄 **Entregável lido de:** \`${caminhoResolvido}\`\n\n`
@@ -570,6 +675,36 @@ O projeto foi **bloqueado** aguardando decisão do usuário:
570
675
  });
571
676
  // Atualizar estado com entregável registrado
572
677
  estado.entregaveis[`fase_${estado.fase_atual}`] = caminhoArquivo;
678
+ // V6 Sprint 2: Garantir que ga saiu do modo compulsório ao avançar com sucesso
679
+ estado.em_estado_compulsorio = false;
680
+ estado.aguardando_aprovacao = false;
681
+ estado.motivo_bloqueio = undefined;
682
+ estado.score_bloqueado = undefined;
683
+ // V6 Sprint 6: PHASE_TYPE_MAP — classifica o tipo da PROXIMA fase para Smart Auto-Flow
684
+ // Nomes canônicos extraídos de flows/types.ts (FLUXO_SIMPLES, FLUXO_MEDIO, FLUXO_COMPLEXO, FASE_STITCH)
685
+ const PHASE_TYPE_MAP = {
686
+ // --- input_required: fase de coleta com o usuário ---
687
+ 'Produto': 'input_required',
688
+ // --- derived: fases que derivam de fases anteriores, sem dúvidas do usuário ---
689
+ 'Requisitos': 'derived',
690
+ 'UX Design': 'derived',
691
+ 'Modelo de Domínio': 'derived',
692
+ 'Arquitetura': 'derived',
693
+ 'Arquitetura Avançada': 'derived',
694
+ 'Backlog': 'derived',
695
+ 'Contrato API': 'derived',
696
+ 'Prototipagem': 'derived', // Sprint Stitch: deriva do Design Doc
697
+ // --- technical: implementação pura, sem perguntas conceituais ---
698
+ 'Banco de Dados': 'technical',
699
+ 'Segurança': 'technical',
700
+ 'Testes': 'technical',
701
+ 'Performance': 'technical',
702
+ 'Observabilidade': 'technical',
703
+ 'Frontend': 'technical',
704
+ 'Backend': 'technical',
705
+ 'Integração': 'technical',
706
+ 'Deploy Final': 'technical',
707
+ };
573
708
  // Preparar/atualizar resumo
574
709
  let resumo;
575
710
  if (args.resumo_json) {
@@ -757,6 +892,42 @@ ${criterios.slice(0, 5).map(c => `- ${c}`).join("\n")}
757
892
  catch (error) {
758
893
  console.warn('Aviso: Não foi possível atualizar histórico/SYSTEM.md:', error);
759
894
  }
895
+ // V6 Sprint 4: Gerar guia de Gate da PRÓXIMA fase (TDD Invertido)
896
+ // Cria docs/fase-XX/.orientacoes-gate.md com os critérios exatos de validação
897
+ if (proximaFase) {
898
+ try {
899
+ const gateOrientationPath = await generateGateOrientationDoc(diretorio, proximaFase.nome, estado.fase_atual);
900
+ // Atualizar flow_phase_type da próxima fase no estado (Sprint 6)
901
+ estado.flow_phase_type = PHASE_TYPE_MAP[proximaFase.nome] ?? 'derived';
902
+ if (gateOrientationPath) {
903
+ console.log(`[proximo] Guia de Gate gerado: ${gateOrientationPath}`);
904
+ }
905
+ }
906
+ catch (error) {
907
+ console.warn('[proximo] Falha ao gerar orientação de gate (não crítico):', error);
908
+ }
909
+ }
910
+ // V6 Sprint 5: Gerenciar ciclo de vida do watcher de entregáveis
911
+ // Parar watcher da fase anterior (evita leak de file handles)
912
+ stopFileWatcher(diretorio);
913
+ // Iniciar watcher para o PRÓXIMO entregável assim que a fase avançar
914
+ if (proximaFase) {
915
+ const proximaFaseDirName = `fase-${estado.fase_atual.toString().padStart(2, '0')}-${proximaFase.nome.toLowerCase().replace(/\s/g, '-')}`;
916
+ const proximoEntregavelPath = `${diretorio}/docs/${proximaFaseDirName}/${proximaFase.entregavel_esperado}`;
917
+ startFileWatcher({
918
+ filePath: proximoEntregavelPath,
919
+ diretorio,
920
+ faseNome: proximaFase.nome,
921
+ tier: estado.tier_gate || 'base',
922
+ gateChecklist: proximaFase.gate_checklist || [],
923
+ onValidationResult: (score, feedback, filePath) => {
924
+ // Log no console — o usuário será notificado via IDE ao chamar executar
925
+ console.log(`\n==========================================\n[watcher] ${proximaFase.nome} | Score: ${score} | ${filePath}`);
926
+ if (score >= 0)
927
+ console.log(`[watcher] Feedback:\n${feedback}\n==========================================\n`);
928
+ }
929
+ }).catch(err => console.warn('[watcher] Não foi possível iniciar o watcher:', err));
930
+ }
760
931
  // v6.0: Bloco de interrupção pós-PRD removido — classificação progressiva já cuida disso
761
932
  // v5.5.0: Feedback visual quando entregável foi lido do disco
762
933
  const feedbackLeitura = entregavelLidoDoDisco && caminhoResolvido
@@ -765,40 +936,19 @@ ${criterios.slice(0, 5).map(c => `- ${c}`).join("\n")}
765
936
 
766
937
  `
767
938
  : "";
768
- // Gerar informações da próxima skill INJEÇÃO ATIVA v5
939
+ // v7.0: Gerar informações da próxima skill usando menção dinâmica da IDE
769
940
  const proximaSkillInfo = await (async () => {
770
941
  if (!proximaFase)
771
942
  return "";
772
943
  const proximaSkill = getSkillParaFase(proximaFase.nome);
773
944
  if (!proximaSkill)
774
945
  return "";
775
- // Detectar modo do projeto
776
- const mode = (estado.config?.mode || "balanced");
777
- try {
778
- // Injeção ativa: carregar e incluir conteúdo real da skill na resposta
779
- const contentResolver = new ContentResolverService(diretorio);
780
- const skillLoader = new SkillLoaderService(contentResolver);
781
- const contextPackage = await skillLoader.loadForPhase(proximaFase.nome, mode);
782
- if (contextPackage) {
783
- return `\n\n---\n\n# 🧠 Contexto do Especialista — ${proximaFase.nome}\n\n${skillLoader.formatAsMarkdown(contextPackage)}\n`;
784
- }
785
- }
786
- catch (error) {
787
- console.warn("[proximo] Falha ao carregar skill ativa, usando fallback:", error);
788
- }
789
- // Fallback: referência textual (compatibilidade v4)
790
946
  const ide = estado.ide || detectIDE(diretorio) || 'windsurf';
791
947
  return `
792
948
 
793
949
  ## 🤖 Próximo Especialista
794
950
 
795
- ${formatSkillMessage(proximaSkill, ide)}
796
-
797
- > 💡 **Próximos passos:**
798
- > 1. Ative a skill: \`@${proximaSkill}\`
799
- > 2. Leia SKILL.md para entender a fase
800
- > 3. Consulte o template apropriado
801
- > 4. Siga o checklist de validação
951
+ ${formatSkillHydrationCommand(proximaSkill, ide)}
802
952
  `;
803
953
  })();
804
954
  const resposta = `# ✅ Fase ${faseAnterior} Concluída!
@@ -826,6 +976,9 @@ ${proximaSkillInfo}
826
976
  ---
827
977
 
828
978
  `;
979
+ // V6 Sprint 6: Instrução de continuidade autônoma
980
+ // Retorna vazio para fases 'input_required' (especialista faz as perguntas naturalmente)
981
+ const continuidade = gerarInstrucaoContinuidade(diretorio, faseAnterior, proximaFase?.nome ?? '', estado.flow_phase_type ?? 'derived');
829
982
  // v5.3: Persistência direta — salvar todos os arquivos via fs
830
983
  try {
831
984
  await saveMultipleFiles(filesToSave);
@@ -838,7 +991,7 @@ ${proximaSkillInfo}
838
991
  // v5: next_action e progress são calculados automaticamente pelo middleware flow-engine.middleware.ts
839
992
  // Mantemos apenas specialist_persona e estado_atualizado para o middleware processar
840
993
  return {
841
- content: [{ type: "text", text: feedbackLeitura + resposta + confirmacao }],
994
+ content: [{ type: "text", text: feedbackLeitura + resposta + confirmacao + continuidade }],
842
995
  estado_atualizado: estadoFile.content,
843
996
  specialist_persona: specialist || undefined,
844
997
  // next_action e progress serão adicionados pelo middleware withFlowEngine
@@ -1 +1 @@
1
- {"version":3,"file":"proximo.js","sourceRoot":"","sources":["../../src/tools/proximo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proximo.js","sourceRoot":"","sources":["../../src/tools/proximo.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AAgBnE,UAAU,UAAU;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CA4IlE;AAED;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAaxB,CAAC"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AAiBnE,UAAU,UAAU;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAwKlE;AAED;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAaxB,CAAC"}
@@ -8,6 +8,7 @@ import { formatSkillMessage, detectIDE } from "../utils/ide-paths.js";
8
8
  import { getSpecialistPersona } from "../services/specialist.service.js";
9
9
  import { formatError, embedAllMetadata } from "../utils/response-formatter.js";
10
10
  import { withStructuredContent } from "../services/structured-content.service.js";
11
+ import { MetricsCollector } from "../core/metrics/MetricsCollector.js";
11
12
  /**
12
13
  * Tool: status
13
14
  * Retorna status completo do projeto (modo stateless)
@@ -34,6 +35,31 @@ export async function status(args) {
34
35
  };
35
36
  }
36
37
  setCurrentDirectory(args.diretorio);
38
+ // v6.3 S4.3: Coletar métricas reais do projeto (best-effort)
39
+ let metricsSection = "";
40
+ try {
41
+ const collector = new MetricsCollector();
42
+ const metrics = await collector.collect(args.diretorio, estado);
43
+ const scoreBar = (score) => {
44
+ const filled = Math.round(score / 10);
45
+ return "█".repeat(filled) + "░".repeat(10 - filled) + ` ${score}%`;
46
+ };
47
+ metricsSection = `
48
+ ## 📊 Métricas do Projeto
49
+
50
+ | Métrica | Valor |
51
+ |---------|-------|
52
+ | **Score Geral** | ${scoreBar(metrics.scoreGeral)} |
53
+ | **Documentação** | ${scoreBar(metrics.scoreDocumentacao)} |
54
+ | **Entregaveis** | ${metrics.entregaveisGerados}/${metrics.totalFases} fases |
55
+ | **ADRs gerados** | ${metrics.adrsEncontrados} |
56
+ | **Arquivos de código** | ${metrics.arquivosCodigo} |
57
+ | **Arquivos de teste** | ${metrics.arquivosTeste} (ratio: ${Math.round(metrics.ratioTestesCodigo * 100)}%) |
58
+ `;
59
+ }
60
+ catch {
61
+ // Métricas são best-effort
62
+ }
37
63
  // Verifica se há conteúdo local disponível (via npx)
38
64
  const avisoContentLocal = temContentLocal(args.diretorio) ? "" : `
39
65
  > ℹ️ **Contúdo embutido**: Usando conteúdo embutido via npx. Para especialistas/templates personalizados, execute \`npx @maestro-ai/cli\`.`;
@@ -110,6 +136,7 @@ ${Object.keys(estado.entregaveis).length > 0
110
136
  ---
111
137
 
112
138
  **Última atualização:** ${new Date(estado.atualizado_em).toLocaleString("pt-BR")}
139
+ ${metricsSection}
113
140
  `;
114
141
  const specialist = faseAtual ? getSpecialistPersona(faseAtual.nome) : null;
115
142
  const progress = {
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,11 @@
1
1
  import type { ToolResult } from "../types/index.js";
2
+ /**
3
+ * v6.3: Sistema de gates unificado usando IntelligentGateEngine
4
+ * Substitui os 3 sistemas paralelos anteriores:
5
+ * - gates/validator.ts (GATE_CHECKLISTS legado)
6
+ * - core/validation/layers/DeliverableValidator.ts
7
+ * - gates/template-validator.ts
8
+ */
2
9
  interface ValidarGateArgs {
3
10
  fase?: number;
4
11
  entregavel?: string;
@@ -7,7 +14,7 @@ interface ValidarGateArgs {
7
14
  }
8
15
  /**
9
16
  * Tool: validar_gate
10
- * Valida checklist de saída da fase (modo stateless)
17
+ * v6.3: Usa IntelligentGateEngine como sistema principal (com fallback legado automático)
11
18
  */
12
19
  export declare function validarGate(args: ValidarGateArgs): Promise<ToolResult>;
13
20
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"validar-gate.d.ts","sourceRoot":"","sources":["../../src/tools/validar-gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AAiBnE,UAAU,eAAe;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CA8M5E;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;CAqB7B,CAAC"}
1
+ {"version":3,"file":"validar-gate.d.ts","sourceRoot":"","sources":["../../src/tools/validar-gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,mBAAmB,CAAC;AAc7E;;;;;;GAMG;AAEH,UAAU,eAAe;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB;AA4ID;;;GAGG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CA4I5E;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;CAqB7B,CAAC"}