@maestro-ai/mcp-server 2.4.2 → 2.6.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.
- package/dist/flows/onboarding-orchestrator.d.ts +41 -0
- package/dist/flows/onboarding-orchestrator.d.ts.map +1 -0
- package/dist/flows/onboarding-orchestrator.js +399 -0
- package/dist/flows/onboarding-orchestrator.js.map +1 -0
- package/dist/flows/types.d.ts.map +1 -1
- package/dist/flows/types.js +7 -0
- package/dist/flows/types.js.map +1 -1
- package/dist/gates/adaptive-scoring.d.ts +133 -0
- package/dist/gates/adaptive-scoring.d.ts.map +1 -0
- package/dist/gates/adaptive-scoring.js +404 -0
- package/dist/gates/adaptive-scoring.js.map +1 -0
- package/dist/gates/compatibility-wrapper.d.ts +139 -0
- package/dist/gates/compatibility-wrapper.d.ts.map +1 -0
- package/dist/gates/compatibility-wrapper.js +362 -0
- package/dist/gates/compatibility-wrapper.js.map +1 -0
- package/dist/gates/contextual-recommender.d.ts +128 -0
- package/dist/gates/contextual-recommender.d.ts.map +1 -0
- package/dist/gates/contextual-recommender.js +446 -0
- package/dist/gates/contextual-recommender.js.map +1 -0
- package/dist/gates/intelligent-gate-engine.d.ts +158 -0
- package/dist/gates/intelligent-gate-engine.d.ts.map +1 -0
- package/dist/gates/intelligent-gate-engine.js +429 -0
- package/dist/gates/intelligent-gate-engine.js.map +1 -0
- package/dist/gates/intelligent-validator.d.ts +164 -0
- package/dist/gates/intelligent-validator.d.ts.map +1 -0
- package/dist/gates/intelligent-validator.js +347 -0
- package/dist/gates/intelligent-validator.js.map +1 -0
- package/dist/gates/maturity-levels.d.ts +119 -0
- package/dist/gates/maturity-levels.d.ts.map +1 -0
- package/dist/gates/maturity-levels.js +455 -0
- package/dist/gates/maturity-levels.js.map +1 -0
- package/dist/state/storage.d.ts.map +1 -1
- package/dist/state/storage.js +1 -0
- package/dist/state/storage.js.map +1 -1
- package/dist/tests/brainstorm-prd.test.d.ts +5 -0
- package/dist/tests/brainstorm-prd.test.d.ts.map +1 -0
- package/dist/tests/brainstorm-prd.test.js +291 -0
- package/dist/tests/brainstorm-prd.test.js.map +1 -0
- package/dist/tests/migracao-skills.test.d.ts +2 -0
- package/dist/tests/migracao-skills.test.d.ts.map +1 -0
- package/dist/tests/migracao-skills.test.js +208 -0
- package/dist/tests/migracao-skills.test.js.map +1 -0
- package/dist/tests/onboarding-flow.test.d.ts +5 -0
- package/dist/tests/onboarding-flow.test.d.ts.map +1 -0
- package/dist/tests/onboarding-flow.test.js +231 -0
- package/dist/tests/onboarding-flow.test.js.map +1 -0
- package/dist/tests/readiness-dashboard.test.d.ts +5 -0
- package/dist/tests/readiness-dashboard.test.d.ts.map +1 -0
- package/dist/tests/readiness-dashboard.test.js +252 -0
- package/dist/tests/readiness-dashboard.test.js.map +1 -0
- package/dist/tools/brainstorm.d.ts +41 -0
- package/dist/tools/brainstorm.d.ts.map +1 -0
- package/dist/tools/brainstorm.js +429 -0
- package/dist/tools/brainstorm.js.map +1 -0
- package/dist/tools/carregar-projeto.js +1 -1
- package/dist/tools/carregar-projeto.js.map +1 -1
- package/dist/tools/confirmar-stitch.js +1 -1
- package/dist/tools/confirmar-stitch.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +65 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/iniciar-projeto.d.ts +2 -2
- package/dist/tools/iniciar-projeto.d.ts.map +1 -1
- package/dist/tools/iniciar-projeto.js +53 -96
- package/dist/tools/iniciar-projeto.js.map +1 -1
- package/dist/tools/next-steps-dashboard.d.ts +30 -0
- package/dist/tools/next-steps-dashboard.d.ts.map +1 -0
- package/dist/tools/next-steps-dashboard.js +248 -0
- package/dist/tools/next-steps-dashboard.js.map +1 -0
- package/dist/tools/prd-writer.d.ts +36 -0
- package/dist/tools/prd-writer.d.ts.map +1 -0
- package/dist/tools/prd-writer.js +377 -0
- package/dist/tools/prd-writer.js.map +1 -0
- package/dist/tools/proximo.d.ts.map +1 -1
- package/dist/tools/proximo.js +147 -22
- package/dist/tools/proximo.js.map +1 -1
- package/dist/tools/setup-inicial.d.ts +48 -0
- package/dist/tools/setup-inicial.d.ts.map +1 -0
- package/dist/tools/setup-inicial.js +84 -0
- package/dist/tools/setup-inicial.js.map +1 -0
- package/dist/tools/validar-gate.d.ts.map +1 -1
- package/dist/tools/validar-gate.js +28 -28
- package/dist/tools/validar-gate.js.map +1 -1
- package/dist/types/index.d.ts +24 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/onboarding.d.ts +124 -0
- package/dist/types/onboarding.d.ts.map +1 -0
- package/dist/types/onboarding.js +5 -0
- package/dist/types/onboarding.js.map +1 -0
- package/dist/utils/config.d.ts +16 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +26 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/content-injector.d.ts +1 -0
- package/dist/utils/content-injector.d.ts.map +1 -1
- package/dist/utils/content-injector.js +5 -0
- package/dist/utils/content-injector.js.map +1 -1
- package/dist/utils/discovery-adapter.d.ts +33 -0
- package/dist/utils/discovery-adapter.d.ts.map +1 -0
- package/dist/utils/discovery-adapter.js +392 -0
- package/dist/utils/discovery-adapter.js.map +1 -0
- package/dist/utils/files.d.ts +1 -0
- package/dist/utils/files.d.ts.map +1 -1
- package/dist/utils/files.js +97 -7
- package/dist/utils/files.js.map +1 -1
- package/dist/utils/ide-paths.d.ts.map +1 -1
- package/dist/utils/ide-paths.js +7 -8
- package/dist/utils/ide-paths.js.map +1 -1
- package/dist/utils/inferencia-contextual.d.ts +3 -0
- package/dist/utils/inferencia-contextual.d.ts.map +1 -0
- package/dist/utils/inferencia-contextual.js +93 -0
- package/dist/utils/inferencia-contextual.js.map +1 -0
- package/dist/utils/instructions.d.ts +8 -3
- package/dist/utils/instructions.d.ts.map +1 -1
- package/dist/utils/instructions.js +72 -25
- package/dist/utils/instructions.js.map +1 -1
- package/dist/utils/readiness-checker.d.ts +27 -0
- package/dist/utils/readiness-checker.d.ts.map +1 -0
- package/dist/utils/readiness-checker.js +226 -0
- package/dist/utils/readiness-checker.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,446 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sistema de Recomendações Contextuais - Sugestões inteligentes e acionáveis
|
|
3
|
+
*
|
|
4
|
+
* Features principais:
|
|
5
|
+
* - Recomendações priorizadas por impacto e esforço
|
|
6
|
+
* - Auto-fixes quando tecnicamente viável
|
|
7
|
+
* - Sugestões contextuais baseadas no tipo de projeto
|
|
8
|
+
* - Exemplos práticos e específicos
|
|
9
|
+
*
|
|
10
|
+
* @version 3.0.0
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Gerador inteligente de recomendações contextuais
|
|
14
|
+
*/
|
|
15
|
+
export class ContextualRecommender {
|
|
16
|
+
templates;
|
|
17
|
+
userProfiles;
|
|
18
|
+
phasePatterns;
|
|
19
|
+
constructor() {
|
|
20
|
+
this.templates = new Map();
|
|
21
|
+
this.userProfiles = new Map();
|
|
22
|
+
this.phasePatterns = new Map();
|
|
23
|
+
this.initializeTemplates();
|
|
24
|
+
this.initializePhasePatterns();
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Gera recomendações inteligentes priorizadas
|
|
28
|
+
*/
|
|
29
|
+
generateSmartRecommendations(semanticMatches, completeness, quality, adaptiveScore, context, userProfile, config) {
|
|
30
|
+
const defaultConfig = {
|
|
31
|
+
maxRecommendations: 8,
|
|
32
|
+
priorityThreshold: 0.3,
|
|
33
|
+
includeOptional: true,
|
|
34
|
+
includeAutoFixes: true
|
|
35
|
+
};
|
|
36
|
+
const finalConfig = { ...defaultConfig, ...config };
|
|
37
|
+
const recommendations = [];
|
|
38
|
+
// 1. Recomendações para problemas semânticos
|
|
39
|
+
recommendations.push(...this.generateSemanticRecommendations(semanticMatches, context, userProfile));
|
|
40
|
+
// 2. Recomendações para completude
|
|
41
|
+
recommendations.push(...this.generateCompletenessRecommendations(completeness, context, userProfile));
|
|
42
|
+
// 3. Recomendações para qualidade
|
|
43
|
+
recommendations.push(...this.generateQualityRecommendations(quality, context, userProfile));
|
|
44
|
+
// 4. Recomendações baseadas no score adaptativo
|
|
45
|
+
recommendations.push(...this.generateScoreBasedRecommendations(adaptiveScore, context, userProfile));
|
|
46
|
+
// 5. Recomendações contextuais específicas da fase
|
|
47
|
+
recommendations.push(...this.generatePhaseSpecificRecommendations(context, semanticMatches, completeness, userProfile));
|
|
48
|
+
// 6. Prioriza, filtra e limita
|
|
49
|
+
return this.prioritizeAndFilter(recommendations, finalConfig, userProfile);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Gera auto-fixes quando tecnicamente viável
|
|
53
|
+
*/
|
|
54
|
+
generateAutoFixes(content, recommendations, context) {
|
|
55
|
+
const autoFixableRecommendations = [];
|
|
56
|
+
for (const recommendation of recommendations) {
|
|
57
|
+
if (!recommendation.autofix)
|
|
58
|
+
continue;
|
|
59
|
+
const autofix = this.generateAutoFixAction(content, recommendation, context);
|
|
60
|
+
if (autofix && autofix.confidence > 0.7) {
|
|
61
|
+
autoFixableRecommendations.push({
|
|
62
|
+
...recommendation,
|
|
63
|
+
autofix,
|
|
64
|
+
type: 'critical', // Auto-fixes são sempre críticos
|
|
65
|
+
effort: 'quick' // Auto-fixes são sempre rápidos
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return autoFixableRecommendations;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Atualiza perfil do usuário baseado em feedback
|
|
73
|
+
*/
|
|
74
|
+
updateUserProfile(userId, feedback) {
|
|
75
|
+
let profile = this.userProfiles.get(userId);
|
|
76
|
+
if (!profile) {
|
|
77
|
+
profile = this.createDefaultProfile();
|
|
78
|
+
}
|
|
79
|
+
// Atualiza histórico de feedback
|
|
80
|
+
profile.feedbackHistory.push(...feedback);
|
|
81
|
+
// Aprende padrões baseado no feedback
|
|
82
|
+
this.learnFromFeedback(profile, feedback);
|
|
83
|
+
this.userProfiles.set(userId, profile);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Gera recomendações para problemas semânticos
|
|
87
|
+
*/
|
|
88
|
+
generateSemanticRecommendations(semanticMatches, context, userProfile) {
|
|
89
|
+
const recommendations = [];
|
|
90
|
+
for (const match of semanticMatches) {
|
|
91
|
+
if (match.found)
|
|
92
|
+
continue; // Só recomenda para conceitos não encontrados
|
|
93
|
+
const template = this.findBestTemplate(context.phase.nome, 'semantic', match.concept);
|
|
94
|
+
if (template) {
|
|
95
|
+
recommendations.push({
|
|
96
|
+
id: `semantic_${match.concept}_${Date.now()}`,
|
|
97
|
+
type: 'critical',
|
|
98
|
+
priority: this.calculatePriority(match.concept, context),
|
|
99
|
+
impact: template.impact,
|
|
100
|
+
effort: template.effort,
|
|
101
|
+
title: template.title.replace('[CONCEPT]', match.concept),
|
|
102
|
+
description: this.personalizeDescription(template.description, context, userProfile),
|
|
103
|
+
examples: this.personalizeExamples(template.examples, context, userProfile),
|
|
104
|
+
estimatedTimeMinutes: this.estimateTimeMinutes(template.effort),
|
|
105
|
+
autofix: template.autofix ? this.convertToAutofix(template.autofix) : undefined
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return recommendations;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Gera recomendações para completude
|
|
113
|
+
*/
|
|
114
|
+
generateCompletenessRecommendations(completeness, context, userProfile) {
|
|
115
|
+
const recommendations = [];
|
|
116
|
+
// Recomendações para elementos críticos faltando
|
|
117
|
+
for (const missing of completeness.missingCritical) {
|
|
118
|
+
const template = this.findBestTemplate(context.phase.nome, 'completeness', missing);
|
|
119
|
+
if (template) {
|
|
120
|
+
recommendations.push({
|
|
121
|
+
id: `critical_missing_${missing}_${Date.now()}`,
|
|
122
|
+
type: 'critical',
|
|
123
|
+
priority: 0.9,
|
|
124
|
+
impact: 'high',
|
|
125
|
+
effort: template.effort,
|
|
126
|
+
title: `Adicionar ${missing}`,
|
|
127
|
+
description: this.personalizeDescription(template.description, context, userProfile),
|
|
128
|
+
examples: this.getExamplesForMissingElement(missing, context),
|
|
129
|
+
estimatedTimeMinutes: this.estimateTimeMinutes(template.effort),
|
|
130
|
+
autofix: this.generateStructuralAutofix(missing, context)
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Recomendações para elementos opcionais
|
|
135
|
+
for (const missing of completeness.missingOptional) {
|
|
136
|
+
if (recommendations.length >= 6)
|
|
137
|
+
break; // Limita recomendações opcionais
|
|
138
|
+
recommendations.push({
|
|
139
|
+
id: `optional_missing_${missing}_${Date.now()}`,
|
|
140
|
+
type: 'enhancement',
|
|
141
|
+
priority: 0.4,
|
|
142
|
+
impact: 'medium',
|
|
143
|
+
effort: 'moderate',
|
|
144
|
+
title: `Considerar adicionar ${missing}`,
|
|
145
|
+
description: `Adicionar ${missing} pode melhorar a qualidade do entregável`,
|
|
146
|
+
examples: this.getExamplesForMissingElement(missing, context),
|
|
147
|
+
estimatedTimeMinutes: 15
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
return recommendations;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Gera recomendações para qualidade
|
|
154
|
+
*/
|
|
155
|
+
generateQualityRecommendations(quality, context, userProfile) {
|
|
156
|
+
const recommendations = [];
|
|
157
|
+
const threshold = 70; // Threshold para recomendar melhorias
|
|
158
|
+
if (quality.clarity < threshold) {
|
|
159
|
+
recommendations.push({
|
|
160
|
+
id: `quality_clarity_${Date.now()}`,
|
|
161
|
+
type: 'improvement',
|
|
162
|
+
priority: 0.7,
|
|
163
|
+
impact: 'high',
|
|
164
|
+
effort: 'moderate',
|
|
165
|
+
title: 'Melhorar clareza do conteúdo',
|
|
166
|
+
description: 'O conteúdo pode ser mais claro e direto',
|
|
167
|
+
examples: this.getClarityExamples(context),
|
|
168
|
+
estimatedTimeMinutes: 20,
|
|
169
|
+
autofix: this.generateClarityAutofix()
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
if (quality.depth < threshold) {
|
|
173
|
+
recommendations.push({
|
|
174
|
+
id: `quality_depth_${Date.now()}`,
|
|
175
|
+
type: 'improvement',
|
|
176
|
+
priority: 0.6,
|
|
177
|
+
impact: 'medium',
|
|
178
|
+
effort: 'moderate',
|
|
179
|
+
title: 'Aumentar profundidade da análise',
|
|
180
|
+
description: 'Adicione mais detalhes e contexto às seções',
|
|
181
|
+
examples: this.getDepthExamples(context),
|
|
182
|
+
estimatedTimeMinutes: 25
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
if (quality.practicality < threshold) {
|
|
186
|
+
recommendations.push({
|
|
187
|
+
id: `quality_practicality_${Date.now()}`,
|
|
188
|
+
type: 'improvement',
|
|
189
|
+
priority: 0.6,
|
|
190
|
+
impact: 'high',
|
|
191
|
+
effort: 'quick',
|
|
192
|
+
title: 'Tornar mais prático e aplicável',
|
|
193
|
+
description: 'Inclua exemplos concretos e passos acionáveis',
|
|
194
|
+
examples: this.getPracticalityExamples(context),
|
|
195
|
+
estimatedTimeMinutes: 15
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
return recommendations;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Gera recomendações baseadas no score adaptativo
|
|
202
|
+
*/
|
|
203
|
+
generateScoreBasedRecommendations(adaptiveScore, context, userProfile) {
|
|
204
|
+
const recommendations = [];
|
|
205
|
+
// Identifica os componentes com menor score para focar melhorias
|
|
206
|
+
const components = [
|
|
207
|
+
{ name: 'semantic', score: adaptiveScore.components.semantic, weight: adaptiveScore.weights.semantic },
|
|
208
|
+
{ name: 'completeness', score: adaptiveScore.components.completeness, weight: adaptiveScore.weights.completeness },
|
|
209
|
+
{ name: 'quality', score: adaptiveScore.components.quality, weight: adaptiveScore.weights.quality },
|
|
210
|
+
{ name: 'structure', score: adaptiveScore.components.structure, weight: adaptiveScore.weights.structure },
|
|
211
|
+
{ name: 'consistency', score: adaptiveScore.components.consistency, weight: adaptiveScore.weights.consistency }
|
|
212
|
+
].sort((a, b) => (a.score * a.weight) - (b.score * b.weight));
|
|
213
|
+
// Recomenda melhorias para os 2 componentes mais fracos
|
|
214
|
+
for (let i = 0; i < Math.min(2, components.length); i++) {
|
|
215
|
+
const component = components[i];
|
|
216
|
+
if (component.score < 60) { // Só recomenda se score baixo
|
|
217
|
+
recommendations.push({
|
|
218
|
+
id: `score_${component.name}_${Date.now()}`,
|
|
219
|
+
type: 'improvement',
|
|
220
|
+
priority: 0.8 - (i * 0.2), // Primeira prioridade é maior
|
|
221
|
+
impact: component.weight > 0.3 ? 'high' : 'medium',
|
|
222
|
+
effort: this.getEffortForComponent(component.name),
|
|
223
|
+
title: this.getTitleForComponent(component.name),
|
|
224
|
+
description: this.getDescriptionForComponent(component.name, context),
|
|
225
|
+
examples: this.getExamplesForComponent(component.name, context),
|
|
226
|
+
estimatedTimeMinutes: this.getTimeForComponent(component.name)
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
return recommendations;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Gera recomendações específicas da fase
|
|
234
|
+
*/
|
|
235
|
+
generatePhaseSpecificRecommendations(context, semanticMatches, completeness, userProfile) {
|
|
236
|
+
const templates = this.templates.get(context.phase.nome) || [];
|
|
237
|
+
const recommendations = [];
|
|
238
|
+
for (const template of templates) {
|
|
239
|
+
// Verifica se a recomendação é aplicável no contexto atual
|
|
240
|
+
if (this.isTemplateApplicable(template, semanticMatches, completeness, context)) {
|
|
241
|
+
recommendations.push({
|
|
242
|
+
id: `phase_${template.id}_${Date.now()}`,
|
|
243
|
+
type: 'enhancement',
|
|
244
|
+
priority: 0.5,
|
|
245
|
+
impact: template.impact,
|
|
246
|
+
effort: template.effort,
|
|
247
|
+
title: template.title,
|
|
248
|
+
description: this.personalizeDescription(template.description, context, userProfile),
|
|
249
|
+
examples: this.personalizeExamples(template.examples, context, userProfile),
|
|
250
|
+
estimatedTimeMinutes: this.estimateTimeMinutes(template.effort),
|
|
251
|
+
autofix: template.autofix ? this.convertToAutofix(template.autofix) : undefined
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return recommendations;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Prioriza, filtra e limita recomendações
|
|
259
|
+
*/
|
|
260
|
+
prioritizeAndFilter(recommendations, config, userProfile) {
|
|
261
|
+
let filtered = recommendations;
|
|
262
|
+
// 1. Filtra por threshold de prioridade
|
|
263
|
+
filtered = filtered.filter(r => r.priority >= config.priorityThreshold);
|
|
264
|
+
// 2. Remove opcionais se configurado
|
|
265
|
+
if (!config.includeOptional) {
|
|
266
|
+
filtered = filtered.filter(r => r.type !== 'optional');
|
|
267
|
+
}
|
|
268
|
+
// 3. Remove auto-fixes se configurado
|
|
269
|
+
if (!config.includeAutoFixes) {
|
|
270
|
+
filtered = filtered.filter(r => !r.autofix);
|
|
271
|
+
}
|
|
272
|
+
// 4. Ordena por prioridade e impacto
|
|
273
|
+
filtered.sort((a, b) => {
|
|
274
|
+
const scoreA = this.calculateRecommendationScore(a, userProfile);
|
|
275
|
+
const scoreB = this.calculateRecommendationScore(b, userProfile);
|
|
276
|
+
return scoreB - scoreA;
|
|
277
|
+
});
|
|
278
|
+
// 5. Limita quantidade
|
|
279
|
+
return filtered.slice(0, config.maxRecommendations);
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Inicializa templates de recomendações
|
|
283
|
+
*/
|
|
284
|
+
initializeTemplates() {
|
|
285
|
+
// Templates para fase Produto
|
|
286
|
+
this.templates.set('Produto', [
|
|
287
|
+
{
|
|
288
|
+
id: 'produto_problema',
|
|
289
|
+
phase: 'Produto',
|
|
290
|
+
trigger: 'missing_problema',
|
|
291
|
+
title: 'Definir problema claramente',
|
|
292
|
+
description: 'Adicione uma descrição clara do problema que o produto resolve',
|
|
293
|
+
examples: [
|
|
294
|
+
'Usuários perdem 30 minutos por dia procurando informações dispersas em diferentes sistemas',
|
|
295
|
+
'Empresas gastam R$ 10.000/mês em licenças desnecessárias por falta de visibilidade'
|
|
296
|
+
],
|
|
297
|
+
effort: 'quick',
|
|
298
|
+
impact: 'high',
|
|
299
|
+
autofix: {
|
|
300
|
+
type: 'append',
|
|
301
|
+
pattern: '## Problema',
|
|
302
|
+
replacement: '## Problema\n\n[Descreva claramente qual problema está sendo resolvido]\n\n**Impacto atual:**\n- [Quantifique o impacto do problema]\n- [Adicione dados específicos]\n\n**Por que resolver agora:**\n- [Justifique a urgência]\n',
|
|
303
|
+
confidence: 0.8
|
|
304
|
+
}
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
id: 'produto_personas',
|
|
308
|
+
phase: 'Produto',
|
|
309
|
+
trigger: 'missing_persona',
|
|
310
|
+
title: 'Definir personas principais',
|
|
311
|
+
description: 'Identifique quem são os usuários primários do produto',
|
|
312
|
+
examples: [
|
|
313
|
+
'Gerentes de projeto (30-45 anos) que coordenam equipes remotas',
|
|
314
|
+
'Desenvolvedores sênior que precisam de visibilidade sobre dependências'
|
|
315
|
+
],
|
|
316
|
+
effort: 'moderate',
|
|
317
|
+
impact: 'high'
|
|
318
|
+
}
|
|
319
|
+
]);
|
|
320
|
+
// Templates para fase Requisitos
|
|
321
|
+
this.templates.set('Requisitos', [
|
|
322
|
+
{
|
|
323
|
+
id: 'requisitos_funcionais',
|
|
324
|
+
phase: 'Requisitos',
|
|
325
|
+
trigger: 'missing_requisitos_funcionais',
|
|
326
|
+
title: 'Adicionar requisitos funcionais com IDs',
|
|
327
|
+
description: 'Liste os requisitos funcionais com identificadores únicos',
|
|
328
|
+
examples: [
|
|
329
|
+
'RF001 - O sistema deve permitir login com email e senha',
|
|
330
|
+
'RF002 - O usuário deve poder visualizar dashboard personalizado'
|
|
331
|
+
],
|
|
332
|
+
effort: 'moderate',
|
|
333
|
+
impact: 'high',
|
|
334
|
+
autofix: {
|
|
335
|
+
type: 'append',
|
|
336
|
+
pattern: '## Requisitos Funcionais',
|
|
337
|
+
replacement: '## Requisitos Funcionais\n\n**RF001** - [Descreva o primeiro requisito funcional]\n\n**RF002** - [Descreva o segundo requisito funcional]\n\n**RF003** - [Descreva o terceiro requisito funcional]\n',
|
|
338
|
+
confidence: 0.9
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
]);
|
|
342
|
+
// Adiciona mais templates para outras fases...
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Inicializa padrões por fase
|
|
346
|
+
*/
|
|
347
|
+
initializePhasePatterns() {
|
|
348
|
+
this.phasePatterns.set('Produto', [
|
|
349
|
+
'problema', 'solução', 'usuário', 'valor', 'métrica', 'objetivo'
|
|
350
|
+
]);
|
|
351
|
+
this.phasePatterns.set('Requisitos', [
|
|
352
|
+
'funcional', 'não-funcional', 'critério', 'aceite', 'performance', 'segurança'
|
|
353
|
+
]);
|
|
354
|
+
this.phasePatterns.set('UX Design', [
|
|
355
|
+
'wireframe', 'protótipo', 'jornada', 'fluxo', 'usabilidade', 'acessibilidade'
|
|
356
|
+
]);
|
|
357
|
+
}
|
|
358
|
+
// Métodos auxiliares (implementação simplificada)
|
|
359
|
+
findBestTemplate(phase, category, concept) {
|
|
360
|
+
const templates = this.templates.get(phase) || [];
|
|
361
|
+
return templates.find(t => t.trigger.includes(concept)) || null;
|
|
362
|
+
}
|
|
363
|
+
calculatePriority(concept, context) {
|
|
364
|
+
const criticalConcepts = ['problema', 'usuário', 'requisitos_funcionais'];
|
|
365
|
+
return criticalConcepts.includes(concept) ? 0.9 : 0.6;
|
|
366
|
+
}
|
|
367
|
+
personalizeDescription(description, context, userProfile) {
|
|
368
|
+
let personalized = description;
|
|
369
|
+
// Personaliza baseado no tipo de projeto
|
|
370
|
+
if (context.projectType === 'poc') {
|
|
371
|
+
personalized = personalized.replace('completo', 'básico');
|
|
372
|
+
}
|
|
373
|
+
// Personaliza baseado na experiência
|
|
374
|
+
if (userProfile?.experienceLevel === 'junior') {
|
|
375
|
+
personalized += '\n\n💡 **Dica:** ' + this.getJuniorTip(description);
|
|
376
|
+
}
|
|
377
|
+
return personalized;
|
|
378
|
+
}
|
|
379
|
+
personalizeExamples(examples, context, userProfile) {
|
|
380
|
+
// Filtra exemplos baseado no contexto
|
|
381
|
+
let relevantExamples = examples;
|
|
382
|
+
if (context.projectType === 'poc') {
|
|
383
|
+
relevantExamples = examples.filter(ex => !ex.includes('complexo') && !ex.includes('avançado'));
|
|
384
|
+
}
|
|
385
|
+
return relevantExamples.slice(0, 3); // Limita a 3 exemplos
|
|
386
|
+
}
|
|
387
|
+
estimateTimeMinutes(effort) {
|
|
388
|
+
const timeMap = { quick: 10, moderate: 20, complex: 45 };
|
|
389
|
+
return timeMap[effort];
|
|
390
|
+
}
|
|
391
|
+
convertToAutofix(template) {
|
|
392
|
+
return {
|
|
393
|
+
type: template.type,
|
|
394
|
+
target: template.pattern,
|
|
395
|
+
content: template.replacement,
|
|
396
|
+
confidence: template.confidence
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
generateAutoFixAction(content, recommendation, context) {
|
|
400
|
+
if (!recommendation.autofix)
|
|
401
|
+
return null;
|
|
402
|
+
// Verifica se o auto-fix é aplicável no contexto atual
|
|
403
|
+
const isApplicable = this.isAutoFixApplicable(content, recommendation.autofix, context);
|
|
404
|
+
return isApplicable ? recommendation.autofix : null;
|
|
405
|
+
}
|
|
406
|
+
createDefaultProfile() {
|
|
407
|
+
return {
|
|
408
|
+
experienceLevel: 'mid',
|
|
409
|
+
preferredStyle: 'detailed',
|
|
410
|
+
commonPatterns: [],
|
|
411
|
+
recentProjects: [],
|
|
412
|
+
feedbackHistory: []
|
|
413
|
+
};
|
|
414
|
+
}
|
|
415
|
+
learnFromFeedback(profile, feedback) {
|
|
416
|
+
// Aprende padrões baseado no feedback positivo
|
|
417
|
+
const positiveFeedback = feedback.filter(f => f.wasUseful);
|
|
418
|
+
// Implementação de aprendizado simples
|
|
419
|
+
}
|
|
420
|
+
calculateRecommendationScore(recommendation, userProfile) {
|
|
421
|
+
let score = recommendation.priority * 100;
|
|
422
|
+
// Ajusta baseado no impacto
|
|
423
|
+
const impactMultiplier = { high: 1.2, medium: 1.0, low: 0.8 };
|
|
424
|
+
score *= impactMultiplier[recommendation.impact];
|
|
425
|
+
// Ajusta baseado no esforço (menos esforço = maior score)
|
|
426
|
+
const effortMultiplier = { quick: 1.2, moderate: 1.0, complex: 0.8 };
|
|
427
|
+
score *= effortMultiplier[recommendation.effort];
|
|
428
|
+
return score;
|
|
429
|
+
}
|
|
430
|
+
// Métodos auxiliares placeholder (implementação completa seria mais complexa)
|
|
431
|
+
getExamplesForMissingElement(missing, context) { return [`Exemplo para ${missing}`]; }
|
|
432
|
+
generateStructuralAutofix(missing, context) { return undefined; }
|
|
433
|
+
getClarityExamples(context) { return ['Use linguagem direta', 'Evite jargão técnico']; }
|
|
434
|
+
generateClarityAutofix() { return undefined; }
|
|
435
|
+
getDepthExamples(context) { return ['Adicione contexto', 'Inclua justificativas']; }
|
|
436
|
+
getPracticalityExamples(context) { return ['Inclua exemplos práticos', 'Adicione passos específicos']; }
|
|
437
|
+
getEffortForComponent(component) { return 'moderate'; }
|
|
438
|
+
getTitleForComponent(component) { return `Melhorar ${component}`; }
|
|
439
|
+
getDescriptionForComponent(component, context) { return `Melhore a ${component} do entregável`; }
|
|
440
|
+
getExamplesForComponent(component, context) { return [`Exemplo para ${component}`]; }
|
|
441
|
+
getTimeForComponent(component) { return 20; }
|
|
442
|
+
isTemplateApplicable(template, semanticMatches, completeness, context) { return true; }
|
|
443
|
+
isAutoFixApplicable(content, autofix, context) { return autofix.confidence > 0.7; }
|
|
444
|
+
getJuniorTip(description) { return 'Comece com uma versão simples e vá refinando'; }
|
|
445
|
+
}
|
|
446
|
+
//# sourceMappingURL=contextual-recommender.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextual-recommender.js","sourceRoot":"","sources":["../../src/gates/contextual-recommender.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Motor Principal de Gates Inteligentes - Orquestra todos os componentes
|
|
3
|
+
*
|
|
4
|
+
* Este é o ponto de entrada principal que coordena:
|
|
5
|
+
* - IntelligentValidator: Validação contextual semântica
|
|
6
|
+
* - AdaptiveScoring: Scoring dinâmico baseado em contexto
|
|
7
|
+
* - ContextualRecommender: Sugestões inteligentes e acionáveis
|
|
8
|
+
* - MaturityLevelAssessor: Sistema de 5 níveis de maturidade
|
|
9
|
+
*
|
|
10
|
+
* @version 3.0.0
|
|
11
|
+
*/
|
|
12
|
+
import { type ValidationContext, type IntelligentValidationResult } from "./intelligent-validator.js";
|
|
13
|
+
import { type AdaptiveScore, type ProjectHistory } from "./adaptive-scoring.js";
|
|
14
|
+
import { type UserProfile } from "./contextual-recommender.js";
|
|
15
|
+
import { type MaturityAssessment, type MaturityLevel } from "./maturity-levels.js";
|
|
16
|
+
import type { Fase, TierGate } from "../types/index.js";
|
|
17
|
+
export interface GateEngineConfig {
|
|
18
|
+
enableIntelligentValidation: boolean;
|
|
19
|
+
enableAdaptiveScoring: boolean;
|
|
20
|
+
enableContextualRecommendations: boolean;
|
|
21
|
+
enableMaturityLevels: boolean;
|
|
22
|
+
fallbackToLegacy: boolean;
|
|
23
|
+
maxRecommendations: number;
|
|
24
|
+
userProfile?: UserProfile;
|
|
25
|
+
projectHistory?: ProjectHistory;
|
|
26
|
+
}
|
|
27
|
+
export interface IntelligentGateResult {
|
|
28
|
+
canAdvance: boolean;
|
|
29
|
+
maturityLevel: MaturityLevel;
|
|
30
|
+
overallScore: number;
|
|
31
|
+
validationResult: IntelligentValidationResult;
|
|
32
|
+
adaptiveScore: AdaptiveScore;
|
|
33
|
+
maturityAssessment: MaturityAssessment;
|
|
34
|
+
summary: GateResultSummary;
|
|
35
|
+
userFeedback: UserFeedbackOptions;
|
|
36
|
+
engineVersion: string;
|
|
37
|
+
processingTimeMs: number;
|
|
38
|
+
confidenceLevel: number;
|
|
39
|
+
}
|
|
40
|
+
export interface GateResultSummary {
|
|
41
|
+
title: string;
|
|
42
|
+
status: 'approved' | 'conditionally_approved' | 'needs_improvement' | 'blocked';
|
|
43
|
+
statusIcon: string;
|
|
44
|
+
statusColor: 'green' | 'yellow' | 'orange' | 'red';
|
|
45
|
+
mainMessage: string;
|
|
46
|
+
keyStrengths: string[];
|
|
47
|
+
priorityActions: string[];
|
|
48
|
+
nextSteps: string[];
|
|
49
|
+
estimatedEffortHours: number;
|
|
50
|
+
}
|
|
51
|
+
export interface UserFeedbackOptions {
|
|
52
|
+
quickActions: QuickAction[];
|
|
53
|
+
detailsAvailable: boolean;
|
|
54
|
+
canForceAdvance: boolean;
|
|
55
|
+
canRequestHumanReview: boolean;
|
|
56
|
+
feedbackPrompts: FeedbackPrompt[];
|
|
57
|
+
}
|
|
58
|
+
export interface QuickAction {
|
|
59
|
+
id: string;
|
|
60
|
+
label: string;
|
|
61
|
+
type: 'advance' | 'iterate' | 'autofix' | 'consult' | 'skip';
|
|
62
|
+
estimatedMinutes: number;
|
|
63
|
+
confidence: number;
|
|
64
|
+
consequences?: string;
|
|
65
|
+
}
|
|
66
|
+
export interface FeedbackPrompt {
|
|
67
|
+
question: string;
|
|
68
|
+
options: string[];
|
|
69
|
+
purpose: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Motor principal que orquestra todo o sistema de validação inteligente
|
|
73
|
+
*/
|
|
74
|
+
export declare class IntelligentGateEngine {
|
|
75
|
+
private validator;
|
|
76
|
+
private scoring;
|
|
77
|
+
private recommender;
|
|
78
|
+
private maturityAssessor;
|
|
79
|
+
private defaultConfig;
|
|
80
|
+
constructor();
|
|
81
|
+
/**
|
|
82
|
+
* Método principal - valida entregável usando todo o sistema inteligente
|
|
83
|
+
*/
|
|
84
|
+
validateDeliverable(content: string, phase: Fase, tier?: TierGate, projectType?: 'poc' | 'internal' | 'product' | 'critical', config?: Partial<GateEngineConfig>): Promise<IntelligentGateResult>;
|
|
85
|
+
/**
|
|
86
|
+
* Valida com feedback em tempo real (streaming)
|
|
87
|
+
*/
|
|
88
|
+
validateWithRealTimeFeedback(content: string, context: ValidationContext, onProgress: (update: ValidationProgressUpdate) => void): Promise<IntelligentGateResult>;
|
|
89
|
+
/**
|
|
90
|
+
* Executa apenas análise rápida (para preview)
|
|
91
|
+
*/
|
|
92
|
+
quickAnalysis(content: string, phase: Fase, tier?: TierGate): {
|
|
93
|
+
estimatedLevel: MaturityLevel;
|
|
94
|
+
quickScore: number;
|
|
95
|
+
canLikelyAdvance: boolean;
|
|
96
|
+
majorIssues: string[];
|
|
97
|
+
quickWins: string[];
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Registra feedback do usuário para aprendizado
|
|
101
|
+
*/
|
|
102
|
+
recordUserFeedback(resultId: string, userAccepted: boolean, actualTimeSpent?: number, userComments?: string, recommendationsUsed?: string[]): void;
|
|
103
|
+
/**
|
|
104
|
+
* Constrói contexto de validação
|
|
105
|
+
*/
|
|
106
|
+
private buildValidationContext;
|
|
107
|
+
/**
|
|
108
|
+
* Executa validação inteligente
|
|
109
|
+
*/
|
|
110
|
+
private executeIntelligentValidation;
|
|
111
|
+
/**
|
|
112
|
+
* Calcula score adaptativo
|
|
113
|
+
*/
|
|
114
|
+
private calculateAdaptiveScore;
|
|
115
|
+
/**
|
|
116
|
+
* Avalia nível de maturidade
|
|
117
|
+
*/
|
|
118
|
+
private assessMaturityLevel;
|
|
119
|
+
/**
|
|
120
|
+
* Gera recomendações aprimoradas
|
|
121
|
+
*/
|
|
122
|
+
private generateEnhancedRecommendations;
|
|
123
|
+
/**
|
|
124
|
+
* Compila resultado final inteligente
|
|
125
|
+
*/
|
|
126
|
+
private compileIntelligentResult;
|
|
127
|
+
/**
|
|
128
|
+
* Gera resumo do resultado para apresentação
|
|
129
|
+
*/
|
|
130
|
+
private generateResultSummary;
|
|
131
|
+
/**
|
|
132
|
+
* Gera opções de feedback para o usuário
|
|
133
|
+
*/
|
|
134
|
+
private generateUserFeedbackOptions;
|
|
135
|
+
/**
|
|
136
|
+
* Gera prompts de feedback para aprendizado
|
|
137
|
+
*/
|
|
138
|
+
private generateFeedbackPrompts;
|
|
139
|
+
private fallbackToLegacySystem;
|
|
140
|
+
private inferTeamExperience;
|
|
141
|
+
private inferTimeConstraints;
|
|
142
|
+
private mapProjectTypeToCriticality;
|
|
143
|
+
private getExpectedConcepts;
|
|
144
|
+
private calculateQuickScore;
|
|
145
|
+
private estimateMaturityLevel;
|
|
146
|
+
private identifyMajorIssues;
|
|
147
|
+
private identifyQuickWins;
|
|
148
|
+
private createBasicValidationResult;
|
|
149
|
+
private createBasicScore;
|
|
150
|
+
private createBasicMaturityAssessment;
|
|
151
|
+
private recordForLearning;
|
|
152
|
+
}
|
|
153
|
+
export interface ValidationProgressUpdate {
|
|
154
|
+
stage: 'initializing' | 'semantic_analysis' | 'adaptive_scoring' | 'maturity_assessment' | 'recommendations' | 'finalizing';
|
|
155
|
+
progress: number;
|
|
156
|
+
message: string;
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=intelligent-gate-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intelligent-gate-engine.d.ts","sourceRoot":"","sources":["../../src/gates/intelligent-gate-engine.ts"],"names":[],"mappings":"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"}
|