@zigrivers/scaffold 3.12.0 → 3.14.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.
Files changed (157) hide show
  1. package/README.md +3 -3
  2. package/dist/cli/commands/adopt.d.ts.map +1 -1
  3. package/dist/cli/commands/adopt.js +8 -7
  4. package/dist/cli/commands/adopt.js.map +1 -1
  5. package/dist/cli/commands/adopt.serialization.test.js +8 -0
  6. package/dist/cli/commands/adopt.serialization.test.js.map +1 -1
  7. package/dist/cli/commands/adopt.test.js +8 -0
  8. package/dist/cli/commands/adopt.test.js.map +1 -1
  9. package/dist/cli/commands/build.d.ts.map +1 -1
  10. package/dist/cli/commands/build.js +191 -180
  11. package/dist/cli/commands/build.js.map +1 -1
  12. package/dist/cli/commands/build.test.js +1 -0
  13. package/dist/cli/commands/build.test.js.map +1 -1
  14. package/dist/cli/commands/complete.d.ts.map +1 -1
  15. package/dist/cli/commands/complete.js +16 -12
  16. package/dist/cli/commands/complete.js.map +1 -1
  17. package/dist/cli/commands/complete.test.js +14 -5
  18. package/dist/cli/commands/complete.test.js.map +1 -1
  19. package/dist/cli/commands/init.d.ts.map +1 -1
  20. package/dist/cli/commands/init.js +120 -115
  21. package/dist/cli/commands/init.js.map +1 -1
  22. package/dist/cli/commands/init.test.js +40 -4
  23. package/dist/cli/commands/init.test.js.map +1 -1
  24. package/dist/cli/commands/knowledge.test.js +1 -0
  25. package/dist/cli/commands/knowledge.test.js.map +1 -1
  26. package/dist/cli/commands/reset.d.ts.map +1 -1
  27. package/dist/cli/commands/reset.js +44 -40
  28. package/dist/cli/commands/reset.js.map +1 -1
  29. package/dist/cli/commands/reset.test.js +42 -20
  30. package/dist/cli/commands/reset.test.js.map +1 -1
  31. package/dist/cli/commands/rework.d.ts.map +1 -1
  32. package/dist/cli/commands/rework.js +16 -12
  33. package/dist/cli/commands/rework.js.map +1 -1
  34. package/dist/cli/commands/rework.test.js +12 -3
  35. package/dist/cli/commands/rework.test.js.map +1 -1
  36. package/dist/cli/commands/run.d.ts.map +1 -1
  37. package/dist/cli/commands/run.js +318 -298
  38. package/dist/cli/commands/run.js.map +1 -1
  39. package/dist/cli/commands/run.test.js +93 -120
  40. package/dist/cli/commands/run.test.js.map +1 -1
  41. package/dist/cli/commands/skip.d.ts.map +1 -1
  42. package/dist/cli/commands/skip.js +19 -15
  43. package/dist/cli/commands/skip.js.map +1 -1
  44. package/dist/cli/commands/skip.test.js +23 -11
  45. package/dist/cli/commands/skip.test.js.map +1 -1
  46. package/dist/cli/commands/update.d.ts.map +1 -1
  47. package/dist/cli/commands/update.js +3 -1
  48. package/dist/cli/commands/update.js.map +1 -1
  49. package/dist/cli/commands/update.test.js +8 -4
  50. package/dist/cli/commands/update.test.js.map +1 -1
  51. package/dist/cli/commands/version.d.ts.map +1 -1
  52. package/dist/cli/commands/version.js +3 -1
  53. package/dist/cli/commands/version.js.map +1 -1
  54. package/dist/cli/commands/version.test.js +9 -5
  55. package/dist/cli/commands/version.test.js.map +1 -1
  56. package/dist/cli/index.d.ts.map +1 -1
  57. package/dist/cli/index.js +2 -0
  58. package/dist/cli/index.js.map +1 -1
  59. package/dist/cli/output/auto.d.ts +19 -6
  60. package/dist/cli/output/auto.d.ts.map +1 -1
  61. package/dist/cli/output/auto.js +10 -6
  62. package/dist/cli/output/auto.js.map +1 -1
  63. package/dist/cli/output/context.d.ts +23 -5
  64. package/dist/cli/output/context.d.ts.map +1 -1
  65. package/dist/cli/output/context.js.map +1 -1
  66. package/dist/cli/output/context.test.js +585 -0
  67. package/dist/cli/output/context.test.js.map +1 -1
  68. package/dist/cli/output/error-display.test.js +1 -0
  69. package/dist/cli/output/error-display.test.js.map +1 -1
  70. package/dist/cli/output/interactive.d.ts +20 -6
  71. package/dist/cli/output/interactive.d.ts.map +1 -1
  72. package/dist/cli/output/interactive.js +170 -59
  73. package/dist/cli/output/interactive.js.map +1 -1
  74. package/dist/cli/output/json.d.ts +19 -6
  75. package/dist/cli/output/json.d.ts.map +1 -1
  76. package/dist/cli/output/json.js +10 -6
  77. package/dist/cli/output/json.js.map +1 -1
  78. package/dist/cli/shutdown.d.ts +51 -0
  79. package/dist/cli/shutdown.d.ts.map +1 -0
  80. package/dist/cli/shutdown.js +199 -0
  81. package/dist/cli/shutdown.js.map +1 -0
  82. package/dist/cli/shutdown.test.d.ts +2 -0
  83. package/dist/cli/shutdown.test.d.ts.map +1 -0
  84. package/dist/cli/shutdown.test.js +316 -0
  85. package/dist/cli/shutdown.test.js.map +1 -0
  86. package/dist/core/assembly/overlay-state-resolver.test.js +1 -0
  87. package/dist/core/assembly/overlay-state-resolver.test.js.map +1 -1
  88. package/dist/e2e/game-pipeline.test.js +1 -0
  89. package/dist/e2e/game-pipeline.test.js.map +1 -1
  90. package/dist/e2e/init.test.js +6 -4
  91. package/dist/e2e/init.test.js.map +1 -1
  92. package/dist/e2e/project-type-overlays.test.js +1 -0
  93. package/dist/e2e/project-type-overlays.test.js.map +1 -1
  94. package/dist/state/lock-manager.d.ts +1 -0
  95. package/dist/state/lock-manager.d.ts.map +1 -1
  96. package/dist/state/lock-manager.js +1 -1
  97. package/dist/state/lock-manager.js.map +1 -1
  98. package/dist/wizard/copy/backend.d.ts +3 -0
  99. package/dist/wizard/copy/backend.d.ts.map +1 -0
  100. package/dist/wizard/copy/backend.js +49 -0
  101. package/dist/wizard/copy/backend.js.map +1 -0
  102. package/dist/wizard/copy/browser-extension.d.ts +3 -0
  103. package/dist/wizard/copy/browser-extension.d.ts.map +1 -0
  104. package/dist/wizard/copy/browser-extension.js +35 -0
  105. package/dist/wizard/copy/browser-extension.js.map +1 -0
  106. package/dist/wizard/copy/cli.d.ts +3 -0
  107. package/dist/wizard/copy/cli.d.ts.map +1 -0
  108. package/dist/wizard/copy/cli.js +40 -0
  109. package/dist/wizard/copy/cli.js.map +1 -0
  110. package/dist/wizard/copy/core.d.ts +3 -0
  111. package/dist/wizard/copy/core.d.ts.map +1 -0
  112. package/dist/wizard/copy/core.js +52 -0
  113. package/dist/wizard/copy/core.js.map +1 -0
  114. package/dist/wizard/copy/data-pipeline.d.ts +3 -0
  115. package/dist/wizard/copy/data-pipeline.d.ts.map +1 -0
  116. package/dist/wizard/copy/data-pipeline.js +66 -0
  117. package/dist/wizard/copy/data-pipeline.js.map +1 -0
  118. package/dist/wizard/copy/game.d.ts +3 -0
  119. package/dist/wizard/copy/game.d.ts.map +1 -0
  120. package/dist/wizard/copy/game.js +115 -0
  121. package/dist/wizard/copy/game.js.map +1 -0
  122. package/dist/wizard/copy/index.d.ts +8 -0
  123. package/dist/wizard/copy/index.d.ts.map +1 -0
  124. package/dist/wizard/copy/index.js +32 -0
  125. package/dist/wizard/copy/index.js.map +1 -0
  126. package/dist/wizard/copy/library.d.ts +3 -0
  127. package/dist/wizard/copy/library.d.ts.map +1 -0
  128. package/dist/wizard/copy/library.js +44 -0
  129. package/dist/wizard/copy/library.js.map +1 -0
  130. package/dist/wizard/copy/ml.d.ts +3 -0
  131. package/dist/wizard/copy/ml.d.ts.map +1 -0
  132. package/dist/wizard/copy/ml.js +45 -0
  133. package/dist/wizard/copy/ml.js.map +1 -0
  134. package/dist/wizard/copy/mobile-app.d.ts +3 -0
  135. package/dist/wizard/copy/mobile-app.d.ts.map +1 -0
  136. package/dist/wizard/copy/mobile-app.js +45 -0
  137. package/dist/wizard/copy/mobile-app.js.map +1 -0
  138. package/dist/wizard/copy/types.d.ts +60 -0
  139. package/dist/wizard/copy/types.d.ts.map +1 -0
  140. package/dist/wizard/copy/types.js +2 -0
  141. package/dist/wizard/copy/types.js.map +1 -0
  142. package/dist/wizard/copy/types.test-d.d.ts +2 -0
  143. package/dist/wizard/copy/types.test-d.d.ts.map +1 -0
  144. package/dist/wizard/copy/types.test-d.js +36 -0
  145. package/dist/wizard/copy/types.test-d.js.map +1 -0
  146. package/dist/wizard/copy/web-app.d.ts +3 -0
  147. package/dist/wizard/copy/web-app.d.ts.map +1 -0
  148. package/dist/wizard/copy/web-app.js +46 -0
  149. package/dist/wizard/copy/web-app.js.map +1 -0
  150. package/dist/wizard/questions.d.ts.map +1 -1
  151. package/dist/wizard/questions.js +87 -53
  152. package/dist/wizard/questions.js.map +1 -1
  153. package/dist/wizard/questions.test.js +3 -2
  154. package/dist/wizard/questions.test.js.map +1 -1
  155. package/dist/wizard/wizard.test.js +70 -0
  156. package/dist/wizard/wizard.test.js.map +1 -1
  157. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ vi.mock('../../state/lock-manager.js', () => ({
15
15
  acquireLock: vi.fn(),
16
16
  releaseLock: vi.fn(),
17
17
  checkLock: vi.fn(),
18
+ getLockPath: vi.fn(() => '/mock/.scaffold/lock.json'),
18
19
  }));
19
20
  vi.mock('../../state/completion.js', () => ({
20
21
  analyzeCrash: vi.fn(),
@@ -104,11 +105,21 @@ vi.mock('../../cli/output/error-display.js', () => ({
104
105
  vi.mock('../../cli/middleware/output-mode.js', () => ({
105
106
  resolveOutputMode: vi.fn(),
106
107
  }));
108
+ vi.mock('../shutdown.js', () => ({
109
+ shutdown: {
110
+ withResource: vi.fn((_name, _cleanup, fn) => fn()),
111
+ withPrompt: vi.fn((fn) => fn()),
112
+ withContext: vi.fn((_msg, fn) => fn()),
113
+ registerLockOwnership: vi.fn(),
114
+ releaseLockOwnership: vi.fn(),
115
+ },
116
+ }));
107
117
  // ---------------------------------------------------------------------------
108
118
  // Import mocked modules
109
119
  // ---------------------------------------------------------------------------
110
120
  import { StateManager } from '../../state/state-manager.js';
111
121
  import { acquireLock, releaseLock } from '../../state/lock-manager.js';
122
+ import { shutdown } from '../shutdown.js';
112
123
  import { analyzeCrash } from '../../state/completion.js';
113
124
  import { AssemblyEngine } from '../../core/assembly/engine.js';
114
125
  import { discoverMetaPrompts, discoverAllMetaPrompts } from '../../core/assembly/meta-prompt-loader.js';
@@ -208,6 +219,7 @@ function makeOutputContext() {
208
219
  warn: vi.fn(),
209
220
  error: vi.fn(),
210
221
  result: vi.fn(),
222
+ supportsInteractivePrompts: vi.fn().mockReturnValue(false),
211
223
  prompt: vi.fn(),
212
224
  confirm: vi.fn(),
213
225
  select: vi.fn(),
@@ -248,13 +260,13 @@ function makeSuccessAssemblyResult() {
248
260
  // Setup shared mocks before each test
249
261
  // ---------------------------------------------------------------------------
250
262
  const PROJECT_ROOT = '/test/project';
251
- let exitSpy;
263
+ let _exitSpy;
252
264
  let stdoutSpy;
253
265
  let mockOutput;
254
266
  beforeEach(() => {
255
267
  vi.clearAllMocks();
256
- exitSpy = vi.spyOn(process, 'exit').mockImplementation((() => {
257
- throw new Error('process.exit called');
268
+ _exitSpy = vi.spyOn(process, 'exit').mockImplementation((() => {
269
+ // no-op — run.ts no longer calls process.exit(); it sets process.exitCode
258
270
  }));
259
271
  stdoutSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
260
272
  mockOutput = makeOutputContext();
@@ -317,6 +329,7 @@ beforeEach(() => {
317
329
  vi.mocked(releaseLock).mockImplementation(() => undefined);
318
330
  });
319
331
  afterEach(() => {
332
+ process.exitCode = undefined;
320
333
  vi.restoreAllMocks();
321
334
  });
322
335
  // ---------------------------------------------------------------------------
@@ -341,9 +354,8 @@ describe('run command handler', () => {
341
354
  describe('Step 1: resolve context', () => {
342
355
  it('exits 1 when project root is not found', async () => {
343
356
  vi.mocked(findProjectRoot).mockReturnValue(null);
344
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], root: undefined }))
345
- .rejects.toThrow('process.exit called');
346
- expect(exitSpy).toHaveBeenCalledWith(1);
357
+ await invokeHandler({ step: 'create-prd', _: ['run'], root: undefined });
358
+ expect(process.exitCode).toBe(1);
347
359
  });
348
360
  it('exits 1 when config cannot be loaded', async () => {
349
361
  vi.mocked(loadConfig).mockReturnValue({
@@ -351,27 +363,24 @@ describe('run command handler', () => {
351
363
  errors: [{ code: 'CONFIG_MISSING', message: 'Config missing', exitCode: 1 }],
352
364
  warnings: [],
353
365
  });
354
- await expect(invokeHandler({ step: 'create-prd', _: ['run'] }))
355
- .rejects.toThrow('process.exit called');
356
- expect(exitSpy).toHaveBeenCalledWith(1);
366
+ await invokeHandler({ step: 'create-prd', _: ['run'] });
367
+ expect(process.exitCode).toBe(1);
357
368
  });
358
369
  });
359
370
  describe('Step 2: discover pipeline', () => {
360
371
  it('exits 1 when step is not found in pipeline', async () => {
361
372
  vi.mocked(discoverMetaPrompts).mockReturnValue(new Map());
362
373
  vi.mocked(discoverAllMetaPrompts).mockReturnValue(new Map());
363
- await expect(invokeHandler({ step: 'unknown-step', _: ['run'] }))
364
- .rejects.toThrow('process.exit called');
365
- expect(exitSpy).toHaveBeenCalledWith(1);
374
+ await invokeHandler({ step: 'unknown-step', _: ['run'] });
375
+ expect(process.exitCode).toBe(1);
366
376
  });
367
377
  it('includes fuzzy match suggestion in error when step not found', async () => {
368
378
  const map = new Map([['create-prd', makeMetaPrompt()]]);
369
379
  vi.mocked(discoverMetaPrompts).mockReturnValue(map);
370
380
  vi.mocked(discoverAllMetaPrompts).mockReturnValue(map);
371
- await expect(invokeHandler({ step: 'create-pr', _: ['run'] }))
372
- .rejects.toThrow('process.exit called');
381
+ await invokeHandler({ step: 'create-pr', _: ['run'] });
373
382
  // Should have called output.error or displayErrors
374
- expect(exitSpy).toHaveBeenCalledWith(1);
383
+ expect(process.exitCode).toBe(1);
375
384
  });
376
385
  });
377
386
  describe('Step 3: lock acquisition', () => {
@@ -380,20 +389,18 @@ describe('run command handler', () => {
380
389
  acquired: false,
381
390
  error: { code: 'LOCK_HELD', message: 'Lock held', exitCode: 3 },
382
391
  });
383
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], force: false }))
384
- .rejects.toThrow('process.exit called');
385
- expect(exitSpy).toHaveBeenCalledWith(3);
392
+ await invokeHandler({ step: 'create-prd', _: ['run'], force: false });
393
+ expect(process.exitCode).toBe(3);
386
394
  });
387
395
  it('proceeds when lock is not acquired but --force is set', async () => {
388
396
  vi.mocked(acquireLock).mockReturnValue({
389
397
  acquired: false,
390
398
  error: { code: 'LOCK_HELD', message: 'Lock held', exitCode: 3 },
391
399
  });
392
- // Should NOT exit 3, should complete (exits 0 in auto mode)
393
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], force: true, auto: true }))
394
- .rejects.toThrow('process.exit called');
395
- // In auto mode, exits 0 after prompt output
396
- expect(exitSpy).toHaveBeenCalledWith(0);
400
+ // Should NOT exit 3, should complete (returns normally in auto mode)
401
+ await invokeHandler({ step: 'create-prd', _: ['run'], force: true, auto: true });
402
+ // In auto mode, returns normally (exitCode undefined = 0)
403
+ expect(process.exitCode).toBeUndefined();
397
404
  });
398
405
  });
399
406
  describe('Step 4: crash recovery', () => {
@@ -405,9 +412,8 @@ describe('run command handler', () => {
405
412
  presentArtifacts: ['docs/prd.md'],
406
413
  missingArtifacts: [],
407
414
  });
408
- // Should clear in_progress and proceed; in auto mode exits 0
409
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], auto: true }))
410
- .rejects.toThrow('process.exit called');
415
+ // Should clear in_progress and proceed; in auto mode returns normally
416
+ await invokeHandler({ step: 'create-prd', _: ['run'], auto: true });
411
417
  expect(StateManager.prototype.clearInProgress).toHaveBeenCalled();
412
418
  });
413
419
  it('warns and exits 4 in auto mode when crash action is ask_user', async () => {
@@ -419,9 +425,8 @@ describe('run command handler', () => {
419
425
  missingArtifacts: ['docs/other.md'],
420
426
  });
421
427
  vi.mocked(resolveOutputMode).mockReturnValue('auto');
422
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], auto: true }))
423
- .rejects.toThrow('process.exit called');
424
- expect(exitSpy).toHaveBeenCalledWith(4);
428
+ await invokeHandler({ step: 'create-prd', _: ['run'], auto: true });
429
+ expect(process.exitCode).toBe(4);
425
430
  });
426
431
  });
427
432
  describe('Step 5: dependency check', () => {
@@ -454,27 +459,24 @@ describe('run command handler', () => {
454
459
  ]),
455
460
  };
456
461
  vi.mocked(buildGraph).mockReturnValue(graph);
457
- await expect(invokeHandler({ step: 'create-arch', _: ['run'] }))
458
- .rejects.toThrow('process.exit called');
459
- expect(exitSpy).toHaveBeenCalledWith(2);
462
+ await invokeHandler({ step: 'create-arch', _: ['run'] });
463
+ expect(process.exitCode).toBe(2);
460
464
  });
461
465
  it('exits 1 when dependency cycles are detected', async () => {
462
466
  vi.mocked(detectCycles).mockReturnValue([
463
467
  { code: 'DEP_CYCLE_DETECTED', message: 'Cycle detected', exitCode: 1 },
464
468
  ]);
465
- await expect(invokeHandler({ step: 'create-prd', _: ['run'] }))
466
- .rejects.toThrow('process.exit called');
467
- expect(exitSpy).toHaveBeenCalledWith(1);
469
+ await invokeHandler({ step: 'create-prd', _: ['run'] });
470
+ expect(process.exitCode).toBe(1);
468
471
  });
469
472
  });
470
473
  describe('Step 9: assembly', () => {
471
474
  it('outputs assembled prompt text to stdout on success (auto mode)', async () => {
472
475
  vi.mocked(resolveOutputMode).mockReturnValue('auto');
473
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], auto: true }))
474
- .rejects.toThrow('process.exit called');
476
+ await invokeHandler({ step: 'create-prd', _: ['run'], auto: true });
475
477
  // Prompt text should be written to stdout
476
478
  expect(stdoutSpy).toHaveBeenCalledWith(expect.stringContaining('assembled prompt text'));
477
- expect(exitSpy).toHaveBeenCalledWith(0);
479
+ expect(process.exitCode).toBeUndefined();
478
480
  });
479
481
  it('exits 5 when assembly engine fails', async () => {
480
482
  vi.mocked(AssemblyEngine.prototype.assemble).mockReturnValue({
@@ -482,27 +484,24 @@ describe('run command handler', () => {
482
484
  errors: [{ code: 'ASM_UNEXPECTED_ERROR', message: 'Assembly failed', exitCode: 5 }],
483
485
  warnings: [],
484
486
  });
485
- await expect(invokeHandler({ step: 'create-prd', _: ['run'] }))
486
- .rejects.toThrow('process.exit called');
487
- expect(exitSpy).toHaveBeenCalledWith(5);
487
+ await invokeHandler({ step: 'create-prd', _: ['run'] });
488
+ expect(process.exitCode).toBe(5);
488
489
  });
489
490
  });
490
491
  describe('Step 10: completion (auto mode)', () => {
491
- it('auto mode exits 0 immediately after prompt output', async () => {
492
+ it('auto mode returns normally after prompt output', async () => {
492
493
  vi.mocked(resolveOutputMode).mockReturnValue('auto');
493
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], auto: true }))
494
- .rejects.toThrow('process.exit called');
495
- expect(exitSpy).toHaveBeenCalledWith(0);
494
+ await invokeHandler({ step: 'create-prd', _: ['run'], auto: true });
495
+ expect(process.exitCode).toBeUndefined();
496
496
  });
497
497
  });
498
498
  describe('Step 11: mark completed (interactive)', () => {
499
499
  it('marks step completed when user confirms in interactive mode', async () => {
500
500
  vi.mocked(resolveOutputMode).mockReturnValue('interactive');
501
501
  mockOutput.confirm = vi.fn().mockResolvedValue(true);
502
- await expect(invokeHandler({ step: 'create-prd', _: ['run'] }))
503
- .rejects.toThrow('process.exit called');
502
+ await invokeHandler({ step: 'create-prd', _: ['run'] });
504
503
  expect(StateManager.prototype.markCompleted).toHaveBeenCalledWith('create-prd', expect.any(Array), 'scaffold-run', expect.any(Number));
505
- expect(exitSpy).toHaveBeenCalledWith(0);
504
+ expect(process.exitCode).toBeUndefined();
506
505
  });
507
506
  it('exits 4 when user declines completion in interactive mode', async () => {
508
507
  vi.mocked(resolveOutputMode).mockReturnValue('interactive');
@@ -510,16 +509,14 @@ describe('run command handler', () => {
510
509
  mockOutput.confirm = vi.fn()
511
510
  .mockResolvedValueOnce(false) // "Step complete?" -> No
512
511
  .mockResolvedValueOnce(false); // "Mark as skipped?" -> No
513
- await expect(invokeHandler({ step: 'create-prd', _: ['run'] }))
514
- .rejects.toThrow('process.exit called');
515
- expect(exitSpy).toHaveBeenCalledWith(4);
512
+ await invokeHandler({ step: 'create-prd', _: ['run'] });
513
+ expect(process.exitCode).toBe(4);
516
514
  });
517
515
  });
518
516
  describe('Depth override', () => {
519
517
  it('passes --depth CLI flag to resolveDepth', async () => {
520
518
  vi.mocked(resolveDepth).mockReturnValue({ depth: 3, provenance: 'cli-flag' });
521
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], depth: 3, auto: true }))
522
- .rejects.toThrow('process.exit called');
519
+ await invokeHandler({ step: 'create-prd', _: ['run'], depth: 3, auto: true });
523
520
  expect(resolveDepth).toHaveBeenCalledWith('create-prd', expect.any(Object), // config
524
521
  expect.any(Object), // preset
525
522
  3);
@@ -529,9 +526,8 @@ describe('run command handler', () => {
529
526
  it('outputs structured JSON result in json mode', async () => {
530
527
  vi.mocked(resolveOutputMode).mockReturnValue('json');
531
528
  vi.mocked(computeEligible).mockReturnValue(['next-step']);
532
- // In JSON mode, like auto mode, exits 0 after prompt output
533
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], format: 'json' }))
534
- .rejects.toThrow('process.exit called');
529
+ // In JSON mode, like auto mode, returns normally after prompt output
530
+ await invokeHandler({ step: 'create-prd', _: ['run'], format: 'json' });
535
531
  // In json mode output.result is called with structured data
536
532
  expect(mockOutput.result).toHaveBeenCalledWith(expect.objectContaining({
537
533
  step: 'create-prd',
@@ -543,8 +539,7 @@ describe('run command handler', () => {
543
539
  });
544
540
  describe('--instructions flag', () => {
545
541
  it('passes inline instructions to loadInstructions', async () => {
546
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], instructions: 'Be thorough', auto: true }))
547
- .rejects.toThrow('process.exit called');
542
+ await invokeHandler({ step: 'create-prd', _: ['run'], instructions: 'Be thorough', auto: true });
548
543
  expect(loadInstructions).toHaveBeenCalledWith(expect.any(String), 'create-prd', 'Be thorough');
549
544
  });
550
545
  });
@@ -561,19 +556,17 @@ describe('run command handler', () => {
561
556
  },
562
557
  warnings: [],
563
558
  });
564
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], force: true, auto: true }))
565
- .rejects.toThrow('process.exit called');
566
- // Should exit 0 (success, not 4 cancellation)
567
- expect(exitSpy).toHaveBeenCalledWith(0);
559
+ await invokeHandler({ step: 'create-prd', _: ['run'], force: true, auto: true });
560
+ // Should return normally (success, not 4 cancellation)
561
+ expect(process.exitCode).toBeUndefined();
568
562
  });
569
563
  });
570
564
  describe('lock release', () => {
571
- it('releases lock after successful run', async () => {
565
+ it('delegates lock cleanup to shutdown.withResource', async () => {
572
566
  vi.mocked(resolveOutputMode).mockReturnValue('interactive');
573
567
  mockOutput.confirm = vi.fn().mockResolvedValue(true);
574
- await expect(invokeHandler({ step: 'create-prd', _: ['run'] }))
575
- .rejects.toThrow('process.exit called');
576
- expect(releaseLock).toHaveBeenCalledWith(PROJECT_ROOT);
568
+ await invokeHandler({ step: 'create-prd', _: ['run'] });
569
+ expect(shutdown.withResource).toHaveBeenCalledWith('lock', expect.any(Function), expect.any(Function));
577
570
  });
578
571
  });
579
572
  describe('crash recovery: interactive mode ask_user', () => {
@@ -594,8 +587,7 @@ describe('run command handler', () => {
594
587
  mockOutput.confirm = vi.fn()
595
588
  .mockResolvedValueOnce(true) // crash recovery: mark as completed
596
589
  .mockResolvedValueOnce(true); // step complete
597
- await expect(invokeHandler({ step: 'create-prd', _: ['run'] }))
598
- .rejects.toThrow('process.exit called');
590
+ await invokeHandler({ step: 'create-prd', _: ['run'] });
599
591
  expect(StateManager.prototype.markCompleted).toHaveBeenCalledWith('create-prd', [], 'scaffold-crash-recovery', 3);
600
592
  expect(StateManager.prototype.clearInProgress).toHaveBeenCalled();
601
593
  });
@@ -606,8 +598,7 @@ describe('run command handler', () => {
606
598
  mockOutput.confirm = vi.fn()
607
599
  .mockResolvedValueOnce(false) // crash recovery: do not mark completed
608
600
  .mockResolvedValueOnce(true); // step complete
609
- await expect(invokeHandler({ step: 'create-prd', _: ['run'] }))
610
- .rejects.toThrow('process.exit called');
601
+ await invokeHandler({ step: 'create-prd', _: ['run'] });
611
602
  // Should have called clearInProgress but NOT markCompleted with crash-recovery source
612
603
  const markCompletedCalls = vi.mocked(StateManager.prototype.markCompleted).mock.calls;
613
604
  const crashRecoveryCalls = markCompletedCalls.filter(call => call[2] === 'scaffold-crash-recovery');
@@ -634,10 +625,9 @@ describe('run command handler', () => {
634
625
  setupUpdateMode();
635
626
  // User declines re-run confirmation
636
627
  mockOutput.confirm = vi.fn().mockResolvedValueOnce(false);
637
- await expect(invokeHandler({ step: 'create-prd', _: ['run'] }))
638
- .rejects.toThrow('process.exit called');
639
- expect(exitSpy).toHaveBeenCalledWith(4);
640
- expect(releaseLock).toHaveBeenCalledWith(PROJECT_ROOT);
628
+ await invokeHandler({ step: 'create-prd', _: ['run'] });
629
+ expect(process.exitCode).toBe(4);
630
+ expect(shutdown.withResource).toHaveBeenCalledWith('lock', expect.any(Function), expect.any(Function));
641
631
  });
642
632
  it('proceeds when user confirms depth downgrade', async () => {
643
633
  setupUpdateMode([{ code: 'ASM_DEPTH_DOWNGRADE', message: 'Depth downgraded from 4 to 3' }]);
@@ -648,9 +638,8 @@ describe('run command handler', () => {
648
638
  .mockResolvedValueOnce(true) // update mode confirmation
649
639
  .mockResolvedValueOnce(true) // depth downgrade confirmation
650
640
  .mockResolvedValueOnce(true); // step complete
651
- await expect(invokeHandler({ step: 'create-prd', _: ['run'] }))
652
- .rejects.toThrow('process.exit called');
653
- expect(exitSpy).toHaveBeenCalledWith(0);
641
+ await invokeHandler({ step: 'create-prd', _: ['run'] });
642
+ expect(process.exitCode).toBeUndefined();
654
643
  expect(stdoutSpy).toHaveBeenCalledWith(expect.stringContaining('assembled prompt text'));
655
644
  });
656
645
  it('exits 4 when user declines depth downgrade', async () => {
@@ -660,10 +649,9 @@ describe('run command handler', () => {
660
649
  mockOutput.confirm = vi.fn()
661
650
  .mockResolvedValueOnce(true) // update mode confirmation
662
651
  .mockResolvedValueOnce(false); // depth downgrade → decline
663
- await expect(invokeHandler({ step: 'create-prd', _: ['run'] }))
664
- .rejects.toThrow('process.exit called');
665
- expect(exitSpy).toHaveBeenCalledWith(4);
666
- expect(releaseLock).toHaveBeenCalledWith(PROJECT_ROOT);
652
+ await invokeHandler({ step: 'create-prd', _: ['run'] });
653
+ expect(process.exitCode).toBe(4);
654
+ expect(shutdown.withResource).toHaveBeenCalledWith('lock', expect.any(Function), expect.any(Function));
667
655
  });
668
656
  it('outputs warnings and proceeds in auto mode with depth downgrade', async () => {
669
657
  vi.mocked(detectUpdateMode).mockReturnValue({
@@ -678,10 +666,9 @@ describe('run command handler', () => {
678
666
  warnings: [{ code: 'ASM_DEPTH_DOWNGRADE', message: 'Depth downgraded from 4 to 3' }],
679
667
  });
680
668
  vi.mocked(resolveOutputMode).mockReturnValue('auto');
681
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], auto: true }))
682
- .rejects.toThrow('process.exit called');
669
+ await invokeHandler({ step: 'create-prd', _: ['run'], auto: true });
683
670
  expect(mockOutput.warn).toHaveBeenCalledWith(expect.objectContaining({ code: 'ASM_DEPTH_DOWNGRADE' }));
684
- expect(exitSpy).toHaveBeenCalledWith(0);
671
+ expect(process.exitCode).toBeUndefined();
685
672
  });
686
673
  });
687
674
  describe('lock warning display', () => {
@@ -690,8 +677,7 @@ describe('run command handler', () => {
690
677
  acquired: true,
691
678
  warning: { code: 'LOCK_STALE_CLEARED', message: 'Stale lock cleared' },
692
679
  });
693
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], auto: true }))
694
- .rejects.toThrow('process.exit called');
680
+ await invokeHandler({ step: 'create-prd', _: ['run'], auto: true });
695
681
  expect(mockOutput.warn).toHaveBeenCalledWith(expect.objectContaining({ code: 'LOCK_STALE_CLEARED', message: 'Stale lock cleared' }));
696
682
  });
697
683
  });
@@ -701,10 +687,9 @@ describe('run command handler', () => {
701
687
  mockOutput.confirm = vi.fn()
702
688
  .mockResolvedValueOnce(false) // Step complete? → no
703
689
  .mockResolvedValueOnce(true); // Mark as skipped? → yes
704
- await expect(invokeHandler({ step: 'create-prd', _: ['run'] }))
705
- .rejects.toThrow('process.exit called');
690
+ await invokeHandler({ step: 'create-prd', _: ['run'] });
706
691
  expect(StateManager.prototype.markSkipped).toHaveBeenCalledWith('create-prd', 'user-cancelled', 'scaffold-run');
707
- expect(exitSpy).toHaveBeenCalledWith(4);
692
+ expect(process.exitCode).toBe(4);
708
693
  });
709
694
  });
710
695
  describe('interactive mode: next eligible steps display', () => {
@@ -712,33 +697,30 @@ describe('run command handler', () => {
712
697
  vi.mocked(resolveOutputMode).mockReturnValue('interactive');
713
698
  vi.mocked(computeEligible).mockReturnValue(['create-arch', 'create-api']);
714
699
  mockOutput.confirm = vi.fn().mockResolvedValue(true);
715
- await expect(invokeHandler({ step: 'create-prd', _: ['run'] }))
716
- .rejects.toThrow('process.exit called');
700
+ await invokeHandler({ step: 'create-prd', _: ['run'] });
717
701
  expect(mockOutput.info).toHaveBeenCalledWith(expect.stringContaining('Next eligible: create-arch, create-api'));
718
702
  });
719
703
  it('displays "No more eligible steps" when none available', async () => {
720
704
  vi.mocked(resolveOutputMode).mockReturnValue('interactive');
721
705
  vi.mocked(computeEligible).mockReturnValue([]);
722
706
  mockOutput.confirm = vi.fn().mockResolvedValue(true);
723
- await expect(invokeHandler({ step: 'create-prd', _: ['run'] }))
724
- .rejects.toThrow('process.exit called');
707
+ await invokeHandler({ step: 'create-prd', _: ['run'] });
725
708
  expect(mockOutput.info).toHaveBeenCalledWith('No more eligible steps.');
726
709
  });
727
710
  });
728
711
  describe('unexpected error handling', () => {
729
- it('releases lock and exits 1 when assembly engine throws unexpected error', async () => {
712
+ it('delegates lock cleanup to withResource and exits 1 when assembly engine throws unexpected error', async () => {
730
713
  vi.mocked(AssemblyEngine.prototype.assemble).mockImplementation(() => {
731
714
  throw new Error('unexpected engine failure');
732
715
  });
733
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], auto: true }))
734
- .rejects.toThrow('process.exit called');
735
- expect(releaseLock).toHaveBeenCalledWith(PROJECT_ROOT);
716
+ await invokeHandler({ step: 'create-prd', _: ['run'], auto: true });
717
+ expect(shutdown.withResource).toHaveBeenCalledWith('lock', expect.any(Function), expect.any(Function));
736
718
  expect(mockOutput.error).toHaveBeenCalledWith(expect.objectContaining({
737
719
  code: 'RUN_UNEXPECTED_ERROR',
738
720
  message: 'unexpected engine failure',
739
721
  exitCode: 1,
740
722
  }));
741
- expect(exitSpy).toHaveBeenCalledWith(1);
723
+ expect(process.exitCode).toBe(1);
742
724
  });
743
725
  });
744
726
  describe('methodology change warnings', () => {
@@ -751,8 +733,7 @@ describe('run command handler', () => {
751
733
  { code: 'METHODOLOGY_CHANGED', message: 'Methodology changed from deep to mvp' },
752
734
  ],
753
735
  });
754
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], auto: true }))
755
- .rejects.toThrow('process.exit called');
736
+ await invokeHandler({ step: 'create-prd', _: ['run'], auto: true });
756
737
  expect(mockOutput.warn).toHaveBeenCalledWith(expect.objectContaining({ code: 'METHODOLOGY_CHANGED' }));
757
738
  });
758
739
  });
@@ -825,8 +806,7 @@ describe('run command handler', () => {
825
806
  throw new Error(`ENOENT: no such file: ${String(p)}`);
826
807
  });
827
808
  vi.mocked(resolveOutputMode).mockReturnValue('auto');
828
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], auto: true }))
829
- .rejects.toThrow('process.exit called');
809
+ await invokeHandler({ step: 'create-prd', _: ['run'], auto: true });
830
810
  // Verify the assembly engine received artifacts
831
811
  expect(AssemblyEngine.prototype.assemble).toHaveBeenCalledWith('create-prd', expect.objectContaining({
832
812
  artifacts: expect.arrayContaining([
@@ -837,7 +817,7 @@ describe('run command handler', () => {
837
817
  }),
838
818
  ]),
839
819
  }));
840
- expect(exitSpy).toHaveBeenCalledWith(0);
820
+ expect(process.exitCode).toBeUndefined();
841
821
  });
842
822
  });
843
823
  describe('reads artifact gathering', () => {
@@ -904,8 +884,7 @@ describe('run command handler', () => {
904
884
  throw new Error(`ENOENT: no such file: ${String(p)}`);
905
885
  });
906
886
  vi.mocked(resolveOutputMode).mockReturnValue('auto');
907
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], auto: true }))
908
- .rejects.toThrow('process.exit called');
887
+ await invokeHandler({ step: 'create-prd', _: ['run'], auto: true });
909
888
  expect(AssemblyEngine.prototype.assemble).toHaveBeenCalledWith('create-prd', expect.objectContaining({
910
889
  artifacts: expect.arrayContaining([
911
890
  expect.objectContaining({
@@ -963,8 +942,7 @@ describe('run command handler', () => {
963
942
  };
964
943
  vi.mocked(buildGraph).mockReturnValue(graph);
965
944
  vi.mocked(resolveOutputMode).mockReturnValue('auto');
966
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], auto: true }))
967
- .rejects.toThrow('process.exit called');
945
+ await invokeHandler({ step: 'create-prd', _: ['run'], auto: true });
968
946
  // Should have empty artifacts (reads target not completed)
969
947
  expect(AssemblyEngine.prototype.assemble).toHaveBeenCalledWith('create-prd', expect.objectContaining({
970
948
  artifacts: [],
@@ -1017,8 +995,7 @@ describe('run command handler', () => {
1017
995
  };
1018
996
  vi.mocked(buildGraph).mockReturnValue(graph);
1019
997
  vi.mocked(resolveOutputMode).mockReturnValue('auto');
1020
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], auto: true }))
1021
- .rejects.toThrow('process.exit called');
998
+ await invokeHandler({ step: 'create-prd', _: ['run'], auto: true });
1022
999
  // Disabled read target should be skipped — no artifacts gathered
1023
1000
  expect(AssemblyEngine.prototype.assemble).toHaveBeenCalledWith('create-prd', expect.objectContaining({
1024
1001
  artifacts: [],
@@ -1090,8 +1067,7 @@ describe('run command handler', () => {
1090
1067
  throw new Error(`ENOENT: no such file: ${String(p)}`);
1091
1068
  });
1092
1069
  vi.mocked(resolveOutputMode).mockReturnValue('auto');
1093
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], auto: true }))
1094
- .rejects.toThrow('process.exit called');
1070
+ await invokeHandler({ step: 'create-prd', _: ['run'], auto: true });
1095
1071
  // Should only have one artifact (deduplicated)
1096
1072
  const assembleCall = vi.mocked(AssemblyEngine.prototype.assemble).mock.calls[0];
1097
1073
  const artifacts = assembleCall?.[1]?.artifacts ?? [];
@@ -1146,11 +1122,10 @@ describe('run command handler', () => {
1146
1122
  };
1147
1123
  vi.mocked(buildGraph).mockReturnValue(graph);
1148
1124
  vi.mocked(resolveOutputMode).mockReturnValue('auto');
1149
- await expect(invokeHandler({ step: 'create-arch', _: ['run'], auto: true }))
1150
- .rejects.toThrow('process.exit called');
1151
- // Should NOT have exited with DEP_UNMET (exit code 2)
1152
- // It should proceed to assembly and exit 0
1153
- expect(exitSpy).toHaveBeenCalledWith(0);
1125
+ await invokeHandler({ step: 'create-arch', _: ['run'], auto: true });
1126
+ // Should NOT have set exitCode to 2 (DEP_UNMET)
1127
+ // It should proceed to assembly and return normally
1128
+ expect(process.exitCode).toBeUndefined();
1154
1129
  });
1155
1130
  });
1156
1131
  describe('overlay application', () => {
@@ -1170,8 +1145,7 @@ describe('run command handler', () => {
1170
1145
  dependencies: { 'create-prd': [] },
1171
1146
  });
1172
1147
  vi.mocked(resolveOutputMode).mockReturnValue('auto');
1173
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], auto: true }))
1174
- .rejects.toThrow('process.exit called');
1148
+ await invokeHandler({ step: 'create-prd', _: ['run'], auto: true });
1175
1149
  // Verify resolveOverlayState was called (overlay resolution delegated to resolver)
1176
1150
  expect(resolveOverlayState).toHaveBeenCalled();
1177
1151
  // Verify buildGraph received merged steps (with overlay applied)
@@ -1185,8 +1159,7 @@ describe('run command handler', () => {
1185
1159
  const config = makeConfig(); // no project.projectType
1186
1160
  vi.mocked(loadConfig).mockReturnValue({ config, errors: [], warnings: [] });
1187
1161
  vi.mocked(resolveOutputMode).mockReturnValue('auto');
1188
- await expect(invokeHandler({ step: 'create-prd', _: ['run'], auto: true }))
1189
- .rejects.toThrow('process.exit called');
1162
+ await invokeHandler({ step: 'create-prd', _: ['run'], auto: true });
1190
1163
  // resolveOverlayState is still called (by the resolver) but with no projectType
1191
1164
  // it returns the preset steps unchanged
1192
1165
  expect(resolveOverlayState).toHaveBeenCalled();