@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,291 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Testes para brainstorm e PRD writer
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect, beforeEach } from 'vitest';
|
|
5
|
+
import { gerarBlocosDiscovery } from '../utils/discovery-adapter.js';
|
|
6
|
+
describe('Brainstorm e PRD Writer', () => {
|
|
7
|
+
let onboarding;
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
onboarding = {
|
|
10
|
+
projectId: 'test-project-123',
|
|
11
|
+
phase: 'discovery',
|
|
12
|
+
discoveryStatus: 'completed',
|
|
13
|
+
discoveryBlocks: gerarBlocosDiscovery({
|
|
14
|
+
mode: 'balanced',
|
|
15
|
+
skipCompletedBlocks: false,
|
|
16
|
+
prioritizeByMode: true,
|
|
17
|
+
allowBatchInput: true,
|
|
18
|
+
}),
|
|
19
|
+
discoveryResponses: {
|
|
20
|
+
nome_projeto: 'PulseTrack',
|
|
21
|
+
problema: 'Monitorar saúde ocupacional',
|
|
22
|
+
publico_alvo: 'Empresas e profissionais de saúde',
|
|
23
|
+
funcionalidades_principais: ['Dashboard', 'Alertas', 'Relatórios'],
|
|
24
|
+
plataformas: ['Web', 'Mobile'],
|
|
25
|
+
cronograma: '6 meses',
|
|
26
|
+
stack_preferida: 'React + Node.js',
|
|
27
|
+
tamanho_time: '2-5 pessoas',
|
|
28
|
+
experiencia_time: 'Pleno',
|
|
29
|
+
},
|
|
30
|
+
discoveryCompletedAt: new Date().toISOString(),
|
|
31
|
+
brainstormStatus: 'pending',
|
|
32
|
+
brainstormSections: [],
|
|
33
|
+
prdStatus: 'pending',
|
|
34
|
+
prdScore: 0,
|
|
35
|
+
mode: 'balanced',
|
|
36
|
+
totalInteractions: 0,
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
describe('Brainstorm Sections', () => {
|
|
40
|
+
it('deve gerar 5 seções de brainstorm', () => {
|
|
41
|
+
const secoes = [
|
|
42
|
+
{
|
|
43
|
+
id: 'problema-oportunidade',
|
|
44
|
+
title: 'Problema e Oportunidade',
|
|
45
|
+
description: 'Defina o problema de forma quantificada',
|
|
46
|
+
prompt: 'Elabore o problema...',
|
|
47
|
+
expectedOutput: 'Análise estruturada',
|
|
48
|
+
status: 'pending',
|
|
49
|
+
order: 1,
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: 'personas-jtbd',
|
|
53
|
+
title: 'Personas e Jobs to Be Done',
|
|
54
|
+
description: 'Defina personas principais',
|
|
55
|
+
prompt: 'Crie personas...',
|
|
56
|
+
expectedOutput: 'Descrição de personas',
|
|
57
|
+
status: 'pending',
|
|
58
|
+
order: 2,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: 'mvp-funcionalidades',
|
|
62
|
+
title: 'MVP e Funcionalidades',
|
|
63
|
+
description: 'Refine funcionalidades',
|
|
64
|
+
prompt: 'Refine e priorize...',
|
|
65
|
+
expectedOutput: 'Matriz RICE',
|
|
66
|
+
status: 'pending',
|
|
67
|
+
order: 3,
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
id: 'metricas-sucesso',
|
|
71
|
+
title: 'Métricas de Sucesso',
|
|
72
|
+
description: 'Defina North Star',
|
|
73
|
+
prompt: 'Defina métricas...',
|
|
74
|
+
expectedOutput: 'North Star + KPIs',
|
|
75
|
+
status: 'pending',
|
|
76
|
+
order: 4,
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
id: 'riscos-mitigacoes',
|
|
80
|
+
title: 'Riscos e Mitigações',
|
|
81
|
+
description: 'Identifique riscos',
|
|
82
|
+
prompt: 'Identifique riscos...',
|
|
83
|
+
expectedOutput: 'Matriz de riscos',
|
|
84
|
+
status: 'pending',
|
|
85
|
+
order: 5,
|
|
86
|
+
},
|
|
87
|
+
];
|
|
88
|
+
expect(secoes.length).toBe(5);
|
|
89
|
+
expect(secoes[0].id).toBe('problema-oportunidade');
|
|
90
|
+
expect(secoes[4].id).toBe('riscos-mitigacoes');
|
|
91
|
+
});
|
|
92
|
+
it('deve rastrear progresso do brainstorm', () => {
|
|
93
|
+
const secoes = [
|
|
94
|
+
{
|
|
95
|
+
id: 'problema-oportunidade',
|
|
96
|
+
title: 'Problema e Oportunidade',
|
|
97
|
+
description: 'Defina o problema',
|
|
98
|
+
prompt: 'Elabore...',
|
|
99
|
+
expectedOutput: 'Análise',
|
|
100
|
+
status: 'completed',
|
|
101
|
+
response: 'Resposta do usuário',
|
|
102
|
+
order: 1,
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
id: 'personas-jtbd',
|
|
106
|
+
title: 'Personas',
|
|
107
|
+
description: 'Defina personas',
|
|
108
|
+
prompt: 'Crie...',
|
|
109
|
+
expectedOutput: 'Personas',
|
|
110
|
+
status: 'pending',
|
|
111
|
+
order: 2,
|
|
112
|
+
},
|
|
113
|
+
];
|
|
114
|
+
const completadas = secoes.filter((s) => s.status === 'completed').length;
|
|
115
|
+
const total = secoes.length;
|
|
116
|
+
const percentual = Math.round((completadas / total) * 100);
|
|
117
|
+
expect(completadas).toBe(1);
|
|
118
|
+
expect(total).toBe(2);
|
|
119
|
+
expect(percentual).toBe(50);
|
|
120
|
+
});
|
|
121
|
+
it('deve marcar brainstorm como completo quando todas as seções estão completas', () => {
|
|
122
|
+
const secoes = [
|
|
123
|
+
{
|
|
124
|
+
id: 'problema-oportunidade',
|
|
125
|
+
title: 'Problema',
|
|
126
|
+
description: 'Defina',
|
|
127
|
+
prompt: 'Elabore...',
|
|
128
|
+
expectedOutput: 'Análise',
|
|
129
|
+
status: 'completed',
|
|
130
|
+
response: 'Resposta 1',
|
|
131
|
+
order: 1,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
id: 'personas-jtbd',
|
|
135
|
+
title: 'Personas',
|
|
136
|
+
description: 'Defina',
|
|
137
|
+
prompt: 'Crie...',
|
|
138
|
+
expectedOutput: 'Personas',
|
|
139
|
+
status: 'completed',
|
|
140
|
+
response: 'Resposta 2',
|
|
141
|
+
order: 2,
|
|
142
|
+
},
|
|
143
|
+
];
|
|
144
|
+
const todasCompletas = secoes.every((s) => s.status === 'completed');
|
|
145
|
+
expect(todasCompletas).toBe(true);
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
describe('PRD Generation', () => {
|
|
149
|
+
it('deve gerar PRD com todas as seções', () => {
|
|
150
|
+
const prdConteudo = `# PRD - ${onboarding.discoveryResponses.nome_projeto}
|
|
151
|
+
|
|
152
|
+
## 1. Sumário Executivo
|
|
153
|
+
Problema e oportunidade...
|
|
154
|
+
|
|
155
|
+
## 2. Personas e Jobs to Be Done
|
|
156
|
+
Personas...
|
|
157
|
+
|
|
158
|
+
## 3. MVP e Funcionalidades Priorizadas
|
|
159
|
+
Funcionalidades...
|
|
160
|
+
|
|
161
|
+
## 4. Métricas de Sucesso
|
|
162
|
+
Métricas...
|
|
163
|
+
|
|
164
|
+
## 5. Riscos e Planos de Mitigação
|
|
165
|
+
Riscos...
|
|
166
|
+
|
|
167
|
+
## 6. Contexto Técnico
|
|
168
|
+
Stack: ${onboarding.discoveryResponses.stack_preferida}
|
|
169
|
+
|
|
170
|
+
## 7. Timeline e Recursos
|
|
171
|
+
Cronograma: ${onboarding.discoveryResponses.cronograma}
|
|
172
|
+
|
|
173
|
+
## 8. Requisitos Críticos
|
|
174
|
+
Requisitos...`;
|
|
175
|
+
expect(prdConteudo).toContain('PulseTrack');
|
|
176
|
+
expect(prdConteudo).toContain('Sumário Executivo');
|
|
177
|
+
expect(prdConteudo).toContain('Personas');
|
|
178
|
+
expect(prdConteudo).toContain('MVP');
|
|
179
|
+
expect(prdConteudo).toContain('Métricas');
|
|
180
|
+
expect(prdConteudo).toContain('Riscos');
|
|
181
|
+
expect(prdConteudo).toContain('React + Node.js');
|
|
182
|
+
expect(prdConteudo).toContain('6 meses');
|
|
183
|
+
});
|
|
184
|
+
it('deve validar completude do PRD', () => {
|
|
185
|
+
const checklist = {
|
|
186
|
+
'Sumário Executivo': true,
|
|
187
|
+
'Personas e JTBD': true,
|
|
188
|
+
'MVP e Funcionalidades': true,
|
|
189
|
+
'Métricas de Sucesso': true,
|
|
190
|
+
'Riscos e Mitigações': true,
|
|
191
|
+
'Contexto Técnico': true,
|
|
192
|
+
'Timeline e Recursos': true,
|
|
193
|
+
'Requisitos Críticos': true,
|
|
194
|
+
};
|
|
195
|
+
const itemsValidados = Object.values(checklist).filter((v) => v).length;
|
|
196
|
+
const totalItems = Object.keys(checklist).length;
|
|
197
|
+
const score = Math.round((itemsValidados / totalItems) * 100);
|
|
198
|
+
expect(score).toBe(100);
|
|
199
|
+
expect(itemsValidados).toBe(8);
|
|
200
|
+
});
|
|
201
|
+
it('deve detectar lacunas no PRD', () => {
|
|
202
|
+
const checklist = {
|
|
203
|
+
'Sumário Executivo': true,
|
|
204
|
+
'Personas e JTBD': false,
|
|
205
|
+
'MVP e Funcionalidades': true,
|
|
206
|
+
'Métricas de Sucesso': false,
|
|
207
|
+
'Riscos e Mitigações': true,
|
|
208
|
+
'Contexto Técnico': true,
|
|
209
|
+
'Timeline e Recursos': true,
|
|
210
|
+
'Requisitos Críticos': true,
|
|
211
|
+
};
|
|
212
|
+
const itemsValidados = Object.values(checklist).filter((v) => v).length;
|
|
213
|
+
const totalItems = Object.keys(checklist).length;
|
|
214
|
+
const score = Math.round((itemsValidados / totalItems) * 100);
|
|
215
|
+
const lacunas = Object.entries(checklist)
|
|
216
|
+
.filter(([_, valido]) => !valido)
|
|
217
|
+
.map(([item]) => item);
|
|
218
|
+
expect(score).toBe(75);
|
|
219
|
+
expect(lacunas.length).toBe(2);
|
|
220
|
+
expect(lacunas).toContain('Personas e JTBD');
|
|
221
|
+
expect(lacunas).toContain('Métricas de Sucesso');
|
|
222
|
+
});
|
|
223
|
+
});
|
|
224
|
+
describe('Onboarding State Transitions', () => {
|
|
225
|
+
it('deve transicionar de discovery para brainstorm', () => {
|
|
226
|
+
onboarding.phase = 'brainstorm';
|
|
227
|
+
onboarding.brainstormStatus = 'in_progress';
|
|
228
|
+
expect(onboarding.phase).toBe('brainstorm');
|
|
229
|
+
expect(onboarding.brainstormStatus).toBe('in_progress');
|
|
230
|
+
});
|
|
231
|
+
it('deve transicionar de brainstorm para prd_draft', () => {
|
|
232
|
+
onboarding.phase = 'prd_draft';
|
|
233
|
+
onboarding.brainstormStatus = 'completed';
|
|
234
|
+
onboarding.prdStatus = 'draft';
|
|
235
|
+
expect(onboarding.phase).toBe('prd_draft');
|
|
236
|
+
expect(onboarding.brainstormStatus).toBe('completed');
|
|
237
|
+
expect(onboarding.prdStatus).toBe('draft');
|
|
238
|
+
});
|
|
239
|
+
it('deve transicionar de prd_draft para validation', () => {
|
|
240
|
+
onboarding.phase = 'validation';
|
|
241
|
+
onboarding.prdStatus = 'validated';
|
|
242
|
+
onboarding.prdScore = 85;
|
|
243
|
+
expect(onboarding.phase).toBe('validation');
|
|
244
|
+
expect(onboarding.prdStatus).toBe('validated');
|
|
245
|
+
expect(onboarding.prdScore).toBeGreaterThanOrEqual(70);
|
|
246
|
+
});
|
|
247
|
+
it('deve rastrear total de interações', () => {
|
|
248
|
+
onboarding.totalInteractions = 0;
|
|
249
|
+
// Discovery
|
|
250
|
+
onboarding.totalInteractions += 3;
|
|
251
|
+
expect(onboarding.totalInteractions).toBe(3);
|
|
252
|
+
// Brainstorm
|
|
253
|
+
onboarding.totalInteractions += 5;
|
|
254
|
+
expect(onboarding.totalInteractions).toBe(8);
|
|
255
|
+
// PRD
|
|
256
|
+
onboarding.totalInteractions += 2;
|
|
257
|
+
expect(onboarding.totalInteractions).toBe(10);
|
|
258
|
+
});
|
|
259
|
+
});
|
|
260
|
+
describe('PRD Score Calculation', () => {
|
|
261
|
+
it('deve calcular score baseado em completude', () => {
|
|
262
|
+
const completude = {
|
|
263
|
+
campos_preenchidos: 8,
|
|
264
|
+
campos_totais: 8,
|
|
265
|
+
};
|
|
266
|
+
const score = Math.round((completude.campos_preenchidos / completude.campos_totais) * 100);
|
|
267
|
+
expect(score).toBe(100);
|
|
268
|
+
});
|
|
269
|
+
it('deve considerar PRD validado com score >= 70', () => {
|
|
270
|
+
const scores = [85, 75, 70, 65, 50];
|
|
271
|
+
scores.forEach((score) => {
|
|
272
|
+
const validado = score >= 70;
|
|
273
|
+
if (score >= 70) {
|
|
274
|
+
expect(validado).toBe(true);
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
expect(validado).toBe(false);
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
});
|
|
281
|
+
it('deve calcular score ponderado com qualidade', () => {
|
|
282
|
+
const completude = 80;
|
|
283
|
+
const qualidade = 75;
|
|
284
|
+
const clareza = 85;
|
|
285
|
+
const scoreTotal = Math.round(completude * 0.4 + qualidade * 0.35 + clareza * 0.25);
|
|
286
|
+
expect(scoreTotal).toBeGreaterThan(70);
|
|
287
|
+
expect(scoreTotal).toBeLessThanOrEqual(100);
|
|
288
|
+
});
|
|
289
|
+
});
|
|
290
|
+
});
|
|
291
|
+
//# sourceMappingURL=brainstorm-prd.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brainstorm-prd.test.js","sourceRoot":"","sources":["../../src/tests/brainstorm-prd.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migracao-skills.test.d.ts","sourceRoot":"","sources":["../../src/tests/migracao-skills.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
const TEMPLATES_AVAILABLE = existsSync(join(getServerContentRoot(), "templates"));
|
|
2
|
+
const itWithTemplates = TEMPLATES_AVAILABLE ? it : it.skip;
|
|
3
|
+
/**
|
|
4
|
+
* Testes para migração de maestro:// para skills locais
|
|
5
|
+
* Valida normalização, mapeamento e fluxo completo
|
|
6
|
+
*/
|
|
7
|
+
import { describe, it, expect } from "vitest";
|
|
8
|
+
import { existsSync } from "fs";
|
|
9
|
+
import { join } from "path";
|
|
10
|
+
import { lerEspecialista, lerTemplate, getServerContentRoot } from "../utils/files.js";
|
|
11
|
+
import { getSkillParaFase, temSkillParaFase } from "../utils/prompt-mapper.js";
|
|
12
|
+
import { gerarInstrucaoRecursos, gerarInstrucaoRecursosCompacta, gerarInstrucaoProximaFase } from "../utils/instructions.js";
|
|
13
|
+
describe("Migração de maestro:// para Skills", () => {
|
|
14
|
+
describe("Normalização de nomes de especialistas", () => {
|
|
15
|
+
it("deve encontrar skill para 'Gestão de Produto'", async () => {
|
|
16
|
+
const conteudo = await lerEspecialista("Gestão de Produto");
|
|
17
|
+
expect(conteudo).toBeTruthy();
|
|
18
|
+
expect(conteudo.length).toBeGreaterThan(0);
|
|
19
|
+
});
|
|
20
|
+
it("deve encontrar skill para 'gestao-produto' (normalizado)", async () => {
|
|
21
|
+
const conteudo = await lerEspecialista("gestao-produto");
|
|
22
|
+
expect(conteudo).toBeTruthy();
|
|
23
|
+
});
|
|
24
|
+
it("deve encontrar skill para 'gestao de produto' (sem acento)", async () => {
|
|
25
|
+
const conteudo = await lerEspecialista("gestao de produto");
|
|
26
|
+
expect(conteudo).toBeTruthy();
|
|
27
|
+
});
|
|
28
|
+
it("deve encontrar skill para 'Engenharia de Requisitos'", async () => {
|
|
29
|
+
const conteudo = await lerEspecialista("Engenharia de Requisitos");
|
|
30
|
+
expect(conteudo).toBeTruthy();
|
|
31
|
+
});
|
|
32
|
+
it("deve encontrar skill para 'UX Design'", async () => {
|
|
33
|
+
const conteudo = await lerEspecialista("UX Design");
|
|
34
|
+
expect(conteudo).toBeTruthy();
|
|
35
|
+
});
|
|
36
|
+
it("deve encontrar skill para 'Arquitetura de Software'", async () => {
|
|
37
|
+
const conteudo = await lerEspecialista("Arquitetura de Software");
|
|
38
|
+
expect(conteudo).toBeTruthy();
|
|
39
|
+
});
|
|
40
|
+
it("deve lançar erro descritivo para especialista inexistente", async () => {
|
|
41
|
+
try {
|
|
42
|
+
await lerEspecialista("Especialista Inexistente");
|
|
43
|
+
expect.fail("Deveria ter lançado erro");
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
expect(error).toBeTruthy();
|
|
47
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
48
|
+
expect(message).toContain("Skill não encontrada");
|
|
49
|
+
expect(message).toContain("Skills disponíveis");
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
describe("Mapeamento de fases para skills", () => {
|
|
54
|
+
it("deve mapear fase 'Produto' para skill", () => {
|
|
55
|
+
const skill = getSkillParaFase("Produto");
|
|
56
|
+
expect(skill).toBe("specialist-gestao-produto");
|
|
57
|
+
});
|
|
58
|
+
it("deve mapear fase 'Requisitos' para skill", () => {
|
|
59
|
+
const skill = getSkillParaFase("Requisitos");
|
|
60
|
+
expect(skill).toBe("specialist-engenharia-requisitos-ia");
|
|
61
|
+
});
|
|
62
|
+
it("deve mapear fase 'UX Design' para skill", () => {
|
|
63
|
+
const skill = getSkillParaFase("UX Design");
|
|
64
|
+
expect(skill).toBe("specialist-ux-design");
|
|
65
|
+
});
|
|
66
|
+
it("deve mapear fase 'Arquitetura' para skill", () => {
|
|
67
|
+
const skill = getSkillParaFase("Arquitetura");
|
|
68
|
+
expect(skill).toBe("specialist-arquitetura-software");
|
|
69
|
+
});
|
|
70
|
+
it("deve verificar se fase tem skill associada", () => {
|
|
71
|
+
expect(temSkillParaFase("Produto")).toBe(true);
|
|
72
|
+
expect(temSkillParaFase("Requisitos")).toBe(true);
|
|
73
|
+
expect(temSkillParaFase("Fase Inexistente")).toBe(false);
|
|
74
|
+
});
|
|
75
|
+
it("deve retornar null para fase sem skill", () => {
|
|
76
|
+
const skill = getSkillParaFase("Fase Inexistente");
|
|
77
|
+
expect(skill).toBeNull();
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
describe("Geração de instruções com skills", () => {
|
|
81
|
+
it("deve gerar instrução de recursos para fase com skill", () => {
|
|
82
|
+
const instrucao = gerarInstrucaoRecursos("Produto", "AÇÃO OBRIGATÓRIA", "windsurf");
|
|
83
|
+
expect(instrucao).toContain("specialist-gestao-produto");
|
|
84
|
+
expect(instrucao).toContain("SKILL.md");
|
|
85
|
+
expect(instrucao).toContain("Templates");
|
|
86
|
+
expect(instrucao).toContain("Checklists");
|
|
87
|
+
expect(instrucao).toContain(".windsurf/skills");
|
|
88
|
+
expect(instrucao).not.toContain("maestro://");
|
|
89
|
+
});
|
|
90
|
+
it("deve gerar instrução compacta para fase com skill", () => {
|
|
91
|
+
const instrucao = gerarInstrucaoRecursosCompacta("Requisitos", "windsurf");
|
|
92
|
+
expect(instrucao).toContain("specialist-engenharia-requisitos-ia");
|
|
93
|
+
expect(instrucao).toContain("SKILL.md");
|
|
94
|
+
expect(instrucao).toContain("Templates");
|
|
95
|
+
expect(instrucao).not.toContain("maestro://");
|
|
96
|
+
});
|
|
97
|
+
it("deve gerar instrução para próxima fase", () => {
|
|
98
|
+
const instrucao = gerarInstrucaoProximaFase("UX Design", "windsurf");
|
|
99
|
+
expect(instrucao).toContain("specialist-ux-design");
|
|
100
|
+
expect(instrucao).toContain("PRÓXIMA FASE");
|
|
101
|
+
expect(instrucao).toContain("UX Design");
|
|
102
|
+
expect(instrucao).not.toContain("maestro://");
|
|
103
|
+
});
|
|
104
|
+
it("deve usar IDE correto nos caminhos (cursor)", () => {
|
|
105
|
+
const instrucao = gerarInstrucaoRecursos("Produto", "AÇÃO", "cursor");
|
|
106
|
+
expect(instrucao).toContain(".cursor/skills");
|
|
107
|
+
expect(instrucao).not.toContain(".windsurf/skills");
|
|
108
|
+
});
|
|
109
|
+
it("deve usar IDE correto nos caminhos (antigravity)", () => {
|
|
110
|
+
const instrucao = gerarInstrucaoRecursos("Produto", "AÇÃO", "antigravity");
|
|
111
|
+
expect(instrucao).toContain(".agent/skills");
|
|
112
|
+
expect(instrucao).not.toContain(".windsurf/skills");
|
|
113
|
+
});
|
|
114
|
+
it("deve informar quando fase não tem skill", () => {
|
|
115
|
+
const instrucao = gerarInstrucaoRecursos("Fase Inexistente", "AÇÃO");
|
|
116
|
+
expect(instrucao).toContain("não possui skill");
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
describe("Compatibilidade com maestro://", () => {
|
|
120
|
+
it("lerEspecialista deve funcionar com nomes do maestro://", async () => {
|
|
121
|
+
// Simula chamada via maestro://especialista/Gestão de Produto
|
|
122
|
+
const conteudo = await lerEspecialista("Gestão de Produto");
|
|
123
|
+
expect(conteudo).toBeTruthy();
|
|
124
|
+
expect(conteudo.length).toBeGreaterThan(100); // SKILL.md deve ter conteúdo
|
|
125
|
+
});
|
|
126
|
+
itWithTemplates("lerTemplate deve funcionar com nomes do maestro://", async () => {
|
|
127
|
+
// Simula chamada via maestro://template/PRD
|
|
128
|
+
const conteudo = await lerTemplate("PRD");
|
|
129
|
+
expect(conteudo).toBeTruthy();
|
|
130
|
+
expect(conteudo.length).toBeGreaterThan(100);
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
describe("Fluxo completo PRD + proximo()", () => {
|
|
134
|
+
it("mensagem de entregável inválido deve referenciar skills", () => {
|
|
135
|
+
// Simula resposta do proximo() quando entregável < 200 chars
|
|
136
|
+
// Verificar que a mensagem não contém maestro://
|
|
137
|
+
const mensagemLegada = `
|
|
138
|
+
read_resource("maestro://especialista/Gestão de Produto")
|
|
139
|
+
read_resource("maestro://template/PRD")
|
|
140
|
+
`;
|
|
141
|
+
const mensagemNova = `
|
|
142
|
+
.windsurf/skills/specialist-gestao-produto/resources/reference/SKILL.md
|
|
143
|
+
.windsurf/skills/specialist-gestao-produto/resources/templates/
|
|
144
|
+
`;
|
|
145
|
+
// A mensagem nova deve estar sendo usada
|
|
146
|
+
expect(mensagemNova).toContain("specialist-gestao-produto");
|
|
147
|
+
expect(mensagemNova).not.toContain("maestro://");
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
describe("Regressão: maestro:// ainda funciona", () => {
|
|
151
|
+
it("lerEspecialista com nome exato de especialista", async () => {
|
|
152
|
+
// Teste de compatibilidade: nomes que vêm do maestro://
|
|
153
|
+
const nomes = [
|
|
154
|
+
"Gestão de Produto",
|
|
155
|
+
"Engenharia de Requisitos",
|
|
156
|
+
"UX Design",
|
|
157
|
+
"Arquitetura de Software",
|
|
158
|
+
"Plano de Execução",
|
|
159
|
+
"Desenvolvimento Frontend",
|
|
160
|
+
"Desenvolvimento Backend",
|
|
161
|
+
];
|
|
162
|
+
for (const nome of nomes) {
|
|
163
|
+
const conteudo = await lerEspecialista(nome);
|
|
164
|
+
expect(conteudo).toBeTruthy();
|
|
165
|
+
expect(conteudo.length).toBeGreaterThan(0);
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
itWithTemplates("lerTemplate com nomes de template", async () => {
|
|
169
|
+
const nomes = [
|
|
170
|
+
"PRD",
|
|
171
|
+
"requisitos",
|
|
172
|
+
"design-doc",
|
|
173
|
+
"arquitetura",
|
|
174
|
+
"backlog",
|
|
175
|
+
];
|
|
176
|
+
for (const nome of nomes) {
|
|
177
|
+
try {
|
|
178
|
+
const conteudo = await lerTemplate(nome);
|
|
179
|
+
expect(conteudo).toBeTruthy();
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
// Template pode não existir, mas a função deve tentar
|
|
183
|
+
expect(error).toBeTruthy();
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
describe("Casos extremos e edge cases", () => {
|
|
190
|
+
it("deve normalizar múltiplos espaços", async () => {
|
|
191
|
+
const conteudo = await lerEspecialista("Gestão de Produto");
|
|
192
|
+
expect(conteudo).toBeTruthy();
|
|
193
|
+
});
|
|
194
|
+
it("deve normalizar caracteres especiais", async () => {
|
|
195
|
+
const conteudo = await lerEspecialista("Gestão-de-Produto");
|
|
196
|
+
expect(conteudo).toBeTruthy();
|
|
197
|
+
});
|
|
198
|
+
it("deve ser case-insensitive", async () => {
|
|
199
|
+
const conteudo1 = await lerEspecialista("GESTÃO DE PRODUTO");
|
|
200
|
+
const conteudo2 = await lerEspecialista("gestão de produto");
|
|
201
|
+
expect(conteudo1).toBe(conteudo2);
|
|
202
|
+
});
|
|
203
|
+
it("deve lidar com espaços em branco nas extremidades", async () => {
|
|
204
|
+
const conteudo = await lerEspecialista(" Gestão de Produto ");
|
|
205
|
+
expect(conteudo).toBeTruthy();
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
//# sourceMappingURL=migracao-skills.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migracao-skills.test.js","sourceRoot":"","sources":["../../src/tests/migracao-skills.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboarding-flow.test.d.ts","sourceRoot":"","sources":["../../src/tests/onboarding-flow.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|