@lumenflow/cli 4.24.0 → 5.0.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 (294) hide show
  1. package/README.md +54 -52
  2. package/dist/agent-issues-query.js +10 -2
  3. package/dist/agent-issues-query.js.map +1 -1
  4. package/dist/agent-runtime-enrollment-events.js +44 -0
  5. package/dist/agent-runtime-enrollment-events.js.map +1 -0
  6. package/dist/agent-session-end.js +47 -0
  7. package/dist/agent-session-end.js.map +1 -1
  8. package/dist/agent-session-heartbeat.js +250 -0
  9. package/dist/agent-session-heartbeat.js.map +1 -0
  10. package/dist/agent-session.js +299 -5
  11. package/dist/agent-session.js.map +1 -1
  12. package/dist/capacity-snapshot-emitter.js +73 -0
  13. package/dist/capacity-snapshot-emitter.js.map +1 -0
  14. package/dist/claim-queue.js +276 -0
  15. package/dist/claim-queue.js.map +1 -0
  16. package/dist/config-set.js +22 -3
  17. package/dist/config-set.js.map +1 -1
  18. package/dist/control-plane-sidecar-runner.js +145 -0
  19. package/dist/control-plane-sidecar-runner.js.map +1 -0
  20. package/dist/delegation-list.js +160 -1
  21. package/dist/delegation-list.js.map +1 -1
  22. package/dist/delegation-role-resolver.js +69 -0
  23. package/dist/delegation-role-resolver.js.map +1 -0
  24. package/dist/docs-generate-pack-reference.js +500 -0
  25. package/dist/docs-generate-pack-reference.js.map +1 -0
  26. package/dist/docs-sync.js +116 -1
  27. package/dist/docs-sync.js.map +1 -1
  28. package/dist/file-edit.js +28 -8
  29. package/dist/file-edit.js.map +1 -1
  30. package/dist/file-write.js +29 -5
  31. package/dist/file-write.js.map +1 -1
  32. package/dist/gate-co-change.js +25 -7
  33. package/dist/gate-co-change.js.map +1 -1
  34. package/dist/gate-conditional.js +19 -7
  35. package/dist/gate-conditional.js.map +1 -1
  36. package/dist/gates-runners.js +42 -33
  37. package/dist/gates-runners.js.map +1 -1
  38. package/dist/gates-utils.js +34 -20
  39. package/dist/gates-utils.js.map +1 -1
  40. package/dist/gates.js +79 -7
  41. package/dist/gates.js.map +1 -1
  42. package/dist/hooks/config-resolver.js +10 -1
  43. package/dist/hooks/config-resolver.js.map +1 -1
  44. package/dist/init-package-config.js +1 -1
  45. package/dist/init-package-config.js.map +1 -1
  46. package/dist/init-scaffolding.js +5 -1
  47. package/dist/init-scaffolding.js.map +1 -1
  48. package/dist/init-templates.js +10 -0
  49. package/dist/init-templates.js.map +1 -1
  50. package/dist/init.js +1 -1
  51. package/dist/init.js.map +1 -1
  52. package/dist/initiative-create.js +17 -0
  53. package/dist/initiative-create.js.map +1 -1
  54. package/dist/initiative-remove-wu.js +17 -3
  55. package/dist/initiative-remove-wu.js.map +1 -1
  56. package/dist/kernel-event-sync/emitters.js +104 -0
  57. package/dist/kernel-event-sync/emitters.js.map +1 -0
  58. package/dist/kernel-event-sync/index.js +13 -0
  59. package/dist/kernel-event-sync/index.js.map +1 -0
  60. package/dist/kernel-event-sync/lifecycle-emitters.js +160 -0
  61. package/dist/kernel-event-sync/lifecycle-emitters.js.map +1 -0
  62. package/dist/kernel-event-sync/narrow-emissions.js +89 -0
  63. package/dist/kernel-event-sync/narrow-emissions.js.map +1 -0
  64. package/dist/kernel-event-sync/software-delivery-emitters.js +297 -0
  65. package/dist/kernel-event-sync/software-delivery-emitters.js.map +1 -0
  66. package/dist/lane-lock.js +14 -1
  67. package/dist/lane-lock.js.map +1 -1
  68. package/dist/lane-suggest.js +21 -0
  69. package/dist/lane-suggest.js.map +1 -1
  70. package/dist/lumenflow-upgrade.js +7 -5
  71. package/dist/lumenflow-upgrade.js.map +1 -1
  72. package/dist/mem-context.js +145 -0
  73. package/dist/mem-context.js.map +1 -1
  74. package/dist/mem-create.js +39 -6
  75. package/dist/mem-create.js.map +1 -1
  76. package/dist/mem-inbox.js +16 -0
  77. package/dist/mem-inbox.js.map +1 -1
  78. package/dist/mem-roster.js +95 -0
  79. package/dist/mem-roster.js.map +1 -0
  80. package/dist/mem-signal.js +97 -2
  81. package/dist/mem-signal.js.map +1 -1
  82. package/dist/metrics-snapshot.js +3 -2
  83. package/dist/metrics-snapshot.js.map +1 -1
  84. package/dist/orchestrate-init-status.js +117 -2
  85. package/dist/orchestrate-init-status.js.map +1 -1
  86. package/dist/orchestrate-initiative.js +83 -10
  87. package/dist/orchestrate-initiative.js.map +1 -1
  88. package/dist/orchestrate-monitor-quality.js +289 -0
  89. package/dist/orchestrate-monitor-quality.js.map +1 -0
  90. package/dist/orchestrate-monitor.js +85 -0
  91. package/dist/orchestrate-monitor.js.map +1 -1
  92. package/dist/pack-validate.js +127 -2
  93. package/dist/pack-validate.js.map +1 -1
  94. package/dist/plan-create.js +18 -0
  95. package/dist/plan-create.js.map +1 -1
  96. package/dist/plan-link.js +13 -0
  97. package/dist/plan-link.js.map +1 -1
  98. package/dist/plan-promote.js +14 -0
  99. package/dist/plan-promote.js.map +1 -1
  100. package/dist/pre-commit-check.js +4 -3
  101. package/dist/pre-commit-check.js.map +1 -1
  102. package/dist/public-manifest.js +17 -3
  103. package/dist/public-manifest.js.map +1 -1
  104. package/dist/release.js +10 -10
  105. package/dist/release.js.map +1 -1
  106. package/dist/session-cross-link.js +139 -0
  107. package/dist/session-cross-link.js.map +1 -0
  108. package/dist/sidecar-manager.js +208 -0
  109. package/dist/sidecar-manager.js.map +1 -0
  110. package/dist/state-path-resolvers.js +18 -0
  111. package/dist/state-path-resolvers.js.map +1 -1
  112. package/dist/stream-heartbeat.js +151 -0
  113. package/dist/stream-heartbeat.js.map +1 -0
  114. package/dist/sync-templates.js +56 -2
  115. package/dist/sync-templates.js.map +1 -1
  116. package/dist/wu-block.js +47 -5
  117. package/dist/wu-block.js.map +1 -1
  118. package/dist/wu-claim-branch.js +8 -4
  119. package/dist/wu-claim-branch.js.map +1 -1
  120. package/dist/wu-claim-state.js +5 -3
  121. package/dist/wu-claim-state.js.map +1 -1
  122. package/dist/wu-claim-worktree.js +5 -3
  123. package/dist/wu-claim-worktree.js.map +1 -1
  124. package/dist/wu-claim.js +261 -9
  125. package/dist/wu-claim.js.map +1 -1
  126. package/dist/wu-done-auto-cleanup.js +3 -2
  127. package/dist/wu-done-auto-cleanup.js.map +1 -1
  128. package/dist/wu-done-git-ops.js +12 -8
  129. package/dist/wu-done-git-ops.js.map +1 -1
  130. package/dist/wu-done-preflight.js +3 -3
  131. package/dist/wu-done-preflight.js.map +1 -1
  132. package/dist/wu-done.js +46 -10
  133. package/dist/wu-done.js.map +1 -1
  134. package/dist/wu-lifecycle-sync/gate-scope-resolver.js +16 -0
  135. package/dist/wu-lifecycle-sync/gate-scope-resolver.js.map +1 -0
  136. package/dist/wu-lifecycle-sync/kernel-event-sync-shim.js +10 -0
  137. package/dist/wu-lifecycle-sync/kernel-event-sync-shim.js.map +1 -0
  138. package/dist/wu-prep.js +363 -22
  139. package/dist/wu-prep.js.map +1 -1
  140. package/dist/wu-prune.js +68 -27
  141. package/dist/wu-prune.js.map +1 -1
  142. package/dist/wu-release.js +34 -3
  143. package/dist/wu-release.js.map +1 -1
  144. package/dist/wu-review.js +167 -0
  145. package/dist/wu-review.js.map +1 -0
  146. package/dist/wu-spawn-prompt-builders.js +296 -40
  147. package/dist/wu-spawn-prompt-builders.js.map +1 -1
  148. package/dist/wu-spawn-strategy-resolver.js +126 -14
  149. package/dist/wu-spawn-strategy-resolver.js.map +1 -1
  150. package/dist/wu-unblock.js +52 -22
  151. package/dist/wu-unblock.js.map +1 -1
  152. package/package.json +13 -8
  153. package/packs/agent-runtime/.turbo/turbo-build.log +1 -1
  154. package/packs/agent-runtime/.turbo/turbo-test.log +25 -0
  155. package/packs/agent-runtime/.turbo/turbo-typecheck.log +4 -0
  156. package/packs/agent-runtime/agent-heartbeat.ts +163 -0
  157. package/packs/agent-runtime/auto-session-integration.ts +874 -0
  158. package/packs/agent-runtime/delegation-registry-schema.ts +220 -0
  159. package/packs/agent-runtime/delegation-registry-store.ts +269 -0
  160. package/packs/agent-runtime/delegation-tree.ts +328 -0
  161. package/packs/agent-runtime/index.ts +9 -0
  162. package/packs/agent-runtime/manifest.ts +103 -19
  163. package/packs/agent-runtime/manifest.yaml +132 -0
  164. package/packs/agent-runtime/memory-coordination-contract.ts +86 -0
  165. package/packs/agent-runtime/memory.d.ts +19 -0
  166. package/packs/agent-runtime/orchestration.ts +238 -23
  167. package/packs/agent-runtime/package.json +11 -2
  168. package/packs/agent-runtime/remote-controls/index.ts +7 -0
  169. package/packs/agent-runtime/remote-controls/operations.ts +399 -0
  170. package/packs/agent-runtime/remote-controls/port.ts +48 -0
  171. package/packs/agent-runtime/remote-controls/state-store.ts +258 -0
  172. package/packs/agent-runtime/remote-controls/types.ts +105 -0
  173. package/packs/agent-runtime/session-schema.ts +423 -0
  174. package/packs/agent-runtime/tool-impl/index.ts +1 -0
  175. package/packs/agent-runtime/tool-impl/remote-controls.mock.ts +252 -0
  176. package/packs/agent-runtime/tool-impl/remote-controls.ts +273 -0
  177. package/packs/agent-runtime/tsconfig.json +1 -1
  178. package/packs/agent-runtime/turn-lifecycle-events.ts +501 -0
  179. package/packs/sidekick/.lumenflow/state/conductor/outbox/sidekick-events.jsonl +213 -0
  180. package/packs/sidekick/.turbo/turbo-build.log +1 -1
  181. package/packs/sidekick/.turbo/turbo-test.log +25 -0
  182. package/packs/sidekick/.turbo/turbo-typecheck.log +4 -0
  183. package/packs/sidekick/channel-ingress.ts +137 -0
  184. package/packs/sidekick/manifest.ts +74 -0
  185. package/packs/sidekick/manifest.yaml +88 -0
  186. package/packs/sidekick/package.json +3 -1
  187. package/packs/sidekick/sidekick-events.ts +517 -0
  188. package/packs/sidekick/src/adapters/cloud-queue.ts +101 -0
  189. package/packs/sidekick/src/adapters/control-plane-bridge.adapter.ts +378 -0
  190. package/packs/sidekick/src/adapters/filesystem-bridge.adapter.ts +224 -0
  191. package/packs/sidekick/src/domain/channel.types.ts +84 -0
  192. package/packs/sidekick/src/ports/channel-bridge.port.ts +75 -0
  193. package/packs/sidekick/src/routines/commit.ts +74 -0
  194. package/packs/sidekick/tool-impl/channel-tools.ts +47 -0
  195. package/packs/sidekick/tool-impl/memory-tools.ts +17 -0
  196. package/packs/sidekick/tool-impl/routine-commit.ts +102 -0
  197. package/packs/sidekick/tool-impl/routine-tools.ts +67 -7
  198. package/packs/sidekick/tool-impl/runtime-context.ts +4 -0
  199. package/packs/sidekick/tool-impl/storage.ts +3 -0
  200. package/packs/sidekick/tool-impl/system-tools.ts +7 -0
  201. package/packs/sidekick/tool-impl/task-tools.ts +46 -0
  202. package/packs/sidekick/tsconfig.json +1 -1
  203. package/packs/software-delivery/.turbo/turbo-build.log +1 -1
  204. package/packs/software-delivery/.turbo/turbo-test.log +63 -0
  205. package/packs/software-delivery/.turbo/turbo-typecheck.log +4 -0
  206. package/packs/software-delivery/manifest-schema.ts +30 -0
  207. package/packs/software-delivery/manifest.ts +99 -1
  208. package/packs/software-delivery/manifest.yaml +46 -0
  209. package/packs/software-delivery/package.json +88 -3
  210. package/packs/software-delivery/src/commands/index.ts +5 -0
  211. package/packs/software-delivery/src/config/delivery-review-contract.ts +20 -0
  212. package/packs/software-delivery/src/config/env-accessors.ts +19 -0
  213. package/packs/software-delivery/src/config/index.ts +8 -0
  214. package/packs/software-delivery/src/config/normalize-config-keys.ts +19 -0
  215. package/packs/software-delivery/src/config/schemas/lumenflow-config-schema-types.ts +436 -0
  216. package/packs/software-delivery/src/config/workspace-reader.ts +310 -0
  217. package/packs/software-delivery/src/constants/backlog-patterns.ts +31 -0
  218. package/packs/software-delivery/src/constants/client-ids.ts +19 -0
  219. package/packs/software-delivery/src/constants/config-contract.ts +7 -0
  220. package/packs/software-delivery/src/constants/docs-layout-presets.ts +50 -0
  221. package/packs/software-delivery/src/constants/duration-constants.ts +20 -0
  222. package/packs/software-delivery/src/constants/gate-constants.ts +32 -0
  223. package/packs/software-delivery/src/constants/index.ts +29 -0
  224. package/packs/software-delivery/src/constants/lock-constants.ts +35 -0
  225. package/packs/software-delivery/src/constants/object-guards.ts +12 -0
  226. package/packs/software-delivery/src/constants/section-headings.ts +107 -0
  227. package/packs/software-delivery/src/constants/wu-cli-constants.ts +485 -0
  228. package/packs/software-delivery/src/constants/wu-domain-constants.ts +466 -0
  229. package/packs/software-delivery/src/constants/wu-git-constants.ts +7 -0
  230. package/packs/software-delivery/src/constants/wu-id-format.ts +327 -0
  231. package/packs/software-delivery/src/constants/wu-paths-constants.ts +358 -0
  232. package/packs/software-delivery/src/constants/wu-statuses.ts +287 -0
  233. package/packs/software-delivery/src/constants/wu-type-helpers.ts +67 -0
  234. package/packs/software-delivery/src/constants/wu-ui-constants.ts +267 -0
  235. package/packs/software-delivery/src/constants/wu-validation-constants.ts +73 -0
  236. package/packs/software-delivery/src/domain/index.ts +5 -0
  237. package/packs/software-delivery/src/domain/orchestration.constants.ts +168 -0
  238. package/packs/software-delivery/src/domain/orchestration.schemas.ts +239 -0
  239. package/packs/software-delivery/src/domain/orchestration.types.ts +178 -0
  240. package/packs/software-delivery/src/methodology/incremental-test.ts +90 -0
  241. package/packs/software-delivery/src/methodology/index.ts +6 -0
  242. package/packs/software-delivery/src/methodology/manual-test-validator.ts +292 -0
  243. package/packs/software-delivery/src/policy/coverage-gate.ts +270 -0
  244. package/packs/software-delivery/src/policy/gates-agent-mode.ts +223 -0
  245. package/packs/software-delivery/src/policy/gates-config-internal.ts +121 -0
  246. package/packs/software-delivery/src/policy/gates-config.ts +293 -0
  247. package/packs/software-delivery/src/policy/gates-coverage.ts +247 -0
  248. package/packs/software-delivery/src/policy/gates-presets.ts +134 -0
  249. package/packs/software-delivery/src/policy/gates-schemas.ts +173 -0
  250. package/packs/software-delivery/src/policy/index.ts +22 -0
  251. package/packs/software-delivery/src/policy/package-manager-resolver.ts +319 -0
  252. package/packs/software-delivery/src/policy/resolve-policy.ts +518 -0
  253. package/packs/software-delivery/src/ports/config.ports.ts +90 -0
  254. package/packs/software-delivery/src/ports/dashboard-renderer.port.ts +125 -0
  255. package/packs/software-delivery/src/ports/index.ts +10 -0
  256. package/packs/software-delivery/src/ports/sync-validator.ports.ts +59 -0
  257. package/packs/software-delivery/src/ports/wu-helpers.ports.ts +168 -0
  258. package/packs/software-delivery/src/ports/wu-state.ports.ts +241 -0
  259. package/packs/software-delivery/src/primitives/index.ts +5 -0
  260. package/packs/software-delivery/src/runtime/index.ts +6 -0
  261. package/packs/software-delivery/src/runtime/work-classifier.ts +561 -0
  262. package/packs/software-delivery/src/sandbox/index.ts +10 -0
  263. package/packs/software-delivery/src/sandbox/sandbox-allowlist.ts +118 -0
  264. package/packs/software-delivery/src/sandbox/sandbox-backend-linux.ts +88 -0
  265. package/packs/software-delivery/src/sandbox/sandbox-backend-macos.ts +154 -0
  266. package/packs/software-delivery/src/sandbox/sandbox-backend-windows.ts +47 -0
  267. package/packs/software-delivery/src/sandbox/sandbox-profile.ts +153 -0
  268. package/packs/software-delivery/src/schemas/index.ts +5 -0
  269. package/packs/software-delivery/src/state/date-utils.ts +158 -0
  270. package/packs/software-delivery/src/state/index.ts +15 -0
  271. package/packs/software-delivery/src/state/state-machine.ts +119 -0
  272. package/packs/software-delivery/src/state/wu-doc-types.ts +51 -0
  273. package/packs/software-delivery/src/state/wu-paths.ts +381 -0
  274. package/packs/software-delivery/src/state/wu-schema.ts +1139 -0
  275. package/packs/software-delivery/src/state/wu-state-schema.ts +255 -0
  276. package/packs/software-delivery/src/state/wu-yaml.ts +338 -0
  277. package/packs/software-delivery/src/types.d.ts +16 -0
  278. package/packs/software-delivery/tool-impl/wu-lifecycle-tools.ts +18 -0
  279. package/packs/software-delivery/tsconfig.json +28 -2
  280. package/templates/core/AGENTS.md.template +76 -17
  281. package/templates/core/LUMENFLOW.md.template +265 -66
  282. package/templates/core/_frameworks/lumenflow/wu-sizing-guide.md.template +180 -116
  283. package/templates/core/ai/onboarding/agent-invocation-guide.md.template +26 -8
  284. package/templates/core/ai/onboarding/existing-project-bootstrap.md.template +171 -0
  285. package/templates/core/ai/onboarding/first-15-mins.md.template +3 -1
  286. package/templates/core/ai/onboarding/first-wu-mistakes.md.template +1 -1
  287. package/templates/core/ai/onboarding/initiative-orchestration.md.template +46 -30
  288. package/templates/core/ai/onboarding/quick-ref-commands.md.template +36 -33
  289. package/templates/core/ai/onboarding/release-process.md.template +8 -7
  290. package/templates/core/ai/onboarding/starting-prompt.md.template +2 -0
  291. package/templates/core/ai/onboarding/troubleshooting-wu-done.md.template +62 -0
  292. package/templates/vendors/claude/.claude/CLAUDE.md.template +29 -54
  293. package/templates/vendors/cursor/.cursor/rules/lumenflow.md.template +24 -52
  294. package/templates/vendors/windsurf/.windsurf/rules/lumenflow.md.template +24 -52
package/dist/wu-prep.js CHANGED
@@ -42,22 +42,36 @@ import { readWU } from '@lumenflow/core/wu-yaml';
42
42
  import { WU_PATHS } from '@lumenflow/core/wu-paths';
43
43
  import { createGitForPath } from '@lumenflow/core/git-adapter';
44
44
  import { TEST_FILE_PATTERNS } from '@lumenflow/core';
45
- import { resolveChangedFiles, isCodePathCoveredByChangedFiles, } from '@lumenflow/core/wu-rules-engine';
45
+ import { resolveChangedFiles, isCodePathCoveredByChangedFiles, resolveBaseRef, } from '@lumenflow/core/wu-rules-engine';
46
46
  import { validatePreflight, formatPreflightResult, formatPreflightWarnings, } from '@lumenflow/core/wu-preflight-validators';
47
47
  import { CONTEXT_VALIDATION, PATTERNS, EXIT_CODES, WU_STATUS, EMOJI, CLAIMED_MODES, } from '@lumenflow/core/wu-constants';
48
48
  import { defaultBranchFrom } from '@lumenflow/core/wu-done-paths';
49
49
  import { getCurrentBranch } from '@lumenflow/core/wu-helpers';
50
50
  import { createPreGatesCheckpoint } from '@lumenflow/core/wu-checkpoint';
51
- import { resolveTddDiffEvidencePolicy, resolveScopedUnitTestExecutionPlan, formatScopedUnitTestFallbackMessage, } from '@lumenflow/core/gates-config';
51
+ import { resolveTddDiffEvidencePolicy, resolveTddOrderingPolicy, resolveScopedUnitTestExecutionPlan, formatScopedUnitTestFallbackMessage, } from '@lumenflow/packs-software-delivery/policy/gates-config';
52
52
  import { runGates } from './gates.js';
53
53
  import { evaluateMainDirtyMutationGuard } from './hooks/dirty-guard.js';
54
54
  import { enforceWuBriefEvidenceForPrep, resolveWuBriefFreshnessMinutes, resolveWuBriefPolicyMode, } from './wu-done-policies.js';
55
+ import { resolveScopedUnitTestsForLifecycle } from './wu-lifecycle-sync/gate-scope-resolver.js';
55
56
  export { isCodePathCoveredByChanges, findMissingCodePathCoverage, checkCodePathCoverageBeforeGates, formatCodePathCoverageFailure, } from './wu-code-path-coverage.js';
56
57
  const { LOCATION_TYPES } = CONTEXT_VALIDATION;
57
58
  const TDD_EXCEPTION_MARKER = 'tdd-exception:';
58
59
  const CHANGED_FILES_EMPTY = ' - (none)';
59
60
  const AUTOMATED_TEST_DIFF_EVIDENCE_LABEL = 'automated test diff evidence';
60
61
  const GLOB_MATCH_OPTIONS = { dot: true };
62
+ const BOOTSTRAP_TRAP_FIX_WU_PLACEHOLDER = 'WU-XXXX';
63
+ const BOOTSTRAP_TRAP_PACKAGE_EXPORT_SKIP_REASON = 'bootstrap-trap: pack file moves cause wu:prep cross-module resolution; worktree build green';
64
+ const BOOTSTRAP_TRAP_PACKAGE_EXPORT_PATTERNS = [
65
+ /ERR_PACKAGE_PATH_NOT_EXPORTED/i,
66
+ /Package subpath ['"`][^'"`]+['"`] is not defined by "exports"/i,
67
+ ];
68
+ const BOOTSTRAP_TRAP_DEPENDENCY_CYCLE_PATTERNS = [
69
+ /Invalid package dependency graph/i,
70
+ /\bcyclic dependency\b/i,
71
+ /\bdependency cycle\b/i,
72
+ /\bturbo cycle\b/i,
73
+ ];
74
+ const SCOPED_UNIT_TEST_COMPARISON_TIMEOUT_MS = 90_000;
61
75
  /**
62
76
  * Log prefix for wu:prep command output.
63
77
  */
@@ -80,19 +94,7 @@ const PREP_OPTIONS = {
80
94
  force: WU_OPTIONS.force,
81
95
  reason: WU_OPTIONS.reason,
82
96
  };
83
- export function resolveScopedUnitTestsForPrep(options) {
84
- if (options.fullTests) {
85
- return [];
86
- }
87
- const unitTestsRaw = options.tests?.unit;
88
- if (!Array.isArray(unitTestsRaw)) {
89
- return [];
90
- }
91
- return unitTestsRaw
92
- .filter((entry) => typeof entry === 'string')
93
- .map((entry) => entry.trim())
94
- .filter(Boolean);
95
- }
97
+ export const resolveScopedUnitTestsForPrep = resolveScopedUnitTestsForLifecycle;
96
98
  export function buildRunGatesOptionsForPrep(options) {
97
99
  return {
98
100
  cwd: options.cwd,
@@ -247,6 +249,225 @@ export function formatTddDiffEvidenceFailure(options) {
247
249
  ` 2. If this change is intentionally exempt, document it in WU notes with:\n` +
248
250
  ` ${TDD_EXCEPTION_MARKER} <reason>`);
249
251
  }
252
+ /**
253
+ * Default branch-commit resolver: reads `git log --numstat base..HEAD`.
254
+ *
255
+ * Returns commits in chronological order (oldest first) — the natural order
256
+ * for enforcing RED-first ordering. Uses `--reverse` so the output matches
257
+ * commit authorship order on the branch.
258
+ */
259
+ async function defaultResolveBranchCommits(options) {
260
+ const baseRef = await resolveBaseRef({ cwd: options.cwd });
261
+ if (!baseRef) {
262
+ return { ok: false, reason: 'base ref unavailable (origin/main or main)' };
263
+ }
264
+ const headRef = 'HEAD';
265
+ const git = createGitForPath(options.cwd);
266
+ try {
267
+ const raw = await git.raw([
268
+ 'log',
269
+ `${baseRef}..${headRef}`,
270
+ '--reverse',
271
+ '--numstat',
272
+ '--format=__WU_COMMIT__%H%x09%s',
273
+ '--no-merges',
274
+ ]);
275
+ return { ok: true, commits: parseBranchCommits(raw), baseRef, headRef };
276
+ }
277
+ catch (error) {
278
+ return { ok: false, reason: error instanceof Error ? error.message : String(error) };
279
+ }
280
+ }
281
+ /**
282
+ * Parse the output of `git log --numstat --format=__WU_COMMIT__<hash>\t<subject>`.
283
+ *
284
+ * Numstat line format: `<added>\t<deleted>\t<path>` where added/deleted may be
285
+ * `-` for binary files.
286
+ */
287
+ export function parseBranchCommits(raw) {
288
+ const commits = [];
289
+ const lines = raw.split('\n');
290
+ let current = null;
291
+ for (const rawLine of lines) {
292
+ const line = rawLine.trimEnd();
293
+ if (line.startsWith('__WU_COMMIT__')) {
294
+ if (current) {
295
+ commits.push(current);
296
+ }
297
+ const header = line.slice('__WU_COMMIT__'.length);
298
+ const tab = header.indexOf('\t');
299
+ const hash = tab === -1 ? header : header.slice(0, tab);
300
+ const subject = tab === -1 ? '' : header.slice(tab + 1);
301
+ current = { hash, subject, files: [] };
302
+ continue;
303
+ }
304
+ if (!current || line.length === 0) {
305
+ continue;
306
+ }
307
+ const parts = line.split('\t');
308
+ if (parts.length < 3) {
309
+ continue;
310
+ }
311
+ const [addedRaw, deletedRaw, ...pathParts] = parts;
312
+ const filePath = pathParts.join('\t');
313
+ const added = addedRaw === '-' ? 0 : parseInt(addedRaw, 10);
314
+ const deleted = deletedRaw === '-' ? 0 : parseInt(deletedRaw, 10);
315
+ if (Number.isNaN(added) || Number.isNaN(deleted) || !filePath) {
316
+ continue;
317
+ }
318
+ current.files.push({ path: filePath, added, deleted });
319
+ }
320
+ if (current) {
321
+ commits.push(current);
322
+ }
323
+ return commits;
324
+ }
325
+ /**
326
+ * True when a commit subject introduces runtime behaviour (feat or fix).
327
+ * Uses the standard Conventional Commits prefixes; scope is optional.
328
+ */
329
+ function isRuntimeIntroducingCommit(subject) {
330
+ const trimmed = subject.trim().toLowerCase();
331
+ const prefix = trimmed.startsWith('feat') ? 'feat' : trimmed.startsWith('fix') ? 'fix' : null;
332
+ if (!prefix) {
333
+ return false;
334
+ }
335
+ const remainder = trimmed.slice(prefix.length);
336
+ if (remainder.startsWith(':') || remainder.startsWith('!:')) {
337
+ return true;
338
+ }
339
+ if (!remainder.startsWith('(')) {
340
+ return false;
341
+ }
342
+ const scopeEndIndex = remainder.indexOf(')');
343
+ if (scopeEndIndex <= 1) {
344
+ return false;
345
+ }
346
+ const afterScope = remainder.slice(scopeEndIndex + 1);
347
+ return afterScope.startsWith(':') || afterScope.startsWith('!:');
348
+ }
349
+ function isCommitFileExempt(filePath, exemptPaths) {
350
+ if (exemptPaths.length === 0) {
351
+ return false;
352
+ }
353
+ const normalized = filePath.replace(/\\/g, '/');
354
+ return exemptPaths.some((pattern) => minimatch(normalized, pattern, GLOB_MATCH_OPTIONS));
355
+ }
356
+ /**
357
+ * WU-2650: Evaluate whether the branch's commit order satisfies the RED-first
358
+ * policy. Mirrors `evaluateTddDiffEvidenceForPrep`:
359
+ *
360
+ * 1. Skip if WU type is not covered by the resolved policy (applies_to_types)
361
+ * or mode !== 'block'.
362
+ * 2. Honour a `tdd-exception:` marker in notes.
363
+ * 3. Walk commits in chronological order. If a feat/fix commit adds more than
364
+ * min_runtime_loc_per_commit_without_tests of non-exempt, non-test LOC and
365
+ * no earlier (or same) commit within the grace window touched a test file,
366
+ * flag that commit.
367
+ */
368
+ export async function evaluateCommitOrderForPrep(options) {
369
+ const { doc } = options;
370
+ const policy = resolveTddOrderingPolicy(options.cwd);
371
+ if (policy.mode !== 'block') {
372
+ return { valid: true, reason: 'not-applicable' };
373
+ }
374
+ if (typeof doc.type !== 'string' ||
375
+ !policy.applies_to_types.some((wuType) => wuType === doc.type)) {
376
+ return { valid: true, reason: 'not-applicable' };
377
+ }
378
+ if (hasDocumentedTddException(doc.notes)) {
379
+ return { valid: true, reason: 'documented-exception' };
380
+ }
381
+ const resolveCommitsFn = options.resolveBranchCommitsFn ?? defaultResolveBranchCommits;
382
+ const commitsResult = await resolveCommitsFn({ cwd: options.cwd });
383
+ if (!commitsResult.ok) {
384
+ return {
385
+ valid: false,
386
+ reason: 'branch-commits-unavailable',
387
+ diffReason: commitsResult.reason,
388
+ };
389
+ }
390
+ // Commits arrive chronological (oldest first) — the default resolver uses
391
+ // `git log --reverse` so earlier commits are inspected before later ones.
392
+ const commitsChronological = commitsResult.commits;
393
+ let testsSeenBeforeIndex = -1;
394
+ for (let i = 0; i < commitsChronological.length; i++) {
395
+ const commit = commitsChronological[i];
396
+ const hasTestInThisCommit = commit.files.some((file) => isTestFileFromDiff(file.path));
397
+ if (hasTestInThisCommit && testsSeenBeforeIndex === -1) {
398
+ testsSeenBeforeIndex = i;
399
+ }
400
+ if (!isRuntimeIntroducingCommit(commit.subject)) {
401
+ continue;
402
+ }
403
+ // Count non-test, non-exempt runtime LOC added in this commit.
404
+ const runtimeAdded = commit.files.reduce((sum, file) => {
405
+ if (isTestFileFromDiff(file.path))
406
+ return sum;
407
+ if (isCommitFileExempt(file.path, policy.exempt_paths))
408
+ return sum;
409
+ return sum + file.added;
410
+ }, 0);
411
+ if (runtimeAdded < policy.min_runtime_loc_per_commit_without_tests) {
412
+ continue;
413
+ }
414
+ // Ordering is OK when:
415
+ // - this commit itself contains test files (interleaved), OR
416
+ // - tests were first seen in an earlier commit, OR
417
+ // - this commit is within the configured grace window from branch start.
418
+ const testsSeenEarlier = testsSeenBeforeIndex !== -1 && testsSeenBeforeIndex <= i;
419
+ const inGraceWindow = i < policy.grace_commits;
420
+ if (hasTestInThisCommit || testsSeenEarlier || inGraceWindow) {
421
+ continue;
422
+ }
423
+ const testFilesInCommit = commit.files.filter((file) => isTestFileFromDiff(file.path)).length;
424
+ return {
425
+ valid: false,
426
+ reason: 'tests-after-detected',
427
+ baseRef: commitsResult.baseRef,
428
+ headRef: commitsResult.headRef,
429
+ offendingCommit: {
430
+ hash: commit.hash,
431
+ subject: commit.subject,
432
+ runtimeAdded,
433
+ testFilesInCommit,
434
+ },
435
+ };
436
+ }
437
+ return {
438
+ valid: true,
439
+ reason: 'ordering-ok',
440
+ baseRef: commitsResult.baseRef,
441
+ headRef: commitsResult.headRef,
442
+ };
443
+ }
444
+ export function formatTddOrderingFailure(options) {
445
+ const { wuId, wuType, result } = options;
446
+ if (result.reason === 'branch-commits-unavailable') {
447
+ return (`${EMOJI.FAILURE} commit-order check failed for ${wuId}.\n\n` +
448
+ `Unable to enumerate branch commits: ${result.diffReason || 'unknown git error'}\n\n` +
449
+ `Fix options:\n` +
450
+ ` 1. Ensure base ref is available (origin/main or main)\n` +
451
+ ` 2. Retry: pnpm wu:prep --id ${wuId}`);
452
+ }
453
+ const typeLabel = typeof wuType === 'string' && wuType.trim().length > 0 ? `${wuType} WUs` : 'This WU';
454
+ const offending = result.offendingCommit;
455
+ const commitLine = offending
456
+ ? ` - ${offending.hash.slice(0, 10)} ${offending.subject}\n` +
457
+ ` runtime LOC added: ${offending.runtimeAdded} (threshold triggered)\n` +
458
+ ` test files in same commit: ${offending.testFilesInCommit}`
459
+ : ' - (unknown commit)';
460
+ return (`${EMOJI.FAILURE} commit-order (RED-first) check failed for ${wuId}.\n\n` +
461
+ `${typeLabel} must introduce tests in a commit preceding or alongside any feat/fix\n` +
462
+ `commit that adds non-trivial runtime code. The offending commit:\n` +
463
+ `${commitLine}\n\n` +
464
+ `Range: ${result.baseRef || 'main'}..${result.headRef || 'HEAD'}\n\n` +
465
+ `Fix options:\n` +
466
+ ` 1. Restructure the branch so a test(${wuId.toLowerCase()}): … commit lands first (RED).\n` +
467
+ ` 2. Amend the offending commit to include the matching test files.\n` +
468
+ ` 3. If intentionally exempt, document it in WU notes with:\n` +
469
+ ` ${TDD_EXCEPTION_MARKER} <reason>`);
470
+ }
250
471
  /**
251
472
  * WU-1344: Check if a gate name is the spec:linter gate.
252
473
  * Used to identify when spec:linter fails so we can check for pre-existing failures.
@@ -271,6 +492,81 @@ export function formatSkipGatesCommand(options) {
271
492
  const { wuId, mainCheckout } = options;
272
493
  return `cd ${mainCheckout} && pnpm wu:done --id ${wuId} --skip-gates --reason "pre-existing on main" --fix-wu WU-XXXX`;
273
494
  }
495
+ function formatBootstrapTrapSkipGatesCommand(options) {
496
+ const { wuId, mainCheckout } = options;
497
+ return (`cd ${mainCheckout} && pnpm wu:done --id ${wuId} --skip-gates ` +
498
+ `--reason "${BOOTSTRAP_TRAP_PACKAGE_EXPORT_SKIP_REASON}" ` +
499
+ `--fix-wu ${BOOTSTRAP_TRAP_FIX_WU_PLACEHOLDER}`);
500
+ }
501
+ export async function diagnoseBootstrapTrapBuild(options) {
502
+ const execOnCwd = options.execOnCwd ?? defaultExecFileOnCwd(options.cwd);
503
+ const result = await execOnCwd('pnpm', ['build']);
504
+ const combinedOutput = [result.stdout, result.stderr].filter(Boolean).join('\n');
505
+ return {
506
+ buildPassed: result.exitCode === EXIT_CODES.SUCCESS,
507
+ trap: detectBootstrapTrapSignature(combinedOutput),
508
+ };
509
+ }
510
+ export function formatBootstrapTrapFailure(options) {
511
+ const { wuId, mainCheckout, buildPassed, diagnosis } = options;
512
+ const header = `${EMOJI.WARNING} Known bootstrap-trap detected for ${wuId}.\n\n` +
513
+ `${diagnosis.summary}\n` +
514
+ `Matched signature: ${diagnosis.matchedSignature}\n\n`;
515
+ if (diagnosis.kind === 'package-export' && buildPassed) {
516
+ return (header +
517
+ `Safe exit when the worktree build is already green and the move is otherwise complete:\n` +
518
+ ` 1. Use the green worktree build as the authoritative verification.\n` +
519
+ ` 2. Finish from main with:\n` +
520
+ ` ${formatBootstrapTrapSkipGatesCommand({ wuId, mainCheckout })}\n` +
521
+ ` 3. Replace ${BOOTSTRAP_TRAP_FIX_WU_PLACEHOLDER} with the WU that lands the export-surface follow-up.\n\n` +
522
+ `If the worktree build is not green, fix the package exports and rerun:\n` +
523
+ ` pnpm wu:prep --id ${wuId}`);
524
+ }
525
+ if (diagnosis.kind === 'package-export') {
526
+ return (header +
527
+ `Fix the package exports / cross-module surface first, then rerun:\n` +
528
+ ` 1. Repair the moved-file exports or consumer imports.\n` +
529
+ ` 2. Verify with: pnpm build\n` +
530
+ ` 3. Retry: pnpm wu:prep --id ${wuId}`);
531
+ }
532
+ return (header +
533
+ `Fix the dependency cycle first, then rerun:\n` +
534
+ ` 1. Remove or relocate the dependency edge that closes the cycle.\n` +
535
+ ` 2. Verify with: pnpm build\n` +
536
+ ` 3. Retry: pnpm wu:prep --id ${wuId}`);
537
+ }
538
+ function findBootstrapTrapMatch(output, patterns) {
539
+ for (const pattern of patterns) {
540
+ const match = output.match(pattern);
541
+ if (match?.[0]) {
542
+ return match[0];
543
+ }
544
+ }
545
+ return null;
546
+ }
547
+ export function detectBootstrapTrapSignature(output) {
548
+ const normalizedOutput = output.trim();
549
+ if (normalizedOutput.length === 0) {
550
+ return null;
551
+ }
552
+ const packageExportMatch = findBootstrapTrapMatch(normalizedOutput, BOOTSTRAP_TRAP_PACKAGE_EXPORT_PATTERNS);
553
+ if (packageExportMatch) {
554
+ return {
555
+ kind: 'package-export',
556
+ matchedSignature: packageExportMatch,
557
+ summary: 'Package export / cross-module resolution failed against the main checkout.',
558
+ };
559
+ }
560
+ const dependencyCycleMatch = findBootstrapTrapMatch(normalizedOutput, BOOTSTRAP_TRAP_DEPENDENCY_CYCLE_PATTERNS);
561
+ if (dependencyCycleMatch) {
562
+ return {
563
+ kind: 'dependency-cycle',
564
+ matchedSignature: dependencyCycleMatch,
565
+ summary: 'A dependency cycle is blocking package bootstrap/build.',
566
+ };
567
+ }
568
+ return null;
569
+ }
274
570
  /**
275
571
  * WU-1344: Default implementation of execOnMain using spawnSync.
276
572
  * Uses spawnSync with pnpm executable for safety (no shell injection risk).
@@ -316,17 +612,21 @@ function defaultExecOnMain(mainCheckout) {
316
612
  };
317
613
  };
318
614
  }
319
- function defaultExecFileOnCwd(cwd) {
615
+ function defaultExecFileOnCwd(cwd, timeoutMs) {
320
616
  return async (command, args) => {
321
617
  const result = spawnSync(command, args, {
322
618
  cwd,
323
619
  encoding: 'utf-8',
324
620
  stdio: ['pipe', 'pipe', 'pipe'],
621
+ ...(timeoutMs ? { timeout: timeoutMs } : {}),
325
622
  });
623
+ const timeoutMessage = result.error && 'code' in result.error && result.error.code === 'ETIMEDOUT' && timeoutMs
624
+ ? `Command timed out after ${timeoutMs}ms: ${command} ${args.join(' ')}`
625
+ : '';
326
626
  return {
327
627
  exitCode: result.status ?? 1,
328
628
  stdout: result.stdout ?? '',
329
- stderr: result.stderr ?? '',
629
+ stderr: [result.stderr ?? '', timeoutMessage].filter(Boolean).join('\n'),
330
630
  };
331
631
  };
332
632
  }
@@ -361,10 +661,10 @@ export function classifySpecLinterFailures(options) {
361
661
  };
362
662
  }
363
663
  export function buildScopedUnitTestArgs(scopedUnitTests) {
364
- return ['vitest', 'run', ...scopedUnitTests, '--passWithNoTests'];
664
+ return ['vitest', 'run', ...scopedUnitTests, '--passWithNoTests', '--maxWorkers=1'];
365
665
  }
366
666
  export async function checkPreExistingScopedUnitTestFailures(options) {
367
- const { mainCheckout, worktreeCwd = process.cwd(), scopedUnitTests, execOnMain = defaultExecFileOnCwd(mainCheckout), execOnWorktree = defaultExecFileOnCwd(worktreeCwd), } = options;
667
+ const { mainCheckout, worktreeCwd = process.cwd(), scopedUnitTests, execOnMain = defaultExecFileOnCwd(mainCheckout, SCOPED_UNIT_TEST_COMPARISON_TIMEOUT_MS), execOnWorktree = defaultExecFileOnCwd(worktreeCwd, SCOPED_UNIT_TEST_COMPARISON_TIMEOUT_MS), } = options;
368
668
  if (scopedUnitTests.length === 0) {
369
669
  return {
370
670
  hasPreExisting: false,
@@ -398,6 +698,18 @@ export async function checkPreExistingScopedUnitTestFailures(options) {
398
698
  const worktreeResult = await execOnWorktree('pnpm', testArgs);
399
699
  const mainArgs = mainPlan?.mode === 'direct' ? mainPlan.args : testArgs;
400
700
  const mainResult = await execOnMain('pnpm', mainArgs);
701
+ const bootstrapTrap = detectBootstrapTrapSignature([worktreeResult.stdout, worktreeResult.stderr, mainResult.stdout, mainResult.stderr]
702
+ .filter(Boolean)
703
+ .join('\n'));
704
+ if (bootstrapTrap) {
705
+ return {
706
+ hasPreExisting: false,
707
+ hasNewFailures: false,
708
+ checkedPaths: scopedUnitTests,
709
+ error: `${bootstrapTrap.summary} Matched signature: ${bootstrapTrap.matchedSignature}`,
710
+ bootstrapTrap,
711
+ };
712
+ }
401
713
  const worktreeFailed = worktreeResult.exitCode !== EXIT_CODES.SUCCESS;
402
714
  const mainFailed = mainResult.exitCode !== EXIT_CODES.SUCCESS;
403
715
  return {
@@ -423,10 +735,14 @@ export function shouldOfferSkipGatesGuidance(checks) {
423
735
  async function runSpecLinterJson(execOnCwd) {
424
736
  const result = await execOnCwd('pnpm --silent wu:validate --all --json');
425
737
  const report = parseSpecLinterReport(result.stdout);
738
+ const bootstrapTrap = detectBootstrapTrapSignature([result.stdout, result.stderr].filter(Boolean).join('\n'));
426
739
  if (!report || !Array.isArray(report.invalid)) {
427
740
  return {
428
741
  invalidIds: [],
429
- error: 'Failed to parse wu:validate JSON output.',
742
+ error: bootstrapTrap
743
+ ? `${bootstrapTrap.summary} Matched signature: ${bootstrapTrap.matchedSignature}`
744
+ : 'Failed to parse wu:validate JSON output.',
745
+ bootstrapTrap: bootstrapTrap ?? undefined,
430
746
  };
431
747
  }
432
748
  const invalidIds = report.invalid
@@ -457,6 +773,7 @@ export async function checkPreExistingFailures(options) {
457
773
  newFailures: [],
458
774
  preExistingFailures: [],
459
775
  error: worktreeResult.error || mainResult.error,
776
+ bootstrapTrap: worktreeResult.bootstrapTrap || mainResult.bootstrapTrap,
460
777
  };
461
778
  }
462
779
  const classification = classifySpecLinterFailures({
@@ -575,7 +892,7 @@ export async function main() {
575
892
  // Parse arguments
576
893
  const args = createWUParser({
577
894
  name: 'wu-prep',
578
- description: 'Prepare WU for completion (run gates in worktree)',
895
+ description: 'Prepare WU for completion (run gates in worktree; wu:done reuses the same tests.unit scope)',
579
896
  options: [
580
897
  WU_OPTIONS.id,
581
898
  PREP_OPTIONS.docsOnly,
@@ -702,6 +1019,16 @@ export async function main() {
702
1019
  if (!tddEvidenceResult.valid) {
703
1020
  die(formatTddDiffEvidenceFailure({ wuId: id, result: tddEvidenceResult }));
704
1021
  }
1022
+ // WU-2650: Commit-order (RED-first) gate. Runs BEFORE gates so ordering
1023
+ // violations surface independently of lint/test failures.
1024
+ const commitOrderResult = await evaluateCommitOrderForPrep({
1025
+ wuId: id,
1026
+ doc,
1027
+ cwd: location.cwd,
1028
+ });
1029
+ if (!commitOrderResult.valid) {
1030
+ die(formatTddOrderingFailure({ wuId: id, wuType: doc.type, result: commitOrderResult }));
1031
+ }
705
1032
  const scopedUnitTests = resolveScopedUnitTestsForPrep({
706
1033
  fullTests: args.fullTests,
707
1034
  tests: doc.tests,
@@ -752,7 +1079,8 @@ export async function main() {
752
1079
  console.log(`${PREP_PREFIX} ${EMOJI.WARNING} Scoped tests fail in this worktree but pass on main.`);
753
1080
  }
754
1081
  const hasPreExistingOnly = shouldOfferSkipGatesGuidance([preExistingCheck, scopedUnitTestCheck]);
755
- if (hasPreExistingOnly) {
1082
+ const bootstrapTrapHint = preExistingCheck.bootstrapTrap ?? scopedUnitTestCheck.bootstrapTrap ?? null;
1083
+ if (hasPreExistingOnly && !bootstrapTrapHint) {
756
1084
  // Set up an exit handler to print the skip-gates command when gates fail
757
1085
  // This runs before process.exit() fully terminates the process
758
1086
  process.on('exit', (code) => {
@@ -783,6 +1111,19 @@ export async function main() {
783
1111
  scopedTestPaths: scopedUnitTests,
784
1112
  }));
785
1113
  if (!gatesResult) {
1114
+ const buildDiagnostic = await diagnoseBootstrapTrapBuild({ cwd: location.cwd });
1115
+ const bootstrapTrapDiagnosis = buildDiagnostic.trap ||
1116
+ (bootstrapTrapHint?.kind === 'package-export' && buildDiagnostic.buildPassed
1117
+ ? bootstrapTrapHint
1118
+ : null);
1119
+ if (bootstrapTrapDiagnosis) {
1120
+ die(formatBootstrapTrapFailure({
1121
+ wuId: id,
1122
+ mainCheckout: location.mainCheckout,
1123
+ buildPassed: buildDiagnostic.buildPassed,
1124
+ diagnosis: bootstrapTrapDiagnosis,
1125
+ }));
1126
+ }
786
1127
  // Gates failed - if pre-existing check was already done and showed failures,
787
1128
  // the exit handler above will print the skip-gates command.
788
1129
  // Otherwise, tell the user to fix the failures.
@@ -1 +1 @@
1
- {"version":3,"file":"wu-prep.js","sourceRoot":"","sources":["../src/wu-prep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wu-prep.js","sourceRoot":"","sources":["../src/wu-prep.ts"],"names":[],"mappings":"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"}