@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.
- package/README.md +68 -83
- package/dist/content/rules/RULES.md +14 -0
- package/dist/core/metrics/MetricsCollector.d.ts +28 -12
- package/dist/core/metrics/MetricsCollector.d.ts.map +1 -1
- package/dist/core/metrics/MetricsCollector.js +151 -12
- package/dist/core/metrics/MetricsCollector.js.map +1 -1
- package/dist/core/validation/ValidationPipeline.d.ts +24 -2
- package/dist/core/validation/ValidationPipeline.d.ts.map +1 -1
- package/dist/core/validation/ValidationPipeline.js +46 -2
- package/dist/core/validation/ValidationPipeline.js.map +1 -1
- package/dist/core/validation/layers/DeliverableValidator.d.ts +13 -0
- package/dist/core/validation/layers/DeliverableValidator.d.ts.map +1 -0
- package/dist/core/validation/layers/DeliverableValidator.js +276 -0
- package/dist/core/validation/layers/DeliverableValidator.js.map +1 -0
- package/dist/flows/onboarding-orchestrator.js +5 -5
- package/dist/flows/onboarding-orchestrator.js.map +1 -1
- package/dist/gates/contextual-recommender.d.ts.map +1 -1
- package/dist/gates/contextual-recommender.js +260 -1
- package/dist/gates/contextual-recommender.js.map +1 -1
- package/dist/gates/validator.d.ts +5 -6
- package/dist/gates/validator.d.ts.map +1 -1
- package/dist/gates/validator.js +9 -6
- package/dist/gates/validator.js.map +1 -1
- package/dist/handlers/shared-prompt-handler.d.ts.map +1 -1
- package/dist/handlers/shared-prompt-handler.js +15 -14
- package/dist/handlers/shared-prompt-handler.js.map +1 -1
- package/dist/middleware/adr-generation.middleware.d.ts +5 -0
- package/dist/middleware/adr-generation.middleware.d.ts.map +1 -0
- package/dist/middleware/adr-generation.middleware.js +214 -0
- package/dist/middleware/adr-generation.middleware.js.map +1 -0
- package/dist/middleware/flow-engine.middleware.d.ts +5 -3
- package/dist/middleware/flow-engine.middleware.d.ts.map +1 -1
- package/dist/middleware/flow-engine.middleware.js +18 -10
- package/dist/middleware/flow-engine.middleware.js.map +1 -1
- package/dist/middleware/index.d.ts +18 -11
- package/dist/middleware/index.d.ts.map +1 -1
- package/dist/middleware/index.js +24 -11
- package/dist/middleware/index.js.map +1 -1
- package/dist/middleware/orchestration-pipeline.middleware.d.ts +42 -0
- package/dist/middleware/orchestration-pipeline.middleware.d.ts.map +1 -0
- package/dist/middleware/orchestration-pipeline.middleware.js +57 -0
- package/dist/middleware/orchestration-pipeline.middleware.js.map +1 -0
- package/dist/middleware/skill-injection.middleware.d.ts.map +1 -1
- package/dist/middleware/skill-injection.middleware.js +6 -9
- package/dist/middleware/skill-injection.middleware.js.map +1 -1
- package/dist/middleware/validation.middleware.d.ts +11 -0
- package/dist/middleware/validation.middleware.d.ts.map +1 -1
- package/dist/middleware/validation.middleware.js +64 -4
- package/dist/middleware/validation.middleware.js.map +1 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +20 -14
- package/dist/router.js.map +1 -1
- package/dist/services/flow-engine.d.ts +1 -0
- package/dist/services/flow-engine.d.ts.map +1 -1
- package/dist/services/flow-engine.js +22 -10
- package/dist/services/flow-engine.js.map +1 -1
- package/dist/services/watcher.service.d.ts +45 -0
- package/dist/services/watcher.service.d.ts.map +1 -0
- package/dist/services/watcher.service.js +106 -0
- package/dist/services/watcher.service.js.map +1 -0
- package/dist/state/context.d.ts +15 -4
- package/dist/state/context.d.ts.map +1 -1
- package/dist/state/context.js +36 -9
- package/dist/state/context.js.map +1 -1
- package/dist/state/storage.d.ts.map +1 -1
- package/dist/state/storage.js +6 -0
- package/dist/state/storage.js.map +1 -1
- package/dist/tests/aprovar-gate.test.d.ts +2 -0
- package/dist/tests/aprovar-gate.test.d.ts.map +1 -0
- package/dist/tests/aprovar-gate.test.js +113 -0
- package/dist/tests/aprovar-gate.test.js.map +1 -0
- package/dist/tests/deliverable-validator.test.d.ts +12 -0
- package/dist/tests/deliverable-validator.test.d.ts.map +1 -0
- package/dist/tests/deliverable-validator.test.js +214 -0
- package/dist/tests/deliverable-validator.test.js.map +1 -0
- package/dist/tests/flow-engine.test.d.ts +2 -0
- package/dist/tests/flow-engine.test.d.ts.map +1 -0
- package/dist/tests/flow-engine.test.js +85 -0
- package/dist/tests/flow-engine.test.js.map +1 -0
- package/dist/tests/gate-orientation.test.d.ts +2 -0
- package/dist/tests/gate-orientation.test.d.ts.map +1 -0
- package/dist/tests/gate-orientation.test.js +59 -0
- package/dist/tests/gate-orientation.test.js.map +1 -0
- package/dist/tests/middleware.test.js +30 -4
- package/dist/tests/middleware.test.js.map +1 -1
- package/dist/tests/watcher.service.test.d.ts +2 -0
- package/dist/tests/watcher.service.test.d.ts.map +1 -0
- package/dist/tests/watcher.service.test.js +119 -0
- package/dist/tests/watcher.service.test.js.map +1 -0
- package/dist/tools/aprovar-gate.d.ts.map +1 -1
- package/dist/tools/aprovar-gate.js +4 -0
- package/dist/tools/aprovar-gate.js.map +1 -1
- package/dist/tools/contexto.d.ts.map +1 -1
- package/dist/tools/contexto.js +41 -0
- package/dist/tools/contexto.js.map +1 -1
- package/dist/tools/iniciar-projeto.d.ts.map +1 -1
- package/dist/tools/iniciar-projeto.js +6 -40
- package/dist/tools/iniciar-projeto.js.map +1 -1
- package/dist/tools/maestro-tool.d.ts.map +1 -1
- package/dist/tools/maestro-tool.js +34 -14
- package/dist/tools/maestro-tool.js.map +1 -1
- package/dist/tools/proximo.d.ts.map +1 -1
- package/dist/tools/proximo.js +224 -71
- package/dist/tools/proximo.js.map +1 -1
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +27 -0
- package/dist/tools/status.js.map +1 -1
- package/dist/tools/validar-gate.d.ts +8 -1
- package/dist/tools/validar-gate.d.ts.map +1 -1
- package/dist/tools/validar-gate.js +147 -99
- package/dist/tools/validar-gate.js.map +1 -1
- package/dist/types/config.d.ts +2 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -1
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/gate-orientation.d.ts +11 -0
- package/dist/utils/gate-orientation.d.ts.map +1 -0
- package/dist/utils/gate-orientation.js +64 -0
- package/dist/utils/gate-orientation.js.map +1 -0
- package/dist/utils/ide-paths.d.ts +11 -0
- package/dist/utils/ide-paths.d.ts.map +1 -1
- package/dist/utils/ide-paths.js +27 -0
- package/dist/utils/ide-paths.js.map +1 -1
- package/dist/utils/instructions.d.ts +6 -1
- package/dist/utils/instructions.d.ts.map +1 -1
- package/dist/utils/instructions.js +32 -1
- package/dist/utils/instructions.js.map +1 -1
- package/package.json +2 -1
- package/dist/gates/compatibility-wrapper.d.ts +0 -139
- package/dist/gates/compatibility-wrapper.d.ts.map +0 -1
- package/dist/gates/compatibility-wrapper.js +0 -362
- package/dist/gates/compatibility-wrapper.js.map +0 -1
- package/dist/gates/unified-validator.d.ts +0 -67
- package/dist/gates/unified-validator.d.ts.map +0 -1
- package/dist/gates/unified-validator.js +0 -234
- package/dist/gates/unified-validator.js.map +0 -1
|
@@ -1,60 +1,149 @@
|
|
|
1
1
|
import { parsearEstado } from "../state/storage.js";
|
|
2
2
|
import { getFase } from "../flows/types.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { resolveProjectPath, getServerContentRoot } from "../utils/files.js";
|
|
3
|
+
import { IntelligentGateEngine } from "../gates/intelligent-gate-engine.js";
|
|
4
|
+
import { validarGate as validarGateLegacy, formatarResultadoGate } from "../gates/validator.js";
|
|
5
|
+
import { resolveProjectPath } from "../utils/files.js";
|
|
7
6
|
import { setCurrentDirectory } from "../state/context.js";
|
|
7
|
+
import { join } from "path";
|
|
8
8
|
import { getSkillParaFase } from "../utils/prompt-mapper.js";
|
|
9
9
|
import { getSkillResourcePath, detectIDE } from "../utils/ide-paths.js";
|
|
10
10
|
import { readFile } from "fs/promises";
|
|
11
|
-
import { join } from "path";
|
|
12
11
|
import { getSpecialistPersona } from "../services/specialist.service.js";
|
|
12
|
+
/** Mapeia tipo de artefato do estado para tipo de projeto do engine */
|
|
13
|
+
function mapProjectType(tipoArtefato) {
|
|
14
|
+
switch (tipoArtefato) {
|
|
15
|
+
case 'poc': return 'poc';
|
|
16
|
+
case 'product': return 'product';
|
|
17
|
+
case 'script': return 'poc';
|
|
18
|
+
case 'internal': return 'internal';
|
|
19
|
+
default: return 'internal';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/** Mapeia tier do estado para tier do engine */
|
|
23
|
+
function mapTier(tier) {
|
|
24
|
+
if (tier === 'essencial' || tier === 'base' || tier === 'avancado')
|
|
25
|
+
return tier;
|
|
26
|
+
return 'base';
|
|
27
|
+
}
|
|
28
|
+
/** Ícone e label para cada nível de maturidade */
|
|
29
|
+
const MATURITY_LABELS = {
|
|
30
|
+
1: { icon: '🌱', label: 'Conceito Inicial' },
|
|
31
|
+
2: { icon: '🔨', label: 'Estrutura Básica' },
|
|
32
|
+
3: { icon: '✅', label: 'Padrão Profissional' },
|
|
33
|
+
4: { icon: '⭐', label: 'Alta Qualidade' },
|
|
34
|
+
5: { icon: '🏆', label: 'Exemplar' },
|
|
35
|
+
};
|
|
36
|
+
/** Formata resultado do IntelligentGateEngine em texto legível */
|
|
37
|
+
function formatIntelligentResult(result, faseNumero, faseNome, tier) {
|
|
38
|
+
const maturity = MATURITY_LABELS[result.maturityLevel] ?? MATURITY_LABELS[1];
|
|
39
|
+
const { summary, validationResult, adaptiveScore } = result;
|
|
40
|
+
let text = `# Gate da Fase ${faseNumero}: ${faseNome}\n\n`;
|
|
41
|
+
// Status principal
|
|
42
|
+
text += `## ${summary.statusIcon} ${summary.title}\n\n`;
|
|
43
|
+
text += `${summary.mainMessage}\n\n`;
|
|
44
|
+
// Score e nível de maturidade
|
|
45
|
+
text += `## 📊 Avaliação\n\n`;
|
|
46
|
+
text += `| Dimensão | Score |\n|----------|-------|\n`;
|
|
47
|
+
text += `| **Score Geral** | **${result.overallScore}/100** |\n`;
|
|
48
|
+
text += `| Semântica | ${adaptiveScore.components.semantic}/100 |\n`;
|
|
49
|
+
text += `| Completude | ${adaptiveScore.components.completeness}/100 |\n`;
|
|
50
|
+
text += `| Qualidade | ${adaptiveScore.components.quality}/100 |\n`;
|
|
51
|
+
text += `| Estrutura | ${adaptiveScore.components.structure}/100 |\n\n`;
|
|
52
|
+
text += `**Nível de Maturidade:** ${maturity.icon} Nível ${result.maturityLevel} — ${maturity.label}\n`;
|
|
53
|
+
text += `**Tier de Validação:** ${tier}\n`;
|
|
54
|
+
text += `**Confiança:** ${Math.round(result.confidenceLevel * 100)}%\n\n`;
|
|
55
|
+
// Pontos fortes
|
|
56
|
+
if (summary.keyStrengths.length > 0) {
|
|
57
|
+
text += `## 💪 Pontos Fortes\n\n`;
|
|
58
|
+
summary.keyStrengths.forEach(s => { text += `- ${s}\n`; });
|
|
59
|
+
text += '\n';
|
|
60
|
+
}
|
|
61
|
+
// Bloqueadores críticos
|
|
62
|
+
if (validationResult.blockers.length > 0) {
|
|
63
|
+
text += `## 🔴 Bloqueadores Críticos\n\n`;
|
|
64
|
+
validationResult.blockers.forEach(b => {
|
|
65
|
+
text += `**${b.message}**\n`;
|
|
66
|
+
text += `> Como corrigir: ${b.howToFix}\n\n`;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
// Ações prioritárias
|
|
70
|
+
if (summary.priorityActions.length > 0) {
|
|
71
|
+
text += `## ⚡ Ações Prioritárias\n\n`;
|
|
72
|
+
summary.priorityActions.forEach((a, i) => { text += `${i + 1}. ${a}\n`; });
|
|
73
|
+
text += '\n';
|
|
74
|
+
}
|
|
75
|
+
// Recomendações inteligentes
|
|
76
|
+
const criticalRecs = validationResult.recommendations.filter(r => r.type === 'critical');
|
|
77
|
+
const improvRecs = validationResult.recommendations.filter(r => r.type === 'improvement').slice(0, 3);
|
|
78
|
+
if (criticalRecs.length > 0) {
|
|
79
|
+
text += `## 🔧 Melhorias Necessárias\n\n`;
|
|
80
|
+
criticalRecs.forEach(r => {
|
|
81
|
+
text += `**[${r.impact.toUpperCase()}] ${r.title}**`;
|
|
82
|
+
if (r.estimatedTimeMinutes)
|
|
83
|
+
text += ` _(~${r.estimatedTimeMinutes}min)_`;
|
|
84
|
+
text += `\n${r.description}\n`;
|
|
85
|
+
if (r.examples && r.examples.length > 0) {
|
|
86
|
+
text += `> Exemplo: ${r.examples[0]}\n`;
|
|
87
|
+
}
|
|
88
|
+
text += '\n';
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
if (improvRecs.length > 0) {
|
|
92
|
+
text += `## 💡 Sugestões de Melhoria\n\n`;
|
|
93
|
+
improvRecs.forEach(r => {
|
|
94
|
+
text += `- **${r.title}** _(esforço: ${r.effort})_: ${r.description}\n`;
|
|
95
|
+
});
|
|
96
|
+
text += '\n';
|
|
97
|
+
}
|
|
98
|
+
// Próximos passos
|
|
99
|
+
if (summary.nextSteps.length > 0) {
|
|
100
|
+
text += `## 🗺️ Próximos Passos\n\n`;
|
|
101
|
+
summary.nextSteps.forEach((s, i) => { text += `${i + 1}. ${s}\n`; });
|
|
102
|
+
text += '\n';
|
|
103
|
+
}
|
|
104
|
+
// Decisão final
|
|
105
|
+
if (result.canAdvance) {
|
|
106
|
+
text += `---\n✅ **Você pode avançar!** Use \`proximo(entregavel: "...", estado_json: "...", diretorio: "...")\` para ir para a próxima fase.`;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
text += `---\n⚠️ **Complete os itens pendentes** ou use \`proximo(entregavel: "...", estado_json: "...", confirmar_usuario: true)\` para forçar avanço.`;
|
|
110
|
+
}
|
|
111
|
+
return text;
|
|
112
|
+
}
|
|
113
|
+
/** Fallback para sistema legado quando engine falha */
|
|
114
|
+
function formatLegacyResult(resultado, faseNumero, faseNome) {
|
|
115
|
+
const resultadoFormatado = formatarResultadoGate(resultado);
|
|
116
|
+
let text = `# Gate da Fase ${faseNumero}: ${faseNome}\n\n`;
|
|
117
|
+
text += `## ⚠️ Validação Legada (Engine indisponível)\n\n`;
|
|
118
|
+
text += resultadoFormatado + '\n\n';
|
|
119
|
+
text += resultado.valido
|
|
120
|
+
? `✅ **Você pode avançar!** Use \`proximo(entregavel: "...", estado_json: "...", diretorio: "...")\` para ir para a próxima fase.`
|
|
121
|
+
: `⚠️ **Complete os itens pendentes** ou use \`proximo(entregavel: "...", estado_json: "...", confirmar_usuario: true)\` para forçar avanço.`;
|
|
122
|
+
return text;
|
|
123
|
+
}
|
|
13
124
|
/**
|
|
14
125
|
* Tool: validar_gate
|
|
15
|
-
*
|
|
126
|
+
* v6.3: Usa IntelligentGateEngine como sistema principal (com fallback legado automático)
|
|
16
127
|
*/
|
|
17
128
|
export async function validarGate(args) {
|
|
18
|
-
// Validar parâmetros
|
|
19
129
|
if (!args.estado_json) {
|
|
20
130
|
return {
|
|
21
131
|
content: [{
|
|
22
132
|
type: "text",
|
|
23
|
-
text: `# 📋 Validar Gate (Modo Stateless)
|
|
24
|
-
|
|
25
|
-
Para validar um gate, a IA deve:
|
|
26
|
-
1. Ler o arquivo \`.maestro/estado.json\` do projeto
|
|
27
|
-
2. Passar o conteúdo como parâmetro
|
|
28
|
-
|
|
29
|
-
**Uso:**
|
|
30
|
-
\`\`\`
|
|
31
|
-
validar_gate(
|
|
32
|
-
entregavel: "[conteúdo]",
|
|
33
|
-
estado_json: "...",
|
|
34
|
-
diretorio: "C:/projetos/meu-projeto"
|
|
35
|
-
)
|
|
36
|
-
\`\`\`
|
|
37
|
-
`,
|
|
133
|
+
text: `# 📋 Validar Gate (Modo Stateless)\n\nPara validar um gate, a IA deve:\n1. Ler o arquivo \`.maestro/estado.json\` do projeto\n2. Passar o conteúdo como parâmetro\n\n**Uso:**\n\`\`\`\nvalidar_gate(\n entregavel: "[conteúdo]",\n estado_json: "...",\n diretorio: "C:/projetos/meu-projeto"\n)\n\`\`\`\n`,
|
|
38
134
|
}],
|
|
39
135
|
};
|
|
40
136
|
}
|
|
41
137
|
if (!args.diretorio) {
|
|
42
138
|
return {
|
|
43
|
-
content: [{
|
|
44
|
-
type: "text",
|
|
45
|
-
text: "❌ **Erro**: Parâmetro `diretorio` é obrigatório.",
|
|
46
|
-
}],
|
|
139
|
+
content: [{ type: "text", text: "❌ **Erro**: Parâmetro `diretorio` é obrigatório." }],
|
|
47
140
|
isError: true,
|
|
48
141
|
};
|
|
49
142
|
}
|
|
50
|
-
// Parsear estado
|
|
51
143
|
const estado = parsearEstado(args.estado_json);
|
|
52
144
|
if (!estado) {
|
|
53
145
|
return {
|
|
54
|
-
content: [{
|
|
55
|
-
type: "text",
|
|
56
|
-
text: "❌ **Erro**: Não foi possível parsear o estado JSON.",
|
|
57
|
-
}],
|
|
146
|
+
content: [{ type: "text", text: "❌ **Erro**: Não foi possível parsear o estado JSON." }],
|
|
58
147
|
isError: true,
|
|
59
148
|
};
|
|
60
149
|
}
|
|
@@ -64,112 +153,71 @@ validar_gate(
|
|
|
64
153
|
const fase = getFase(estado.nivel, numeroFase);
|
|
65
154
|
if (!fase) {
|
|
66
155
|
return {
|
|
67
|
-
content: [{
|
|
68
|
-
type: "text",
|
|
69
|
-
text: `❌ **Erro**: Fase ${numeroFase} não encontrada.`,
|
|
70
|
-
}],
|
|
156
|
+
content: [{ type: "text", text: `❌ **Erro**: Fase ${numeroFase} não encontrada.` }],
|
|
71
157
|
isError: true,
|
|
72
158
|
};
|
|
73
159
|
}
|
|
74
160
|
// Buscar entregável automaticamente se não foi passado
|
|
75
161
|
let entregavel = args.entregavel;
|
|
76
162
|
if (!entregavel) {
|
|
77
|
-
// Tentar ler do arquivo de entregável da fase
|
|
78
|
-
// Compatibilidade: proximo() salva com chave "fase_X" e caminho completo
|
|
79
|
-
// Tentamos ambas as convenções para retrocompatibilidade
|
|
80
163
|
const chaveNova = `fase_${numeroFase}`;
|
|
81
164
|
const chaveLegacy = numeroFase.toString();
|
|
82
165
|
const caminhoOuNome = estado.entregaveis[chaveNova] || estado.entregaveis[chaveLegacy];
|
|
83
166
|
if (caminhoOuNome) {
|
|
84
167
|
try {
|
|
85
|
-
// Verificar se é caminho absoluto ou relativo completo (novo formato)
|
|
86
|
-
// ou apenas nome de arquivo (formato legacy)
|
|
87
168
|
let caminhoEntregavel;
|
|
88
169
|
if (caminhoOuNome.includes('/') || caminhoOuNome.includes('\\')) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
caminhoEntregavel = caminhoOuNome;
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
caminhoEntregavel = join(diretorio, caminhoOuNome);
|
|
96
|
-
}
|
|
170
|
+
caminhoEntregavel = caminhoOuNome.startsWith(diretorio)
|
|
171
|
+
? caminhoOuNome
|
|
172
|
+
: join(diretorio, caminhoOuNome);
|
|
97
173
|
}
|
|
98
174
|
else {
|
|
99
|
-
// Formato legacy: apenas nome do arquivo em .maestro/entregaveis/
|
|
100
175
|
caminhoEntregavel = join(diretorio, ".maestro", "entregaveis", caminhoOuNome);
|
|
101
176
|
}
|
|
102
177
|
entregavel = await readFile(caminhoEntregavel, "utf-8");
|
|
103
178
|
}
|
|
104
179
|
catch {
|
|
105
|
-
//
|
|
180
|
+
// Continua sem entregável
|
|
106
181
|
}
|
|
107
182
|
}
|
|
108
|
-
// Se ainda não tem entregável, mostrar checklist
|
|
109
183
|
if (!entregavel) {
|
|
110
|
-
const resposta = `# 📋 Gate da Fase ${numeroFase}: ${fase.nome}\n\n## ⚠️
|
|
111
|
-
return {
|
|
112
|
-
content: [{ type: "text", text: resposta }],
|
|
113
|
-
};
|
|
184
|
+
const resposta = `# 📋 Gate da Fase ${numeroFase}: ${fase.nome}\n\n## ⚠️ Nenhum Entregável Encontrado\n\nNenhum entregável encontrado para esta fase.\n\n## Checklist de Saída\n\n${fase.gate_checklist.map((item, i) => `${i + 1}. ${item}`).join("\n")}\n\n## 💡 Como Proceder\n\n1. Gere o entregável da fase usando os especialistas\n2. Salve com \`proximo()\` para validação automática\n3. Ou passe manualmente: \`validar_gate(entregavel: "...", estado_json: "...", diretorio: "...")\`\n`;
|
|
185
|
+
return { content: [{ type: "text", text: resposta }] };
|
|
114
186
|
}
|
|
115
187
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
`;
|
|
128
|
-
resposta += `## 🎯 Validação Baseada em Template\n\n`;
|
|
129
|
-
resposta += `**Template:** \`${resultado.skillNome}\`\n`;
|
|
130
|
-
resposta += `**Tier:** ${tier}\n\n`;
|
|
131
|
-
resposta += formatarResultadoValidacao(resultado, tier);
|
|
132
|
-
// Relatório de qualidade
|
|
133
|
-
if (resultado.qualidade) {
|
|
134
|
-
resposta += "\n" + gerarRelatorioQualidade(resultado.qualidade, tier);
|
|
135
|
-
const comparacao = compararComTier(resultado.qualidade, tier);
|
|
136
|
-
resposta += "\n" + comparacao.mensagem + "\n\n";
|
|
137
|
-
}
|
|
138
|
-
// Link para template
|
|
188
|
+
const tier = mapTier(estado.tier_gate);
|
|
189
|
+
const projectType = mapProjectType(estado.tipo_artefato);
|
|
190
|
+
// === SISTEMA PRINCIPAL: IntelligentGateEngine (v6.3) ===
|
|
191
|
+
let resposta;
|
|
192
|
+
let canAdvance;
|
|
193
|
+
try {
|
|
194
|
+
const engine = new IntelligentGateEngine();
|
|
195
|
+
const result = await engine.validateDeliverable(entregavel, fase, tier, projectType, { fallbackToLegacy: false, maxRecommendations: 6 });
|
|
196
|
+
resposta = formatIntelligentResult(result, numeroFase, fase.nome, tier);
|
|
197
|
+
canAdvance = result.canAdvance;
|
|
198
|
+
// Link para template da skill (mantido do sistema anterior)
|
|
139
199
|
const skillAtual = getSkillParaFase(fase.nome);
|
|
140
200
|
if (skillAtual) {
|
|
141
201
|
const ide = estado.ide || detectIDE(args.diretorio) || 'windsurf';
|
|
142
202
|
const templatesPath = getSkillResourcePath(skillAtual, 'templates', ide);
|
|
143
|
-
resposta +=
|
|
144
|
-
resposta += `**Localização:** \`${templatesPath}\`\n\n`;
|
|
145
|
-
resposta += `> 💡 Consulte o template para ver a estrutura completa esperada.\n\n`;
|
|
203
|
+
resposta += `\n\n## 📄 Template de Referência\n\n**Localização:** \`${templatesPath}\`\n\n> 💡 Consulte o template para ver a estrutura completa esperada.\n`;
|
|
146
204
|
}
|
|
147
|
-
resposta += resultado.valido
|
|
148
|
-
? "✅ **Você pode avançar!** Use `proximo(entregavel: \"...\", estado_json: \"...\")` para ir para a próxima fase."
|
|
149
|
-
: "⚠️ **Complete os itens pendentes** ou use `proximo(entregavel: \"...\", estado_json: \"...\", confirmar_usuario: true)` para forçar avanço.";
|
|
150
205
|
}
|
|
151
|
-
|
|
152
|
-
//
|
|
153
|
-
|
|
154
|
-
const
|
|
155
|
-
resposta =
|
|
156
|
-
|
|
157
|
-
resposta += resultadoFormatado + "\n\n";
|
|
206
|
+
catch (engineError) {
|
|
207
|
+
// === FALLBACK: Sistema legado ===
|
|
208
|
+
console.warn(`[validar_gate] IntelligentGateEngine falhou, usando fallback legado:`, engineError);
|
|
209
|
+
const resultado = validarGateLegacy(fase, entregavel);
|
|
210
|
+
resposta = formatLegacyResult(resultado, numeroFase, fase.nome);
|
|
211
|
+
canAdvance = resultado.valido;
|
|
158
212
|
const skillAtual = getSkillParaFase(fase.nome);
|
|
159
213
|
if (skillAtual) {
|
|
160
214
|
const ide = estado.ide || detectIDE(args.diretorio) || 'windsurf';
|
|
161
215
|
const checklistPath = getSkillResourcePath(skillAtual, 'checklists', ide);
|
|
162
|
-
resposta +=
|
|
163
|
-
resposta += `**Localização:** \`${checklistPath}\`\n\n`;
|
|
164
|
-
resposta += `> 💡 Consulte o checklist completo da skill para validação detalhada.\n\n`;
|
|
216
|
+
resposta += `\n\n## 📋 Checklist da Skill\n\n**Localização:** \`${checklistPath}\`\n`;
|
|
165
217
|
}
|
|
166
|
-
resposta += resultado.valido
|
|
167
|
-
? "✅ **Você pode avançar!** Use `proximo(entregavel: \"...\", estado_json: \"...\")` para ir para a próxima fase."
|
|
168
|
-
: "⚠️ **Complete os itens pendentes** ou use `proximo(entregavel: \"...\", estado_json: \"...\", confirmar_usuario: true)` para forçar avanço.";
|
|
169
218
|
}
|
|
170
219
|
const specialist = fase ? getSpecialistPersona(fase.nome) : null;
|
|
171
|
-
const
|
|
172
|
-
const next_action = isValid ? {
|
|
220
|
+
const next_action = canAdvance ? {
|
|
173
221
|
tool: "proximo",
|
|
174
222
|
description: `Gate validado. Avançar com o entregável da fase ${numeroFase} (${fase.nome})`,
|
|
175
223
|
args_template: { entregavel: "{{conteudo_do_entregavel}}", estado_json: "{{estado_json}}", diretorio },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validar-gate.js","sourceRoot":"","sources":["../../src/tools/validar-gate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,IAAI,
|
|
1
|
+
{"version":3,"file":"validar-gate.js","sourceRoot":"","sources":["../../src/tools/validar-gate.ts"],"names":[],"mappings":"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"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -39,6 +39,8 @@ export interface ProjectConfig {
|
|
|
39
39
|
frontend_first: boolean;
|
|
40
40
|
auto_checkpoint: boolean;
|
|
41
41
|
auto_fix: boolean;
|
|
42
|
+
/** v6.3: Controla se o brainstorm é sugerido no fluxo. Padrão: false em economy, true nos demais. */
|
|
43
|
+
wantsBrainstorm: boolean;
|
|
42
44
|
}
|
|
43
45
|
export declare function getDefaultConfig(flow: FlowType, mode: OperationMode): ProjectConfig;
|
|
44
46
|
export declare function getModeDescription(mode: OperationMode): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAE/D,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,aAAa,CAAC;IACpB,YAAY,EAAE,kBAAkB,CAAC;IACjC,iBAAiB,EAAE;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,oBAAoB,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;CACzD;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,UAAU,CA0D1D,CAAC;AAEF,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,sBAAsB,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,CA2ErD,CAAC;AAEF,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,kBAAkB,CAAC;IACjC,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAE/D,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,aAAa,CAAC;IACpB,YAAY,EAAE,kBAAkB,CAAC;IACjC,iBAAiB,EAAE;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,oBAAoB,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;CACzD;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,UAAU,CA0D1D,CAAC;AAEF,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,sBAAsB,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,CA2ErD,CAAC;AAEF,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,EAAE,kBAAkB,CAAC;IACjC,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,qGAAqG;IACrG,eAAe,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,GAAG,aAAa,CAcnF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAS9D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAGzD"}
|
package/dist/types/config.js
CHANGED
|
@@ -143,6 +143,8 @@ export function getDefaultConfig(flow, mode) {
|
|
|
143
143
|
frontend_first: flowConfig.frontend_first,
|
|
144
144
|
auto_checkpoint: modeConfig.checkpoint_frequency !== 'never',
|
|
145
145
|
auto_fix: modeConfig.auto_fix_enabled,
|
|
146
|
+
// v6.3 S1.2: economy não quer brainstorm por padrão (foco em velocidade)
|
|
147
|
+
wantsBrainstorm: mode !== 'economy',
|
|
146
148
|
};
|
|
147
149
|
}
|
|
148
150
|
export function getModeDescription(mode) {
|
package/dist/types/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -32,6 +32,10 @@ export interface EstadoProjeto {
|
|
|
32
32
|
pontuacao: number;
|
|
33
33
|
criterios: string[];
|
|
34
34
|
};
|
|
35
|
+
em_estado_compulsorio?: boolean;
|
|
36
|
+
tools_permitidas_no_compulsorio?: string[];
|
|
37
|
+
flow_phase_type?: 'input_required' | 'derived' | 'technical' | 'correction_loop';
|
|
38
|
+
auto_flow_enabled?: boolean;
|
|
35
39
|
inferencia_contextual?: InferenciaContextual;
|
|
36
40
|
classificacao_progressiva?: ClassificacaoProgressiva;
|
|
37
41
|
config?: {
|
|
@@ -48,6 +52,8 @@ export interface EstadoProjeto {
|
|
|
48
52
|
frontend_first: boolean;
|
|
49
53
|
auto_checkpoint: boolean;
|
|
50
54
|
auto_fix: boolean;
|
|
55
|
+
/** v6.3 S1.2: Controla se brainstorm é sugerido. Padrão: false em economy, true nos demais. */
|
|
56
|
+
wantsBrainstorm?: boolean;
|
|
51
57
|
auto_flow?: boolean;
|
|
52
58
|
onboarding?: {
|
|
53
59
|
enabled: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGjF,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAGjE,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,SAAS,GAAG,KAAK,GAAG,aAAa,CAAC;AAG3E,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,CAAC;AAG/E,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,YAAY,CAAC;AAG9E,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAGrE,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,CAAC;AAIzD,MAAM,WAAW,aAAa;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,iBAAiB,CAAC;IACzB,aAAa,EAAE,YAAY,CAAC;IAC5B,SAAS,EAAE,QAAQ,CAAC;IACpB,wBAAwB,EAAE,OAAO,CAAC;IAClC,GAAG,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,aAAa,CAAC;IAC5C,UAAU,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAE3B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,wBAAwB,EAAE,OAAO,CAAC;IAClC,gCAAgC,EAAE,OAAO,CAAC;IAC1C,sBAAsB,CAAC,EAAE;QACrB,KAAK,EAAE,iBAAiB,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IAGF,qBAAqB,CAAC,EAAE,oBAAoB,CAAC;IAG7C,yBAAyB,CAAC,EAAE,wBAAwB,CAAC;IAGrD,MAAM,CAAC,EAAE;QACL,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;QACzC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;QACtD,YAAY,EAAE;YACV,eAAe,EAAE,OAAO,CAAC;YACzB,eAAe,EAAE,OAAO,CAAC;YACzB,oBAAoB,EAAE,OAAO,CAAC;YAC9B,gBAAgB,EAAE,OAAO,CAAC;YAC1B,mBAAmB,EAAE,OAAO,CAAC;YAC7B,oBAAoB,EAAE,OAAO,CAAC;SACjC,CAAC;QACF,cAAc,EAAE,OAAO,CAAC;QACxB,eAAe,EAAE,OAAO,CAAC;QACzB,QAAQ,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AA4OA,2BAA2B;AAC3B,OAAO,EAA8E,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V6 Sprint 4: TDD Invertido — Gera documento de orientação de Gate ANTES do entregável.
|
|
3
|
+
*
|
|
4
|
+
* No início de cada fase, o Maestro cria um arquivo `.orientacoes-gate.md` com os critérios
|
|
5
|
+
* EXATOS que a ValidationPipeline irá checar. A IA lê esse arquivo antes de escrever o
|
|
6
|
+
* entregável, aumentando o score na primeira tentativa.
|
|
7
|
+
*
|
|
8
|
+
* Reutiliza: SkillLoaderService.loadChecklist() (já implementado)
|
|
9
|
+
*/
|
|
10
|
+
export declare function generateGateOrientationDoc(diretorio: string, faseNome: string, faseNumero: number): Promise<string | null>;
|
|
11
|
+
//# sourceMappingURL=gate-orientation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-orientation.d.ts","sourceRoot":"","sources":["../../src/utils/gate-orientation.ts"],"names":[],"mappings":"AAOA;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAC5C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyDxB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { SkillLoaderService } from '../services/skill-loader.service.js';
|
|
2
|
+
import { ContentResolverService } from '../services/content-resolver.service.js';
|
|
3
|
+
import { writeFile, mkdir } from 'fs/promises';
|
|
4
|
+
import { join, dirname } from 'path';
|
|
5
|
+
import { getSkillParaFase } from './prompt-mapper.js';
|
|
6
|
+
import { getSkillFilePath, detectIDE } from './ide-paths.js';
|
|
7
|
+
/**
|
|
8
|
+
* V6 Sprint 4: TDD Invertido — Gera documento de orientação de Gate ANTES do entregável.
|
|
9
|
+
*
|
|
10
|
+
* No início de cada fase, o Maestro cria um arquivo `.orientacoes-gate.md` com os critérios
|
|
11
|
+
* EXATOS que a ValidationPipeline irá checar. A IA lê esse arquivo antes de escrever o
|
|
12
|
+
* entregável, aumentando o score na primeira tentativa.
|
|
13
|
+
*
|
|
14
|
+
* Reutiliza: SkillLoaderService.loadChecklist() (já implementado)
|
|
15
|
+
*/
|
|
16
|
+
export async function generateGateOrientationDoc(diretorio, faseNome, faseNumero) {
|
|
17
|
+
try {
|
|
18
|
+
const resolver = new ContentResolverService(diretorio);
|
|
19
|
+
const loader = new SkillLoaderService(resolver);
|
|
20
|
+
// Reutilizar loadChecklist() existente — não reinventar a roda
|
|
21
|
+
const checklist = await loader.loadChecklist(faseNome);
|
|
22
|
+
if (!checklist) {
|
|
23
|
+
console.warn(`[gate-orientation] Checklist não encontrado para fase: ${faseNome}`);
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
const skillName = getSkillParaFase(faseNome) || 'skill-desconhecida';
|
|
27
|
+
// V6 Gap fix #3: path IDE-aware via detectIDE + getSkillFilePath
|
|
28
|
+
const ide = detectIDE(diretorio) ?? 'windsurf';
|
|
29
|
+
const skillPath = getSkillFilePath(skillName, ide);
|
|
30
|
+
const conteudo = [
|
|
31
|
+
`# 🎯 Critérios do Gate — Fase ${faseNumero}: ${faseNome}`,
|
|
32
|
+
``,
|
|
33
|
+
`> ⚠️ **LEIA ESTE ARQUIVO ANTES DE ESCREVER O ENTREGÁVEL.**`,
|
|
34
|
+
`> Gerado automaticamente pelo Maestro V6. Estes são os critérios EXATOS da validação.`,
|
|
35
|
+
``,
|
|
36
|
+
`## Skill Ativa desta Fase`,
|
|
37
|
+
`\`${skillName}\``,
|
|
38
|
+
``,
|
|
39
|
+
`## ✅ Checklist de Aprovação (Score mínimo: 70/100)`,
|
|
40
|
+
``,
|
|
41
|
+
`> Seu entregável DEVE satisfazer os critérios abaixo para passar no Gate automaticamente.`,
|
|
42
|
+
``,
|
|
43
|
+
checklist,
|
|
44
|
+
``,
|
|
45
|
+
`## 📋 Estrutura Esperada`,
|
|
46
|
+
``,
|
|
47
|
+
`Consulte o template em: \`${skillPath}resources/templates/\``,
|
|
48
|
+
``,
|
|
49
|
+
`---`,
|
|
50
|
+
`_Score mínimo para aprovação automática: **70/100**_`,
|
|
51
|
+
`_Arquivo gerado em: ${new Date().toISOString()}_`,
|
|
52
|
+
].join('\n');
|
|
53
|
+
const outputPath = join(diretorio, 'docs', `fase-${String(faseNumero).padStart(2, '0')}`, '.orientacoes-gate.md');
|
|
54
|
+
await mkdir(dirname(outputPath), { recursive: true });
|
|
55
|
+
await writeFile(outputPath, conteudo, 'utf-8');
|
|
56
|
+
console.log(`[gate-orientation] Guia de Gate criado: ${outputPath}`);
|
|
57
|
+
return outputPath;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.warn(`[gate-orientation] Falha ao gerar orientação de gate:`, error);
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=gate-orientation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-orientation.js","sourceRoot":"","sources":["../../src/utils/gate-orientation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC5C,SAAiB,EACjB,QAAgB,EAChB,UAAkB;IAElB,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAEhD,+DAA+D;QAC/D,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,0DAA0D,QAAQ,EAAE,CAAC,CAAC;YACnF,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,oBAAoB,CAAC;QACrE,iEAAiE;QACjE,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC;QAC/C,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAEnD,MAAM,QAAQ,GAAG;YACb,iCAAiC,UAAU,KAAK,QAAQ,EAAE;YAC1D,EAAE;YACF,4DAA4D;YAC5D,uFAAuF;YACvF,EAAE;YACF,2BAA2B;YAC3B,KAAK,SAAS,IAAI;YAClB,EAAE;YACF,oDAAoD;YACpD,EAAE;YACF,2FAA2F;YAC3F,EAAE;YACF,SAAS;YACT,EAAE;YACF,0BAA0B;YAC1B,EAAE;YACF,6BAA6B,SAAS,wBAAwB;YAC9D,EAAE;YACF,KAAK;YACL,sDAAsD;YACtD,uBAAuB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG;SACrD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,UAAU,GAAG,IAAI,CACnB,SAAS,EACT,MAAM,EACN,QAAQ,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAC7C,sBAAsB,CACzB,CAAC;QAEF,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE/C,OAAO,CAAC,GAAG,CAAC,2CAA2C,UAAU,EAAE,CAAC,CAAC;QACrE,OAAO,UAAU,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,uDAAuD,EAAE,KAAK,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC"}
|
|
@@ -58,4 +58,15 @@ export declare function detectIDE(projectDir: string): IDEType | null;
|
|
|
58
58
|
* Formata mensagem de skill com caminhos corretos para a IDE
|
|
59
59
|
*/
|
|
60
60
|
export declare function formatSkillMessage(skillName: string, ide: IDEType): string;
|
|
61
|
+
/**
|
|
62
|
+
* V6 Sprint 3: Gera comando imperativo de hidratação de contexto (Active Rules Pointer).
|
|
63
|
+
* Usa o formato de @menção nativo de cada IDE para forçar leitura imediata do SKILL.md
|
|
64
|
+
* na transição de fase, sem criar arquivos extras e sem aguardar confirmação do usuário.
|
|
65
|
+
*
|
|
66
|
+
* Formatos nativos:
|
|
67
|
+
* - Antigravity: @[.agent/skills/{skill}/SKILL.md]
|
|
68
|
+
* - Cursor: @.cursor/skills/{skill}/SKILL.md
|
|
69
|
+
* - Windsurf: #.windsurf/skills/{skill}/SKILL.md
|
|
70
|
+
*/
|
|
71
|
+
export declare function formatSkillHydrationCommand(skillName: string, ide: IDEType): string;
|
|
61
72
|
//# sourceMappingURL=ide-paths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ide-paths.d.ts","sourceRoot":"","sources":["../../src/utils/ide-paths.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;CAmBd,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,WAAW,CAAC;AAE/C;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAExF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAExE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAEjJ;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAEvE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAoB5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAgB1E"}
|
|
1
|
+
{"version":3,"file":"ide-paths.d.ts","sourceRoot":"","sources":["../../src/utils/ide-paths.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;CAmBd,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,WAAW,CAAC;AAE/C;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAExF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAExE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAEjJ;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAEvE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAoB5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAgB1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAiBnF"}
|
package/dist/utils/ide-paths.js
CHANGED
|
@@ -106,4 +106,31 @@ export function formatSkillMessage(skillName, ide) {
|
|
|
106
106
|
- 📚 Reference: \`${getSkillResourcePath(skillName, 'reference', ide)}\`
|
|
107
107
|
- 🔧 MCP Functions: \`${getSkillMCPPath(skillName, ide)}\``;
|
|
108
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* V6 Sprint 3: Gera comando imperativo de hidratação de contexto (Active Rules Pointer).
|
|
111
|
+
* Usa o formato de @menção nativo de cada IDE para forçar leitura imediata do SKILL.md
|
|
112
|
+
* na transição de fase, sem criar arquivos extras e sem aguardar confirmação do usuário.
|
|
113
|
+
*
|
|
114
|
+
* Formatos nativos:
|
|
115
|
+
* - Antigravity: @[.agent/skills/{skill}/SKILL.md]
|
|
116
|
+
* - Cursor: @.cursor/skills/{skill}/SKILL.md
|
|
117
|
+
* - Windsurf: #.windsurf/skills/{skill}/SKILL.md
|
|
118
|
+
*/
|
|
119
|
+
export function formatSkillHydrationCommand(skillName, ide) {
|
|
120
|
+
const skillPath = getSkillFilePath(skillName, ide);
|
|
121
|
+
const mention = ide === 'cursor' ? `@${skillPath}`
|
|
122
|
+
: ide === 'windsurf' ? `#${skillPath}`
|
|
123
|
+
: `@[${skillPath}]`; // antigravity (default)
|
|
124
|
+
return [
|
|
125
|
+
``,
|
|
126
|
+
`---`,
|
|
127
|
+
``,
|
|
128
|
+
`> ⚙️ **SISTEMA — AÇÃO OBRIGATÓRIA (Nova Fase Iniciada)**`,
|
|
129
|
+
`> Leia AGORA o arquivo do especialista: ${mention}`,
|
|
130
|
+
`> Assuma a persona descrita no arquivo **imediatamente**.`,
|
|
131
|
+
`> Não aguarde confirmação do usuário para iniciar.`,
|
|
132
|
+
`> Confirme dizendo: "Sou [nome do especialista], meu foco é [entregável desta fase]."`,
|
|
133
|
+
``,
|
|
134
|
+
].join('\n');
|
|
135
|
+
}
|
|
109
136
|
//# sourceMappingURL=ide-paths.js.map
|