@lumenflow/cli 2.10.0 → 2.12.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 (255) hide show
  1. package/README.md +28 -18
  2. package/dist/__tests__/commands.test.js +198 -2
  3. package/dist/__tests__/gates-integration-tests.test.js +112 -0
  4. package/dist/__tests__/init-docs-structure.test.js +33 -0
  5. package/dist/__tests__/init.test.js +225 -0
  6. package/dist/__tests__/initiative-add-wu.test.js +71 -1
  7. package/dist/__tests__/no-beacon-references-docs.test.js +30 -0
  8. package/dist/__tests__/no-beacon-references.test.js +39 -0
  9. package/dist/__tests__/safe-git.test.js +4 -4
  10. package/dist/__tests__/wu-create-required-fields.test.js +22 -0
  11. package/dist/__tests__/wu-create.test.js +121 -0
  12. package/dist/__tests__/wu-done-docs-only-policy.test.js +20 -0
  13. package/dist/__tests__/wu-prep-default-exec.test.js +35 -0
  14. package/dist/__tests__/wu-prep.test.js +32 -0
  15. package/dist/__tests__/wu-validate.test.js +36 -0
  16. package/dist/agent-issues-query.js +1 -0
  17. package/dist/agent-issues-query.js.map +1 -0
  18. package/dist/agent-log-issue.js +1 -0
  19. package/dist/agent-log-issue.js.map +1 -0
  20. package/dist/agent-session-end.js +1 -0
  21. package/dist/agent-session-end.js.map +1 -0
  22. package/dist/agent-session.js +1 -0
  23. package/dist/agent-session.js.map +1 -0
  24. package/dist/backlog-prune.js +2 -0
  25. package/dist/backlog-prune.js.map +1 -0
  26. package/dist/cli-entry-point.js +1 -0
  27. package/dist/cli-entry-point.js.map +1 -0
  28. package/dist/commands/integrate.js +1 -0
  29. package/dist/commands/integrate.js.map +1 -0
  30. package/dist/commands.js +56 -77
  31. package/dist/commands.js.map +1 -0
  32. package/dist/deps-add.js +1 -0
  33. package/dist/deps-add.js.map +1 -0
  34. package/dist/deps-remove.js +1 -0
  35. package/dist/deps-remove.js.map +1 -0
  36. package/dist/docs-sync.js +1 -0
  37. package/dist/docs-sync.js.map +1 -0
  38. package/dist/doctor.js +1 -0
  39. package/dist/doctor.js.map +1 -0
  40. package/dist/file-delete.js +1 -0
  41. package/dist/file-delete.js.map +1 -0
  42. package/dist/file-edit.js +1 -0
  43. package/dist/file-edit.js.map +1 -0
  44. package/dist/file-read.js +1 -0
  45. package/dist/file-read.js.map +1 -0
  46. package/dist/file-write.js +1 -0
  47. package/dist/file-write.js.map +1 -0
  48. package/dist/flow-bottlenecks.js +1 -0
  49. package/dist/flow-bottlenecks.js.map +1 -0
  50. package/dist/flow-report.js +1 -0
  51. package/dist/flow-report.js.map +1 -0
  52. package/dist/gates.js +32 -20
  53. package/dist/gates.js.map +1 -0
  54. package/dist/git-branch.js +1 -0
  55. package/dist/git-branch.js.map +1 -0
  56. package/dist/git-diff.js +1 -0
  57. package/dist/git-diff.js.map +1 -0
  58. package/dist/git-log.js +1 -0
  59. package/dist/git-log.js.map +1 -0
  60. package/dist/git-status.js +1 -0
  61. package/dist/git-status.js.map +1 -0
  62. package/dist/guard-locked.js +1 -0
  63. package/dist/guard-locked.js.map +1 -0
  64. package/dist/guard-main-branch.js +1 -0
  65. package/dist/guard-main-branch.js.map +1 -0
  66. package/dist/guard-worktree-commit.js +1 -0
  67. package/dist/guard-worktree-commit.js.map +1 -0
  68. package/dist/hooks/auto-checkpoint-utils.js +52 -0
  69. package/dist/hooks/auto-checkpoint-utils.js.map +1 -0
  70. package/dist/hooks/enforcement-checks.js +1 -0
  71. package/dist/hooks/enforcement-checks.js.map +1 -0
  72. package/dist/hooks/enforcement-generator.js +185 -1
  73. package/dist/hooks/enforcement-generator.js.map +1 -0
  74. package/dist/hooks/enforcement-sync.js +91 -1
  75. package/dist/hooks/enforcement-sync.js.map +1 -0
  76. package/dist/hooks/index.js +1 -0
  77. package/dist/hooks/index.js.map +1 -0
  78. package/dist/index.js +1 -0
  79. package/dist/index.js.map +1 -0
  80. package/dist/init.js +176 -36
  81. package/dist/init.js.map +1 -0
  82. package/dist/initiative-add-wu.js +180 -59
  83. package/dist/initiative-add-wu.js.map +1 -0
  84. package/dist/initiative-bulk-assign-wus.js +3 -1
  85. package/dist/initiative-bulk-assign-wus.js.map +1 -0
  86. package/dist/initiative-create.js +1 -0
  87. package/dist/initiative-create.js.map +1 -0
  88. package/dist/initiative-edit.js +67 -32
  89. package/dist/initiative-edit.js.map +1 -0
  90. package/dist/initiative-list.js +1 -0
  91. package/dist/initiative-list.js.map +1 -0
  92. package/dist/initiative-plan.js +1 -0
  93. package/dist/initiative-plan.js.map +1 -0
  94. package/dist/initiative-remove-wu.js +1 -0
  95. package/dist/initiative-remove-wu.js.map +1 -0
  96. package/dist/initiative-status.js +1 -0
  97. package/dist/initiative-status.js.map +1 -0
  98. package/dist/lane-health.js +1 -0
  99. package/dist/lane-health.js.map +1 -0
  100. package/dist/lane-suggest.js +1 -0
  101. package/dist/lane-suggest.js.map +1 -0
  102. package/dist/lumenflow-upgrade.js +1 -0
  103. package/dist/lumenflow-upgrade.js.map +1 -0
  104. package/dist/mem-checkpoint.js +1 -0
  105. package/dist/mem-checkpoint.js.map +1 -0
  106. package/dist/mem-cleanup.js +114 -1
  107. package/dist/mem-cleanup.js.map +1 -0
  108. package/dist/mem-context.js +1 -0
  109. package/dist/mem-context.js.map +1 -0
  110. package/dist/mem-create.js +1 -0
  111. package/dist/mem-create.js.map +1 -0
  112. package/dist/mem-delete.js +1 -0
  113. package/dist/mem-delete.js.map +1 -0
  114. package/dist/mem-export.js +1 -0
  115. package/dist/mem-export.js.map +1 -0
  116. package/dist/mem-inbox.js +1 -0
  117. package/dist/mem-inbox.js.map +1 -0
  118. package/dist/mem-index.js +1 -0
  119. package/dist/mem-index.js.map +1 -0
  120. package/dist/mem-init.js +1 -0
  121. package/dist/mem-init.js.map +1 -0
  122. package/dist/mem-profile.js +1 -0
  123. package/dist/mem-profile.js.map +1 -0
  124. package/dist/mem-promote.js +1 -0
  125. package/dist/mem-promote.js.map +1 -0
  126. package/dist/mem-ready.js +1 -0
  127. package/dist/mem-ready.js.map +1 -0
  128. package/dist/mem-recover.js +1 -0
  129. package/dist/mem-recover.js.map +1 -0
  130. package/dist/mem-signal.js +12 -1
  131. package/dist/mem-signal.js.map +1 -0
  132. package/dist/mem-start.js +1 -0
  133. package/dist/mem-start.js.map +1 -0
  134. package/dist/mem-summarize.js +1 -0
  135. package/dist/mem-summarize.js.map +1 -0
  136. package/dist/mem-triage.js +2 -1
  137. package/dist/mem-triage.js.map +1 -0
  138. package/dist/merge-block.js +1 -0
  139. package/dist/merge-block.js.map +1 -0
  140. package/dist/metrics-cli.js +1 -0
  141. package/dist/metrics-cli.js.map +1 -0
  142. package/dist/metrics-snapshot.js +1 -0
  143. package/dist/metrics-snapshot.js.map +1 -0
  144. package/dist/onboarding-smoke-test.js +1 -0
  145. package/dist/onboarding-smoke-test.js.map +1 -0
  146. package/dist/orchestrate-init-status.js +1 -0
  147. package/dist/orchestrate-init-status.js.map +1 -0
  148. package/dist/orchestrate-initiative.js +20 -1
  149. package/dist/orchestrate-initiative.js.map +1 -0
  150. package/dist/orchestrate-monitor.js +1 -0
  151. package/dist/orchestrate-monitor.js.map +1 -0
  152. package/dist/plan-create.js +1 -0
  153. package/dist/plan-create.js.map +1 -0
  154. package/dist/plan-edit.js +1 -0
  155. package/dist/plan-edit.js.map +1 -0
  156. package/dist/plan-link.js +1 -0
  157. package/dist/plan-link.js.map +1 -0
  158. package/dist/plan-promote.js +1 -0
  159. package/dist/plan-promote.js.map +1 -0
  160. package/dist/public-manifest.js +773 -0
  161. package/dist/public-manifest.js.map +1 -0
  162. package/dist/release.js +3 -2
  163. package/dist/release.js.map +1 -0
  164. package/dist/rotate-progress.js +2 -1
  165. package/dist/rotate-progress.js.map +1 -0
  166. package/dist/session-coordinator.js +1 -0
  167. package/dist/session-coordinator.js.map +1 -0
  168. package/dist/shared-validators.js +78 -0
  169. package/dist/shared-validators.js.map +1 -0
  170. package/dist/signal-cleanup.js +1 -0
  171. package/dist/signal-cleanup.js.map +1 -0
  172. package/dist/spawn-list.js +1 -0
  173. package/dist/spawn-list.js.map +1 -0
  174. package/dist/state-bootstrap.js +1 -0
  175. package/dist/state-bootstrap.js.map +1 -0
  176. package/dist/state-cleanup.js +1 -0
  177. package/dist/state-cleanup.js.map +1 -0
  178. package/dist/state-doctor-fix.js +37 -1
  179. package/dist/state-doctor-fix.js.map +1 -0
  180. package/dist/state-doctor.js +11 -6
  181. package/dist/state-doctor.js.map +1 -0
  182. package/dist/sync-templates.js +1 -0
  183. package/dist/sync-templates.js.map +1 -0
  184. package/dist/trace-gen.js +1 -0
  185. package/dist/trace-gen.js.map +1 -0
  186. package/dist/validate-agent-skills.js +1 -0
  187. package/dist/validate-agent-skills.js.map +1 -0
  188. package/dist/validate-agent-sync.js +1 -0
  189. package/dist/validate-agent-sync.js.map +1 -0
  190. package/dist/validate-backlog-sync.js +1 -0
  191. package/dist/validate-backlog-sync.js.map +1 -0
  192. package/dist/validate-skills-spec.js +1 -0
  193. package/dist/validate-skills-spec.js.map +1 -0
  194. package/dist/validate.js +1 -0
  195. package/dist/validate.js.map +1 -0
  196. package/dist/wu-block.js +1 -0
  197. package/dist/wu-block.js.map +1 -0
  198. package/dist/wu-claim-repair-guidance.js +10 -0
  199. package/dist/wu-claim-repair-guidance.js.map +1 -0
  200. package/dist/wu-claim.js +40 -0
  201. package/dist/wu-claim.js.map +1 -0
  202. package/dist/wu-cleanup.js +2 -1
  203. package/dist/wu-cleanup.js.map +1 -0
  204. package/dist/wu-create.js +91 -25
  205. package/dist/wu-create.js.map +1 -0
  206. package/dist/wu-delete.js +3 -2
  207. package/dist/wu-delete.js.map +1 -0
  208. package/dist/wu-deps.js +2 -1
  209. package/dist/wu-deps.js.map +1 -0
  210. package/dist/wu-done-auto-cleanup.js +1 -0
  211. package/dist/wu-done-auto-cleanup.js.map +1 -0
  212. package/dist/wu-done-check.js +1 -0
  213. package/dist/wu-done-check.js.map +1 -0
  214. package/dist/wu-done-decay.js +88 -0
  215. package/dist/wu-done-decay.js.map +1 -0
  216. package/dist/wu-done.js +75 -18
  217. package/dist/wu-done.js.map +1 -0
  218. package/dist/wu-edit.js +2 -1
  219. package/dist/wu-edit.js.map +1 -0
  220. package/dist/wu-infer-lane.js +1 -0
  221. package/dist/wu-infer-lane.js.map +1 -0
  222. package/dist/wu-preflight.js +1 -0
  223. package/dist/wu-preflight.js.map +1 -0
  224. package/dist/wu-prep.js +105 -9
  225. package/dist/wu-prep.js.map +1 -0
  226. package/dist/wu-proto.js +12 -9
  227. package/dist/wu-proto.js.map +1 -0
  228. package/dist/wu-prune.js +1 -0
  229. package/dist/wu-prune.js.map +1 -0
  230. package/dist/wu-recover.js +54 -2
  231. package/dist/wu-recover.js.map +1 -0
  232. package/dist/wu-release.js +2 -1
  233. package/dist/wu-release.js.map +1 -0
  234. package/dist/wu-repair.js +1 -0
  235. package/dist/wu-repair.js.map +1 -0
  236. package/dist/wu-spawn-completion.js +1 -0
  237. package/dist/wu-spawn-completion.js.map +1 -0
  238. package/dist/wu-spawn.js +3 -2
  239. package/dist/wu-spawn.js.map +1 -0
  240. package/dist/wu-status.js +1 -0
  241. package/dist/wu-status.js.map +1 -0
  242. package/dist/wu-unblock.js +1 -0
  243. package/dist/wu-unblock.js.map +1 -0
  244. package/dist/wu-unlock-lane.js +1 -0
  245. package/dist/wu-unlock-lane.js.map +1 -0
  246. package/dist/wu-validate.js +58 -9
  247. package/dist/wu-validate.js.map +1 -0
  248. package/package.json +11 -21
  249. package/templates/core/.husky/pre-commit.template +5 -5
  250. package/templates/core/.mcp.json.template +8 -0
  251. package/templates/core/LUMENFLOW.md.template +2 -2
  252. package/templates/core/ai/onboarding/agent-safety-card.md.template +6 -6
  253. package/templates/core/ai/onboarding/lumenflow-force-usage.md.template +4 -4
  254. package/templates/core/ai/onboarding/vendor-support.md.template +73 -0
  255. package/templates/core/scripts/safe-git.template +29 -0
package/dist/init.js CHANGED
@@ -21,6 +21,8 @@ import { updateMergeBlock } from './merge-block.js';
21
21
  import { isMainBranch, isInWorktree } from '@lumenflow/core/dist/core/worktree-guard.js';
22
22
  // WU-1386: Import doctor for auto-run after init
23
23
  import { runDoctorForInit } from './doctor.js';
24
+ // WU-1433: Import public manifest to derive scripts (no hardcoded subset)
25
+ import { getPublicManifest } from './public-manifest.js';
24
26
  /**
25
27
  * WU-1085: CLI option definitions for init command
26
28
  * WU-1171: Added --merge and --client options
@@ -699,12 +701,22 @@ pnpm wu:done --id WU-XXX
699
701
  `;
700
702
  // Template for .aider.conf.yml
701
703
  const AIDER_CONF_TEMPLATE = `# Aider Configuration for LumenFlow Projects\n# See LUMENFLOW.md for workflow documentation\n\nmodel: gpt-4-turbo\nauto-commits: false\ndirty-commits: false\n\nread:\n - LUMENFLOW.md\n - .lumenflow/constraints.md\n`;
704
+ // WU-1413: Template for .mcp.json (MCP server configuration for Claude Code)
705
+ const MCP_JSON_TEMPLATE = `{
706
+ "mcpServers": {
707
+ "lumenflow": {
708
+ "command": "npx",
709
+ "args": ["@lumenflow/mcp"]
710
+ }
711
+ }
712
+ }
713
+ `;
702
714
  // Template for docs/04-operations/tasks/backlog.md
703
715
  const BACKLOG_TEMPLATE = `---\nsections:\n ready:\n heading: '## 🚀 Ready (pull from here)'\n insertion: after_heading_blank_line\n in_progress:\n heading: '## 🔧 In progress'\n insertion: after_heading_blank_line\n blocked:\n heading: '## ⛔ Blocked'\n insertion: after_heading_blank_line\n done:\n heading: '## ✅ Done'\n insertion: after_heading_blank_line\n---\n\n# Backlog (single source of truth)\n\n## 🚀 Ready (pull from here)\n\n(No items ready)\n\n## 🔧 In progress\n\n(No items in progress)\n\n## ⛔ Blocked\n\n(No items blocked)\n\n## ✅ Done\n\n(No items completed yet)\n`;
704
716
  // Template for docs/04-operations/tasks/status.md
705
717
  const STATUS_TEMPLATE = `# Status (active work)\n\n## In Progress\n\n(No items in progress)\n\n## Blocked\n\n(No items blocked)\n\n## Completed\n\n(No items completed yet)\n`;
706
- // Template for docs/04-operations/tasks/templates/wu-template.yaml
707
- const WU_TEMPLATE_YAML = `# Work Unit Template (LumenFlow WU Schema)\n#\n# Copy this template when creating new WUs. Fill in all required fields and\n# remove optional fields if not needed.\n#\n# If you used "lumenflow init --full", this template lives at:\n# docs/04-operations/tasks/templates/wu-template.yaml\n\n# Required: Unique work unit identifier (format: WU-NNN)\nid: WU-XXX\n\n# Required: Short, descriptive title (max 80 chars)\ntitle: 'Your WU title here'\n\n# Required: Lane (Parent: Sublane format)\nlane: 'Framework: CLI'\n\n# Required: Type of work\ntype: 'feature' # feature | bug | documentation | process | tooling | chore | refactor\n\n# Required: Current status\nstatus: 'ready' # ready | in_progress | blocked | done | cancelled\n\n# Required: Priority\npriority: P2 # P0 | P1 | P2 | P3\n\n# Required: Creation date (YYYY-MM-DD)\ncreated: {{DATE}}\n\n# Required: Owner/assignee (email)\nassigned_to: 'unassigned@example.com'\n\n# Required: Description\ndescription: |\n Context: ...\n Problem: ...\n Solution: ...\n\n# Required: Acceptance criteria (testable, binary)\nacceptance:\n - Criterion 1 (specific, measurable, testable)\n - Criterion 2 (binary pass/fail)\n - Documentation updated\n\n# Required: References to plans/specs (required for type: feature)\nspec_refs:\n - docs/04-operations/plans/WU-XXX-plan.md\n\n# Required: Code files changed or created (empty only for docs/process WUs)\ncode_paths:\n - path/to/file.ts\n\n# Required: Test paths (at least one of manual/unit/e2e/integration for non-doc WUs)\ntests:\n manual:\n - Manual test: Verify behavior\n unit:\n - path/to/test.test.ts\n e2e: []\n integration: []\n\n# Required: Exposure level\nexposure: 'backend-only' # ui | api | backend-only | documentation\n\n# Optional: User journey (recommended for ui/api)\n# user_journey: |\n# User navigates to ...\n# User performs ...\n\n# Optional: UI pairing WUs (for api exposure)\n# ui_pairing_wus:\n# - WU-1234\n\n# Optional: Navigation path (required when exposure=ui and no page file)\n# navigation_path: '/settings'\n\n# Required: Deliverable artifacts (stamps, docs, etc.)\nartifacts:\n - .lumenflow/stamps/WU-XXX.done\n\n# Optional: Dependencies (other WUs that must complete first)\ndependencies: []\n\n# Optional: Risks\nrisks:\n - Risk 1\n\n# Optional: Notes\nnotes: ''\n\n# Optional: Requires human review\nrequires_review: false\n\n# Optional: Claimed mode (worktree or branch-only)\n# Automatically set by wu:claim, usually don't need to specify\n# claimed_mode: worktree\n\n# Optional: Assigned to (email of current claimant)\n# Automatically set by wu:claim\n# assigned_to: engineer@example.com\n\n# Optional: Locked status (prevents concurrent edits)\n# Automatically set by wu:claim and wu:done\n# locked: false\n\n# Optional: Completion date (ISO 8601 format)\n# Automatically set by wu:done\n# completed: 2025-10-23\n\n# Optional: Completion notes (added by wu:done)\n# completion_notes: |\n# Additional notes added during wu:done.\n# Any deviations from original plan.\n# Lessons learned.\n\n# ============================================================================\n# GOVERNANCE BLOCK (WU Schema v2.0)\n# ============================================================================\n# Optional: COS governance rules that apply to this WU\n# Only include if this WU needs specific governance enforcement\n\n# governance:\n# # Rules that apply to this WU (evaluated during cos:gates)\n# rules:\n# - rule_id: UPAIN-01\n# satisfied: false # Initially false, set true when evidence provided\n# evidence:\n# - type: link\n# value: docs/product/voc/feature-user-pain.md\n# description: "Voice of Customer analysis showing user pain"\n# notes: |\n# VOC analysis shows 40% of support tickets request this feature.\n# Average time wasted: 15min/user/week.\n#\n# - rule_id: CASH-03\n# satisfied: false\n# evidence:\n# - type: link\n# value: docs/finance/spend-reviews/2025-10-cloud-infra.md\n# description: "Spend review for £1200/month cloud infrastructure"\n# - type: approval\n# value: owner@example.com\n# description: "Owner approval for spend commitment"\n# notes: |\n# New cloud infrastructure commitment: £1200/month for 12 months.\n# ROI: Reduces latency by 50%, improves user retention.\n#\n# # Gate checks (enforced by cos-gates.ts)\n# gates:\n# narrative: "pending" # Status: pending, passed, skipped, failed\n# finance: "pending"\n#\n# # Exemptions (only if rule doesn't apply)\n# exemptions:\n# - rule_id: FAIR-01\n# reason: "No user-facing pricing changes in this WU"\n# approved_by: product-owner@example.com\n# approved_at: 2025-10-23\n\n# ============================================================================\n# USAGE NOTES\n# ============================================================================\n#\n# 1. Remove this entire governance block if no COS rules apply to your WU\n# 2. Only include rules that require enforcement (not all rules apply to all WUs)\n# 3. Evidence types: link:, metric:, screenshot:, approval:\n# 4. Gates are checked during wu:done (before merge)\n# 5. Exemptions require approval from rule owner\n#\n# For more details, see:\n# - docs/04-operations/_frameworks/cos/system-prompt-v1.3.md\n# - docs/04-operations/_frameworks/cos/evidence-format.md\n`;
718
+ // Template for docs tasks WU template YAML (scaffolded to {{DOCS_TASKS_PATH}}/templates/wu-template.yaml)
719
+ const WU_TEMPLATE_YAML = `# Work Unit Template (LumenFlow WU Schema)\n#\n# Copy this template when creating new WUs. Fill in all required fields and\n# remove optional fields if not needed.\n#\n# If you used "lumenflow init --full", this template lives at:\n# {{DOCS_TASKS_PATH}}/templates/wu-template.yaml\n\n# Required: Unique work unit identifier (format: WU-NNN)\nid: WU-XXX\n\n# Required: Short, descriptive title (max 80 chars)\ntitle: 'Your WU title here'\n\n# Required: Lane (Parent: Sublane format)\nlane: 'Framework: CLI'\n\n# Required: Type of work\ntype: 'feature' # feature | bug | documentation | process | tooling | chore | refactor\n\n# Required: Current status\nstatus: 'ready' # ready | in_progress | blocked | done | cancelled\n\n# Required: Priority\npriority: P2 # P0 | P1 | P2 | P3\n\n# Required: Creation date (YYYY-MM-DD)\ncreated: {{DATE}}\n\n# Required: Owner/assignee (email)\nassigned_to: 'unassigned@example.com'\n\n# Required: Description\ndescription: |\n Context: ...\n Problem: ...\n Solution: ...\n\n# Required: Acceptance criteria (testable, binary)\nacceptance:\n - Criterion 1 (specific, measurable, testable)\n - Criterion 2 (binary pass/fail)\n - Documentation updated\n\n# Required: References to plans/specs (required for type: feature)\n# Tip: use pnpm wu:create --plan to generate a plan stub at lumenflow://plans/WU-XXX-plan.md\nspec_refs:\n - lumenflow://plans/WU-XXX-plan.md\n\n# Required: Code files changed or created (empty only for docs/process WUs)\n# Docs-only WUs should use docs/ or *.md paths to avoid docs-only gate failures.\ncode_paths:\n - path/to/file.ts\n\n# Required: Test paths (at least one of manual/unit/e2e/integration for non-doc WUs)\ntests:\n manual:\n - Manual check: Verify behavior or docs output\n unit:\n - path/to/test.test.ts\n e2e: []\n integration: []\n\n# Required: Exposure level\nexposure: 'backend-only' # ui | api | backend-only | documentation\n\n# Optional: User journey (recommended for ui/api)\n# user_journey: |\n# User navigates to ...\n# User performs ...\n\n# Optional: UI pairing WUs (for api exposure)\n# ui_pairing_wus:\n# - WU-1234\n\n# Optional: Navigation path (required when exposure=ui and no page file)\n# navigation_path: '/settings'\n\n# Required: Deliverable artifacts (stamps, docs, etc.)\nartifacts:\n - .lumenflow/stamps/WU-XXX.done\n\n# Optional: Dependencies (other WUs that must complete first)\ndependencies: []\n\n# Optional: Risks\nrisks:\n - Risk 1\n\n# Optional: Notes (required by spec linter)\nnotes: 'Implementation notes, rollout context, or plan summary.'\n\n# Optional: Requires human review\nrequires_review: false\n\n# Optional: Claimed mode (worktree or branch-only)\n# Automatically set by wu:claim, usually don't need to specify\n# claimed_mode: worktree\n\n# Optional: Assigned to (email of current claimant)\n# Automatically set by wu:claim\n# assigned_to: engineer@example.com\n\n# Optional: Locked status (prevents concurrent edits)\n# Automatically set by wu:claim and wu:done\n# locked: false\n\n# Optional: Completion date (ISO 8601 format)\n# Automatically set by wu:done\n# completed: 2025-10-23\n\n# Optional: Completion notes (added by wu:done)\n# completion_notes: |\n# Additional notes added during wu:done.\n# Any deviations from original plan.\n# Lessons learned.\n\n# ============================================================================\n# GOVERNANCE BLOCK (WU Schema v2.0)\n# ============================================================================\n# Optional: COS governance rules that apply to this WU\n# Only include if this WU needs specific governance enforcement\n\n# governance:\n# # Rules that apply to this WU (evaluated during cos:gates)\n# rules:\n# - rule_id: UPAIN-01\n# satisfied: false # Initially false, set true when evidence provided\n# evidence:\n# - type: link\n# value: docs/product/voc/feature-user-pain.md\n# description: "Voice of Customer analysis showing user pain"\n# notes: |\n# VOC analysis shows 40% of support tickets request this feature.\n# Average time wasted: 15min/user/week.\n#\n# - rule_id: CASH-03\n# satisfied: false\n# evidence:\n# - type: link\n# value: docs/finance/spend-reviews/2025-10-cloud-infra.md\n# description: "Spend review for £1200/month cloud infrastructure"\n# - type: approval\n# value: owner@example.com\n# description: "Owner approval for spend commitment"\n# notes: |\n# New cloud infrastructure commitment: £1200/month for 12 months.\n# ROI: Reduces latency by 50%, improves user retention.\n#\n# # Gate checks (enforced by cos-gates.ts)\n# gates:\n# narrative: "pending" # Status: pending, passed, skipped, failed\n# finance: "pending"\n#\n# # Exemptions (only if rule doesn't apply)\n# exemptions:\n# - rule_id: FAIR-01\n# reason: "No user-facing pricing changes in this WU"\n# approved_by: product-owner@example.com\n# approved_at: 2025-10-23\n\n# ============================================================================\n# USAGE NOTES\n# ============================================================================\n#\n# 1. Remove this entire governance block if no COS rules apply to your WU\n# 2. Only include rules that require enforcement (not all rules apply to all WUs)\n# 3. Evidence types: link:, metric:, screenshot:, approval:\n# 4. Gates are checked during wu:done (before merge)\n# 5. Exemptions require approval from rule owner\n#\n# For more details, see:\n# - {{DOCS_OPERATIONS_PATH}}/_frameworks/cos/system-prompt-v1.3.md\n# - {{DOCS_OPERATIONS_PATH}}/_frameworks/cos/evidence-format.md\n`;
708
720
  // Template for .lumenflow.framework.yaml
709
721
  const FRAMEWORK_HINT_TEMPLATE = `# LumenFlow Framework Hint\n# Generated by: lumenflow init --framework {{FRAMEWORK_NAME}}\n\nframework: "{{FRAMEWORK_NAME}}"\nslug: "{{FRAMEWORK_SLUG}}"\n`;
710
722
  // Template for docs/04-operations/_frameworks/<framework>/README.md
@@ -1162,7 +1174,7 @@ If same error happens 3 times:
1162
1174
 
1163
1175
  \`\`\`bash
1164
1176
  # Check lane availability
1165
- cat docs/04-operations/tasks/status.md
1177
+ cat {{DOCS_TASKS_PATH}}/status.md
1166
1178
 
1167
1179
  # Claim a WU
1168
1180
  pnpm wu:claim --id WU-XXX --lane <Lane>
@@ -1469,7 +1481,7 @@ LumenFlow uses Work Units (WUs) to track all changes:
1469
1481
 
1470
1482
  ## Step 5: When Stuck
1471
1483
 
1472
- 1. Read the WU spec at \`docs/04-operations/tasks/wu/WU-XXX.yaml\`
1484
+ 1. Read the WU spec at \`{{DOCS_TASKS_PATH}}/wu/WU-XXX.yaml\`
1473
1485
  2. Check [troubleshooting-wu-done.md](troubleshooting-wu-done.md)
1474
1486
  3. Review [first-wu-mistakes.md](first-wu-mistakes.md)
1475
1487
 
@@ -1591,7 +1603,7 @@ pnpm wu:create \\
1591
1603
 
1592
1604
  ## After Creation
1593
1605
 
1594
- 1. Review the created YAML: \`cat docs/04-operations/tasks/wu/WU-XXX.yaml\`
1606
+ 1. Review the created YAML: \`cat {{DOCS_TASKS_PATH}}/wu/WU-XXX.yaml\`
1595
1607
  2. Claim the WU: \`pnpm wu:claim --id WU-XXX --lane "Lane"\`
1596
1608
  3. cd to worktree: \`cd worktrees/<lane>-wu-xxx\`
1597
1609
  `;
@@ -1628,10 +1640,10 @@ pnpm exec lumenflow doctor
1628
1640
 
1629
1641
  \`\`\`bash
1630
1642
  # Check status board
1631
- cat docs/04-operations/tasks/status.md
1643
+ cat {{DOCS_TASKS_PATH}}/status.md
1632
1644
 
1633
1645
  # List ready WUs
1634
- ls docs/04-operations/tasks/wu/*.yaml | head -5
1646
+ ls {{DOCS_TASKS_PATH}}/wu/*.yaml | head -5
1635
1647
  \`\`\`
1636
1648
 
1637
1649
  ---
@@ -2364,6 +2376,9 @@ export async function scaffoldProject(targetDir, options) {
2364
2376
  await createFile(path.join(targetDir, LUMENFLOW_AGENTS_DIR, '.gitkeep'), '', options.force ? 'force' : 'skip', result, targetDir);
2365
2377
  // WU-1342: Create .gitignore with required exclusions
2366
2378
  await scaffoldGitignore(targetDir, options, result);
2379
+ // WU-1408: Scaffold safe-git wrapper and pre-commit hook
2380
+ // These are core safety components needed for all projects
2381
+ await scaffoldSafetyScripts(targetDir, options, result);
2367
2382
  // Optional: full docs scaffolding
2368
2383
  if (options.full) {
2369
2384
  await scaffoldFullDocs(targetDir, options, result, tokenDefaults);
@@ -2460,36 +2475,150 @@ ${linesToAdd.join('\n')}
2460
2475
  await createFile(gitignorePath, GITIGNORE_TEMPLATE, fileMode, result, targetDir);
2461
2476
  }
2462
2477
  /**
2463
- * WU-1307: LumenFlow scripts to inject into package.json
2464
- * WU-1342: Expanded to include all 17 essential commands
2465
- * Uses standalone binaries (wu-claim, wu-done, gates) that work in consumer projects
2466
- * after installing @lumenflow/cli.
2478
+ * WU-1433: Script argument overrides for commands that need extra flags.
2479
+ * Most commands map simply to their binName, but some aliases need arguments.
2480
+ * Key = command name (colon notation), Value = full script command string.
2467
2481
  */
2468
- const LUMENFLOW_SCRIPTS = {
2469
- // Core WU lifecycle
2470
- 'wu:claim': 'wu-claim',
2471
- 'wu:done': 'wu-done',
2472
- 'wu:create': 'wu-create',
2473
- 'wu:proto': 'wu-proto', // WU-1359: Prototype WU with relaxed validation
2474
- 'wu:status': 'wu-status',
2475
- 'wu:block': 'wu-block',
2476
- 'wu:unblock': 'wu-unblock',
2477
- // WU-1342: Additional critical commands
2478
- 'wu:prep': 'wu-prep',
2479
- 'wu:recover': 'wu-recover',
2480
- 'wu:spawn': 'wu-spawn',
2481
- 'wu:validate': 'wu-validate',
2482
- 'wu:infer-lane': 'wu-infer-lane',
2483
- // Memory commands
2484
- 'mem:init': 'mem-init',
2485
- 'mem:checkpoint': 'mem-checkpoint',
2486
- 'mem:inbox': 'mem-inbox',
2487
- // Lane commands
2488
- 'lane:suggest': 'lane-suggest',
2489
- // Gates
2490
- gates: 'gates',
2482
+ const SCRIPT_ARG_OVERRIDES = {
2491
2483
  'gates:docs': 'gates --docs-only',
2492
2484
  };
2485
+ /**
2486
+ * WU-1307: LumenFlow scripts to inject into package.json
2487
+ * WU-1342: Expanded to include essential commands
2488
+ * WU-1433: Now derived from the public CLI manifest (WU-1432) instead of
2489
+ * hardcoded list. Ensures all public commands are exposed and avoids drift.
2490
+ */
2491
+ function generateLumenflowScripts() {
2492
+ const scripts = {};
2493
+ const manifest = getPublicManifest();
2494
+ for (const cmd of manifest) {
2495
+ // Use override if defined, otherwise map to the binary name
2496
+ scripts[cmd.name] = SCRIPT_ARG_OVERRIDES[cmd.name] ?? cmd.binName;
2497
+ }
2498
+ return scripts;
2499
+ }
2500
+ /** WU-1408: Safety script path constants */
2501
+ const SCRIPTS_DIR = 'scripts';
2502
+ const SAFE_GIT_FILE = 'safe-git';
2503
+ const HUSKY_DIR = '.husky';
2504
+ const PRE_COMMIT_FILE = 'pre-commit';
2505
+ const SAFE_GIT_TEMPLATE_PATH = 'core/scripts/safe-git.template';
2506
+ const PRE_COMMIT_TEMPLATE_PATH = 'core/.husky/pre-commit.template';
2507
+ /**
2508
+ * WU-1408: Scaffold safety scripts (safe-git wrapper and pre-commit hook)
2509
+ * These are core safety components needed for LumenFlow enforcement:
2510
+ * - scripts/safe-git: Blocks dangerous git operations (e.g., manual worktree remove)
2511
+ * - .husky/pre-commit: Blocks direct commits to main/master, enforces WU workflow
2512
+ *
2513
+ * Both scripts are scaffolded in all modes (full and minimal) because they are
2514
+ * required for lumenflow-doctor to pass.
2515
+ */
2516
+ async function scaffoldSafetyScripts(targetDir, options, result) {
2517
+ const fileMode = getFileMode(options);
2518
+ // Scaffold scripts/safe-git
2519
+ const safeGitPath = path.join(targetDir, SCRIPTS_DIR, SAFE_GIT_FILE);
2520
+ try {
2521
+ const safeGitTemplate = loadTemplate(SAFE_GIT_TEMPLATE_PATH);
2522
+ await createExecutableScript(safeGitPath, safeGitTemplate, fileMode, result, targetDir);
2523
+ }
2524
+ catch {
2525
+ // Fallback to hardcoded template if template file not found
2526
+ await createExecutableScript(safeGitPath, SAFE_GIT_TEMPLATE, fileMode, result, targetDir);
2527
+ }
2528
+ // Scaffold .husky/pre-commit
2529
+ const preCommitPath = path.join(targetDir, HUSKY_DIR, PRE_COMMIT_FILE);
2530
+ try {
2531
+ const preCommitTemplate = loadTemplate(PRE_COMMIT_TEMPLATE_PATH);
2532
+ await createExecutableScript(preCommitPath, preCommitTemplate, fileMode, result, targetDir);
2533
+ }
2534
+ catch {
2535
+ // Fallback to hardcoded template if template file not found
2536
+ await createExecutableScript(preCommitPath, PRE_COMMIT_TEMPLATE, fileMode, result, targetDir);
2537
+ }
2538
+ }
2539
+ /**
2540
+ * WU-1408: Fallback safe-git template
2541
+ * Blocks dangerous git operations in LumenFlow environment
2542
+ */
2543
+ const SAFE_GIT_TEMPLATE = `#!/bin/sh
2544
+ #
2545
+ # safe-git - LumenFlow safety wrapper for git
2546
+ #
2547
+ # Blocks dangerous operations that can corrupt agent state.
2548
+ # For all other commands, passes through to system git.
2549
+ #
2550
+
2551
+ set -e
2552
+
2553
+ # Block 'worktree remove'
2554
+ if [ "$1" = "worktree" ] && [ "$2" = "remove" ]; then
2555
+ echo "" >&2
2556
+ echo "=== LUMENFLOW SAFETY BLOCK ===" >&2
2557
+ echo "" >&2
2558
+ echo "BLOCKED: Manual 'git worktree remove' is unsafe in this environment." >&2
2559
+ echo "" >&2
2560
+ echo "REASON: Manual removal leaves orphan directories and corrupts agent state." >&2
2561
+ echo "" >&2
2562
+ echo "USE INSTEAD:" >&2
2563
+ echo " pnpm wu:done --id <ID> (To complete a task)" >&2
2564
+ echo " pnpm wu:cleanup --id <ID> (To discard a task)" >&2
2565
+ echo "==============================" >&2
2566
+ exit 1
2567
+ fi
2568
+
2569
+ # Pass through to real git
2570
+ exec git "$@"
2571
+ `;
2572
+ /**
2573
+ * WU-1408: Fallback pre-commit template
2574
+ * Blocks direct commits to main/master, allows commits on lane branches
2575
+ * Does NOT run pnpm test (which fails on new projects)
2576
+ */
2577
+ const PRE_COMMIT_TEMPLATE = `#!/bin/sh
2578
+ #
2579
+ # LumenFlow Pre-Commit Hook
2580
+ #
2581
+ # Enforces worktree discipline by blocking direct commits to main/master.
2582
+ # Does NOT assume pnpm test or any other commands exist.
2583
+ #
2584
+ # Rules:
2585
+ # 1. BLOCK commits to main/master (use WU workflow instead)
2586
+ # 2. ALLOW commits on lane branches (lane/*/wu-*)
2587
+ # 3. ALLOW commits on tmp/* branches (CLI micro-worktrees)
2588
+ #
2589
+
2590
+ # Skip on tmp/* branches (CLI micro-worktrees)
2591
+ BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)
2592
+ case "$BRANCH" in tmp/*) exit 0 ;; esac
2593
+
2594
+ # Check for force bypass
2595
+ if [ "$LUMENFLOW_FORCE" = "1" ]; then
2596
+ exit 0
2597
+ fi
2598
+
2599
+ # Block direct commits to main/master
2600
+ case "$BRANCH" in
2601
+ main|master)
2602
+ echo "" >&2
2603
+ echo "=== DIRECT COMMIT TO \${BRANCH} BLOCKED ===" >&2
2604
+ echo "" >&2
2605
+ echo "LumenFlow protects main from direct commits." >&2
2606
+ echo "" >&2
2607
+ echo "USE INSTEAD:" >&2
2608
+ echo " pnpm wu:claim --id WU-XXXX --lane \\"<Lane>\\"" >&2
2609
+ echo " cd worktrees/<lane>-wu-xxxx" >&2
2610
+ echo " # Make commits in the worktree" >&2
2611
+ echo "" >&2
2612
+ echo "EMERGENCY BYPASS (logged):" >&2
2613
+ echo " LUMENFLOW_FORCE=1 git commit ..." >&2
2614
+ echo "==========================================" >&2
2615
+ exit 1
2616
+ ;;
2617
+ esac
2618
+
2619
+ # Allow commits on other branches
2620
+ exit 0
2621
+ `;
2493
2622
  /**
2494
2623
  * WU-1300: Inject LumenFlow scripts into package.json
2495
2624
  * - Creates package.json if it doesn't exist
@@ -2518,8 +2647,9 @@ async function injectPackageJsonScripts(targetDir, options, result) {
2518
2647
  }
2519
2648
  const scripts = packageJson.scripts;
2520
2649
  let modified = false;
2521
- // Add LumenFlow scripts (only if not already present, unless --force)
2522
- for (const [scriptName, scriptCommand] of Object.entries(LUMENFLOW_SCRIPTS)) {
2650
+ // WU-1433: Derive scripts from public manifest (not hardcoded)
2651
+ const lumenflowScripts = generateLumenflowScripts();
2652
+ for (const [scriptName, scriptCommand] of Object.entries(lumenflowScripts)) {
2523
2653
  if (options.force || !(scriptName in scripts)) {
2524
2654
  if (!(scriptName in scripts)) {
2525
2655
  scripts[scriptName] = scriptCommand;
@@ -2657,6 +2787,15 @@ async function scaffoldClientFiles(targetDir, options, result, tokens, client) {
2657
2787
  settingsContent = CLAUDE_SETTINGS_TEMPLATE;
2658
2788
  }
2659
2789
  await createFile(path.join(targetDir, CLAUDE_DIR, 'settings.json'), settingsContent, options.force ? 'force' : 'skip', result, targetDir);
2790
+ // WU-1413: Scaffold .mcp.json for MCP server integration
2791
+ let mcpJsonContent;
2792
+ try {
2793
+ mcpJsonContent = loadTemplate('core/.mcp.json.template');
2794
+ }
2795
+ catch {
2796
+ mcpJsonContent = MCP_JSON_TEMPLATE;
2797
+ }
2798
+ await createFile(path.join(targetDir, '.mcp.json'), mcpJsonContent, fileMode, result, targetDir);
2660
2799
  // WU-1394: Scaffold recovery hook scripts with executable permissions
2661
2800
  const hooksDir = path.join(targetDir, CLAUDE_DIR, 'hooks');
2662
2801
  await createDirectory(hooksDir, result, targetDir);
@@ -2922,3 +3061,4 @@ if (import.meta.main) {
2922
3061
  process.exit(1);
2923
3062
  });
2924
3063
  }
3064
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}