@maestro-ai/mcp-server 5.4.5 → 5.5.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 (127) 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/gates/contextual-recommender.d.ts.map +1 -1
  16. package/dist/gates/contextual-recommender.js +260 -1
  17. package/dist/gates/contextual-recommender.js.map +1 -1
  18. package/dist/gates/validator.d.ts +5 -6
  19. package/dist/gates/validator.d.ts.map +1 -1
  20. package/dist/gates/validator.js +9 -6
  21. package/dist/gates/validator.js.map +1 -1
  22. package/dist/middleware/adr-generation.middleware.d.ts +5 -0
  23. package/dist/middleware/adr-generation.middleware.d.ts.map +1 -0
  24. package/dist/middleware/adr-generation.middleware.js +214 -0
  25. package/dist/middleware/adr-generation.middleware.js.map +1 -0
  26. package/dist/middleware/flow-engine.middleware.d.ts +5 -3
  27. package/dist/middleware/flow-engine.middleware.d.ts.map +1 -1
  28. package/dist/middleware/flow-engine.middleware.js +18 -10
  29. package/dist/middleware/flow-engine.middleware.js.map +1 -1
  30. package/dist/middleware/index.d.ts +18 -11
  31. package/dist/middleware/index.d.ts.map +1 -1
  32. package/dist/middleware/index.js +24 -11
  33. package/dist/middleware/index.js.map +1 -1
  34. package/dist/middleware/orchestration-pipeline.middleware.d.ts +42 -0
  35. package/dist/middleware/orchestration-pipeline.middleware.d.ts.map +1 -0
  36. package/dist/middleware/orchestration-pipeline.middleware.js +57 -0
  37. package/dist/middleware/orchestration-pipeline.middleware.js.map +1 -0
  38. package/dist/middleware/skill-injection.middleware.js +1 -1
  39. package/dist/middleware/skill-injection.middleware.js.map +1 -1
  40. package/dist/middleware/validation.middleware.d.ts +11 -0
  41. package/dist/middleware/validation.middleware.d.ts.map +1 -1
  42. package/dist/middleware/validation.middleware.js +54 -0
  43. package/dist/middleware/validation.middleware.js.map +1 -1
  44. package/dist/router.d.ts.map +1 -1
  45. package/dist/router.js +20 -14
  46. package/dist/router.js.map +1 -1
  47. package/dist/services/flow-engine.d.ts +1 -0
  48. package/dist/services/flow-engine.d.ts.map +1 -1
  49. package/dist/services/flow-engine.js +14 -2
  50. package/dist/services/flow-engine.js.map +1 -1
  51. package/dist/services/watcher.service.d.ts +45 -0
  52. package/dist/services/watcher.service.d.ts.map +1 -0
  53. package/dist/services/watcher.service.js +106 -0
  54. package/dist/services/watcher.service.js.map +1 -0
  55. package/dist/state/context.d.ts +15 -4
  56. package/dist/state/context.d.ts.map +1 -1
  57. package/dist/state/context.js +36 -9
  58. package/dist/state/context.js.map +1 -1
  59. package/dist/state/storage.d.ts.map +1 -1
  60. package/dist/state/storage.js +6 -0
  61. package/dist/state/storage.js.map +1 -1
  62. package/dist/tests/aprovar-gate.test.d.ts +2 -0
  63. package/dist/tests/aprovar-gate.test.d.ts.map +1 -0
  64. package/dist/tests/aprovar-gate.test.js +113 -0
  65. package/dist/tests/aprovar-gate.test.js.map +1 -0
  66. package/dist/tests/deliverable-validator.test.d.ts +12 -0
  67. package/dist/tests/deliverable-validator.test.d.ts.map +1 -0
  68. package/dist/tests/deliverable-validator.test.js +214 -0
  69. package/dist/tests/deliverable-validator.test.js.map +1 -0
  70. package/dist/tests/flow-engine.test.d.ts +2 -0
  71. package/dist/tests/flow-engine.test.d.ts.map +1 -0
  72. package/dist/tests/flow-engine.test.js +85 -0
  73. package/dist/tests/flow-engine.test.js.map +1 -0
  74. package/dist/tests/gate-orientation.test.d.ts +2 -0
  75. package/dist/tests/gate-orientation.test.d.ts.map +1 -0
  76. package/dist/tests/gate-orientation.test.js +59 -0
  77. package/dist/tests/gate-orientation.test.js.map +1 -0
  78. package/dist/tests/middleware.test.js +30 -4
  79. package/dist/tests/middleware.test.js.map +1 -1
  80. package/dist/tests/watcher.service.test.d.ts +2 -0
  81. package/dist/tests/watcher.service.test.d.ts.map +1 -0
  82. package/dist/tests/watcher.service.test.js +119 -0
  83. package/dist/tests/watcher.service.test.js.map +1 -0
  84. package/dist/tools/aprovar-gate.d.ts.map +1 -1
  85. package/dist/tools/aprovar-gate.js +4 -0
  86. package/dist/tools/aprovar-gate.js.map +1 -1
  87. package/dist/tools/contexto.d.ts.map +1 -1
  88. package/dist/tools/contexto.js +41 -0
  89. package/dist/tools/contexto.js.map +1 -1
  90. package/dist/tools/proximo.d.ts.map +1 -1
  91. package/dist/tools/proximo.js +224 -54
  92. package/dist/tools/proximo.js.map +1 -1
  93. package/dist/tools/status.d.ts.map +1 -1
  94. package/dist/tools/status.js +27 -0
  95. package/dist/tools/status.js.map +1 -1
  96. package/dist/tools/validar-gate.d.ts +8 -1
  97. package/dist/tools/validar-gate.d.ts.map +1 -1
  98. package/dist/tools/validar-gate.js +147 -99
  99. package/dist/tools/validar-gate.js.map +1 -1
  100. package/dist/types/config.d.ts +2 -0
  101. package/dist/types/config.d.ts.map +1 -1
  102. package/dist/types/config.js +2 -0
  103. package/dist/types/config.js.map +1 -1
  104. package/dist/types/index.d.ts +6 -0
  105. package/dist/types/index.d.ts.map +1 -1
  106. package/dist/types/index.js.map +1 -1
  107. package/dist/utils/gate-orientation.d.ts +11 -0
  108. package/dist/utils/gate-orientation.d.ts.map +1 -0
  109. package/dist/utils/gate-orientation.js +64 -0
  110. package/dist/utils/gate-orientation.js.map +1 -0
  111. package/dist/utils/ide-paths.d.ts +11 -0
  112. package/dist/utils/ide-paths.d.ts.map +1 -1
  113. package/dist/utils/ide-paths.js +27 -0
  114. package/dist/utils/ide-paths.js.map +1 -1
  115. package/dist/utils/instructions.d.ts +6 -1
  116. package/dist/utils/instructions.d.ts.map +1 -1
  117. package/dist/utils/instructions.js +32 -1
  118. package/dist/utils/instructions.js.map +1 -1
  119. package/package.json +2 -1
  120. package/dist/gates/compatibility-wrapper.d.ts +0 -139
  121. package/dist/gates/compatibility-wrapper.d.ts.map +0 -1
  122. package/dist/gates/compatibility-wrapper.js +0 -362
  123. package/dist/gates/compatibility-wrapper.js.map +0 -1
  124. package/dist/gates/unified-validator.d.ts +0 -67
  125. package/dist/gates/unified-validator.d.ts.map +0 -1
  126. package/dist/gates/unified-validator.js +0 -234
  127. package/dist/gates/unified-validator.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watcher.service.test.js","sourceRoot":"","sources":["../../src/tests/watcher.service.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"aprovar-gate.d.ts","sourceRoot":"","sources":["../../src/tools/aprovar-gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AAUnE,UAAU,eAAe;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;CAChC;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAuO5E;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;CAkB7B,CAAC"}
1
+ {"version":3,"file":"aprovar-gate.d.ts","sourceRoot":"","sources":["../../src/tools/aprovar-gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AAUnE,UAAU,eAAe;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;CAChC;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CA2O5E;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;CAkB7B,CAAC"}
@@ -114,6 +114,8 @@ O projeto deve primeiro:
114
114
  estado.aguardando_aprovacao = false;
115
115
  estado.motivo_bloqueio = undefined;
116
116
  estado.score_bloqueado = undefined;
117
+ // V6 Sprint 2: Desativar modo compulsório ao aprovar
118
+ estado.em_estado_compulsorio = false;
117
119
  // Serializar estado
118
120
  const estadoFile = serializarEstado(estado);
119
121
  const faseAtual = getFaseComStitch(estado.nivel, estado.fase_atual, estado.usar_stitch);
@@ -177,6 +179,8 @@ ${estadoFile.content}
177
179
  estado.aguardando_aprovacao = false;
178
180
  estado.motivo_bloqueio = undefined;
179
181
  estado.score_bloqueado = undefined;
182
+ // V6 Sprint 2: Desativar modo compulsório ao rejeitar também
183
+ estado.em_estado_compulsorio = false;
180
184
  // Serializar estado
181
185
  const estadoFile = serializarEstado(estado);
182
186
  const faseAtualRej = getFaseComStitch(estado.nivel, estado.fase_atual, estado.usar_stitch);
@@ -1 +1 @@
1
- {"version":3,"file":"aprovar-gate.js","sourceRoot":"","sources":["../../src/tools/aprovar-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aprovar-gate.js","sourceRoot":"","sources":["../../src/tools/aprovar-gate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"contexto.d.ts","sourceRoot":"","sources":["../../src/tools/contexto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AAgBnE,UAAU,YAAY;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAuLtE;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;CAa1B,CAAC"}
1
+ {"version":3,"file":"contexto.d.ts","sourceRoot":"","sources":["../../src/tools/contexto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AAiBnE,UAAU,YAAY;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAkOtE;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;CAa1B,CAAC"}
@@ -10,6 +10,7 @@ import { formatError, embedAllMetadata } from "../utils/response-formatter.js";
10
10
  import { withStructuredContent } from "../services/structured-content.service.js";
11
11
  import { ContentResolverService } from "../services/content-resolver.service.js";
12
12
  import { SkillLoaderService } from "../services/skill-loader.service.js";
13
+ import { KnowledgeBase } from "../core/knowledge/KnowledgeBase.js";
13
14
  /**
14
15
  * Tool: contexto
15
16
  * Retorna contexto acumulado do projeto para injeção em prompts (modo stateless)
@@ -49,6 +50,45 @@ export async function contexto(args) {
49
50
  .join("\n");
50
51
  // Identificar stack e modelo (se disponíveis nas fases anteriores)
51
52
  const fasesCompletas = estado.gates_validados.map(num => getFase(estado.nivel, num)?.nome).join(", ");
53
+ // v6.3 S3.3: Carregar ADRs e decisões acumuladas do KnowledgeBase
54
+ let knowledgeSection = "";
55
+ try {
56
+ const kb = new KnowledgeBase(diretorio);
57
+ const [adrs, decisions] = await Promise.all([
58
+ kb.listByType('adr'),
59
+ kb.listByType('decision'),
60
+ ]);
61
+ const partes = [];
62
+ if (adrs.length > 0) {
63
+ partes.push(`## 📚 Decisões Arquiteturais (ADRs)\n`);
64
+ partes.push(`> ${adrs.length} ADR(s) registrado(s) ao longo do projeto.\n`);
65
+ adrs.slice(0, 10).forEach(adr => {
66
+ const content = adr.content;
67
+ const faseInfo = getFase(estado.nivel, adr.metadata.fase);
68
+ partes.push(`**${adr.id}** _(Fase ${adr.metadata.fase}: ${faseInfo?.nome || '?'})_`);
69
+ partes.push(`> ${content?.decision || 'Decisão não disponível'}\n`);
70
+ });
71
+ if (adrs.length > 10) {
72
+ partes.push(`_... e mais ${adrs.length - 10} ADR(s). Consulte \`.maestro/adrs/\` para ver todos._\n`);
73
+ }
74
+ }
75
+ if (decisions.length > 0) {
76
+ partes.push(`## 📌 Decisões Técnicas\n`);
77
+ decisions.slice(0, 5).forEach(d => {
78
+ const content = d.content;
79
+ partes.push(`- **${d.id}**: ${content?.action || d.id}`);
80
+ if (content?.reason)
81
+ partes.push(` _Motivo: ${content.reason}_`);
82
+ });
83
+ partes.push('');
84
+ }
85
+ if (partes.length > 0) {
86
+ knowledgeSection = partes.join('\n');
87
+ }
88
+ }
89
+ catch {
90
+ // KnowledgeBase é best-effort
91
+ }
52
92
  // v6.0 (P13): Carregar conteúdo real da skill ANTES do template
53
93
  let skillInjectionContent = "";
54
94
  if (faseAtual) {
@@ -143,6 +183,7 @@ ${fluxo.fases.map(f => {
143
183
  return `${status} **Fase ${f.numero}**: ${f.nome}`;
144
184
  }).join("\n")}
145
185
 
186
+ ${knowledgeSection ? `\n${knowledgeSection}\n` : ""}
146
187
  ---
147
188
 
148
189
  *Use este contexto para manter consistência entre as fases do projeto.*
@@ -1 +1 @@
1
- {"version":3,"file":"contexto.js","sourceRoot":"","sources":["../../src/tools/contexto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contexto.js","sourceRoot":"","sources":["../../src/tools/contexto.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"proximo.d.ts","sourceRoot":"","sources":["../../src/tools/proximo.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AA2BnE,UAAU,WAAW;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAuBD;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAw5BpE;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BzB,CAAC"}
1
+ {"version":3,"file":"proximo.d.ts","sourceRoot":"","sources":["../../src/tools/proximo.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AAmCnE,UAAU,WAAW;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAyGD;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAkhCpE;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BzB,CAAC"}
@@ -3,17 +3,15 @@ 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
17
  import { ContentResolverService } from "../services/content-resolver.service.js";
@@ -24,6 +22,81 @@ import { getSpecialistQuestions } from "../handlers/specialist-phase-handler.js"
24
22
  import { resolverPathEntregavel, listarPathsEsperados } from "../utils/entregavel-path.js"; // v5.5.0
25
23
  import { readFile } from "fs/promises";
26
24
  import { isPrototypePhase } from "../handlers/prototype-phase-handler.js"; // v9.0
25
+ // v6.3 S5.1: Autonomia calibrada
26
+ import { DecisionEngine } from "../core/decision/DecisionEngine.js";
27
+ // V6 Sprint 4+5: Gate orientation e watcher de entregáveis
28
+ import { generateGateOrientationDoc } from "../utils/gate-orientation.js";
29
+ import { startFileWatcher, stopFileWatcher } from "../services/watcher.service.js";
30
+ import { RiskEvaluator } from "../core/risk/RiskEvaluator.js";
31
+ /**
32
+ * v6.3 S5.2-S5.3: Avalia autonomia para o avanço de fase usando RiskEvaluator + DecisionEngine.
33
+ * Retorna null se pode prosseguir, ou ToolResult de bloqueio se requer aprovação humana.
34
+ */
35
+ async function avaliarAutonomia(estado, nomeFase, diretorio, autoFlow) {
36
+ if (autoFlow)
37
+ return null; // Modo automático: sempre passa direto
38
+ try {
39
+ const riskEvaluator = new RiskEvaluator(diretorio);
40
+ const decisionEngine = new DecisionEngine();
41
+ // Avaliar risco do avanço de fase
42
+ const riskInfo = await riskEvaluator.evaluate(`advance-phase-${nomeFase}`, {
43
+ filesAffected: 1,
44
+ hasTests: estado.gates_validados.length > 0,
45
+ });
46
+ // Mapear nível do RiskEvaluator para DecisionEngine
47
+ const riskMap = {
48
+ SAFE: 'baixo', LOW: 'baixo', MEDIUM: 'medio', HIGH: 'alto', DANGEROUS: 'critico',
49
+ };
50
+ const decisionRisk = riskMap[riskInfo.level] ?? 'medio';
51
+ const decision = await decisionEngine.evaluate({
52
+ operation: `advance-phase-${nomeFase}`,
53
+ riskLevel: decisionRisk,
54
+ context: {
55
+ fase: estado.fase_atual,
56
+ hasHistoricalMatch: estado.gates_validados.length > 0,
57
+ matchesKnownPattern: true,
58
+ isNovelOperation: estado.fase_atual === 1,
59
+ hasFullContext: !!nomeFase,
60
+ },
61
+ });
62
+ // v6.3 S5.4: Só bloqueia em risco crítico / human_only
63
+ if (decision.action === 'human_only') {
64
+ return {
65
+ content: [{
66
+ type: "text",
67
+ text: `# ✋ Aprovação Necessária — Autonomia Calibrada (v6.3)
68
+
69
+ O sistema avaliou que esta operação requer aprovação explícita do usuário.
70
+
71
+ | Fator | Valor |
72
+ |-------|-------|
73
+ | **Fase** | ${estado.fase_atual} — ${nomeFase} |
74
+ | **Risco** | ${riskInfo.level} (score: ${riskInfo.score}) |
75
+ | **Confiança da IA** | ${Math.round(decision.confidence * 100)}% |
76
+
77
+ ## Fatores de Risco Detectados
78
+ ${riskInfo.factors.map(f => `- **${f.name}** (peso: ${f.weight}) — ${f.description}`).join('\n')}
79
+
80
+ ## Raciocínio
81
+ \`\`\`
82
+ ${decision.reasoning}
83
+ \`\`\`
84
+
85
+ > 🔐 Para prosseguir, confirme: **"Confirmo o avanço da fase ${estado.fase_atual}"**
86
+ > Ou use \`auto_flow: true\` para modo automático sem checagens de risco.
87
+ `,
88
+ }],
89
+ };
90
+ }
91
+ // Para outros níveis, apenas loga (não bloqueia)
92
+ console.log(`[Autonomia v6.3] fase=${estado.fase_atual} nome=${nomeFase} confianca=${Math.round(decision.confidence * 100)}% risco=${riskInfo.level} acao=${decision.action}`);
93
+ }
94
+ catch (err) {
95
+ // Best-effort — nunca bloqueia o fluxo
96
+ console.warn('[Autonomia v6.3] Falha na avaliação (non-blocking):', err);
97
+ }
98
+ return null;
99
+ }
27
100
  /**
28
101
  * Calcula score de qualidade
29
102
  */
@@ -258,6 +331,10 @@ ${instrucoesSkill}
258
331
  // v5.5.0: Após validação, entregavel é garantidamente string não-vazia
259
332
  // TypeScript assertion para evitar erros de tipo
260
333
  const entregavelValidado = entregavel;
334
+ // v6.3 S5.3: Avaliação de autonomia — RiskEvaluator + DecisionEngine
335
+ const autonomiaBlock = await avaliarAutonomia(estado, faseAtualInfo?.nome ?? `Fase ${estado.fase_atual}`, diretorio, args.auto_flow ?? false);
336
+ if (autonomiaBlock)
337
+ return autonomiaBlock;
261
338
  // Verificar se há bloqueio de aprovação pendente (Gate)
262
339
  if (estado.aguardando_aprovacao) {
263
340
  // v5.5.0: Incluir instruções de correção no bloqueio
@@ -415,11 +492,11 @@ Inclua no MESMO prompt qualquer ajuste de domínio/stack ou integrações críti
415
492
  isError: true,
416
493
  };
417
494
  }
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)
495
+ // v6.0 Sprint 5: Enforcement de skill + template + checklist antes de avançar
496
+ // Verificação obrigatória em TODOS os modos (incluindo auto_flow)
420
497
  const ideDetectada = detectIDE(diretorio) || 'windsurf';
421
498
  const skillObrigatoria = getSkillParaFase(faseAtual.nome);
422
- if (skillObrigatoria && !args.auto_flow) {
499
+ if (skillObrigatoria) {
423
500
  const skillOk = await verificarSkillCarregada(diretorio, skillObrigatoria, ideDetectada).catch(() => false);
424
501
  if (!skillOk) {
425
502
  return {
@@ -441,48 +518,75 @@ Carregue e leia a skill antes de gerar o entregável:
441
518
  };
442
519
  }
443
520
  }
444
- // Tentar validação com template (novo sistema inteligente)
445
- const diretorioContent = getServerContentRoot();
521
+ // v6.1 Correção 1: Usar validateDeliverable() ao invés de validate()
522
+ // O validate() aplicava regras de TypeScript em documentos Markdown — ineficaz.
523
+ // validateDeliverable() valida conteúdo semântico por fase: seções, gate checklist, tamanho.
446
524
  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
- };
525
+ console.log(`[proximo] Iniciando validateDeliverable (fase: ${faseAtual.nome}, tier: ${tier})`);
526
+ const { ValidationPipeline } = await import("../core/validation/ValidationPipeline.js");
527
+ const validationPipeline = new ValidationPipeline();
528
+ let validationResult;
529
+ try {
530
+ validationResult = await validationPipeline.validateDeliverable(entregavelValidado, faseAtual.nome, tier, faseAtual.gate_checklist || []);
474
531
  }
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);
532
+ catch (error) {
533
+ console.error('[proximo] Erro ao executar validateDeliverable:', error);
534
+ return {
535
+ content: [{
536
+ type: "text",
537
+ text: `# Erro na Validação do Entregável
538
+
539
+ Ocorreu um erro ao validar o entregável da fase **${faseAtual.nome}**.
540
+
541
+ **Erro:** ${error instanceof Error ? error.message : String(error)}
542
+
543
+ Por favor, verifique:
544
+ 1. O entregável está formatado corretamente em Markdown?
545
+ 2. O conteúdo segue o template da fase?
546
+ 3. Todos os itens do gate checklist estão evidenciados?
547
+
548
+ Se o erro persistir, contate o suporte técnico.`,
549
+ }],
550
+ isError: true,
551
+ };
481
552
  }
553
+ const qualityScore = validationResult.overallScore;
554
+ // Converter resultado para formato compatível com mensagens de erro
555
+ const gateResultado = {
556
+ valido: validationResult.passed,
557
+ itens_validados: validationResult.results
558
+ .filter(r => r.passed)
559
+ .map(r => `${r.layer}: ${r.score.toFixed(0)}%`),
560
+ itens_pendentes: validationResult.results
561
+ .filter(r => !r.passed)
562
+ .flatMap(r => r.issues.map(i => `[${r.layer}] ${i.message}`)),
563
+ sugestoes: validationResult.recommendations
564
+ };
565
+ const estruturaResult = {
566
+ valido: validationResult.passed,
567
+ score: qualityScore,
568
+ secoes_encontradas: validationResult.results
569
+ .filter(r => r.passed)
570
+ .map(r => r.layer),
571
+ secoes_faltando: validationResult.results
572
+ .filter(r => !r.passed)
573
+ .map(r => r.layer),
574
+ tamanho_ok: true,
575
+ feedback: validationResult.recommendations
576
+ };
577
+ console.log(`[proximo] validateDeliverable completo — Score: ${qualityScore}/100, Passou: ${validationResult.passed}`);
482
578
  // Score < 50: BLOQUEAR com instruções detalhadas de correção
483
579
  if (qualityScore < 50) {
580
+ // V6 Sprint 2: Ativar modo compulsório também no score < 50
581
+ estado.em_estado_compulsorio = true;
582
+ estado.aguardando_aprovacao = false; // Score < 50 não aguarda aprovação — é bloqueio total
583
+ try {
584
+ await saveFile(`${diretorio}/.maestro/estado.json`, serializarEstado(estado).content);
585
+ }
586
+ catch { /* silencioso */ }
484
587
  const ideParaBloqueio = detectIDE(diretorio) || 'windsurf';
485
- const feedbackBloqueio = gerarInstrucaoCorrecao(faseAtual.nome, qualityScore, gateResultado.itens_validados || [], gateResultado.itens_pendentes || [], gateResultado.sugestoes || [], estruturaResult.secoes_faltando || [], ideParaBloqueio);
588
+ 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
589
+ );
486
590
  // Feedback de leitura do disco
487
591
  const feedbackLeituraBloqueio = entregavelLidoDoDisco && caminhoResolvido
488
592
  ? `> 📄 **Entregável lido de:** \`${caminhoResolvido}\`\n\n`
@@ -512,6 +616,8 @@ ${feedbackBloqueio}
512
616
  estado.aguardando_aprovacao = true;
513
617
  estado.motivo_bloqueio = "Score abaixo de 70 - requer aprovação do usuário";
514
618
  estado.score_bloqueado = qualityScore;
619
+ // V6 Sprint 2: Ativar modo compulsório — bloqueia divagação da IA
620
+ estado.em_estado_compulsorio = true;
515
621
  // Serializar estado bloqueado
516
622
  const estadoBloqueado = serializarEstado(estado);
517
623
  // v5.3: Persistência direta para estado bloqueado
@@ -523,7 +629,8 @@ ${feedbackBloqueio}
523
629
  }
524
630
  // v5.5.0: Feedback instrutor com templates e checklists
525
631
  const ideParaAprovacao = detectIDE(diretorio) || 'windsurf';
526
- const feedbackAprovacao = gerarInstrucaoCorrecao(faseAtual.nome, qualityScore, gateResultado.itens_validados || [], gateResultado.itens_pendentes || [], gateResultado.sugestoes || [], estruturaResult.secoes_faltando || [], ideParaAprovacao);
632
+ 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
633
+ );
527
634
  // Feedback de leitura do disco
528
635
  const feedbackLeituraAprovacao = entregavelLidoDoDisco && caminhoResolvido
529
636
  ? `> 📄 **Entregável lido de:** \`${caminhoResolvido}\`\n\n`
@@ -570,6 +677,36 @@ O projeto foi **bloqueado** aguardando decisão do usuário:
570
677
  });
571
678
  // Atualizar estado com entregável registrado
572
679
  estado.entregaveis[`fase_${estado.fase_atual}`] = caminhoArquivo;
680
+ // V6 Sprint 2: Garantir que ga saiu do modo compulsório ao avançar com sucesso
681
+ estado.em_estado_compulsorio = false;
682
+ estado.aguardando_aprovacao = false;
683
+ estado.motivo_bloqueio = undefined;
684
+ estado.score_bloqueado = undefined;
685
+ // V6 Sprint 6: PHASE_TYPE_MAP — classifica o tipo da PROXIMA fase para Smart Auto-Flow
686
+ // Nomes canônicos extraídos de flows/types.ts (FLUXO_SIMPLES, FLUXO_MEDIO, FLUXO_COMPLEXO, FASE_STITCH)
687
+ const PHASE_TYPE_MAP = {
688
+ // --- input_required: fase de coleta com o usuário ---
689
+ 'Produto': 'input_required',
690
+ // --- derived: fases que derivam de fases anteriores, sem dúvidas do usuário ---
691
+ 'Requisitos': 'derived',
692
+ 'UX Design': 'derived',
693
+ 'Modelo de Domínio': 'derived',
694
+ 'Arquitetura': 'derived',
695
+ 'Arquitetura Avançada': 'derived',
696
+ 'Backlog': 'derived',
697
+ 'Contrato API': 'derived',
698
+ 'Prototipagem': 'derived', // Sprint Stitch: deriva do Design Doc
699
+ // --- technical: implementação pura, sem perguntas conceituais ---
700
+ 'Banco de Dados': 'technical',
701
+ 'Segurança': 'technical',
702
+ 'Testes': 'technical',
703
+ 'Performance': 'technical',
704
+ 'Observabilidade': 'technical',
705
+ 'Frontend': 'technical',
706
+ 'Backend': 'technical',
707
+ 'Integração': 'technical',
708
+ 'Deploy Final': 'technical',
709
+ };
573
710
  // Preparar/atualizar resumo
574
711
  let resumo;
575
712
  if (args.resumo_json) {
@@ -757,6 +894,42 @@ ${criterios.slice(0, 5).map(c => `- ${c}`).join("\n")}
757
894
  catch (error) {
758
895
  console.warn('Aviso: Não foi possível atualizar histórico/SYSTEM.md:', error);
759
896
  }
897
+ // V6 Sprint 4: Gerar guia de Gate da PRÓXIMA fase (TDD Invertido)
898
+ // Cria docs/fase-XX/.orientacoes-gate.md com os critérios exatos de validação
899
+ if (proximaFase) {
900
+ try {
901
+ const gateOrientationPath = await generateGateOrientationDoc(diretorio, proximaFase.nome, estado.fase_atual);
902
+ // Atualizar flow_phase_type da próxima fase no estado (Sprint 6)
903
+ estado.flow_phase_type = PHASE_TYPE_MAP[proximaFase.nome] ?? 'derived';
904
+ if (gateOrientationPath) {
905
+ console.log(`[proximo] Guia de Gate gerado: ${gateOrientationPath}`);
906
+ }
907
+ }
908
+ catch (error) {
909
+ console.warn('[proximo] Falha ao gerar orientação de gate (não crítico):', error);
910
+ }
911
+ }
912
+ // V6 Sprint 5: Gerenciar ciclo de vida do watcher de entregáveis
913
+ // Parar watcher da fase anterior (evita leak de file handles)
914
+ stopFileWatcher(diretorio);
915
+ // Iniciar watcher para o PRÓXIMO entregável assim que a fase avançar
916
+ if (proximaFase) {
917
+ const proximaFaseDirName = `fase-${estado.fase_atual.toString().padStart(2, '0')}-${proximaFase.nome.toLowerCase().replace(/\s/g, '-')}`;
918
+ const proximoEntregavelPath = `${diretorio}/docs/${proximaFaseDirName}/${proximaFase.entregavel_esperado}`;
919
+ startFileWatcher({
920
+ filePath: proximoEntregavelPath,
921
+ diretorio,
922
+ faseNome: proximaFase.nome,
923
+ tier: estado.tier_gate || 'base',
924
+ gateChecklist: proximaFase.gate_checklist || [],
925
+ onValidationResult: (score, feedback, filePath) => {
926
+ // Log no console — o usuário será notificado via IDE ao chamar executar
927
+ console.log(`\n==========================================\n[watcher] ${proximaFase.nome} | Score: ${score} | ${filePath}`);
928
+ if (score >= 0)
929
+ console.log(`[watcher] Feedback:\n${feedback}\n==========================================\n`);
930
+ }
931
+ }).catch(err => console.warn('[watcher] Não foi possível iniciar o watcher:', err));
932
+ }
760
933
  // v6.0: Bloco de interrupção pós-PRD removido — classificação progressiva já cuida disso
761
934
  // v5.5.0: Feedback visual quando entregável foi lido do disco
762
935
  const feedbackLeitura = entregavelLidoDoDisco && caminhoResolvido
@@ -786,19 +959,13 @@ ${criterios.slice(0, 5).map(c => `- ${c}`).join("\n")}
786
959
  catch (error) {
787
960
  console.warn("[proximo] Falha ao carregar skill ativa, usando fallback:", error);
788
961
  }
789
- // Fallback: referência textual (compatibilidade v4)
962
+ // Fallback: referência textual com comando de hydration (V6 Sprint 3)
790
963
  const ide = estado.ide || detectIDE(diretorio) || 'windsurf';
791
964
  return `
792
965
 
793
966
  ## 🤖 Próximo Especialista
794
967
 
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
968
+ ${formatSkillHydrationCommand(proximaSkill, ide)}
802
969
  `;
803
970
  })();
804
971
  const resposta = `# ✅ Fase ${faseAnterior} Concluída!
@@ -826,6 +993,9 @@ ${proximaSkillInfo}
826
993
  ---
827
994
 
828
995
  `;
996
+ // V6 Sprint 6: Instrução de continuidade autônoma
997
+ // Retorna vazio para fases 'input_required' (especialista faz as perguntas naturalmente)
998
+ const continuidade = gerarInstrucaoContinuidade(diretorio, faseAnterior, proximaFase?.nome ?? '', estado.flow_phase_type ?? 'derived');
829
999
  // v5.3: Persistência direta — salvar todos os arquivos via fs
830
1000
  try {
831
1001
  await saveMultipleFiles(filesToSave);
@@ -838,7 +1008,7 @@ ${proximaSkillInfo}
838
1008
  // v5: next_action e progress são calculados automaticamente pelo middleware flow-engine.middleware.ts
839
1009
  // Mantemos apenas specialist_persona e estado_atualizado para o middleware processar
840
1010
  return {
841
- content: [{ type: "text", text: feedbackLeitura + resposta + confirmacao }],
1011
+ content: [{ type: "text", text: feedbackLeitura + resposta + confirmacao + continuidade }],
842
1012
  estado_atualizado: estadoFile.content,
843
1013
  specialist_persona: specialist || undefined,
844
1014
  // next_action e progress serão adicionados pelo middleware withFlowEngine