opencastle 0.31.2 → 0.31.4

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.
@@ -32,6 +32,115 @@ export function deriveComplexityPath(prdPath) {
32
32
  }
33
33
  return prdPath + '.complexity.json';
34
34
  }
35
+ export function validateComplexityGroups(assessment) {
36
+ const groups = assessment.convoy_groups;
37
+ // Each group must reference at least 1 phase
38
+ for (const group of groups) {
39
+ if (group.phases.length === 0) {
40
+ return { valid: false, reason: `Group "${group.name}" has an empty phases array` };
41
+ }
42
+ }
43
+ // Maximum group count: ≤3 for total_tasks ≤ 15, ≤4 for total_tasks > 15
44
+ const maxGroups = assessment.total_tasks > 15 ? 4 : 3;
45
+ if (groups.length > maxGroups) {
46
+ return { valid: false, reason: `Too many groups: ${groups.length} exceeds maximum of ${maxGroups} for total_tasks=${assessment.total_tasks}` };
47
+ }
48
+ // No overlapping phases
49
+ const seenPhases = new Map();
50
+ for (const group of groups) {
51
+ for (const phase of group.phases) {
52
+ if (seenPhases.has(phase)) {
53
+ return { valid: false, reason: `Phase ${phase} overlap: referenced by both "${seenPhases.get(phase)}" and "${group.name}"` };
54
+ }
55
+ seenPhases.set(phase, group.name);
56
+ }
57
+ }
58
+ // Valid depends_on references
59
+ const groupNames = new Set(groups.map(g => g.name));
60
+ for (const group of groups) {
61
+ for (const dep of group.depends_on) {
62
+ if (!groupNames.has(dep)) {
63
+ return { valid: false, reason: `Group "${group.name}" depends_on "${dep}" which does not exist` };
64
+ }
65
+ }
66
+ }
67
+ // No dependency cycles (Kahn's algorithm)
68
+ const inDegree = new Map();
69
+ const adjList = new Map();
70
+ for (const group of groups) {
71
+ inDegree.set(group.name, 0);
72
+ adjList.set(group.name, []);
73
+ }
74
+ for (const group of groups) {
75
+ for (const dep of group.depends_on) {
76
+ adjList.get(dep).push(group.name);
77
+ inDegree.set(group.name, (inDegree.get(group.name) ?? 0) + 1);
78
+ }
79
+ }
80
+ const queue = [];
81
+ for (const [name, degree] of inDegree) {
82
+ if (degree === 0)
83
+ queue.push(name);
84
+ }
85
+ let visited = 0;
86
+ while (queue.length > 0) {
87
+ const node = queue.shift();
88
+ visited++;
89
+ for (const neighbor of adjList.get(node) ?? []) {
90
+ const newDegree = (inDegree.get(neighbor) ?? 0) - 1;
91
+ inDegree.set(neighbor, newDegree);
92
+ if (newDegree === 0)
93
+ queue.push(neighbor);
94
+ }
95
+ }
96
+ if (visited !== groups.length) {
97
+ return { valid: false, reason: 'Dependency cycle detected in convoy_groups' };
98
+ }
99
+ // Group names must be kebab-case safe
100
+ const kebabCaseRegex = /^[a-z0-9]+(-[a-z0-9]+)*$/;
101
+ for (const group of groups) {
102
+ if (!kebabCaseRegex.test(group.name)) {
103
+ return { valid: false, reason: `Group name "${group.name}" is not valid kebab-case` };
104
+ }
105
+ }
106
+ return { valid: true, reason: '' };
107
+ }
108
+ export function topologicalSortGroups(groups) {
109
+ const groupMap = new Map();
110
+ const inDegree = new Map();
111
+ const adjList = new Map();
112
+ for (const group of groups) {
113
+ groupMap.set(group.name, group);
114
+ inDegree.set(group.name, 0);
115
+ adjList.set(group.name, []);
116
+ }
117
+ for (const group of groups) {
118
+ for (const dep of group.depends_on) {
119
+ adjList.get(dep).push(group.name);
120
+ inDegree.set(group.name, (inDegree.get(group.name) ?? 0) + 1);
121
+ }
122
+ }
123
+ const queue = [];
124
+ for (const [name, degree] of inDegree) {
125
+ if (degree === 0)
126
+ queue.push(name);
127
+ }
128
+ const sorted = [];
129
+ while (queue.length > 0) {
130
+ const node = queue.shift();
131
+ sorted.push(groupMap.get(node));
132
+ for (const neighbor of adjList.get(node) ?? []) {
133
+ const newDegree = (inDegree.get(neighbor) ?? 0) - 1;
134
+ inDegree.set(neighbor, newDegree);
135
+ if (newDegree === 0)
136
+ queue.push(neighbor);
137
+ }
138
+ }
139
+ if (sorted.length !== groups.length) {
140
+ throw new Error('Cycle detected in convoy_groups dependency graph');
141
+ }
142
+ return sorted;
143
+ }
35
144
  const HELP = `
36
145
  opencastle start [options]
37
146
 
@@ -206,6 +315,11 @@ export default async function pipeline({ args, pkgRoot }) {
206
315
  prdPath = result.outputPath;
207
316
  console.log(c.green(` ✓ PRD written to ${relPath(prdPath)}\n`));
208
317
  }
318
+ // Handle --dry-run when PRD was provided externally (not generated)
319
+ if (opts.dryRun && opts.prd) {
320
+ console.log(c.dim('\n [dry-run] Nothing to preview — PRD already provided via --prd. Remove --dry-run to continue.'));
321
+ return;
322
+ }
209
323
  // ── Step 2: Validate PRD ──────────────────────────────────────────────────
210
324
  if (!opts.skipValidation) {
211
325
  console.log(stepLabel(2, totalSteps, 'Validating PRD…'));
@@ -215,7 +329,7 @@ export default async function pipeline({ args, pkgRoot }) {
215
329
  result = await runPromptStep({
216
330
  ...sharedOpts,
217
331
  template: 'validate-prd',
218
- goalText: prdContent,
332
+ goalText: `<!-- validation-pass: 1 -->\n${prdContent}`,
219
333
  });
220
334
  }
221
335
  catch (err) {
@@ -254,7 +368,7 @@ export default async function pipeline({ args, pkgRoot }) {
254
368
  revalidation = await runPromptStep({
255
369
  ...sharedOpts,
256
370
  template: 'validate-prd',
257
- goalText: fixedPrdContent,
371
+ goalText: `<!-- validation-pass: ${attempt + 1} -->\n${fixedPrdContent}`,
258
372
  });
259
373
  }
260
374
  catch (err) {
@@ -274,13 +388,12 @@ export default async function pipeline({ args, pkgRoot }) {
274
388
  }
275
389
  }
276
390
  if (!prdFixed) {
277
- console.log(c.red(`\n Could not auto-fix the PRD after ${MAX_PRD_FIX_RETRIES} attempts.\n`));
278
- console.log(` Remaining issues:\n`);
279
- console.log(prdValidationErrors);
280
- console.log(c.dim(`\n The PRD has been saved to ${relPath(prdPath)} with the best available fixes.\n`) +
281
- c.dim(` Review the remaining issues above and edit the file manually, then re-run with:\n`) +
391
+ console.log(c.yellow(`\n Could not fully auto-fix the PRD after ${MAX_PRD_FIX_RETRIES} attempts — continuing with best-effort PRD.\n`));
392
+ console.log(c.dim(` Remaining issues:\n`));
393
+ console.log(c.dim(prdValidationErrors));
394
+ console.log(c.dim(`\n PRD saved to ${relPath(prdPath)} with best available fixes.`) +
395
+ c.dim(`\n You can re-validate later with:\n`) +
282
396
  ` opencastle start --prd ${relPath(prdPath)}${opts.adapter ? ` --adapter ${opts.adapter}` : ''}\n`);
283
- process.exit(1);
284
397
  }
285
398
  }
286
399
  else {
@@ -352,89 +465,100 @@ export default async function pipeline({ args, pkgRoot }) {
352
465
  }
353
466
  if (complexity) {
354
467
  if (complexity.recommended_strategy === 'chain' && complexity.convoy_groups.length > 1) {
355
- console.log(c.cyan(` ℹ`) +
356
- ` Complexity: ${complexity.complexity} | Strategy: chain | ${complexity.convoy_groups.length} convoy groups\n`);
357
- console.log(` Chain plan:`);
358
- for (let i = 0; i < complexity.convoy_groups.length; i++) {
359
- const g = complexity.convoy_groups[i];
360
- const depStr = g.depends_on.length > 0 ? ` → depends on: ${g.depends_on.join(', ')}` : '';
361
- console.log(` ${i + 1}. ${g.name.padEnd(20)} (phases: ${g.phases.join(', ')})${depStr}`);
362
- }
363
- console.log();
364
- const convoyDir = resolve(process.cwd(), '.opencastle', 'convoys');
365
- await mkdir(convoyDir, { recursive: true });
366
- const groupSpecPaths = [];
367
- for (let i = 0; i < complexity.convoy_groups.length; i++) {
368
- const group = complexity.convoy_groups[i];
369
- const chainGoal = [
370
- complexity.original_prompt,
371
- '',
372
- '## Convoy Group Scope',
373
- '',
374
- `This is group **${i + 1} of ${complexity.convoy_groups.length}** in a convoy chain.`,
375
- `Generate a convoy spec covering ONLY the phases listed below.`,
376
- '',
377
- `- **Group name:** ${group.name}`,
378
- `- **Description:** ${group.description}`,
379
- `- **Phases to include:** ${group.phases.join(', ')}`,
380
- group.depends_on.length ? `- **Depends on groups:** ${group.depends_on.join(', ')}` : '',
381
- ].filter(Boolean).join('\n');
382
- const prdContent = await readFile(prdPath, 'utf8');
383
- const groupSpecPath = resolve(convoyDir, `${group.name}.convoy.yml`);
384
- const { specPath: resolvedGroupSpecPath } = await generateAndValidateSpec({
385
- sharedOpts,
386
- goalText: chainGoal,
387
- contextText: prdContent,
388
- specPath: groupSpecPath,
389
- skipValidation: opts.skipValidation,
390
- groupName: group.name,
391
- enrichment: complexity ? deriveSpecEnrichment(complexity) : undefined,
392
- });
393
- groupSpecPaths.push(resolvedGroupSpecPath);
394
- }
395
- // Build master pipeline spec (version 2)
396
- const chainPrdContent = await readFile(prdPath, 'utf8');
397
- const featureNameMatch = chainPrdContent.match(/^# (.+?)\s*(?:—|-)?\s*PRD/m);
398
- const featureName = featureNameMatch
399
- ? featureNameMatch[1].trim().toLowerCase().replace(/[^a-z0-9]+/g, '-')
400
- : 'feature';
401
- const branchMatch = chainPrdContent.match(/`feat\/([^`]+)`/);
402
- const branch = branchMatch ? `feat/${branchMatch[1]}` : `feat/${featureName}`;
403
- const masterSpec = {
404
- name: featureNameMatch ? featureNameMatch[1].trim() : 'Feature Pipeline',
405
- version: 2,
406
- branch,
407
- on_failure: 'stop',
408
- depends_on_convoy: groupSpecPaths.map(p => relPath(p)),
409
- };
410
- const masterSpecPath = resolve(convoyDir, `${featureName}-pipeline.convoy.yml`);
411
- await writeFile(masterSpecPath, stringify(masterSpec), 'utf8');
412
- console.log(c.green(` ✓ Generated convoy chain:\n`));
413
- for (const p of groupSpecPaths) {
414
- console.log(` ${relPath(p)}`);
468
+ // Validate complexity groups before chain generation
469
+ const groupValidation = validateComplexityGroups(complexity);
470
+ if (!groupValidation.valid) {
471
+ console.log(c.yellow(` ⚠ Complexity groups failed validation: ${groupValidation.reason}`));
472
+ console.log(c.yellow(` Falling back to single convoy strategy.\n`));
473
+ // Fall through to single-spec generation below
415
474
  }
416
- console.log(` ${relPath(masterSpecPath)} ${c.dim('(master)')}`);
417
- console.log();
418
- console.log(` ${c.dim('Preview:')} npx opencastle run -f ${relPath(masterSpecPath)} --dry-run\n` +
419
- ` ${c.dim('Execute:')} npx opencastle run -f ${relPath(masterSpecPath)}\n`);
420
- try {
421
- const shouldRun = await confirm('Run the convoy chain now?', true);
422
- if (shouldRun) {
475
+ else {
476
+ // Sort groups in dependency order
477
+ complexity.convoy_groups = topologicalSortGroups(complexity.convoy_groups);
478
+ console.log(c.cyan(` ℹ`) +
479
+ ` Complexity: ${complexity.complexity} | Strategy: chain | ${complexity.convoy_groups.length} convoy groups\n`);
480
+ console.log(` Chain plan:`);
481
+ for (let i = 0; i < complexity.convoy_groups.length; i++) {
482
+ const g = complexity.convoy_groups[i];
483
+ const depStr = g.depends_on.length > 0 ? ` → depends on: ${g.depends_on.join(', ')}` : '';
484
+ console.log(` ${i + 1}. ${g.name.padEnd(20)} (phases: ${g.phases.join(', ')})${depStr}`);
485
+ }
486
+ console.log();
487
+ const convoyDir = resolve(process.cwd(), '.opencastle', 'convoys');
488
+ await mkdir(convoyDir, { recursive: true });
489
+ const groupSpecPaths = [];
490
+ for (let i = 0; i < complexity.convoy_groups.length; i++) {
491
+ const group = complexity.convoy_groups[i];
492
+ const chainGoal = [
493
+ complexity.original_prompt,
494
+ '',
495
+ '## Convoy Group Scope',
496
+ '',
497
+ `This is group **${i + 1} of ${complexity.convoy_groups.length}** in a convoy chain.`,
498
+ `Generate a convoy spec covering ONLY the phases listed below.`,
499
+ '',
500
+ `- **Group name:** ${group.name}`,
501
+ `- **Description:** ${group.description}`,
502
+ `- **Phases to include:** ${group.phases.join(', ')}`,
503
+ group.depends_on.length ? `- **Depends on groups:** ${group.depends_on.join(', ')}` : '',
504
+ ].filter(Boolean).join('\n');
505
+ const prdContent = await readFile(prdPath, 'utf8');
506
+ const groupSpecPath = resolve(convoyDir, `${group.name}.convoy.yml`);
507
+ const { specPath: resolvedGroupSpecPath } = await generateAndValidateSpec({
508
+ sharedOpts,
509
+ goalText: chainGoal,
510
+ contextText: prdContent,
511
+ specPath: groupSpecPath,
512
+ skipValidation: opts.skipValidation,
513
+ groupName: group.name,
514
+ enrichment: complexity ? deriveSpecEnrichment(complexity) : undefined,
515
+ });
516
+ groupSpecPaths.push(resolvedGroupSpecPath);
517
+ }
518
+ // Build master pipeline spec (version 2)
519
+ const chainPrdContent = await readFile(prdPath, 'utf8');
520
+ const featureNameMatch = chainPrdContent.match(/^# (.+?)\s*(?:—|-)?\s*PRD/m);
521
+ const featureName = featureNameMatch
522
+ ? featureNameMatch[1].trim().toLowerCase().replace(/[^a-z0-9]+/g, '-')
523
+ : 'feature';
524
+ const branchMatch = chainPrdContent.match(/`feat\/([^`]+)`/);
525
+ const branch = branchMatch ? `feat/${branchMatch[1]}` : `feat/${featureName}`;
526
+ const masterSpec = {
527
+ name: featureNameMatch ? featureNameMatch[1].trim() : 'Feature Pipeline',
528
+ version: 2,
529
+ branch,
530
+ on_failure: 'stop',
531
+ depends_on_convoy: groupSpecPaths.map(p => relPath(p)),
532
+ };
533
+ const masterSpecPath = resolve(convoyDir, `${featureName}-pipeline.convoy.yml`);
534
+ await writeFile(masterSpecPath, stringify(masterSpec), 'utf8');
535
+ console.log(c.green(` ✓ Generated convoy chain:\n`));
536
+ for (const p of groupSpecPaths) {
537
+ console.log(` ${relPath(p)}`);
538
+ }
539
+ console.log(` ${relPath(masterSpecPath)} ${c.dim('(master)')}`);
540
+ console.log();
541
+ console.log(` ${c.dim('Preview:')} npx opencastle run -f ${relPath(masterSpecPath)} --dry-run\n` +
542
+ ` ${c.dim('Execute:')} npx opencastle run -f ${relPath(masterSpecPath)}\n`);
543
+ try {
544
+ const shouldRun = await confirm('Run the convoy chain now?', true);
545
+ if (shouldRun) {
546
+ closePrompts();
547
+ const runModule = await import('./run.js');
548
+ const runArgs = ['-f', masterSpecPath];
549
+ if (opts.adapter)
550
+ runArgs.push('-a', opts.adapter);
551
+ if (opts.verbose)
552
+ runArgs.push('--verbose');
553
+ await runModule.default({ args: runArgs, pkgRoot });
554
+ }
555
+ }
556
+ finally {
423
557
  closePrompts();
424
- const runModule = await import('./run.js');
425
- const runArgs = ['-f', masterSpecPath];
426
- if (opts.adapter)
427
- runArgs.push('-a', opts.adapter);
428
- if (opts.verbose)
429
- runArgs.push('--verbose');
430
- await runModule.default({ args: runArgs, pkgRoot });
558
+ await cleanupAdapters();
431
559
  }
560
+ return;
432
561
  }
433
- finally {
434
- closePrompts();
435
- await cleanupAdapters();
436
- }
437
- return;
438
562
  }
439
563
  else {
440
564
  console.log(c.cyan(` ℹ`) + ` Complexity: ${complexity.complexity} | Strategy: single\n`);
@@ -505,7 +629,7 @@ async function fixViaPatch(taskPlan, errors, sharedOpts, specPath, enrichment) {
505
629
  revalidation = await runPromptStep({
506
630
  ...sharedOpts,
507
631
  template: 'validate-convoy',
508
- goalText: yaml,
632
+ goalText: `<!-- validation-pass: ${attempt + 1} -->\n${yaml}`,
509
633
  });
510
634
  }
511
635
  catch (err) {
@@ -522,15 +646,15 @@ async function fixViaPatch(taskPlan, errors, sharedOpts, specPath, enrichment) {
522
646
  console.log(c.dim(currentErrors));
523
647
  }
524
648
  }
525
- // Exhausted — write best effort and exit
649
+ // Exhausted retries save best effort and continue with warning
526
650
  await writeFile(specPath, buildConvoyYaml(currentPlan, enrichment), 'utf8');
527
- console.log(c.red(`\n Could not auto-fix after ${MAX_FIX_RETRIES} attempts.\n`));
528
- console.log(` Remaining issues:\n`);
529
- console.log(currentErrors);
530
- console.log(c.dim(`\n Spec saved to ${relPath(specPath)} with best available fixes.\n`) +
531
- c.dim(` Edit manually, then re-validate with:\n`) +
651
+ console.log(c.yellow(`\n Could not fully auto-fix after ${MAX_FIX_RETRIES} attempts — continuing with best-effort spec.\n`));
652
+ console.log(c.dim(` Remaining issues:\n`));
653
+ console.log(c.dim(currentErrors));
654
+ console.log(c.dim(`\n Spec saved to ${relPath(specPath)} with best available fixes.`) +
655
+ c.dim(`\n You can re-validate later with:\n`) +
532
656
  ` opencastle plan --file ${relPath(specPath)} --template validate-convoy\n`);
533
- process.exit(1);
657
+ return currentPlan;
534
658
  }
535
659
  async function generateAndValidateSpec(params) {
536
660
  const label = params.groupName
@@ -621,7 +745,7 @@ async function generateAndValidateSpec(params) {
621
745
  semanticResult = await runPromptStep({
622
746
  ...params.sharedOpts,
623
747
  template: 'validate-convoy',
624
- goalText: await readFile(resolvedSpecPath, 'utf8'),
748
+ goalText: `<!-- validation-pass: 1 -->\n${await readFile(resolvedSpecPath, 'utf8')}`,
625
749
  });
626
750
  }
627
751
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/cli/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/cli/pipeline.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { describe, it, expect } from 'vitest';
2
- import { parseComplexityAssessment, deriveComplexityPath } from './pipeline.js';
2
+ import { parseComplexityAssessment, deriveComplexityPath, validateComplexityGroups, topologicalSortGroups } from './pipeline.js';
3
3
  const SINGLE_JSON = JSON.stringify({
4
4
  original_prompt: 'Build a REST API with user auth',
5
5
  total_tasks: 4,
@@ -128,4 +128,125 @@ describe('deriveComplexityPath', () => {
128
128
  expect(deriveComplexityPath('.opencastle/prds/personal-portfolio-website.prd.md')).toBe('.opencastle/prds/personal-portfolio-website.complexity.json');
129
129
  });
130
130
  });
131
+ describe('validateComplexityGroups', () => {
132
+ it('accepts valid groups', () => {
133
+ const assessment = {
134
+ original_prompt: 'test',
135
+ total_tasks: 6,
136
+ total_phases: 3,
137
+ domains: ['frontend', 'api'],
138
+ complexity: 'medium',
139
+ recommended_strategy: 'chain',
140
+ convoy_groups: [
141
+ { name: 'backend', description: 'API', phases: [1, 2], depends_on: [] },
142
+ { name: 'frontend', description: 'UI', phases: [3], depends_on: ['backend'] },
143
+ ],
144
+ };
145
+ expect(validateComplexityGroups(assessment)).toEqual({ valid: true, reason: '' });
146
+ });
147
+ it('rejects groups exceeding max count for small projects', () => {
148
+ const assessment = {
149
+ original_prompt: 'test',
150
+ total_tasks: 10,
151
+ total_phases: 4,
152
+ domains: ['a'],
153
+ complexity: 'medium',
154
+ recommended_strategy: 'chain',
155
+ convoy_groups: [
156
+ { name: 'a', description: 'A', phases: [1], depends_on: [] },
157
+ { name: 'b', description: 'B', phases: [2], depends_on: [] },
158
+ { name: 'c-group', description: 'C', phases: [3], depends_on: [] },
159
+ { name: 'd-group', description: 'D', phases: [4], depends_on: [] },
160
+ ],
161
+ };
162
+ const result = validateComplexityGroups(assessment);
163
+ expect(result.valid).toBe(false);
164
+ expect(result.reason).toContain('maximum');
165
+ });
166
+ it('rejects overlapping phases', () => {
167
+ const assessment = {
168
+ original_prompt: 'test',
169
+ total_tasks: 8,
170
+ total_phases: 3,
171
+ domains: ['a'],
172
+ complexity: 'medium',
173
+ recommended_strategy: 'chain',
174
+ convoy_groups: [
175
+ { name: 'group-a', description: 'A', phases: [1, 2], depends_on: [] },
176
+ { name: 'group-b', description: 'B', phases: [2, 3], depends_on: [] },
177
+ ],
178
+ };
179
+ const result = validateComplexityGroups(assessment);
180
+ expect(result.valid).toBe(false);
181
+ expect(result.reason).toContain('overlap');
182
+ });
183
+ it('rejects invalid depends_on references', () => {
184
+ const assessment = {
185
+ original_prompt: 'test',
186
+ total_tasks: 8,
187
+ total_phases: 2,
188
+ domains: ['a'],
189
+ complexity: 'medium',
190
+ recommended_strategy: 'chain',
191
+ convoy_groups: [
192
+ { name: 'group-a', description: 'A', phases: [1], depends_on: ['nonexistent'] },
193
+ ],
194
+ };
195
+ const result = validateComplexityGroups(assessment);
196
+ expect(result.valid).toBe(false);
197
+ expect(result.reason).toContain('nonexistent');
198
+ });
199
+ it('rejects dependency cycles', () => {
200
+ const assessment = {
201
+ original_prompt: 'test',
202
+ total_tasks: 8,
203
+ total_phases: 2,
204
+ domains: ['a'],
205
+ complexity: 'medium',
206
+ recommended_strategy: 'chain',
207
+ convoy_groups: [
208
+ { name: 'group-a', description: 'A', phases: [1], depends_on: ['group-b'] },
209
+ { name: 'group-b', description: 'B', phases: [2], depends_on: ['group-a'] },
210
+ ],
211
+ };
212
+ const result = validateComplexityGroups(assessment);
213
+ expect(result.valid).toBe(false);
214
+ expect(result.reason).toContain('cycle');
215
+ });
216
+ it('rejects non-kebab-case group names', () => {
217
+ const assessment = {
218
+ original_prompt: 'test',
219
+ total_tasks: 8,
220
+ total_phases: 2,
221
+ domains: ['a'],
222
+ complexity: 'medium',
223
+ recommended_strategy: 'chain',
224
+ convoy_groups: [
225
+ { name: 'My Group', description: 'Bad name', phases: [1], depends_on: [] },
226
+ ],
227
+ };
228
+ const result = validateComplexityGroups(assessment);
229
+ expect(result.valid).toBe(false);
230
+ expect(result.reason).toContain('kebab');
231
+ });
232
+ });
233
+ describe('topologicalSortGroups', () => {
234
+ it('sorts groups in dependency order', () => {
235
+ const groups = [
236
+ { name: 'c', description: 'C', phases: [3], depends_on: ['b'] },
237
+ { name: 'a', description: 'A', phases: [1], depends_on: [] },
238
+ { name: 'b', description: 'B', phases: [2], depends_on: ['a'] },
239
+ ];
240
+ const sorted = topologicalSortGroups(groups);
241
+ expect(sorted.map(g => g.name)).toEqual(['a', 'b', 'c']);
242
+ });
243
+ it('preserves order for independent groups', () => {
244
+ const groups = [
245
+ { name: 'x', description: 'X', phases: [1], depends_on: [] },
246
+ { name: 'y', description: 'Y', phases: [2], depends_on: [] },
247
+ ];
248
+ const sorted = topologicalSortGroups(groups);
249
+ expect(sorted.map(g => g.name)).toEqual(['x', 'y']);
250
+ });
251
+ });
131
252
  //# sourceMappingURL=pipeline.test.js.map