@maestro-ai/mcp-server 5.7.0 → 6.1.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/analyzers/security-analyzer.js +1 -1
- package/dist/analyzers/security-analyzer.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/content/skills/specialist-api-contract/SKILL.md +98 -0
- package/dist/content/skills/specialist-api-contract/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-api-contract/resources/reference/guide.md +109 -0
- package/dist/content/skills/specialist-architect/SKILL.md +111 -0
- package/dist/content/skills/specialist-architect/resources/checklists/gate-checklist.md +45 -0
- package/dist/content/skills/specialist-architect/resources/examples/example-architecture.md +345 -0
- package/dist/content/skills/specialist-architect/resources/reference/guide.md +86 -0
- package/dist/content/skills/specialist-architect/resources/templates/arquitetura.md +282 -0
- package/dist/content/skills/specialist-backend/SKILL.md +100 -0
- package/dist/content/skills/specialist-backend/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-backend/resources/reference/guide.md +160 -0
- package/dist/content/skills/specialist-design/SKILL.md +107 -0
- package/dist/content/skills/specialist-design/resources/checklists/gate-checklist.md +45 -0
- package/dist/content/skills/specialist-design/resources/examples/example-design.md +294 -0
- package/dist/content/skills/specialist-design/resources/reference/guide.md +67 -0
- package/dist/content/skills/specialist-design/resources/templates/design-doc.md +232 -0
- package/dist/content/skills/specialist-devops/SKILL.md +99 -0
- package/dist/content/skills/specialist-devops/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-devops/resources/reference/guide.md +116 -0
- package/dist/content/skills/specialist-discovery/SKILL.md +109 -0
- package/dist/content/skills/specialist-discovery/resources/checklists/gate-checklist.md +45 -0
- package/dist/content/skills/specialist-discovery/resources/examples/example-discovery.md +179 -0
- package/dist/content/skills/specialist-discovery/resources/reference/guide.md +48 -0
- package/dist/content/skills/specialist-discovery/resources/templates/discovery.md +187 -0
- package/dist/content/skills/specialist-domain/SKILL.md +105 -0
- package/dist/content/skills/specialist-domain/resources/checklists/gate-checklist.md +37 -0
- package/dist/content/skills/specialist-domain/resources/reference/guide.md +80 -0
- package/dist/content/skills/specialist-frontend/SKILL.md +99 -0
- package/dist/content/skills/specialist-frontend/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-frontend/resources/reference/guide.md +90 -0
- package/dist/content/skills/specialist-operations/SKILL.md +109 -0
- package/dist/content/skills/specialist-operations/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-operations/resources/reference/guide.md +129 -0
- package/dist/content/skills/specialist-planning/SKILL.md +100 -0
- package/dist/content/skills/specialist-planning/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-planning/resources/reference/guide.md +88 -0
- package/dist/content/skills/specialist-product/SKILL.md +113 -0
- package/dist/content/skills/specialist-product/resources/checklists/gate-checklist.md +40 -0
- package/dist/content/skills/specialist-product/resources/reference/guide.md +43 -0
- package/dist/content/skills/specialist-product/resources/templates/PRD.md +191 -0
- package/dist/content/skills/specialist-requirements/SKILL.md +107 -0
- package/dist/content/skills/specialist-requirements/resources/checklists/gate-checklist.md +36 -0
- package/dist/content/skills/specialist-requirements/resources/reference/guide.md +66 -0
- package/dist/content/skills/specialist-technical-design/SKILL.md +114 -0
- package/dist/content/skills/specialist-technical-design/resources/checklists/gate-checklist.md +38 -0
- package/dist/content/skills/specialist-technical-design/resources/reference/guide.md +86 -0
- package/dist/core/adr/ADRGenerator.js +2 -2
- package/dist/core/adr/ADRGenerator.js.map +1 -1
- package/dist/core/architecture/FitnessFunctions.js +2 -2
- package/dist/core/architecture/FitnessFunctions.js.map +1 -1
- package/dist/core/atam/ATAMAnalyzer.js +6 -6
- package/dist/core/atam/ATAMAnalyzer.js.map +1 -1
- package/dist/core/atam/ATAMReporter.js +2 -2
- package/dist/core/atam/ATAMReporter.js.map +1 -1
- package/dist/core/atam/QualityScenarios.js +1 -1
- package/dist/core/atam/QualityScenarios.js.map +1 -1
- package/dist/core/atam/RiskRegistry.js +5 -5
- package/dist/core/atam/RiskRegistry.js.map +1 -1
- package/dist/core/authority/AuthorityManager.js +3 -3
- package/dist/core/authority/AuthorityManager.js.map +1 -1
- package/dist/core/automation/AutoExecutor.js +2 -2
- package/dist/core/automation/AutoExecutor.js.map +1 -1
- package/dist/core/consistency/ConsistencyAnalyzer.js +2 -2
- package/dist/core/consistency/ConsistencyAnalyzer.js.map +1 -1
- package/dist/core/context/ContextDetector.js +2 -2
- package/dist/core/context/ContextDetector.js.map +1 -1
- package/dist/core/decision/AlternativeGenerator.js +1 -1
- package/dist/core/decision/AlternativeGenerator.js.map +1 -1
- package/dist/core/decision/ConfidenceCalculator.js +5 -5
- package/dist/core/decision/ConfidenceCalculator.js.map +1 -1
- package/dist/core/decision/DecisionEngine.js +6 -6
- package/dist/core/decision/DecisionEngine.js.map +1 -1
- package/dist/core/decision/DecisionMatrix.js +1 -1
- package/dist/core/decision/DecisionMatrix.js.map +1 -1
- package/dist/core/feedback/FeedbackLoop.js +1 -1
- package/dist/core/feedback/FeedbackLoop.js.map +1 -1
- package/dist/core/growth/GrowthProjector.js +2 -2
- package/dist/core/growth/GrowthProjector.js.map +1 -1
- package/dist/core/impact/ImpactAnalyzer.js +1 -1
- package/dist/core/impact/ImpactAnalyzer.js.map +1 -1
- package/dist/core/notification/NotificationManager.js +2 -2
- package/dist/core/notification/NotificationManager.js.map +1 -1
- package/dist/core/roadmap/RoadmapManager.js +3 -3
- package/dist/core/roadmap/RoadmapManager.js.map +1 -1
- package/dist/core/strangler/StranglerOrchestrator.js +6 -6
- package/dist/core/strangler/StranglerOrchestrator.js.map +1 -1
- package/dist/core/testing/TestRunner.js +2 -2
- package/dist/core/testing/TestRunner.js.map +1 -1
- package/dist/core/tradeoff/TradeoffAnalyzer.js +1 -1
- package/dist/core/tradeoff/TradeoffAnalyzer.js.map +1 -1
- package/dist/core/validation/ValidationPipeline.js +5 -5
- package/dist/core/validation/ValidationPipeline.js.map +1 -1
- package/dist/flows/types.d.ts +13 -8
- package/dist/flows/types.d.ts.map +1 -1
- package/dist/flows/types.js +256 -324
- package/dist/flows/types.js.map +1 -1
- package/dist/gates/readiness-gate.d.ts +48 -0
- package/dist/gates/readiness-gate.d.ts.map +1 -0
- package/dist/gates/readiness-gate.js +301 -0
- package/dist/gates/readiness-gate.js.map +1 -0
- package/dist/handlers/code-phase-handler.js +14 -7
- package/dist/handlers/code-phase-handler.js.map +1 -1
- package/dist/handlers/specialist-phase-handler.d.ts +11 -10
- package/dist/handlers/specialist-phase-handler.d.ts.map +1 -1
- package/dist/handlers/specialist-phase-handler.js +160 -64
- package/dist/handlers/specialist-phase-handler.js.map +1 -1
- package/dist/middleware/adr-generation.middleware.js +2 -2
- package/dist/middleware/adr-generation.middleware.js.map +1 -1
- package/dist/middleware/orchestration-pipeline.middleware.d.ts.map +1 -1
- package/dist/middleware/orchestration-pipeline.middleware.js +0 -3
- package/dist/middleware/orchestration-pipeline.middleware.js.map +1 -1
- package/dist/services/deliverable-gate.service.js +1 -1
- package/dist/services/deliverable-gate.service.js.map +1 -1
- package/dist/services/phase-config-loader.d.ts +28 -0
- package/dist/services/phase-config-loader.d.ts.map +1 -0
- package/dist/services/phase-config-loader.js +200 -0
- package/dist/services/phase-config-loader.js.map +1 -0
- package/dist/services/scoring-config.d.ts.map +1 -1
- package/dist/services/scoring-config.js +13 -10
- package/dist/services/scoring-config.js.map +1 -1
- package/dist/services/watcher.service.js +3 -3
- package/dist/services/watcher.service.js.map +1 -1
- package/dist/tools/consolidated/avancar.d.ts.map +1 -1
- package/dist/tools/consolidated/avancar.js +86 -5
- package/dist/tools/consolidated/avancar.js.map +1 -1
- package/dist/tools/iniciar-projeto.d.ts.map +1 -1
- package/dist/tools/iniciar-projeto.js +46 -0
- package/dist/tools/iniciar-projeto.js.map +1 -1
- package/dist/tools/proximo.d.ts +1 -0
- package/dist/tools/proximo.d.ts.map +1 -1
- package/dist/tools/proximo.js +44 -30
- package/dist/tools/proximo.js.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/phase-config.d.ts +65 -0
- package/dist/types/phase-config.d.ts.map +1 -0
- package/dist/types/phase-config.js +11 -0
- package/dist/types/phase-config.js.map +1 -0
- package/dist/utils/gate-orientation.js +1 -1
- package/dist/utils/gate-orientation.js.map +1 -1
- package/dist/utils/migration-v10.d.ts +31 -0
- package/dist/utils/migration-v10.d.ts.map +1 -0
- package/dist/utils/migration-v10.js +145 -0
- package/dist/utils/migration-v10.js.map +1 -0
- package/dist/utils/prompt-mapper.d.ts +6 -2
- package/dist/utils/prompt-mapper.d.ts.map +1 -1
- package/dist/utils/prompt-mapper.js +72 -91
- package/dist/utils/prompt-mapper.js.map +1 -1
- package/dist/utils/skill-deployer.d.ts +32 -0
- package/dist/utils/skill-deployer.d.ts.map +1 -0
- package/dist/utils/skill-deployer.js +150 -0
- package/dist/utils/skill-deployer.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration v9 → v10 (Maestro)
|
|
3
|
+
*
|
|
4
|
+
* Migra estado de projetos existentes (v9) para o novo formato v10.
|
|
5
|
+
* Ajusta: nomes de fases, numeração, total_fases, skills.
|
|
6
|
+
*
|
|
7
|
+
* Regras:
|
|
8
|
+
* - Projetos com total_fases 7/13/17 (v9) → 5/8/11 (v10)
|
|
9
|
+
* - Renumera fase_atual baseado na fase em que o projeto está
|
|
10
|
+
* - Atualiza gates_validados com nova numeração
|
|
11
|
+
* - Preserva entregáveis já gerados (não perde dados)
|
|
12
|
+
* - Adiciona readiness_approved=false por padrão
|
|
13
|
+
*
|
|
14
|
+
* @since v10.0
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Mapeamento de nomes de fases v9 → nome da fase v10 mais próxima.
|
|
18
|
+
* Usado para re-posicionar o projeto no novo fluxo.
|
|
19
|
+
*/
|
|
20
|
+
const FASE_V9_TO_V10 = {
|
|
21
|
+
// Fases v9 que existem em v10 (direto)
|
|
22
|
+
'Produto': { v10Name: 'Produto', v10Number: { simples: 1, medio: 1, complexo: 1 } },
|
|
23
|
+
'Requisitos': { v10Name: 'Requisitos', v10Number: { simples: 1, medio: 2, complexo: 2 } },
|
|
24
|
+
'UX Design': { v10Name: 'Design', v10Number: { simples: 2, medio: 3, complexo: 3 } },
|
|
25
|
+
// Fases v9 que foram mergeadas em v10
|
|
26
|
+
'Modelo de Domínio': { v10Name: 'Design Técnico', v10Number: { simples: 3, medio: 4, complexo: 4 } },
|
|
27
|
+
'Banco de Dados': { v10Name: 'Design Técnico', v10Number: { simples: 3, medio: 4, complexo: 5 } },
|
|
28
|
+
'Arquitetura': { v10Name: 'Arquitetura', v10Number: { simples: 3, medio: 4, complexo: 5 } },
|
|
29
|
+
'Segurança': { v10Name: 'Design Técnico', v10Number: { simples: 3, medio: 4, complexo: 5 } },
|
|
30
|
+
'Testes': { v10Name: 'Planejamento', v10Number: { simples: 3, medio: 5, complexo: 7 } },
|
|
31
|
+
'Backlog': { v10Name: 'Planejamento', v10Number: { simples: 3, medio: 5, complexo: 7 } },
|
|
32
|
+
'Contrato API': { v10Name: 'Contrato API', v10Number: { simples: 3, medio: 5, complexo: 6 } },
|
|
33
|
+
// Fases v9 complexo que foram simplificadas
|
|
34
|
+
'Arquitetura Avançada': { v10Name: 'Design Técnico', v10Number: { simples: 3, medio: 4, complexo: 5 } },
|
|
35
|
+
'Performance': { v10Name: 'Design Técnico', v10Number: { simples: 3, medio: 4, complexo: 5 } },
|
|
36
|
+
'Observabilidade': { v10Name: 'Deploy & Operação', v10Number: { simples: 5, medio: 8, complexo: 11 } },
|
|
37
|
+
// Fases de código (mesmos nomes, numeração diferente)
|
|
38
|
+
'Frontend': { v10Name: 'Frontend', v10Number: { simples: 4, medio: 6, complexo: 8 } },
|
|
39
|
+
'Backend': { v10Name: 'Backend', v10Number: { simples: 5, medio: 7, complexo: 9 } },
|
|
40
|
+
'Integração': { v10Name: 'Integração & Deploy', v10Number: { simples: 5, medio: 8, complexo: 10 } },
|
|
41
|
+
'Deploy Final': { v10Name: 'Deploy & Operação', v10Number: { simples: 5, medio: 8, complexo: 11 } },
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Verifica se um estado precisa de migração v9→v10.
|
|
45
|
+
*/
|
|
46
|
+
export function needsMigration(estado) {
|
|
47
|
+
// v9 tinha total_fases 7, 13 ou 17
|
|
48
|
+
// v10 tem 5, 8 ou 11
|
|
49
|
+
const v9Totals = [7, 13, 17];
|
|
50
|
+
return v9Totals.includes(estado.total_fases);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Migra estado v9 para v10.
|
|
54
|
+
* Retorna novo estado com numeração atualizada.
|
|
55
|
+
* NÃO modifica o objeto original — retorna cópia.
|
|
56
|
+
*/
|
|
57
|
+
export function migrateStateV9toV10(estado) {
|
|
58
|
+
if (!needsMigration(estado)) {
|
|
59
|
+
return estado;
|
|
60
|
+
}
|
|
61
|
+
const migrated = { ...estado };
|
|
62
|
+
// 1. Atualizar total_fases baseado no nível
|
|
63
|
+
const newTotals = {
|
|
64
|
+
7: { nivel: 'simples', total: 5 },
|
|
65
|
+
13: { nivel: 'medio', total: 8 },
|
|
66
|
+
17: { nivel: 'complexo', total: 11 },
|
|
67
|
+
};
|
|
68
|
+
const mapping = newTotals[estado.total_fases];
|
|
69
|
+
if (mapping) {
|
|
70
|
+
migrated.total_fases = mapping.total;
|
|
71
|
+
migrated.nivel = mapping.nivel;
|
|
72
|
+
}
|
|
73
|
+
// 2. Remapear fase_atual
|
|
74
|
+
// Precisamos saber em qual fase v9 o projeto está para mapear para v10
|
|
75
|
+
// Estratégia: se está em fase de código, mapear direto. Se em fase de doc, usar a fase mergeada mais próxima.
|
|
76
|
+
const currentPhaseV9 = findV9PhaseName(estado.fase_atual, estado.total_fases);
|
|
77
|
+
if (currentPhaseV9 && FASE_V9_TO_V10[currentPhaseV9]) {
|
|
78
|
+
const v10Info = FASE_V9_TO_V10[currentPhaseV9];
|
|
79
|
+
migrated.fase_atual = v10Info.v10Number[migrated.nivel] || estado.fase_atual;
|
|
80
|
+
}
|
|
81
|
+
// 3. Remapear gates_validados
|
|
82
|
+
// Gates passados continuam validados — remapear números
|
|
83
|
+
if (migrated.gates_validados && migrated.gates_validados.length > 0) {
|
|
84
|
+
const newGates = [];
|
|
85
|
+
for (const oldGate of migrated.gates_validados) {
|
|
86
|
+
const oldPhaseName = findV9PhaseName(oldGate, estado.total_fases);
|
|
87
|
+
if (oldPhaseName && FASE_V9_TO_V10[oldPhaseName]) {
|
|
88
|
+
const newNum = FASE_V9_TO_V10[oldPhaseName].v10Number[migrated.nivel];
|
|
89
|
+
if (newNum && !newGates.includes(newNum)) {
|
|
90
|
+
newGates.push(newNum);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
migrated.gates_validados = newGates.sort((a, b) => a - b);
|
|
95
|
+
}
|
|
96
|
+
// 4. Adicionar campos v10 se não existem
|
|
97
|
+
if (migrated.readiness_approved === undefined) {
|
|
98
|
+
migrated.readiness_approved = false;
|
|
99
|
+
}
|
|
100
|
+
// 5. Marcar como migrado
|
|
101
|
+
migrated._migrated_from = `v9_${estado.total_fases}fases`;
|
|
102
|
+
migrated._migrated_at = new Date().toISOString();
|
|
103
|
+
console.error(`[migration-v10] Migrado: ${estado.total_fases} fases → ${migrated.total_fases} fases, fase_atual: ${estado.fase_atual} → ${migrated.fase_atual}`);
|
|
104
|
+
return migrated;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Encontra o nome da fase v9 baseado no número e total de fases.
|
|
108
|
+
*/
|
|
109
|
+
function findV9PhaseName(faseNumero, totalFases) {
|
|
110
|
+
// Mapeamento reverso: número da fase → nome da fase nos fluxos v9
|
|
111
|
+
const v9Simples = ['Produto', 'Requisitos', 'UX Design', 'Arquitetura', 'Backlog', 'Frontend', 'Backend'];
|
|
112
|
+
const v9Medio = ['Produto', 'Requisitos', 'UX Design', 'Modelo de Domínio', 'Banco de Dados', 'Arquitetura', 'Segurança', 'Testes', 'Backlog', 'Contrato API', 'Frontend', 'Backend', 'Integração'];
|
|
113
|
+
const v9Complexo = ['Produto', 'Requisitos', 'UX Design', 'Modelo de Domínio', 'Banco de Dados', 'Arquitetura', 'Arquitetura Avançada', 'Segurança', 'Performance', 'Observabilidade', 'Testes', 'Backlog', 'Contrato API', 'Frontend', 'Backend', 'Integração', 'Deploy Final'];
|
|
114
|
+
let fases;
|
|
115
|
+
switch (totalFases) {
|
|
116
|
+
case 7:
|
|
117
|
+
fases = v9Simples;
|
|
118
|
+
break;
|
|
119
|
+
case 13:
|
|
120
|
+
fases = v9Medio;
|
|
121
|
+
break;
|
|
122
|
+
case 17:
|
|
123
|
+
fases = v9Complexo;
|
|
124
|
+
break;
|
|
125
|
+
default: return null;
|
|
126
|
+
}
|
|
127
|
+
const idx = faseNumero - 1;
|
|
128
|
+
return (idx >= 0 && idx < fases.length) ? fases[idx] : null;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Gera relatório de migração para logging/debug.
|
|
132
|
+
*/
|
|
133
|
+
export function generateMigrationReport(before, after) {
|
|
134
|
+
const lines = [];
|
|
135
|
+
lines.push('=== Migration Report v9 → v10 ===');
|
|
136
|
+
lines.push(`Projeto: ${before.nome} (${before.projeto_id})`);
|
|
137
|
+
lines.push(`Total fases: ${before.total_fases} → ${after.total_fases}`);
|
|
138
|
+
lines.push(`Nível: ${before.nivel} → ${after.nivel}`);
|
|
139
|
+
lines.push(`Fase atual: ${before.fase_atual} → ${after.fase_atual}`);
|
|
140
|
+
lines.push(`Gates validados: [${before.gates_validados.join(',')}] → [${after.gates_validados.join(',')}]`);
|
|
141
|
+
lines.push(`Entregáveis preservados: ${Object.keys(before.entregaveis).length}`);
|
|
142
|
+
lines.push('================================');
|
|
143
|
+
return lines.join('\n');
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=migration-v10.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration-v10.js","sourceRoot":"","sources":["../../src/utils/migration-v10.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,14 @@ export interface PromptRef {
|
|
|
7
7
|
nome: string;
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
|
-
* Mapeamento de fases para skills locais
|
|
10
|
+
* Mapeamento de fases para skills locais (v10.0)
|
|
11
11
|
* Skills estão em {IDE_SPECIFIC}/skills/{nome}/
|
|
12
12
|
* Use ide-paths.ts para obter caminhos corretos por IDE
|
|
13
|
-
*
|
|
13
|
+
*
|
|
14
|
+
* v10.0: Fluxos enxutos — Simples(5), Médio(8), Complexo(11)
|
|
15
|
+
* Inclui aliases de nomes antigos (v9) para backward compatibility.
|
|
16
|
+
*
|
|
17
|
+
* @since 10.0.0
|
|
14
18
|
*/
|
|
15
19
|
export declare const FASE_SKILL_MAP: Record<string, string>;
|
|
16
20
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-mapper.d.ts","sourceRoot":"","sources":["../../src/utils/prompt-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,SAAS;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED
|
|
1
|
+
{"version":3,"file":"prompt-mapper.d.ts","sourceRoot":"","sources":["../../src/utils/prompt-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,SAAS;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqCjD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKzE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC5B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAChB,MAAM,CAGR;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAChC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,GAC5D,MAAM,CAGR;AAmGD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,CAEhE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAG5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgB9E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAGxE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAwB1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAgB/D"}
|
|
@@ -3,52 +3,48 @@
|
|
|
3
3
|
* Usado para injetar prompts recomendados nas respostas do MCP
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
|
-
* Mapeamento de fases para skills locais
|
|
6
|
+
* Mapeamento de fases para skills locais (v10.0)
|
|
7
7
|
* Skills estão em {IDE_SPECIFIC}/skills/{nome}/
|
|
8
8
|
* Use ide-paths.ts para obter caminhos corretos por IDE
|
|
9
|
-
*
|
|
9
|
+
*
|
|
10
|
+
* v10.0: Fluxos enxutos — Simples(5), Médio(8), Complexo(11)
|
|
11
|
+
* Inclui aliases de nomes antigos (v9) para backward compatibility.
|
|
12
|
+
*
|
|
13
|
+
* @since 10.0.0
|
|
10
14
|
*/
|
|
11
15
|
export const FASE_SKILL_MAP = {
|
|
12
16
|
// ========================================
|
|
13
|
-
// FLUXO SIMPLES (
|
|
17
|
+
// FLUXO SIMPLES v10 (5 fases)
|
|
14
18
|
// ========================================
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"Frontend": "specialist-desenvolvimento-frontend",
|
|
21
|
-
"Backend": "specialist-desenvolvimento-backend",
|
|
19
|
+
"Discovery": "specialist-discovery",
|
|
20
|
+
"Design": "specialist-design",
|
|
21
|
+
"Arquitetura": "specialist-architect",
|
|
22
|
+
"Frontend": "specialist-frontend",
|
|
23
|
+
"Backend": "specialist-backend",
|
|
22
24
|
// ========================================
|
|
23
|
-
// FLUXO MÉDIO (
|
|
25
|
+
// FLUXO MÉDIO v10 (8 fases) — adiciona:
|
|
24
26
|
// ========================================
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"Integração": "specialist-devops-infra",
|
|
27
|
+
"Produto": "specialist-product",
|
|
28
|
+
"Requisitos": "specialist-requirements",
|
|
29
|
+
"Design Técnico": "specialist-technical-design",
|
|
30
|
+
"Planejamento": "specialist-planning",
|
|
31
|
+
"Integração & Deploy": "specialist-devops",
|
|
31
32
|
// ========================================
|
|
32
|
-
// FLUXO COMPLEXO (
|
|
33
|
+
// FLUXO COMPLEXO v10 (11 fases) — adiciona:
|
|
33
34
|
// ========================================
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
35
|
+
"Modelo de Domínio": "specialist-domain",
|
|
36
|
+
"Contrato API": "specialist-api-contract",
|
|
37
|
+
"Integração": "specialist-devops",
|
|
38
|
+
"Deploy & Operação": "specialist-operations",
|
|
37
39
|
// ========================================
|
|
38
40
|
// OPCIONAL
|
|
39
41
|
// ========================================
|
|
40
42
|
"Prototipagem": "specialist-prototipagem-stitch",
|
|
41
43
|
// ========================================
|
|
42
|
-
//
|
|
44
|
+
// UTILITÁRIAS (on-demand, sem fase)
|
|
43
45
|
// ========================================
|
|
44
|
-
"Dados e Analytics": "specialist-dados-analytics-ia",
|
|
45
|
-
"Acessibilidade": "specialist-acessibilidade",
|
|
46
46
|
"Debugging": "specialist-debugging-troubleshooting",
|
|
47
|
-
"Documentação": "specialist-documentacao-tecnica",
|
|
48
47
|
"Exploração": "specialist-exploracao-codebase",
|
|
49
|
-
"Migração": "specialist-migracao-modernizacao",
|
|
50
|
-
"Mobile": "specialist-desenvolvimento-mobile",
|
|
51
|
-
"Mobile Design": "specialist-mobile-design-avancado"
|
|
52
48
|
};
|
|
53
49
|
/**
|
|
54
50
|
* Retorna o nome da skill para uma fase
|
|
@@ -111,89 +107,74 @@ export function getSkillResourcePath(skillNome, diretorio, tipo) {
|
|
|
111
107
|
* Os prompts são carregados de .maestro/content/prompts/ ou fallback do servidor
|
|
112
108
|
*/
|
|
113
109
|
const FASE_PROMPTS_MAP = {
|
|
114
|
-
//
|
|
110
|
+
// v10 Fluxo Simples
|
|
111
|
+
"Discovery": [
|
|
112
|
+
{ categoria: "produto", nome: "prd-completo" },
|
|
113
|
+
{ categoria: "produto", nome: "north-star" },
|
|
114
|
+
{ categoria: "requisitos", nome: "analise-requisitos" }
|
|
115
|
+
],
|
|
116
|
+
"Design": [
|
|
117
|
+
{ categoria: "ux", nome: "design-system" }
|
|
118
|
+
],
|
|
119
|
+
"Arquitetura": [
|
|
120
|
+
{ categoria: "arquitetura", nome: "clean-architecture" },
|
|
121
|
+
{ categoria: "arquitetura", nome: "arquitetura-c4-completo" }
|
|
122
|
+
],
|
|
123
|
+
"Frontend": [
|
|
124
|
+
{ categoria: "desenvolvimento", nome: "code-review" },
|
|
125
|
+
{ categoria: "acessibilidade", nome: "wcag-checklist" }
|
|
126
|
+
],
|
|
127
|
+
"Backend": [
|
|
128
|
+
{ categoria: "desenvolvimento", nome: "code-review" }
|
|
129
|
+
],
|
|
130
|
+
// v10 Fluxo Médio — adiciona:
|
|
115
131
|
"Produto": [
|
|
116
132
|
{ categoria: "produto", nome: "prd-completo" },
|
|
117
133
|
{ categoria: "produto", nome: "north-star" }
|
|
118
134
|
],
|
|
119
|
-
// Fase 2
|
|
120
135
|
"Requisitos": [
|
|
121
136
|
{ categoria: "requisitos", nome: "analise-requisitos" },
|
|
122
137
|
{ categoria: "requisitos", nome: "gherkin" }
|
|
123
138
|
],
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
{ categoria: "
|
|
127
|
-
],
|
|
128
|
-
// Fase 4 (Stitch - opcional)
|
|
129
|
-
"Prototipagem": [
|
|
130
|
-
{ categoria: "prototipagem", nome: "prompt-stitch" },
|
|
131
|
-
{ categoria: "prototipagem", nome: "prototipo-stitch" }
|
|
132
|
-
],
|
|
133
|
-
// Fase 4/5
|
|
134
|
-
"Modelo de Domínio": [
|
|
139
|
+
"Design Técnico": [
|
|
140
|
+
{ categoria: "arquitetura", nome: "clean-architecture" },
|
|
141
|
+
{ categoria: "arquitetura", nome: "arquitetura-c4-completo" },
|
|
135
142
|
{ categoria: "arquitetura", nome: "modelo-dominio" },
|
|
136
|
-
{ categoria: "arquitetura", nome: "ddd-bounded-contexts" }
|
|
137
|
-
],
|
|
138
|
-
// Fase 5/6
|
|
139
|
-
"Banco de Dados": [
|
|
140
143
|
{ categoria: "database", nome: "modelagem-postgres" },
|
|
141
|
-
{ categoria: "
|
|
142
|
-
],
|
|
143
|
-
// Fase 6/7
|
|
144
|
-
"Arquitetura": [
|
|
145
|
-
{ categoria: "arquitetura", nome: "clean-architecture" },
|
|
146
|
-
{ categoria: "arquitetura", nome: "arquitetura-c4-completo" }
|
|
147
|
-
],
|
|
148
|
-
// Fase 7 (complexo)
|
|
149
|
-
"Arquitetura Avançada": [
|
|
150
|
-
{ categoria: "arquitetura", nome: "ddd-cqrs" },
|
|
151
|
-
{ categoria: "arquitetura", nome: "multi-tenancy" }
|
|
152
|
-
],
|
|
153
|
-
// Fase 7/8
|
|
154
|
-
"Segurança": [
|
|
155
|
-
{ categoria: "seguranca", nome: "security-review" },
|
|
156
|
-
{ categoria: "seguranca", nome: "auth-patterns" },
|
|
157
|
-
{ categoria: "seguranca", nome: "lgpd-compliance" }
|
|
144
|
+
{ categoria: "seguranca", nome: "security-review" }
|
|
158
145
|
],
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
{ categoria: "
|
|
162
|
-
{ categoria: "testes", nome: "
|
|
163
|
-
{ categoria: "testes", nome: "testes-integracao" }
|
|
146
|
+
"Planejamento": [
|
|
147
|
+
{ categoria: "apis", nome: "openapi-design" },
|
|
148
|
+
{ categoria: "apis", nome: "rest-best-practices" },
|
|
149
|
+
{ categoria: "testes", nome: "plano-testes" }
|
|
164
150
|
],
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
{ categoria: "
|
|
168
|
-
{ categoria: "escalabilidade", nome: "caching-strategies" }
|
|
151
|
+
"Integração & Deploy": [
|
|
152
|
+
{ categoria: "devops", nome: "ci-cd-pipeline" },
|
|
153
|
+
{ categoria: "devops", nome: "docker-kubernetes" }
|
|
169
154
|
],
|
|
170
|
-
//
|
|
171
|
-
"
|
|
172
|
-
{ categoria: "
|
|
173
|
-
{ categoria: "
|
|
174
|
-
{ categoria: "
|
|
155
|
+
// v10 Fluxo Complexo — adiciona:
|
|
156
|
+
"Modelo de Domínio": [
|
|
157
|
+
{ categoria: "arquitetura", nome: "modelo-dominio" },
|
|
158
|
+
{ categoria: "arquitetura", nome: "ddd-bounded-contexts" },
|
|
159
|
+
{ categoria: "arquitetura", nome: "ddd-cqrs" }
|
|
175
160
|
],
|
|
176
|
-
// Fase Backlog
|
|
177
|
-
"Plano de Execução": [],
|
|
178
|
-
// Fase Contrato API
|
|
179
161
|
"Contrato API": [
|
|
180
162
|
{ categoria: "apis", nome: "openapi-design" },
|
|
181
163
|
{ categoria: "apis", nome: "rest-best-practices" }
|
|
182
164
|
],
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
{ categoria: "desenvolvimento", nome: "code-review" },
|
|
186
|
-
{ categoria: "acessibilidade", nome: "wcag-checklist" }
|
|
165
|
+
"Integração": [
|
|
166
|
+
{ categoria: "devops", nome: "ci-cd-pipeline" }
|
|
187
167
|
],
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
{ categoria: "
|
|
168
|
+
"Deploy & Operação": [
|
|
169
|
+
{ categoria: "observabilidade", nome: "logging-estruturado" },
|
|
170
|
+
{ categoria: "observabilidade", nome: "metricas-alertas" },
|
|
171
|
+
{ categoria: "devops", nome: "ci-cd-pipeline" }
|
|
172
|
+
],
|
|
173
|
+
// Opcional
|
|
174
|
+
"Prototipagem": [
|
|
175
|
+
{ categoria: "prototipagem", nome: "prompt-stitch" },
|
|
176
|
+
{ categoria: "prototipagem", nome: "prototipo-stitch" }
|
|
191
177
|
],
|
|
192
|
-
// Fase Integração/DevOps
|
|
193
|
-
"Integração": [
|
|
194
|
-
{ categoria: "devops", nome: "ci-cd-pipeline" },
|
|
195
|
-
{ categoria: "devops", nome: "docker-kubernetes" }
|
|
196
|
-
]
|
|
197
178
|
};
|
|
198
179
|
/**
|
|
199
180
|
* Mapeamento de stacks para exemplos de fluxo completo
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-mapper.js","sourceRoot":"","sources":["../../src/utils/prompt-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH
|
|
1
|
+
{"version":3,"file":"prompt-mapper.js","sourceRoot":"","sources":["../../src/utils/prompt-mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Deployer (v10.0)
|
|
3
|
+
*
|
|
4
|
+
* Copia skills de content/skills/ para o diretório da IDE no projeto.
|
|
5
|
+
* Suporta múltiplas IDEs: Windsurf, Cursor, Antigravity.
|
|
6
|
+
*
|
|
7
|
+
* Windsurf: .windsurf/skills/<skill-name>/
|
|
8
|
+
* Cursor: .cursor/rules/<skill-name>.mdc (conversão SKILL.md → .mdc)
|
|
9
|
+
* Antigravity: .agent/skills/<skill-name>/
|
|
10
|
+
*
|
|
11
|
+
* @since v10.0
|
|
12
|
+
*/
|
|
13
|
+
import type { NivelComplexidade } from "../types/index.js";
|
|
14
|
+
import { type IDEType } from "../utils/ide-paths.js";
|
|
15
|
+
/**
|
|
16
|
+
* Copia skills relevantes de contentDir para o diretório da IDE no projeto.
|
|
17
|
+
* Filtra por nível de complexidade — só copia skills usadas no fluxo.
|
|
18
|
+
*
|
|
19
|
+
* @param contentSkillsDir Caminho absoluto para content/skills/
|
|
20
|
+
* @param projectDir Diretório raiz do projeto
|
|
21
|
+
* @param ide IDE ativa (windsurf, cursor, antigravity)
|
|
22
|
+
* @param nivel Nível de complexidade (simples, medio, complexo)
|
|
23
|
+
* @param usarStitch Se deve incluir skill de prototipagem
|
|
24
|
+
* @returns Lista de skills deployadas
|
|
25
|
+
*/
|
|
26
|
+
export declare function deploySkillsToProject(contentSkillsDir: string, projectDir: string, ide: IDEType, nivel: NivelComplexidade, usarStitch?: boolean): Promise<string[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Verifica se as skills estão deployadas no projeto.
|
|
29
|
+
* Retorna lista de skills faltantes.
|
|
30
|
+
*/
|
|
31
|
+
export declare function checkSkillsDeployed(projectDir: string, ide: IDEType, nivel: NivelComplexidade, usarStitch?: boolean): string[];
|
|
32
|
+
//# sourceMappingURL=skill-deployer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-deployer.d.ts","sourceRoot":"","sources":["../../src/utils/skill-deployer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAgB,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACvC,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,iBAAiB,EACxB,UAAU,GAAE,OAAe,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC,CA8CnB;AAuED;;;GAGG;AACH,wBAAgB,mBAAmB,CAC/B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,iBAAiB,EACxB,UAAU,GAAE,OAAe,GAC5B,MAAM,EAAE,CAuBV"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Deployer (v10.0)
|
|
3
|
+
*
|
|
4
|
+
* Copia skills de content/skills/ para o diretório da IDE no projeto.
|
|
5
|
+
* Suporta múltiplas IDEs: Windsurf, Cursor, Antigravity.
|
|
6
|
+
*
|
|
7
|
+
* Windsurf: .windsurf/skills/<skill-name>/
|
|
8
|
+
* Cursor: .cursor/rules/<skill-name>.mdc (conversão SKILL.md → .mdc)
|
|
9
|
+
* Antigravity: .agent/skills/<skill-name>/
|
|
10
|
+
*
|
|
11
|
+
* @since v10.0
|
|
12
|
+
*/
|
|
13
|
+
import { existsSync, readdirSync, mkdirSync, copyFileSync, readFileSync, writeFileSync } from "fs";
|
|
14
|
+
import { join } from "path";
|
|
15
|
+
import { getFluxoComStitch } from "../flows/types.js";
|
|
16
|
+
import { getSkillsDir } from "../utils/ide-paths.js";
|
|
17
|
+
/**
|
|
18
|
+
* Copia skills relevantes de contentDir para o diretório da IDE no projeto.
|
|
19
|
+
* Filtra por nível de complexidade — só copia skills usadas no fluxo.
|
|
20
|
+
*
|
|
21
|
+
* @param contentSkillsDir Caminho absoluto para content/skills/
|
|
22
|
+
* @param projectDir Diretório raiz do projeto
|
|
23
|
+
* @param ide IDE ativa (windsurf, cursor, antigravity)
|
|
24
|
+
* @param nivel Nível de complexidade (simples, medio, complexo)
|
|
25
|
+
* @param usarStitch Se deve incluir skill de prototipagem
|
|
26
|
+
* @returns Lista de skills deployadas
|
|
27
|
+
*/
|
|
28
|
+
export async function deploySkillsToProject(contentSkillsDir, projectDir, ide, nivel, usarStitch = false) {
|
|
29
|
+
const deployedSkills = [];
|
|
30
|
+
// Obter lista de skills necessárias para o fluxo
|
|
31
|
+
const fluxo = getFluxoComStitch(nivel, usarStitch);
|
|
32
|
+
const requiredSkills = new Set();
|
|
33
|
+
for (const fase of fluxo.fases) {
|
|
34
|
+
if (fase.skill) {
|
|
35
|
+
requiredSkills.add(fase.skill);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Adicionar skills utilitárias (sempre deployadas)
|
|
39
|
+
requiredSkills.add('specialist-debugging-troubleshooting');
|
|
40
|
+
requiredSkills.add('specialist-exploracao-codebase');
|
|
41
|
+
const targetDir = getSkillsDir(ide);
|
|
42
|
+
const targetBase = join(projectDir, targetDir);
|
|
43
|
+
for (const skillName of requiredSkills) {
|
|
44
|
+
const sourceDir = join(contentSkillsDir, skillName);
|
|
45
|
+
if (!existsSync(sourceDir)) {
|
|
46
|
+
console.warn(`[skill-deployer] Skill ${skillName} não encontrada em ${contentSkillsDir}`);
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
if (ide === 'cursor') {
|
|
51
|
+
// Cursor: converter SKILL.md → .mdc
|
|
52
|
+
await deployCursorRule(sourceDir, projectDir, skillName);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
// Windsurf/Antigravity: copiar diretório completo
|
|
56
|
+
const targetSkillDir = join(targetBase, skillName);
|
|
57
|
+
copyDirectoryRecursive(sourceDir, targetSkillDir);
|
|
58
|
+
}
|
|
59
|
+
deployedSkills.push(skillName);
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
console.warn(`[skill-deployer] Falha ao deployar ${skillName}:`, err);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
console.error(`[skill-deployer] ${deployedSkills.length}/${requiredSkills.size} skills deployadas para ${ide} em ${projectDir}`);
|
|
66
|
+
return deployedSkills;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Converte SKILL.md em .mdc para Cursor.
|
|
70
|
+
* Cursor usa .cursor/rules/ com frontmatter description + alwaysApply.
|
|
71
|
+
*/
|
|
72
|
+
async function deployCursorRule(sourceDir, projectDir, skillName) {
|
|
73
|
+
const skillMdPath = join(sourceDir, 'SKILL.md');
|
|
74
|
+
if (!existsSync(skillMdPath))
|
|
75
|
+
return;
|
|
76
|
+
const content = readFileSync(skillMdPath, 'utf-8');
|
|
77
|
+
// Extrair description do frontmatter YAML
|
|
78
|
+
const frontmatterMatch = content.match(/^---\s*\n([\s\S]*?)\n---/);
|
|
79
|
+
let description = skillName;
|
|
80
|
+
let body = content;
|
|
81
|
+
if (frontmatterMatch) {
|
|
82
|
+
const yaml = frontmatterMatch[1];
|
|
83
|
+
const descMatch = yaml.match(/description:\s*(.+)/);
|
|
84
|
+
if (descMatch) {
|
|
85
|
+
description = descMatch[1].trim().replace(/^["']|["']$/g, '');
|
|
86
|
+
}
|
|
87
|
+
body = content.substring(frontmatterMatch[0].length).trim();
|
|
88
|
+
}
|
|
89
|
+
// Gerar .mdc com frontmatter do Cursor
|
|
90
|
+
const mdcContent = `---
|
|
91
|
+
description: "${description}"
|
|
92
|
+
alwaysApply: false
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
${body}
|
|
96
|
+
`;
|
|
97
|
+
const targetDir = join(projectDir, '.cursor', 'rules');
|
|
98
|
+
mkdirSync(targetDir, { recursive: true });
|
|
99
|
+
writeFileSync(join(targetDir, `${skillName}.mdc`), mdcContent, 'utf-8');
|
|
100
|
+
// Copiar resources como arquivos separados referenciáveis
|
|
101
|
+
const resourcesDir = join(sourceDir, 'resources');
|
|
102
|
+
if (existsSync(resourcesDir)) {
|
|
103
|
+
const targetResourcesDir = join(projectDir, '.cursor', 'rules', `${skillName}-resources`);
|
|
104
|
+
copyDirectoryRecursive(resourcesDir, targetResourcesDir);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Copia diretório recursivamente.
|
|
109
|
+
*/
|
|
110
|
+
function copyDirectoryRecursive(source, target) {
|
|
111
|
+
mkdirSync(target, { recursive: true });
|
|
112
|
+
const entries = readdirSync(source, { withFileTypes: true });
|
|
113
|
+
for (const entry of entries) {
|
|
114
|
+
const sourcePath = join(source, entry.name);
|
|
115
|
+
const targetPath = join(target, entry.name);
|
|
116
|
+
if (entry.isDirectory()) {
|
|
117
|
+
copyDirectoryRecursive(sourcePath, targetPath);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
copyFileSync(sourcePath, targetPath);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Verifica se as skills estão deployadas no projeto.
|
|
126
|
+
* Retorna lista de skills faltantes.
|
|
127
|
+
*/
|
|
128
|
+
export function checkSkillsDeployed(projectDir, ide, nivel, usarStitch = false) {
|
|
129
|
+
const fluxo = getFluxoComStitch(nivel, usarStitch);
|
|
130
|
+
const missingSkills = [];
|
|
131
|
+
const targetDir = getSkillsDir(ide);
|
|
132
|
+
for (const fase of fluxo.fases) {
|
|
133
|
+
if (!fase.skill)
|
|
134
|
+
continue;
|
|
135
|
+
if (ide === 'cursor') {
|
|
136
|
+
const rulePath = join(projectDir, '.cursor', 'rules', `${fase.skill}.mdc`);
|
|
137
|
+
if (!existsSync(rulePath)) {
|
|
138
|
+
missingSkills.push(fase.skill);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
const skillPath = join(projectDir, targetDir, fase.skill, 'SKILL.md');
|
|
143
|
+
if (!existsSync(skillPath)) {
|
|
144
|
+
missingSkills.push(fase.skill);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return missingSkills;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=skill-deployer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-deployer.js","sourceRoot":"","sources":["../../src/utils/skill-deployer.ts"],"names":[],"mappings":"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"}
|