@su-record/vibe 3.2.18 → 3.2.19
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/CLAUDE.md +1 -0
- package/dist/cli/commands/remove.d.ts.map +1 -1
- package/dist/cli/commands/remove.js +15 -6
- package/dist/cli/commands/remove.js.map +1 -1
- package/dist/tools/dispatch/costGate.d.ts +59 -0
- package/dist/tools/dispatch/costGate.d.ts.map +1 -0
- package/dist/tools/dispatch/costGate.js +85 -0
- package/dist/tools/dispatch/costGate.js.map +1 -0
- package/dist/tools/dispatch/deterministicSignals.d.ts +61 -0
- package/dist/tools/dispatch/deterministicSignals.d.ts.map +1 -0
- package/dist/tools/dispatch/deterministicSignals.js +131 -0
- package/dist/tools/dispatch/deterministicSignals.js.map +1 -0
- package/dist/tools/dispatch/index.d.ts +5 -0
- package/dist/tools/dispatch/index.d.ts.map +1 -0
- package/dist/tools/dispatch/index.js +3 -0
- package/dist/tools/dispatch/index.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/spec/index.d.ts +2 -0
- package/dist/tools/spec/index.d.ts.map +1 -1
- package/dist/tools/spec/index.js +2 -0
- package/dist/tools/spec/index.js.map +1 -1
- package/dist/tools/spec/validateSpecDocument.d.ts +30 -0
- package/dist/tools/spec/validateSpecDocument.d.ts.map +1 -0
- package/dist/tools/spec/validateSpecDocument.js +201 -0
- package/dist/tools/spec/validateSpecDocument.js.map +1 -0
- package/package.json +1 -1
- package/skills/vibe/SKILL.md +18 -5
- package/skills/vibe.image/SKILL.md +8 -0
- package/skills/vibe.review/SKILL.md +8 -0
- package/skills/vibe.spec/SKILL.md +21 -0
- package/vibe/rules/loop-contract.md +31 -0
- package/dist/infra/lib/OrchestrateWorkflow.d.ts +0 -88
- package/dist/infra/lib/OrchestrateWorkflow.d.ts.map +0 -1
- package/dist/infra/lib/OrchestrateWorkflow.js +0 -259
- package/dist/infra/lib/OrchestrateWorkflow.js.map +0 -1
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Orchestrate Workflow Pattern
|
|
3
|
-
* Intent Gate → Assessment → Delegation → Verification
|
|
4
|
-
*/
|
|
5
|
-
// Phase 0: Intent Gate
|
|
6
|
-
const SKILL_KEYWORDS = {
|
|
7
|
-
'spec': ['spec', 'specification', 'requirements', 'design'],
|
|
8
|
-
'vibe.review': ['review', 'code review', 'PR review'],
|
|
9
|
-
'vibe.verify': ['verify', 'verification', 'test', 'check'],
|
|
10
|
-
'vibe.analyze': ['analyze', 'analysis', 'explore'],
|
|
11
|
-
'vibe.reason': ['reason', 'reasoning', 'think', 'problem'],
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* Phase 0: Intent Gate
|
|
15
|
-
* Check if there's a matching skill BEFORE doing any work
|
|
16
|
-
*/
|
|
17
|
-
export function checkIntentGate(prompt) {
|
|
18
|
-
const lowerPrompt = prompt.toLowerCase();
|
|
19
|
-
for (const [skillName, keywords] of Object.entries(SKILL_KEYWORDS)) {
|
|
20
|
-
for (const keyword of keywords) {
|
|
21
|
-
if (lowerPrompt.includes(keyword)) {
|
|
22
|
-
return {
|
|
23
|
-
hasMatchingSkill: true,
|
|
24
|
-
skillName,
|
|
25
|
-
shouldDelegate: true,
|
|
26
|
-
reason: `Prompt matches "${keyword}" → Use ${skillName} instead`,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return {
|
|
32
|
-
hasMatchingSkill: false,
|
|
33
|
-
shouldDelegate: false,
|
|
34
|
-
reason: 'No matching skill found, proceed with orchestration',
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Phase 1: Codebase Assessment
|
|
39
|
-
* Classify codebase maturity and characteristics
|
|
40
|
-
*/
|
|
41
|
-
export function assessCodebase(signals) {
|
|
42
|
-
const { hasTests, hasLinting, hasTypescript, hasCICD, hasDocumentation, fileCount, techStack } = signals;
|
|
43
|
-
// Calculate maturity score
|
|
44
|
-
let score = 0;
|
|
45
|
-
if (hasTests)
|
|
46
|
-
score += 2;
|
|
47
|
-
if (hasLinting)
|
|
48
|
-
score += 1;
|
|
49
|
-
if (hasTypescript)
|
|
50
|
-
score += 2;
|
|
51
|
-
if (hasCICD)
|
|
52
|
-
score += 2;
|
|
53
|
-
if (hasDocumentation)
|
|
54
|
-
score += 1;
|
|
55
|
-
// Determine maturity
|
|
56
|
-
let maturity;
|
|
57
|
-
if (fileCount === 0) {
|
|
58
|
-
maturity = 'greenfield';
|
|
59
|
-
}
|
|
60
|
-
else if (score >= 6) {
|
|
61
|
-
maturity = 'disciplined';
|
|
62
|
-
}
|
|
63
|
-
else if (score >= 3) {
|
|
64
|
-
maturity = 'transitional';
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
maturity = 'legacy';
|
|
68
|
-
}
|
|
69
|
-
// Identify patterns
|
|
70
|
-
const patterns = [];
|
|
71
|
-
if (hasTypescript)
|
|
72
|
-
patterns.push('TypeScript');
|
|
73
|
-
if (hasTests)
|
|
74
|
-
patterns.push('Testing');
|
|
75
|
-
if (hasLinting)
|
|
76
|
-
patterns.push('Linting');
|
|
77
|
-
if (hasCICD)
|
|
78
|
-
patterns.push('CI/CD');
|
|
79
|
-
// Identify risks
|
|
80
|
-
const risks = [];
|
|
81
|
-
if (!hasTests)
|
|
82
|
-
risks.push('No test coverage - changes are risky');
|
|
83
|
-
if (!hasTypescript)
|
|
84
|
-
risks.push('No type safety - runtime errors possible');
|
|
85
|
-
if (!hasLinting)
|
|
86
|
-
risks.push('No linting - code style inconsistent');
|
|
87
|
-
if (maturity === 'legacy')
|
|
88
|
-
risks.push('Legacy codebase - proceed with caution');
|
|
89
|
-
return {
|
|
90
|
-
maturity,
|
|
91
|
-
patterns,
|
|
92
|
-
techStack,
|
|
93
|
-
testCoverage: hasTests ? (hasCICD ? 'high' : 'medium') : 'none',
|
|
94
|
-
documentationLevel: hasDocumentation ? 'partial' : 'minimal',
|
|
95
|
-
risks,
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Phase 2: Create Delegation Plan
|
|
100
|
-
* Plan how to delegate work to sub-agents
|
|
101
|
-
*/
|
|
102
|
-
export function createDelegationPlan(task, assessment, phaseCount = 3) {
|
|
103
|
-
const phases = [];
|
|
104
|
-
// Phase 1: Exploration
|
|
105
|
-
phases.push({
|
|
106
|
-
name: 'Exploration',
|
|
107
|
-
agents: [
|
|
108
|
-
{
|
|
109
|
-
agentType: 'Explore',
|
|
110
|
-
model: 'haiku',
|
|
111
|
-
prompt: `Explore codebase for: ${task}. Find related files, patterns, dependencies.`,
|
|
112
|
-
background: false,
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
agentType: 'Explore',
|
|
116
|
-
model: 'haiku',
|
|
117
|
-
prompt: `Search for existing similar implementations or patterns for: ${task}`,
|
|
118
|
-
background: false,
|
|
119
|
-
},
|
|
120
|
-
],
|
|
121
|
-
dependencies: [],
|
|
122
|
-
verificationCriteria: ['Found relevant files', 'Identified patterns'],
|
|
123
|
-
});
|
|
124
|
-
// Phase 2: Implementation
|
|
125
|
-
const implModel = assessment.maturity === 'disciplined' ? 'sonnet' : 'opus';
|
|
126
|
-
phases.push({
|
|
127
|
-
name: 'Implementation',
|
|
128
|
-
agents: [
|
|
129
|
-
{
|
|
130
|
-
agentType: 'implementer',
|
|
131
|
-
model: implModel,
|
|
132
|
-
prompt: `Implement: ${task}. Follow existing patterns. Write tests if applicable.`,
|
|
133
|
-
background: false,
|
|
134
|
-
},
|
|
135
|
-
],
|
|
136
|
-
dependencies: ['Exploration'],
|
|
137
|
-
verificationCriteria: ['Code compiles', 'Tests pass', 'Follows patterns'],
|
|
138
|
-
});
|
|
139
|
-
// Phase 3: Verification
|
|
140
|
-
phases.push({
|
|
141
|
-
name: 'Verification',
|
|
142
|
-
agents: [
|
|
143
|
-
{
|
|
144
|
-
agentType: 'architect',
|
|
145
|
-
model: 'opus',
|
|
146
|
-
prompt: `Verify implementation of: ${task}. Check for issues, security, performance.`,
|
|
147
|
-
background: false,
|
|
148
|
-
},
|
|
149
|
-
],
|
|
150
|
-
dependencies: ['Implementation'],
|
|
151
|
-
verificationCriteria: ['Architect approval', 'No critical issues'],
|
|
152
|
-
});
|
|
153
|
-
// Add more phases if requested
|
|
154
|
-
for (let i = 3; i < phaseCount; i++) {
|
|
155
|
-
phases.push({
|
|
156
|
-
name: `Phase ${i + 1}`,
|
|
157
|
-
agents: [],
|
|
158
|
-
dependencies: [phases[i - 1].name],
|
|
159
|
-
verificationCriteria: [],
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
return {
|
|
163
|
-
phases,
|
|
164
|
-
totalAgents: phases.reduce((sum, p) => sum + p.agents.length, 0),
|
|
165
|
-
estimatedComplexity: assessment.maturity === 'legacy' ? 'high' : 'medium',
|
|
166
|
-
requiredVerifications: ['build', 'test', 'architect_review'],
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Phase 3: Verification with Evidence
|
|
171
|
-
* Collect evidence of completion
|
|
172
|
-
*/
|
|
173
|
-
export function createVerificationChecklist(plan) {
|
|
174
|
-
const evidence = [];
|
|
175
|
-
// Build verification
|
|
176
|
-
evidence.push({
|
|
177
|
-
type: 'build',
|
|
178
|
-
command: 'npm run build',
|
|
179
|
-
passed: false,
|
|
180
|
-
});
|
|
181
|
-
// Test verification
|
|
182
|
-
evidence.push({
|
|
183
|
-
type: 'test',
|
|
184
|
-
command: 'npm test',
|
|
185
|
-
passed: false,
|
|
186
|
-
});
|
|
187
|
-
// Lint verification
|
|
188
|
-
evidence.push({
|
|
189
|
-
type: 'lint',
|
|
190
|
-
command: 'npm run lint',
|
|
191
|
-
passed: false,
|
|
192
|
-
});
|
|
193
|
-
// Type check verification
|
|
194
|
-
evidence.push({
|
|
195
|
-
type: 'typecheck',
|
|
196
|
-
command: 'npx tsc --noEmit',
|
|
197
|
-
passed: false,
|
|
198
|
-
});
|
|
199
|
-
return evidence;
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Format orchestration status
|
|
203
|
-
*/
|
|
204
|
-
export function formatOrchestrationStatus(phase, assessment, plan) {
|
|
205
|
-
const lines = [];
|
|
206
|
-
lines.push(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
|
|
207
|
-
lines.push(`🎭 ORCHESTRATION: ${phase}`);
|
|
208
|
-
lines.push(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
|
|
209
|
-
lines.push(`\nCodebase: ${assessment.maturity.toUpperCase()}`);
|
|
210
|
-
lines.push(`Stack: ${assessment.techStack.join(', ') || 'Unknown'}`);
|
|
211
|
-
lines.push(`Patterns: ${assessment.patterns.join(', ') || 'None'}`);
|
|
212
|
-
if (assessment.risks.length > 0) {
|
|
213
|
-
lines.push(`\n⚠️ Risks:`);
|
|
214
|
-
for (const risk of assessment.risks) {
|
|
215
|
-
lines.push(` - ${risk}`);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
lines.push(`\n📋 Plan: ${plan.phases.length} phases, ${plan.totalAgents} agents`);
|
|
219
|
-
for (const p of plan.phases) {
|
|
220
|
-
const agentInfo = p.agents.length > 0
|
|
221
|
-
? `(${p.agents.map(a => `${a.agentType}:${a.model}`).join(', ')})`
|
|
222
|
-
: '(no agents)';
|
|
223
|
-
lines.push(` → ${p.name} ${agentInfo}`);
|
|
224
|
-
}
|
|
225
|
-
lines.push(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
|
|
226
|
-
return lines.join('\n');
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* Background task rules
|
|
230
|
-
*/
|
|
231
|
-
export function shouldRunInBackground(command) {
|
|
232
|
-
const backgroundPatterns = [
|
|
233
|
-
/^npm (run |)(build|test|start|dev)/i,
|
|
234
|
-
/^yarn (build|test|start|dev)/i,
|
|
235
|
-
/^pnpm (build|test|start|dev)/i,
|
|
236
|
-
/^bun (run |)(build|test|start|dev)/i,
|
|
237
|
-
/^(pytest|jest|vitest|mocha)/i,
|
|
238
|
-
/^(tsc|webpack|vite|rollup)/i,
|
|
239
|
-
];
|
|
240
|
-
const foregroundPatterns = [
|
|
241
|
-
/^git\s/i,
|
|
242
|
-
/^ls\s/i,
|
|
243
|
-
/^cat\s/i,
|
|
244
|
-
/^echo\s/i,
|
|
245
|
-
/^pwd$/i,
|
|
246
|
-
];
|
|
247
|
-
// Check foreground first (quick commands)
|
|
248
|
-
for (const pattern of foregroundPatterns) {
|
|
249
|
-
if (pattern.test(command))
|
|
250
|
-
return false;
|
|
251
|
-
}
|
|
252
|
-
// Check background patterns (long-running)
|
|
253
|
-
for (const pattern of backgroundPatterns) {
|
|
254
|
-
if (pattern.test(command))
|
|
255
|
-
return true;
|
|
256
|
-
}
|
|
257
|
-
return false;
|
|
258
|
-
}
|
|
259
|
-
//# sourceMappingURL=OrchestrateWorkflow.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OrchestrateWorkflow.js","sourceRoot":"","sources":["../../../src/infra/lib/OrchestrateWorkflow.ts"],"names":[],"mappings":"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"}
|