@lumenflow/cli 3.20.0 → 3.22.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 (122) hide show
  1. package/dist/chunk-2D2VOCA4.js +37 -0
  2. package/dist/chunk-2D5KFYGX.js +284 -0
  3. package/dist/chunk-2GXVIN57.js +14072 -0
  4. package/dist/chunk-2MQ7HZWZ.js +26 -0
  5. package/dist/chunk-2UFQ3A3C.js +643 -0
  6. package/dist/chunk-3RG5ZIWI.js +10 -0
  7. package/dist/chunk-4N74J3UT.js +15 -0
  8. package/dist/chunk-5GTOXFYR.js +392 -0
  9. package/dist/chunk-5VY6MQMC.js +240 -0
  10. package/dist/chunk-67XVPMRY.js +1297 -0
  11. package/dist/chunk-6HO4GWJE.js +164 -0
  12. package/dist/chunk-6W5XHWYV.js +1890 -0
  13. package/dist/chunk-6X4EMYJQ.js +64 -0
  14. package/dist/chunk-6XYXI2NQ.js +772 -0
  15. package/dist/chunk-7ANSOV6Q.js +285 -0
  16. package/dist/chunk-A624LFLB.js +1380 -0
  17. package/dist/chunk-ADN5NHG4.js +126 -0
  18. package/dist/chunk-B7YJYJKG.js +33 -0
  19. package/dist/chunk-CCLHCPKG.js +210 -0
  20. package/dist/chunk-CK36VROC.js +1584 -0
  21. package/dist/chunk-D3UOFRSB.js +81 -0
  22. package/dist/chunk-DFR4DJBM.js +230 -0
  23. package/dist/chunk-DSYBDHYH.js +79 -0
  24. package/dist/chunk-DWMLTXKQ.js +1176 -0
  25. package/dist/chunk-E3REJTAJ.js +28 -0
  26. package/dist/chunk-EA3IVO64.js +633 -0
  27. package/dist/chunk-EK2AKZKD.js +55 -0
  28. package/dist/chunk-ELD7JTTT.js +343 -0
  29. package/dist/chunk-EX6TT2XI.js +195 -0
  30. package/dist/chunk-EXINSFZE.js +82 -0
  31. package/dist/chunk-EZ6ZBYBM.js +510 -0
  32. package/dist/chunk-FBKAPTJ2.js +16 -0
  33. package/dist/chunk-FVLV5RYH.js +1118 -0
  34. package/dist/chunk-GDNSBQVK.js +2485 -0
  35. package/dist/chunk-GPQHMBNN.js +278 -0
  36. package/dist/chunk-GTFJB67L.js +68 -0
  37. package/dist/chunk-HANJXVKW.js +1127 -0
  38. package/dist/chunk-HEVS5YLD.js +269 -0
  39. package/dist/chunk-HMEVZKPQ.js +9 -0
  40. package/dist/chunk-HRGSYNLM.js +3511 -0
  41. package/dist/chunk-ISZR5N4K.js +60 -0
  42. package/dist/chunk-J6SUPR2C.js +226 -0
  43. package/dist/chunk-JERYVEIZ.js +244 -0
  44. package/dist/chunk-JHHWGL2N.js +87 -0
  45. package/dist/chunk-JONWQUB5.js +775 -0
  46. package/dist/chunk-K2DIWWDM.js +1766 -0
  47. package/dist/chunk-KY4PGL5V.js +969 -0
  48. package/dist/chunk-L737LQ4C.js +1285 -0
  49. package/dist/chunk-LFTWYIB2.js +497 -0
  50. package/dist/chunk-LV47RFNJ.js +41 -0
  51. package/dist/chunk-MKSAITI7.js +15 -0
  52. package/dist/chunk-MZ7RKIX4.js +212 -0
  53. package/dist/chunk-NAP6CFSO.js +84 -0
  54. package/dist/chunk-ND6MY37M.js +16 -0
  55. package/dist/chunk-NMG736UR.js +683 -0
  56. package/dist/chunk-NRAXROED.js +32 -0
  57. package/dist/chunk-NRIZR3A7.js +690 -0
  58. package/dist/chunk-NX43BG3M.js +233 -0
  59. package/dist/chunk-O645XLSI.js +297 -0
  60. package/dist/chunk-OMJD6A3S.js +235 -0
  61. package/dist/chunk-QB6SJD4T.js +430 -0
  62. package/dist/chunk-QFSTL4J3.js +276 -0
  63. package/dist/chunk-QLGDFMFX.js +212 -0
  64. package/dist/chunk-RIAAGL2E.js +13 -0
  65. package/dist/chunk-RWO5XMZ6.js +86 -0
  66. package/dist/chunk-RXRKBBSM.js +149 -0
  67. package/dist/chunk-RZOZMML6.js +363 -0
  68. package/dist/chunk-U7I7FS7T.js +113 -0
  69. package/dist/chunk-UI42RODY.js +717 -0
  70. package/dist/chunk-UTVMVSCO.js +519 -0
  71. package/dist/chunk-V6OJGLBA.js +1746 -0
  72. package/dist/chunk-W2JHVH7D.js +152 -0
  73. package/dist/chunk-WD3Y7VQN.js +280 -0
  74. package/dist/chunk-WOCTQ5MS.js +303 -0
  75. package/dist/chunk-WZR3ZUNN.js +696 -0
  76. package/dist/chunk-XGI665H7.js +150 -0
  77. package/dist/chunk-XKY65P2T.js +304 -0
  78. package/dist/chunk-Y4CQZY65.js +57 -0
  79. package/dist/chunk-YFEXKLVE.js +194 -0
  80. package/dist/chunk-YHO3HS5X.js +287 -0
  81. package/dist/chunk-YLS7AZSX.js +738 -0
  82. package/dist/chunk-ZE473AO6.js +49 -0
  83. package/dist/chunk-ZF747T3O.js +644 -0
  84. package/dist/chunk-ZHCZHZH3.js +43 -0
  85. package/dist/chunk-ZZNZX2XY.js +87 -0
  86. package/dist/constants-7QAP3VQ4.js +23 -0
  87. package/dist/dist-IY3UUMWK.js +33 -0
  88. package/dist/init-templates.js +30 -22
  89. package/dist/init-templates.js.map +1 -1
  90. package/dist/invariants-runner-W5RGHCSU.js +27 -0
  91. package/dist/lane-lock-6J36HD5O.js +35 -0
  92. package/dist/mem-checkpoint-core-EANG2GVN.js +14 -0
  93. package/dist/mem-signal-core-2LZ2WYHW.js +19 -0
  94. package/dist/memory-store-OLB5FO7K.js +18 -0
  95. package/dist/service-6BYCOCO5.js +13 -0
  96. package/dist/spawn-policy-resolver-NTSZYQ6R.js +17 -0
  97. package/dist/spawn-task-builder-R4E2BHSW.js +22 -0
  98. package/dist/wu-done-pr-WLFFFEPJ.js +25 -0
  99. package/dist/wu-done-validation-3J5E36FE.js +30 -0
  100. package/dist/wu-duplicate-id-detector-5S7JHELK.js +232 -0
  101. package/dist/wu-spawn-strategy-resolver.js +18 -5
  102. package/dist/wu-spawn-strategy-resolver.js.map +1 -1
  103. package/package.json +8 -8
  104. package/packs/agent-runtime/.turbo/turbo-build.log +1 -1
  105. package/packs/agent-runtime/.turbo/turbo-typecheck.log +4 -0
  106. package/packs/agent-runtime/package.json +1 -1
  107. package/packs/sidekick/.turbo/turbo-build.log +1 -1
  108. package/packs/sidekick/.turbo/turbo-test.log +12 -0
  109. package/packs/sidekick/.turbo/turbo-typecheck.log +4 -0
  110. package/packs/sidekick/package.json +1 -1
  111. package/packs/software-delivery/.turbo/turbo-build.log +1 -1
  112. package/packs/software-delivery/.turbo/turbo-typecheck.log +4 -0
  113. package/packs/software-delivery/package.json +1 -1
  114. package/templates/core/.lumenflow/constraints.md.template +68 -3
  115. package/templates/core/LUMENFLOW.md.template +26 -26
  116. package/templates/core/_frameworks/lumenflow/wu-sizing-guide.md.template +1 -3
  117. package/templates/core/ai/onboarding/agent-safety-card.md.template +14 -4
  118. package/templates/core/ai/onboarding/first-wu-mistakes.md.template +96 -0
  119. package/templates/core/ai/onboarding/quick-ref-commands.md.template +23 -22
  120. package/templates/core/ai/onboarding/rapid-prototyping.md +2 -1
  121. package/templates/core/ai/onboarding/starting-prompt.md.template +3 -3
  122. package/templates/core/ai/onboarding/troubleshooting-wu-done.md.template +69 -1
@@ -0,0 +1,43 @@
1
+ import {
2
+ getConfig
3
+ } from "./chunk-V6OJGLBA.js";
4
+
5
+ // ../initiatives/dist/initiative-paths.js
6
+ import path from "path";
7
+ var INIT_PATHS = {
8
+ /**
9
+ * Get path to Initiative YAML file
10
+ * Uses getConfig().directories.initiativesDir for config-aware resolution.
11
+ *
12
+ * @param {string} id - Initiative ID (e.g., 'INIT-001')
13
+ * @returns {string} Path to Initiative YAML file
14
+ */
15
+ INITIATIVE: (id) => {
16
+ const config = getConfig();
17
+ return path.join(config.directories.initiativesDir, `${id}.yaml`);
18
+ },
19
+ /**
20
+ * Get path to initiatives directory
21
+ * Uses getConfig().directories.initiativesDir for config-aware resolution.
22
+ *
23
+ * @returns {string} Path to initiatives directory
24
+ */
25
+ INITIATIVES_DIR: () => {
26
+ const config = getConfig();
27
+ return config.directories.initiativesDir;
28
+ },
29
+ /**
30
+ * Get path to WU directory (for scanning WUs by initiative)
31
+ * Uses getConfig().directories.wuDir for config-aware resolution.
32
+ *
33
+ * @returns {string} Path to WU directory
34
+ */
35
+ WU_DIR: () => {
36
+ const config = getConfig();
37
+ return config.directories.wuDir;
38
+ }
39
+ };
40
+
41
+ export {
42
+ INIT_PATHS
43
+ };
@@ -0,0 +1,87 @@
1
+ import {
2
+ LUMENFLOW_MEMORY_PATHS
3
+ } from "./chunk-4N74J3UT.js";
4
+
5
+ // ../memory/dist/mem-init-core.js
6
+ import fs from "fs/promises";
7
+ import path from "path";
8
+ import yaml from "yaml";
9
+ var MEMORY_PATHS = {
10
+ /** Memory directory relative to project root */
11
+ MEMORY_DIR: LUMENFLOW_MEMORY_PATHS.MEMORY_DIR,
12
+ /** Memory JSONL file name */
13
+ MEMORY_FILE: "memory.jsonl",
14
+ /** Config YAML file name */
15
+ CONFIG_FILE: "config.yaml"
16
+ };
17
+ var DEFAULT_CONFIG = {
18
+ /** Config schema version */
19
+ version: 1,
20
+ /** Retention policy for each lifecycle */
21
+ retention: {
22
+ /** Ephemeral nodes are discarded immediately after use */
23
+ ephemeral: 0,
24
+ /** Session nodes expire after 1 hour */
25
+ session: 3600,
26
+ /** WU nodes expire after 7 days */
27
+ wu: 604800,
28
+ /** Project nodes never expire (-1 = infinite) */
29
+ project: -1
30
+ }
31
+ };
32
+ async function fileExists(filePath) {
33
+ try {
34
+ await fs.access(filePath);
35
+ return true;
36
+ } catch {
37
+ return false;
38
+ }
39
+ }
40
+ function generateConfigYaml() {
41
+ const header = "# Memory layer configuration\n# Generated by pnpm mem:init (WU-1464)\n";
42
+ return header + yaml.stringify(DEFAULT_CONFIG);
43
+ }
44
+ async function initMemory(baseDir) {
45
+ const memoryDir = path.join(baseDir, MEMORY_PATHS.MEMORY_DIR);
46
+ const memoryJsonlPath = path.join(memoryDir, MEMORY_PATHS.MEMORY_FILE);
47
+ const configYamlPath = path.join(memoryDir, MEMORY_PATHS.CONFIG_FILE);
48
+ const result = {
49
+ success: false,
50
+ alreadyInitialized: false,
51
+ paths: {
52
+ memoryDir,
53
+ memoryJsonl: memoryJsonlPath,
54
+ configYaml: configYamlPath
55
+ },
56
+ created: {
57
+ directory: false,
58
+ memoryJsonl: false,
59
+ configYaml: false
60
+ }
61
+ };
62
+ const dirExists = await fileExists(memoryDir);
63
+ const memoryExists = await fileExists(memoryJsonlPath);
64
+ const configExists = await fileExists(configYamlPath);
65
+ if (dirExists && memoryExists && configExists) {
66
+ result.alreadyInitialized = true;
67
+ }
68
+ if (!dirExists) {
69
+ await fs.mkdir(memoryDir, { recursive: true });
70
+ result.created.directory = true;
71
+ }
72
+ if (!memoryExists) {
73
+ await fs.writeFile(memoryJsonlPath, "", { encoding: "utf-8" });
74
+ result.created.memoryJsonl = true;
75
+ }
76
+ if (!configExists) {
77
+ const configContent = generateConfigYaml();
78
+ await fs.writeFile(configYamlPath, configContent, { encoding: "utf-8" });
79
+ result.created.configYaml = true;
80
+ }
81
+ result.success = true;
82
+ return result;
83
+ }
84
+
85
+ export {
86
+ initMemory
87
+ };
@@ -0,0 +1,23 @@
1
+ import {
2
+ WU_LIFECYCLE_CLAIM_DEFAULTS,
3
+ WU_LIFECYCLE_COMMANDS,
4
+ WU_LIFECYCLE_EVENT_KINDS,
5
+ WU_LIFECYCLE_EVENT_SCHEMA_VERSION,
6
+ WU_LIFECYCLE_SPEC_HASH,
7
+ WU_LIFECYCLE_SYNC_CONFIG,
8
+ WU_LIFECYCLE_SYNC_LOG_PREFIX,
9
+ WU_LIFECYCLE_SYNC_RESULT_DEFAULTS,
10
+ WU_LIFECYCLE_SYNC_SKIPPED_REASONS
11
+ } from "./chunk-EK2AKZKD.js";
12
+ import "./chunk-3RG5ZIWI.js";
13
+ export {
14
+ WU_LIFECYCLE_CLAIM_DEFAULTS,
15
+ WU_LIFECYCLE_COMMANDS,
16
+ WU_LIFECYCLE_EVENT_KINDS,
17
+ WU_LIFECYCLE_EVENT_SCHEMA_VERSION,
18
+ WU_LIFECYCLE_SPEC_HASH,
19
+ WU_LIFECYCLE_SYNC_CONFIG,
20
+ WU_LIFECYCLE_SYNC_LOG_PREFIX,
21
+ WU_LIFECYCLE_SYNC_RESULT_DEFAULTS,
22
+ WU_LIFECYCLE_SYNC_SKIPPED_REASONS
23
+ };
@@ -0,0 +1,33 @@
1
+ import {
2
+ CONTROL_PLANE_AUTH_TOKEN_ENV_PATTERN,
3
+ CONTROL_PLANE_POLICY_MODES,
4
+ CONTROL_PLANE_POLICY_MODE_VALUES,
5
+ ControlPlaneConfigSchema,
6
+ DEFAULT_CONTROL_PLANE_AUTH_TOKEN_ENV,
7
+ HttpControlPlaneSyncPort,
8
+ MockControlPlaneSyncPort,
9
+ MockSignalSyncPort,
10
+ WorkspaceControlPlaneSchema,
11
+ applyPolicyMode,
12
+ createHttpControlPlaneSyncPort,
13
+ createMockControlPlaneSyncPort,
14
+ createMockSignalSyncPort,
15
+ parseWorkspaceControlPlaneConfig
16
+ } from "./chunk-YLS7AZSX.js";
17
+ import "./chunk-3RG5ZIWI.js";
18
+ export {
19
+ CONTROL_PLANE_AUTH_TOKEN_ENV_PATTERN,
20
+ CONTROL_PLANE_POLICY_MODES,
21
+ CONTROL_PLANE_POLICY_MODE_VALUES,
22
+ ControlPlaneConfigSchema,
23
+ DEFAULT_CONTROL_PLANE_AUTH_TOKEN_ENV,
24
+ HttpControlPlaneSyncPort,
25
+ MockControlPlaneSyncPort,
26
+ MockSignalSyncPort,
27
+ WorkspaceControlPlaneSchema,
28
+ applyPolicyMode,
29
+ createHttpControlPlaneSyncPort,
30
+ createMockControlPlaneSyncPort,
31
+ createMockSignalSyncPort,
32
+ parseWorkspaceControlPlaneConfig
33
+ };
@@ -74,10 +74,10 @@ pnpm lane:lock
74
74
  pnpm wu:claim --id WU-XXXX --lane <Lane>
75
75
  cd worktrees/<lane>-wu-xxxx
76
76
 
77
- # 2. Work in worktree, run gates
78
- pnpm gates
77
+ # 2. Work in worktree, then prep for completion
78
+ pnpm wu:prep --id WU-XXXX
79
79
 
80
- # 3. Complete (ALWAYS run this!)
80
+ # 3. Complete from main using the command printed by wu:prep
81
81
  cd <project-root>
82
82
  pnpm wu:done --id WU-XXXX
83
83
  \`\`\`
@@ -86,9 +86,10 @@ pnpm wu:done --id WU-XXXX
86
86
 
87
87
  ---
88
88
 
89
- ## Critical: Always wu:done
89
+ ## Critical: Use wu:prep Then wu:done
90
90
 
91
- After completing work, ALWAYS run \`pnpm wu:done --id WU-XXXX\` from the main checkout.
91
+ After completing work in the worktree, run \`pnpm wu:prep --id WU-XXXX\`, then run
92
+ \`pnpm wu:done --id WU-XXXX\` from the main checkout.
92
93
 
93
94
  This is the single most forgotten step. See [LUMENFLOW.md](LUMENFLOW.md) for details.
94
95
 
@@ -98,7 +99,7 @@ This is the single most forgotten step. See [LUMENFLOW.md](LUMENFLOW.md) for det
98
99
 
99
100
  1. **Fit-For-Surface Verification**: Choose the least brittle verification that gives strong confidence. Prefer TDD for runtime logic when policy requires it; avoid brittle UI implementation-detail tests.
100
101
  2. **Worktree Discipline**: After \`wu:claim\`, work ONLY in the worktree
101
- 3. **Gates Before Done**: Run \`pnpm gates\` before \`wu:done\`
102
+ 3. **Gates Before Done**: Run \`pnpm wu:prep\` before \`wu:done\`
102
103
  4. **Never Bypass Hooks**: No \`--no-verify\`
103
104
 
104
105
  ---
@@ -123,7 +124,7 @@ This file provides universal guidance for all AI agents. Additional vendor-speci
123
124
  // Template for LUMENFLOW.md (main entry point)
124
125
  // WU-1309: Use <project-root> placeholder for portability
125
126
  // WU-1364: Added initiative workflow section
126
- export const LUMENFLOW_MD_TEMPLATE = `# LumenFlow Workflow Guide\n\n**Last updated:** {{DATE}}\n\nLumenFlow is a vendor-agnostic workflow framework for AI-native software development.\n\n---\n\n## Critical Rule: ALWAYS Run wu:done\n\n**After completing work on a WU, you MUST run \`pnpm wu:done --id WU-XXXX\` from the main checkout.**\n\nThis is the single most forgotten step. Do NOT:\n- Write "To Complete: pnpm wu:done" and stop\n- Ask if you should run wu:done\n- Forget to run wu:done\n\n**DO**: Run \`pnpm wu:done --id WU-XXXX\` immediately after gates pass.\n\n---\n\n## When to Use Initiatives\n\nUse **Initiatives** for multi-phase work spanning multiple WUs:\n\n- **Product visions**: "Build a task management app"\n- **Larger features**: Work requiring multiple WUs across lanes\n- **Complex projects**: Anything that needs phased delivery\n\n\`\`\`bash\n# Create an initiative for multi-phase work\npnpm initiative:create --id INIT-001 --title "Feature Name" \\\\\n --description "..." --phase "Phase 1: MVP" --phase "Phase 2: Polish"\n\n# Add WUs to the initiative\npnpm initiative:add-wu --initiative INIT-001 --wu WU-XXX --phase 1\n\n# Track progress\npnpm initiative:status --id INIT-001\n\`\`\`\n\n**Skip initiatives** for: single-file bug fixes, small docs updates, isolated refactoring.\n\n---\n\n## Quick Start\n\n\`\`\`bash\n# 1. Configure lanes (once per project)\npnpm lane:setup\npnpm lane:validate\npnpm lane:lock\n\n# 2. Create a WU\npnpm wu:create --id WU-XXXX --lane <Lane> --title "Title"\n\n# 3. Edit WU spec with acceptance criteria, then claim:\npnpm wu:claim --id WU-XXXX --lane <Lane>\ncd worktrees/<lane>-wu-xxxx\n\n# 4. Implement in worktree\n\n# 5. Run gates\npnpm gates --docs-only # for docs changes\npnpm gates # for code changes\n\n# 6. Complete (from main checkout)\ncd <project-root>\npnpm wu:done --id WU-XXXX\n\`\`\`\n\n---\n\n## Core Principles\n\n1. **Fit-For-Surface Verification**: Choose the least brittle verification that gives strong confidence. Prefer TDD for runtime logic when repository policy requires it; prefer behavior-focused integration, smoke, visual, or manual verification for UI, content, and presentation work.\n2. **Library-First**: Search existing libraries before custom code\n3. **DRY/SOLID/KISS/YAGNI**: No magic numbers, no hardcoded strings\n4. **Worktree Discipline**: After \`wu:claim\`, work ONLY in the worktree\n5. **Gates Before Done**: All gates must pass before \`wu:done\`\n6. **Do Not Bypass Hooks**: No \`--no-verify\`, fix issues properly\n7. **Always wu:done**: Complete every WU by running \`pnpm wu:done\`\n\n---\n\n## Documentation Structure\n\n### Core (Vendor-Agnostic)\n\n- **LUMENFLOW.md** - This file, main entry point\n- **.lumenflow/constraints.md** - Non-negotiable workflow constraints\n- **.lumenflow/agents/** - Agent instructions (vendor-agnostic)\n- **workspace.yaml** - Kernel workspace configuration (software_delivery block)\n\n### Optional Overlays\n\n- **CLAUDE.md + .claude/agents/** - Claude Code overlay (auto if Claude Code detected)\n- **{{DOCS_TASKS_PATH}}** - Task boards and WU storage (\`lumenflow init --full\`)\n- **{{DOCS_ONBOARDING_PATH}}** - Agent onboarding docs\n- **.lumenflow.framework.yaml** - Framework hint file (created with \`--framework\`)\n\n---\n\n## Worktree Discipline (IMMUTABLE LAW)\n\nAfter claiming a WU, you MUST work in its worktree:\n\n\`\`\`bash\n# 1. Claim creates worktree\npnpm wu:claim --id WU-XXX --lane <lane>\n\n# 2. IMMEDIATELY cd to worktree\ncd worktrees/<lane>-wu-xxx\n\n# 3. ALL work happens here\n\n# 4. Return to main ONLY to complete\ncd <project-root>\npnpm wu:done --id WU-XXX\n\`\`\`\n\n---\n\n## Definition of Done\n\n- Acceptance criteria satisfied\n- Gates green (\`pnpm gates\` or \`pnpm gates --docs-only\`)\n- WU YAML status = \`done\`\n- \`wu:done\` has been run\n\n---\n\n## Commands Reference\n\n| Command | Description |\n| ----------------- | ----------------------------------- |\n| \`pnpm lane:status\` | Show lane lifecycle status |\n| \`pnpm lane:setup\` | Create/update draft lane artifacts |\n| \`pnpm lane:lock\` | Lock lane lifecycle for WU creation |\n| \`pnpm wu:create\` | Create new WU spec |\n| \`pnpm wu:claim\` | Claim WU and create worktree |\n| \`pnpm wu:done\` | Complete WU (merge, stamp, cleanup) |\n| \`pnpm gates\` | Run quality gates |\n| \`pnpm initiative:create\` | Create multi-phase initiative |\n| \`pnpm initiative:status\` | View initiative progress |\n\n---\n\n## Constraints\n\nSee [.lumenflow/constraints.md](.lumenflow/constraints.md) for the 6 non-negotiable rules.\n\n---\n\n## Agent Onboarding\n\n- Start with **CLAUDE.md** if present (Claude Code overlay).\n- Add vendor-agnostic guidance in **.lumenflow/agents/**.\n- Check the onboarding docs in **{{DOCS_ONBOARDING_PATH}}** for detailed guidance.\n`;
127
+ export const LUMENFLOW_MD_TEMPLATE = `# LumenFlow Workflow Guide\n\n**Last updated:** {{DATE}}\n\nLumenFlow is a vendor-agnostic workflow framework for AI-native software development.\n\n---\n\n## Critical Rule: Use wu:prep Then wu:done\n\nCompletion is a two-step process: run \`pnpm wu:prep --id WU-XXXX\` from the worktree, then run \`pnpm wu:done --id WU-XXXX\` from the main checkout.\n\nDo NOT:\n- Write "To Complete: pnpm wu:done" and stop\n- Ask if you should run wu:done\n- Forget to run wu:done after wu:prep\n- Run wu:done from the worktree\n\n**DO**: finish the full \`wu:prep -> wu:done\` flow every time.\n\n---\n\n## When to Use Initiatives\n\nUse **Initiatives** for multi-phase work spanning multiple WUs:\n\n- **Product visions**: "Build a task management app"\n- **Larger features**: Work requiring multiple WUs across lanes\n- **Complex projects**: Anything that needs phased delivery\n\n\`\`\`bash\n# Create an initiative for multi-phase work\npnpm initiative:create --id INIT-001 --title "Feature Name" \\\\\n --description "..." --phase "Phase 1: MVP" --phase "Phase 2: Polish"\n\n# Add WUs to the initiative\npnpm initiative:add-wu --initiative INIT-001 --wu WU-XXX --phase 1\n\n# Track progress\npnpm initiative:status --id INIT-001\n\`\`\`\n\n**Skip initiatives** for: single-file bug fixes, small docs updates, isolated refactoring.\n\n---\n\n## Quick Start\n\n\`\`\`bash\n# 1. Configure lanes (once per project)\npnpm lane:setup\npnpm lane:validate\npnpm lane:lock\n\n# 2. Create a WU\npnpm wu:create --id WU-XXXX --lane <Lane> --title "Title"\n\n# 3. Edit WU spec with acceptance criteria, then claim:\npnpm wu:claim --id WU-XXXX --lane <Lane>\ncd worktrees/<lane>-wu-xxxx\n\n# 4. Implement in worktree\n\n# 5. Prep for completion\npnpm wu:prep --id WU-XXXX\n# This runs the right gates in the worktree\n\n# 6. Complete (from main checkout)\ncd <project-root>\npnpm wu:done --id WU-XXXX\n\`\`\`\n\n---\n\n## Core Principles\n\n1. **Fit-For-Surface Verification**: Choose the least brittle verification that gives strong confidence. Prefer TDD for runtime logic when repository policy requires it; prefer behavior-focused integration, smoke, visual, or manual verification for UI, content, and presentation work.\n2. **Library-First**: Search existing libraries before custom code\n3. **DRY/SOLID/KISS/YAGNI**: No magic numbers, no hardcoded strings\n4. **Worktree Discipline**: After \`wu:claim\`, work ONLY in the worktree\n5. **Gates Before Done**: All gates must pass before \`wu:done\`\n6. **Do Not Bypass Hooks**: No \`--no-verify\`, fix issues properly\n7. **Finish the two-step flow**: Complete every WU with \`pnpm wu:prep\` and then \`pnpm wu:done\`\n\n---\n\n## Documentation Structure\n\n### Core (Vendor-Agnostic)\n\n- **LUMENFLOW.md** - This file, main entry point\n- **.lumenflow/constraints.md** - Non-negotiable workflow constraints\n- **.lumenflow/agents/** - Agent instructions (vendor-agnostic)\n- **workspace.yaml** - Kernel workspace configuration (software_delivery block)\n\n### Optional Overlays\n\n- **CLAUDE.md + .claude/agents/** - Claude Code overlay (auto if Claude Code detected)\n- **{{DOCS_TASKS_PATH}}** - Task boards and WU storage (\`lumenflow init --full\`)\n- **{{DOCS_ONBOARDING_PATH}}** - Agent onboarding docs\n- **.lumenflow.framework.yaml** - Framework hint file (created with \`--framework\`)\n\n---\n\n## Worktree Discipline (IMMUTABLE LAW)\n\nAfter claiming a WU, you MUST work in its worktree:\n\n\`\`\`bash\n# 1. Claim creates worktree\npnpm wu:claim --id WU-XXX --lane <lane>\n\n# 2. IMMEDIATELY cd to worktree\ncd worktrees/<lane>-wu-xxx\n\n# 3. ALL work happens here\n\n# 4. Return to main ONLY after wu:prep prints the completion command\ncd <project-root>\npnpm wu:done --id WU-XXX\n\`\`\`\n\n---\n\n## Definition of Done\n\n- Acceptance criteria satisfied\n- Gates green (\`pnpm gates\` or \`pnpm gates:docs\`; \`pnpm gates --docs-only\` is the equivalent flag form)\n- WU YAML status = \`done\`\n- \`wu:done\` has been run\n\n---\n\n## Commands Reference\n\n| Command | Description |\n| ----------------- | ----------------------------------- |\n| \`pnpm lane:status\` | Show lane lifecycle status |\n| \`pnpm lane:setup\` | Create/update draft lane artifacts |\n| \`pnpm lane:lock\` | Lock lane lifecycle for WU creation |\n| \`pnpm wu:create\` | Create new WU spec |\n| \`pnpm wu:claim\` | Claim WU and create worktree |\n| \`pnpm wu:prep\` | Run gates in worktree, prep for completion |\n| \`pnpm wu:done\` | Complete WU (merge, stamp, cleanup) |\n| \`pnpm gates\` | Run quality gates |\n| \`pnpm gates:docs\`| Preferred docs-only gate alias |\n| \`pnpm initiative:create\` | Create multi-phase initiative |\n| \`pnpm initiative:status\` | View initiative progress |\n\n---\n\n## Constraints\n\nSee [.lumenflow/constraints.md](.lumenflow/constraints.md) for the 6 non-negotiable rules.\n\n---\n\n## Agent Onboarding\n\n- Start with **CLAUDE.md** if present (Claude Code overlay).\n- Add vendor-agnostic guidance in **.lumenflow/agents/**.\n- Check the onboarding docs in **{{DOCS_ONBOARDING_PATH}}** for detailed guidance.\n`;
127
128
  // Template for .lumenflow/constraints.md
128
129
  export const CONSTRAINTS_MD_TEMPLATE = `# LumenFlow Constraints Capsule\n\n**Version:** 1.0\n**Last updated:** {{DATE}}\n\n## The 6 Non-Negotiable Constraints\n\n### 1. Worktree Discipline and Git Safety\nWork only in worktrees, treat main as read-only, never run destructive git commands on main.\n\n### 2. WUs Are Specs, Not Code\nRespect code_paths boundaries, no feature creep, no code blocks in WU YAML files.\n\n### 3. Docs-Only vs Code WUs\nDocumentation WUs use \`--docs-only\` gates, code WUs run full gates.\n\n### 4. LLM-First, Zero-Fallback Inference\nUse LLMs for semantic tasks, fall back to safe defaults (never regex/keywords).\n\n### 5. Gates and Skip-Gates\nComplete via \`pnpm wu:done\`; skip-gates only for pre-existing failures with \`--reason\` and \`--fix-wu\`.\n\n### 6. Safety and Governance\nRespect privacy rules, approved sources, security policies; when uncertain, choose safer path.\n\n---\n\n## Mini Audit Checklist\n\nBefore running \`wu:done\`, verify:\n\n- [ ] Working in worktree (not main)\n- [ ] Only modified files in \`code_paths\`\n- [ ] Gates pass\n- [ ] No forbidden git commands used\n- [ ] Acceptance criteria satisfied\n\n---\n\n## Escalation Triggers\n\nStop and ask a human when:\n- Same error repeats 3 times\n- Auth or permissions changes required\n- PII/safety issues discovered\n- Cloud spend or secrets involved\n`;
129
130
  // Template for root CLAUDE.md
@@ -335,8 +336,9 @@ pnpm wu:create \\
335
336
 
336
337
  | Command | Description |
337
338
  | ------------------------ | -------------------------- |
338
- | \`pnpm gates\` | Run all quality gates |
339
- | \`pnpm gates --docs-only\` | Run gates for docs changes |
339
+ | \`pnpm gates\` | Run all quality gates |
340
+ | \`pnpm gates:docs\` | Preferred docs-only alias |
341
+ | \`pnpm gates --docs-only\` | Equivalent docs-only flag form |
340
342
  | \`pnpm format\` | Format all files |
341
343
  | \`pnpm lint\` | Run linter |
342
344
  | \`pnpm typecheck\` | Run TypeScript check |
@@ -565,11 +567,15 @@ Agents complete their work, write "To Complete: pnpm wu:done --id WU-XXX" in the
565
567
 
566
568
  ## The Fix
567
569
 
568
- ### Rule: ALWAYS Run wu:done
570
+ ### Rule: Use wu:prep Then wu:done
569
571
 
570
- After gates pass, you MUST run:
572
+ After implementation is complete, you MUST run:
571
573
 
572
574
  \`\`\`bash
575
+ # 1. From the worktree, run wu:prep
576
+ pnpm wu:prep --id WU-XXX
577
+
578
+ # 2. Then complete from main
573
579
  cd <project-root>
574
580
  pnpm wu:done --id WU-XXX
575
581
  \`\`\`
@@ -586,10 +592,10 @@ Do NOT:
586
592
  ## Correct Completion Flow
587
593
 
588
594
  \`\`\`bash
589
- # 1. In worktree, run gates
590
- pnpm gates
595
+ # 1. In worktree, run wu:prep
596
+ pnpm wu:prep --id WU-XXX
591
597
 
592
- # 2. If gates pass, return to main
598
+ # 2. If wu:prep passes, return to main
593
599
  cd <project-root>
594
600
 
595
601
  # 3. IMMEDIATELY run wu:done
@@ -729,8 +735,8 @@ pnpm wu:claim --id WU-XXX --lane <Lane>
729
735
  cd worktrees/<lane>-wu-xxx
730
736
 
731
737
  # Run gates
732
- pnpm gates # Code changes
733
- pnpm gates --docs-only # Docs changes
738
+ pnpm gates # Code changes
739
+ pnpm gates:docs # Docs changes (equivalent: pnpm gates --docs-only)
734
740
 
735
741
  # Complete WU
736
742
  cd <project-root>
@@ -826,7 +832,7 @@ LumenFlow uses Work Units (WUs) to track all changes:
826
832
 
827
833
  1. **Claim a WU**: \`pnpm wu:claim --id WU-XXX --lane <Lane>\`
828
834
  2. **Work in worktree**: \`cd worktrees/<lane>-wu-xxx\`
829
- 3. **Run gates**: \`pnpm gates\`
835
+ 3. **Prep for completion**: \`pnpm wu:prep --id WU-XXX\`
830
836
  4. **Complete WU**: \`pnpm wu:done --id WU-XXX\` (from main checkout)
831
837
 
832
838
  ---
@@ -836,7 +842,7 @@ LumenFlow uses Work Units (WUs) to track all changes:
836
842
  1. **Worktree Discipline**: Never work in main after claiming a WU
837
843
  2. **Fit-For-Surface Verification**: Choose the least brittle verification that gives strong confidence. Prefer TDD for runtime logic when policy requires it; avoid brittle UI implementation-detail tests.
838
844
  3. **Gates**: Must pass before \`wu:done\`
839
- 4. **Always wu:done**: Never skip the completion step
845
+ 4. **Always finish the flow**: Never skip \`wu:prep\` or \`wu:done\`
840
846
 
841
847
  ---
842
848
 
@@ -845,7 +851,8 @@ LumenFlow uses Work Units (WUs) to track all changes:
845
851
  | Command | Description |
846
852
  | ------- | ----------- |
847
853
  | \`pnpm wu:claim --id WU-XXX --lane <Lane>\` | Claim a WU |
848
- | \`pnpm gates\` | Run quality gates |
854
+ | \`pnpm wu:prep --id WU-XXX\` | Run worktree gates and prep for completion |
855
+ | \`pnpm gates:docs\` | Preferred docs-only gate alias |
849
856
  | \`pnpm wu:done --id WU-XXX\` | Complete WU |
850
857
  | \`pnpm wu:status --id WU-XXX\` | Check WU status |
851
858
  | \`pnpm initiative:create ...\` | Create a new initiative |
@@ -1058,8 +1065,8 @@ pnpm gates
1058
1065
 
1059
1066
  - **Stay in the worktree** after claiming
1060
1067
  - **Fit-For-Surface Verification**: Prefer stable, least-brittle verification; reserve test-first discipline for runtime logic when policy requires it
1061
- - **Gates before done**: Always run \`pnpm gates\`
1062
- - **Always wu:done**: Never forget to complete
1068
+ - **Gates before done**: Always run \`pnpm wu:prep\`
1069
+ - **Always finish the flow**: Never forget \`wu:prep\` and \`wu:done\`
1063
1070
 
1064
1071
  ---
1065
1072
 
@@ -1183,7 +1190,8 @@ ready -> in_progress -> waiting/blocked -> done
1183
1190
  pnpm wu:claim --id WU-XXX --lane <lane>
1184
1191
  cd worktrees/<lane>-wu-xxx # IMMEDIATELY
1185
1192
 
1186
- # Complete WU (from main)
1193
+ # Prep in worktree, then complete from main
1194
+ pnpm wu:prep --id WU-XXX
1187
1195
  cd ../..
1188
1196
  pnpm wu:done --id WU-XXX
1189
1197
 
@@ -1 +1 @@
1
- {"version":3,"file":"init-templates.js","sourceRoot":"","sources":["../src/init-templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-templates.js","sourceRoot":"","sources":["../src/init-templates.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE5E,MAAM,qBAAqB,GAAG,WAAW,CAAC,SAAS,CAAC;AACpD,MAAM,yBAAyB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC;IACnE,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,qBAAqB,CAAC;AAC1B,MAAM,wBAAwB,GAAG,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;IACtE,CAAC,CAAC,eAAe,CAAC,SAAS;IAC3B,CAAC,CAAC,GAAG,eAAe,CAAC,SAAS,GAAG,CAAC;AAEpC,mEAAmE;AACnE,sEAAsE;AACtE,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC;QACE,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,qBAAqB,EAAE,aAAa,EAAE,QAAQ,CAAC;KAC7D;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,oBAAoB,EAAE,YAAY,EAAE,QAAQ,CAAC;KAC3D;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,mBAAmB,EAAE,cAAc,CAAC;KACpF;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,mBAAmB,EAAE,WAAW,CAAC;KAC/C;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,cAAc,CAAC;KAC3E;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;KAChC;CACF,CAAC;AAEF,0DAA0D;AAC1D,kDAAkD;AAClD,iFAAiF;AACjF,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoEjC,CAAC;AAEF,+CAA+C;AAC/C,0DAA0D;AAC1D,6CAA6C;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,sjKAAsjK,CAAC;AAE5lK,yCAAyC;AACzC,MAAM,CAAC,MAAM,uBAAuB,GAAG,+yCAA+yC,CAAC;AAEv1C,8BAA8B;AAC9B,0DAA0D;AAC1D,kFAAkF;AAClF,+FAA+F;AAC/F,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBjC,CAAC;AAEF,qCAAqC;AACrC,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCvC,CAAC;AAEF,kEAAkE;AAClE,0DAA0D;AAC1D,uEAAuE;AACvE,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;CAcpC,CAAC;AAEF,qDAAqD;AACrD,0DAA0D;AAC1D,uEAAuE;AACvE,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;CActC,CAAC;AAEF,yDAAyD;AACzD,0DAA0D;AAC1D,uEAAuE;AACvE,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;CAanC,CAAC;AAEF,+BAA+B;AAC/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,0NAA0N,CAAC;AAE9P,6EAA6E;AAC7E,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;CAQhC,CAAC;AAEF,gDAAgD;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,wkBAAwkB,CAAC;AAEzmB,+CAA+C;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAG,sJAAsJ,CAAC;AAEtL,0GAA0G;AAC1G,MAAM,CAAC,MAAM,gBAAgB,GAAG,gnLAAgnL,CAAC;AAEjpL,yCAAyC;AACzC,MAAM,CAAC,MAAM,uBAAuB,GAAG,4JAA4J,CAAC;AAEpM,iEAAiE;AACjE,MAAM,CAAC,MAAM,0BAA0B,GAAG,0WAA0W,CAAC;AAErZ,2CAA2C;AAC3C,kFAAkF;AAClF,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6I1C,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmIzC,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgH/C,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0GzC,CAAC;AAEF,yDAAyD;AACzD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4GvC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgH3C,CAAC;AAEF,qCAAqC;AACrC,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2FrC,CAAC;AAEF,2CAA2C;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4ElC,CAAC;AAEF,mCAAmC;AACnC,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4D1C,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DjD,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyE7C,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAGrC;IACH,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE;IAClD,EAAE,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,uBAAuB,EAAE;IAClE,EAAE,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,qBAAqB,EAAE;IAC/D,EAAE,OAAO,EAAE,yBAAyB,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACvE,EAAE,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,sBAAsB,EAAE;IACjE,EAAE,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,oBAAoB,EAAE;IAC7D,kFAAkF;IAClF,EAAE,OAAO,EAAE,yBAAyB,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACvE,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,mBAAmB,EAAE;IAC3D,EAAE,OAAO,EAAE,uBAAuB,EAAE,IAAI,EAAE,uBAAuB,EAAE;IACnE;QACE,OAAO,EAAE,uCAAuC;QAChD,IAAI,EAAE,uCAAuC;KAC9C;IACD,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrC,EAAE,OAAO,EAAE,yBAAyB,EAAE,IAAI,EAAE,qBAAqB,EAAE;CACpE,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;EAkBhC,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;CAuBtB,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;EAcrC,wBAAwB;;;;;;EAMxB,qBAAqB;;;;;;;;;;;CAWtB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,YAAY,EAAE,mBAAmB;CAClC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BhC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDlC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,aAAa,EACX,kGAAkG;IACpG,IAAI,EAAE,mHAAmH;IACzH,SAAS,EACP,4HAA4H;IAC9H,iFAAiF;IACjF,+EAA+E;IAC/E,0FAA0F;IAC1F,mFAAmF;IACnF,MAAM,EACJ,8RAA8R;IAChS,cAAc,EACZ,uKAAuK;IACzK,6FAA6F;IAC7F,sFAAsF;IACtF,WAAW,EACT,gGAAgG;CACnG,CAAC"}
@@ -0,0 +1,27 @@
1
+ import {
2
+ INVARIANT_TYPES,
3
+ InvariantError,
4
+ formatInvariantError,
5
+ getInvariantChecker,
6
+ loadInvariants,
7
+ registerInvariantChecker,
8
+ runInvariants,
9
+ validateInvariants
10
+ } from "./chunk-EZ6ZBYBM.js";
11
+ import "./chunk-U7I7FS7T.js";
12
+ import "./chunk-NRIZR3A7.js";
13
+ import "./chunk-6HO4GWJE.js";
14
+ import "./chunk-DWMLTXKQ.js";
15
+ import "./chunk-V6OJGLBA.js";
16
+ import "./chunk-RXRKBBSM.js";
17
+ import "./chunk-3RG5ZIWI.js";
18
+ export {
19
+ INVARIANT_TYPES,
20
+ InvariantError,
21
+ formatInvariantError,
22
+ getInvariantChecker,
23
+ loadInvariants,
24
+ registerInvariantChecker,
25
+ runInvariants,
26
+ validateInvariants
27
+ };
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ acquireLaneLock,
4
+ auditedUnlock,
5
+ checkLaneLock,
6
+ forceRemoveStaleLock,
7
+ getAllLaneLocks,
8
+ getLockFilePath,
9
+ getLocksDir,
10
+ getStaleThresholdMs,
11
+ isLockStale,
12
+ isZombieLock,
13
+ readLockMetadata,
14
+ releaseLaneLock
15
+ } from "./chunk-JONWQUB5.js";
16
+ import "./chunk-NRIZR3A7.js";
17
+ import "./chunk-6HO4GWJE.js";
18
+ import "./chunk-DWMLTXKQ.js";
19
+ import "./chunk-V6OJGLBA.js";
20
+ import "./chunk-RXRKBBSM.js";
21
+ import "./chunk-3RG5ZIWI.js";
22
+ export {
23
+ acquireLaneLock,
24
+ auditedUnlock,
25
+ checkLaneLock,
26
+ forceRemoveStaleLock,
27
+ getAllLaneLocks,
28
+ getLockFilePath,
29
+ getLocksDir,
30
+ getStaleThresholdMs,
31
+ isLockStale,
32
+ isZombieLock,
33
+ readLockMetadata,
34
+ releaseLaneLock
35
+ };
@@ -0,0 +1,14 @@
1
+ import {
2
+ createCheckpoint
3
+ } from "./chunk-RWO5XMZ6.js";
4
+ import "./chunk-ND6MY37M.js";
5
+ import "./chunk-RIAAGL2E.js";
6
+ import "./chunk-DFR4DJBM.js";
7
+ import "./chunk-4N74J3UT.js";
8
+ import "./chunk-DWMLTXKQ.js";
9
+ import "./chunk-V6OJGLBA.js";
10
+ import "./chunk-RXRKBBSM.js";
11
+ import "./chunk-3RG5ZIWI.js";
12
+ export {
13
+ createCheckpoint
14
+ };
@@ -0,0 +1,19 @@
1
+ import {
2
+ SIGNAL_FILE_NAME,
3
+ SIGNAL_RECEIPTS_FILE_NAME,
4
+ createSignal,
5
+ loadSignals,
6
+ markSignalsAsRead
7
+ } from "./chunk-OMJD6A3S.js";
8
+ import "./chunk-4N74J3UT.js";
9
+ import "./chunk-DWMLTXKQ.js";
10
+ import "./chunk-V6OJGLBA.js";
11
+ import "./chunk-RXRKBBSM.js";
12
+ import "./chunk-3RG5ZIWI.js";
13
+ export {
14
+ SIGNAL_FILE_NAME,
15
+ SIGNAL_RECEIPTS_FILE_NAME,
16
+ createSignal,
17
+ loadSignals,
18
+ markSignalsAsRead
19
+ };
@@ -0,0 +1,18 @@
1
+ import {
2
+ MEMORY_FILE_NAME,
3
+ appendNode,
4
+ loadMemory,
5
+ loadMemoryAll,
6
+ queryByWu,
7
+ queryReady
8
+ } from "./chunk-DFR4DJBM.js";
9
+ import "./chunk-RXRKBBSM.js";
10
+ import "./chunk-3RG5ZIWI.js";
11
+ export {
12
+ MEMORY_FILE_NAME,
13
+ appendNode,
14
+ loadMemory,
15
+ loadMemoryAll,
16
+ queryByWu,
17
+ queryReady
18
+ };
@@ -0,0 +1,13 @@
1
+ import {
2
+ buildWuLifecycleKernelEvent,
3
+ flushWuLifecycleSync
4
+ } from "./chunk-JERYVEIZ.js";
5
+ import "./chunk-EK2AKZKD.js";
6
+ import "./chunk-DWMLTXKQ.js";
7
+ import "./chunk-V6OJGLBA.js";
8
+ import "./chunk-RXRKBBSM.js";
9
+ import "./chunk-3RG5ZIWI.js";
10
+ export {
11
+ buildWuLifecycleKernelEvent,
12
+ flushWuLifecycleSync
13
+ };
@@ -0,0 +1,17 @@
1
+ import {
2
+ emitMethodologyTelemetry
3
+ } from "./chunk-6XYXI2NQ.js";
4
+ import {
5
+ generateEnforcementSummary,
6
+ generateMandatoryStandards
7
+ } from "./chunk-NMG736UR.js";
8
+ import "./chunk-6HO4GWJE.js";
9
+ import "./chunk-DWMLTXKQ.js";
10
+ import "./chunk-V6OJGLBA.js";
11
+ import "./chunk-RXRKBBSM.js";
12
+ import "./chunk-3RG5ZIWI.js";
13
+ export {
14
+ emitMethodologyTelemetry,
15
+ generateEnforcementSummary,
16
+ generateMandatoryStandards
17
+ };
@@ -0,0 +1,22 @@
1
+ import {
2
+ checkLaneOccupation,
3
+ generateCodexPrompt,
4
+ generateLaneOccupationWarning,
5
+ generateTaskInvocation
6
+ } from "./chunk-6W5XHWYV.js";
7
+ import "./chunk-JONWQUB5.js";
8
+ import "./chunk-NMG736UR.js";
9
+ import "./chunk-EZ6ZBYBM.js";
10
+ import "./chunk-U7I7FS7T.js";
11
+ import "./chunk-NRIZR3A7.js";
12
+ import "./chunk-6HO4GWJE.js";
13
+ import "./chunk-DWMLTXKQ.js";
14
+ import "./chunk-V6OJGLBA.js";
15
+ import "./chunk-RXRKBBSM.js";
16
+ import "./chunk-3RG5ZIWI.js";
17
+ export {
18
+ checkLaneOccupation,
19
+ generateCodexPrompt,
20
+ generateLaneOccupationWarning,
21
+ generateTaskInvocation
22
+ };
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ WU_DONE_COMPLETION_MODES,
4
+ buildPRBody,
5
+ createPR,
6
+ isGhCliAvailable,
7
+ isPRModeEnabled,
8
+ printGhCliMissingMessage,
9
+ printPRCreatedMessage
10
+ } from "./chunk-XGI665H7.js";
11
+ import "./chunk-2UFQ3A3C.js";
12
+ import "./chunk-6HO4GWJE.js";
13
+ import "./chunk-DWMLTXKQ.js";
14
+ import "./chunk-V6OJGLBA.js";
15
+ import "./chunk-RXRKBBSM.js";
16
+ import "./chunk-3RG5ZIWI.js";
17
+ export {
18
+ WU_DONE_COMPLETION_MODES,
19
+ buildPRBody,
20
+ createPR,
21
+ isGhCliAvailable,
22
+ isPRModeEnabled,
23
+ printGhCliMissingMessage,
24
+ printPRCreatedMessage
25
+ };
@@ -0,0 +1,30 @@
1
+ import {
2
+ applyExposureDefaults,
3
+ buildCodePathsCommittedErrorMessage,
4
+ buildTypeVsCodePathsErrorMessage,
5
+ validateCodePathsCommittedBeforeDone,
6
+ validateCodePathsExist,
7
+ validatePostMutation,
8
+ validateSpecCompleteness,
9
+ validateTestPathsRequired,
10
+ validateTypeVsCodePathsPreflight
11
+ } from "./chunk-L737LQ4C.js";
12
+ import "./chunk-2UFQ3A3C.js";
13
+ import "./chunk-U7I7FS7T.js";
14
+ import "./chunk-NRIZR3A7.js";
15
+ import "./chunk-6HO4GWJE.js";
16
+ import "./chunk-DWMLTXKQ.js";
17
+ import "./chunk-V6OJGLBA.js";
18
+ import "./chunk-RXRKBBSM.js";
19
+ import "./chunk-3RG5ZIWI.js";
20
+ export {
21
+ applyExposureDefaults,
22
+ buildCodePathsCommittedErrorMessage,
23
+ buildTypeVsCodePathsErrorMessage,
24
+ validateCodePathsCommittedBeforeDone,
25
+ validateCodePathsExist,
26
+ validatePostMutation,
27
+ validateSpecCompleteness,
28
+ validateTestPathsRequired,
29
+ validateTypeVsCodePathsPreflight
30
+ };