@lumenflow/cli 3.10.0 → 3.11.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 (57) hide show
  1. package/README.md +78 -74
  2. package/dist/docs-sync.js +24 -29
  3. package/dist/docs-sync.js.map +1 -1
  4. package/dist/init-lane-validation.js +102 -17
  5. package/dist/init-lane-validation.js.map +1 -1
  6. package/dist/init-scaffolding.js +2 -9
  7. package/dist/init-scaffolding.js.map +1 -1
  8. package/dist/init.js +7 -18
  9. package/dist/init.js.map +1 -1
  10. package/dist/lane-lifecycle-process.js +16 -1
  11. package/dist/lane-lifecycle-process.js.map +1 -1
  12. package/dist/lane-suggest.js +5 -1
  13. package/dist/lane-suggest.js.map +1 -1
  14. package/dist/onboarding-template-paths.js +19 -0
  15. package/dist/onboarding-template-paths.js.map +1 -0
  16. package/dist/public-manifest.js +2 -2
  17. package/dist/public-manifest.js.map +1 -1
  18. package/dist/sync-templates.js +12 -1
  19. package/dist/sync-templates.js.map +1 -1
  20. package/dist/template-directory-resolver.js +71 -0
  21. package/dist/template-directory-resolver.js.map +1 -0
  22. package/dist/wu-done-check.js +33 -13
  23. package/dist/wu-done-check.js.map +1 -1
  24. package/dist/wu-done.js +6 -5
  25. package/dist/wu-done.js.map +1 -1
  26. package/dist/wu-spawn-prompt-builders.js +96 -23
  27. package/dist/wu-spawn-prompt-builders.js.map +1 -1
  28. package/package.json +8 -8
  29. package/packs/sidekick/.turbo/turbo-build.log +1 -1
  30. package/packs/sidekick/package.json +1 -1
  31. package/packs/software-delivery/.turbo/turbo-build.log +1 -1
  32. package/packs/software-delivery/package.json +1 -1
  33. package/templates/core/.lumenflow/constraints.md.template +3 -3
  34. package/templates/core/LUMENFLOW.md.template +17 -17
  35. package/templates/core/UPGRADING.md.template +30 -11
  36. package/templates/core/ai/onboarding/agent-safety-card.md.template +15 -16
  37. package/templates/core/ai/onboarding/first-15-mins.md.template +80 -0
  38. package/templates/core/ai/onboarding/first-wu-mistakes.md.template +3 -3
  39. package/templates/core/ai/onboarding/initiative-orchestration.md.template +1 -1
  40. package/templates/core/ai/onboarding/lane-inference.md.template +64 -0
  41. package/templates/core/ai/onboarding/local-only.md.template +56 -0
  42. package/templates/core/ai/onboarding/quick-ref-commands.md.template +122 -92
  43. package/templates/core/ai/onboarding/starting-prompt.md.template +91 -46
  44. package/templates/core/ai/onboarding/vendor-support.md.template +14 -20
  45. package/templates/core/ai/onboarding/wu-create-checklist.md.template +31 -82
  46. package/templates/core/ai/onboarding/wu-sizing-guide.md.template +48 -0
  47. package/templates/vendors/claude/.claude/skills/bug-classification/SKILL.md.template +2 -2
  48. package/templates/vendors/claude/.claude/skills/code-quality/SKILL.md.template +2 -2
  49. package/templates/vendors/claude/.claude/skills/context-management/SKILL.md.template +3 -3
  50. package/templates/vendors/claude/.claude/skills/execution-memory/SKILL.md.template +1 -1
  51. package/templates/vendors/claude/.claude/skills/initiative-management/SKILL.md.template +2 -2
  52. package/templates/vendors/claude/.claude/skills/library-first/SKILL.md.template +2 -2
  53. package/templates/vendors/claude/.claude/skills/lumenflow-gates/SKILL.md.template +3 -3
  54. package/templates/vendors/claude/.claude/skills/multi-agent-coordination/SKILL.md.template +2 -2
  55. package/templates/vendors/claude/.claude/skills/tdd-workflow/SKILL.md.template +3 -3
  56. package/templates/vendors/claude/.claude/skills/worktree-discipline/SKILL.md.template +10 -10
  57. package/templates/vendors/claude/.claude/skills/wu-lifecycle/SKILL.md.template +3 -3
@@ -13,10 +13,12 @@ This is the complete onboarding document for AI agents working with LumenFlow. R
13
13
  Before concluding a command doesn't exist, **always check what's available**:
14
14
 
15
15
  ```bash
16
- pnpm lumenflow:commands # List ALL available CLI commands (100+)
16
+ pnpm lumenflow:commands # List public CLI commands, aliases, and legacy surfaces
17
17
  ```
18
18
 
19
19
  LumenFlow has commands for WU lifecycle, maintenance, memory, initiatives, orchestration, metrics, packs, and more. Never guess or assume — run `pnpm lumenflow:commands` first.
20
+ Repo-only scripts such as `pnpm docs:validate` and `pnpm pre-release:check` are monorepo scripts,
21
+ not part of that public command list.
20
22
 
21
23
  ### Help-First Rule
22
24
 
@@ -102,7 +104,9 @@ If work spans multiple WUs or multiple days, create an initiative first.
102
104
  When creating WUs or scoping initiatives, always evaluate whether the assigned lane fits the actual work:
103
105
 
104
106
  - **Check code_paths alignment**: Compare the WU's `code_paths` against lane definitions in `workspace.yaml`. If the majority of paths belong to a different lane, propose a lane change.
105
- - **Use lane:suggest**: Run `pnpm lane:suggest --paths "src/file.ts"` to get a recommendation.
107
+ - **Use lane inference tooling correctly**:
108
+ - For a WU lane recommendation, run `pnpm wu:infer-lane --id WU-XXXX`.
109
+ - To regenerate derived lane taxonomy metadata, run `pnpm lane:suggest --output .lumenflow.lane-inference.yaml`.
106
110
  - **Propose changes proactively**: If scope expansion during implementation pushes a WU beyond its lane's boundaries, flag the mismatch to the user and suggest either a lane change or a WU split.
107
111
  - **Initiative-level review**: When planning an initiative with multiple WUs, ensure each WU is assigned to the lane whose `code_paths` best cover the work. Systematic mismatches signal that lane taxonomy may need updating.
108
112
 
@@ -112,7 +116,7 @@ When creating WUs or scoping initiatives, always evaluate whether the assigned l
112
116
 
113
117
  ```bash
114
118
  # 1. Check your assigned WU
115
- cat docs/04-operations/tasks/wu/WU-XXXX.yaml
119
+ cat {{DOCS_TASKS_PATH}}/wu/WU-XXXX.yaml
116
120
 
117
121
  # 2. Claim the WU (creates isolated worktree)
118
122
  pnpm wu:claim --id WU-XXXX --lane "Lane Name"
@@ -125,13 +129,12 @@ pnpm bootstrap
125
129
 
126
130
  # 4. Do your work here (not in main!)
127
131
 
128
- # 5. Run gates before completion
129
- pnpm gates # For code changes
130
- pnpm gates --docs-only # For documentation changes
132
+ # 5. Prep from the worktree (runs the correct gates)
133
+ pnpm wu:prep --id WU-XXXX
134
+ # This prints the copy-paste completion command
131
135
 
132
136
  # 6. Return to main and complete
133
- cd /path/to/main/checkout
134
- pnpm wu:done --id WU-XXXX
137
+ cd /path/to/main/checkout && pnpm wu:done --id WU-XXXX
135
138
  ```
136
139
 
137
140
  ## Quick Start -- Cloud / Branch-PR (Copy This)
@@ -140,7 +143,7 @@ For cloud agents (Codex, Claude web, CI bots) that cannot create local worktrees
140
143
 
141
144
  ```bash
142
145
  # 1. Check your assigned WU
143
- cat docs/04-operations/tasks/wu/WU-XXXX.yaml
146
+ cat {{DOCS_TASKS_PATH}}/wu/WU-XXXX.yaml
144
147
 
145
148
  # 2. Claim in cloud mode (no worktree, sets claimed_mode: branch-pr)
146
149
  pnpm wu:claim --id WU-XXXX --lane "Lane Name" --cloud
@@ -158,28 +161,28 @@ pnpm wu:done --id WU-XXXX
158
161
  pnpm wu:cleanup --id WU-XXXX
159
162
  ```
160
163
 
161
- **Cloud activation methods (in precedence order):**
164
+ **Activation is explicit-only:**
162
165
 
163
166
  1. `--cloud` flag on `wu:claim` (explicit, always wins)
164
167
  2. `LUMENFLOW_CLOUD=1` environment variable (explicit, always wins)
165
- 3. Config-driven auto-detection when `cloud.auto_detect: true` in `workspace.yaml`
166
168
 
167
- **Auto-detection configuration:**
169
+ Runtime identity env vars such as `CLAUDECODE`, `CODEX`, or `CI` do not activate cloud mode.
170
+ The `cloud.auto_detect` and `env_signals` config keys remain schema-supported metadata,
171
+ but they do not change runtime activation behavior.
168
172
 
169
173
  ```yaml
170
174
  # workspace.yaml
171
175
  cloud:
172
- auto_detect: true # default: false (opt-in)
173
- env_signals: # checked only when auto_detect is true
174
- - name: CI # presence check (any non-empty value)
175
- - name: CODEX
176
- - name: GITHUB_ACTIONS
177
- equals: 'true' # exact match required
176
+ auto_detect: false
177
+ env_signals: []
178
178
  ```
179
179
 
180
- When `auto_detect` is enabled, `wu:claim` checks the listed environment signals
181
- and activates cloud mode if any match. No vendor-specific signals are hardcoded;
182
- all signals are user-configured.
180
+ Use explicit activation instead:
181
+
182
+ ```bash
183
+ pnpm wu:claim --id WU-XXXX --lane "Lane Name" --cloud
184
+ LUMENFLOW_CLOUD=1 pnpm wu:claim --id WU-XXXX --lane "Lane Name"
185
+ ```
183
186
 
184
187
  ---
185
188
 
@@ -237,21 +240,26 @@ pnpm wu:claim --id WU-123 --lane "Framework: CLI" --cloud
237
240
 
238
241
  **Why:** Worktrees isolate your changes. Main checkout is protected by git hooks. Branch-PR mode is the valid exception for cloud agents that cannot create local worktrees.
239
242
 
240
- ### Rule 2: ALWAYS Run wu:done
243
+ ### Rule 2: Use wu:prep Then wu:done
241
244
 
242
- After gates pass, you MUST run `pnpm wu:done --id WU-XXXX` from the main checkout. Do not just write "To complete: run wu:done" - actually run it.
245
+ Completion is a two-step flow:
246
+
247
+ 1. From the worktree, run `pnpm wu:prep --id WU-XXXX`
248
+ 2. From main, copy-paste the printed `pnpm wu:done --id WU-XXXX` command
249
+
250
+ Do not just write "to complete: run wu:done" and stop.
243
251
 
244
252
  ```bash
245
253
  # WRONG
246
254
  "Work complete. Next step: run pnpm wu:done --id WU-123"
247
255
 
248
256
  # RIGHT
249
- cd /path/to/main
250
- pnpm wu:done --id WU-123
257
+ pnpm wu:prep --id WU-123
258
+ cd /path/to/main && pnpm wu:done --id WU-123
251
259
  # Then report: "WU-123 completed. Changes merged to main."
252
260
  ```
253
261
 
254
- **Why:** wu:done merges your changes, creates the completion stamp, and releases the lane lock.
262
+ **Why:** `wu:prep` runs the correct gates in the claimed workspace. `wu:done` then merges or opens the PR, writes the completion metadata, and releases the lane lock.
255
263
 
256
264
  ### Rule 3: Use Relative Paths Only
257
265
 
@@ -333,6 +341,16 @@ pnpm config:set --key gates.minCoverage --value 85
333
341
  pnpm config:set --key agents.methodology.principles --value Library-First,KISS
334
342
  ```
335
343
 
344
+ For lanes:
345
+
346
+ - `workspace.yaml` (`software_delivery.lanes.definitions`) is the source of truth for lane validation and claim-time lane checks.
347
+ - `.lumenflow.lane-inference.yaml` is derived metadata for suggestion/classification workflows.
348
+ - After lane definition changes, regenerate taxonomy metadata with:
349
+
350
+ ```bash
351
+ pnpm lane:suggest --output .lumenflow.lane-inference.yaml
352
+ ```
353
+
336
354
  ### Modifying WU YAML Specs
337
355
 
338
356
  ```bash
@@ -384,7 +402,7 @@ git add . && git commit -m "your message"
384
402
  **Fix:** Regenerate the backlog or manually add the missing WU:
385
403
 
386
404
  ```bash
387
- # In worktree, edit docs/04-operations/tasks/backlog.md
405
+ # In worktree, edit {{DOCS_TASKS_PATH}}/backlog.md
388
406
  # Add the missing WU reference in the appropriate section
389
407
  ```
390
408
 
@@ -490,6 +508,33 @@ pnpm wu:delegate --id WU-XXXX --parent-wu WU-YYYY --client <client-type>
490
508
 
491
509
  **IMPORTANT:** The `--client` flag identifies your IDE/tool environment, NOT the underlying AI model. Use `--client windsurf` even if Windsurf is running a Claude agent.
492
510
 
511
+ ### Guidance Profiles (WU-2309 / WU-2329)
512
+
513
+ `wu:brief` verification guidance is profile-aware and ships with sensible built-in defaults.
514
+ Project-local `.lumenflow/templates` is optional and only needed when you want different wording,
515
+ extra project commands, or client-specific overrides.
516
+
517
+ - New installs get the current defaults automatically.
518
+ - Existing installs get the runtime defaults after `pnpm lumenflow:upgrade --latest`.
519
+ - Run `pnpm docs:sync --force` when you also want refreshed scaffolded onboarding docs and
520
+ supported vendor assets.
521
+
522
+ Default profiles:
523
+
524
+ - Behavior/logic changes: follow project policy (`methodology.testing`: `tdd`, `test-after`, or `none`).
525
+ - Structured-content-only changes (`.yaml/.yml/.json/.md/.mdx`): use parse/schema/lint/eval evidence; TDD checkpoint is omitted.
526
+ - UI presentation hints: prefer smoke/manual/integration/E2E verification and use unit tests for pure logic or explicitly required checks.
527
+
528
+ Common override points include `visual-directive`, `structured-content-directive`,
529
+ `verification-requirements`, and `design-context-ui`.
530
+
531
+ Domain-specific commands must come from local configuration, not core framework code:
532
+
533
+ - Template manifest: `.lumenflow/templates/manifest.yaml`
534
+ - Base templates: `.lumenflow/templates/spawn-prompt/*.md`
535
+ - Client overrides: `.lumenflow/templates.{client}/spawn-prompt/*.md`
536
+ - Client config: `workspace.yaml` under `software_delivery.agents.clients.*`
537
+
493
538
  ### Sub-Agent Coordination
494
539
 
495
540
  - Sub-agents work in isolated micro-worktrees
@@ -501,23 +546,22 @@ pnpm wu:delegate --id WU-XXXX --parent-wu WU-YYYY --client <client-type>
501
546
 
502
547
  ## WU Lifecycle Commands
503
548
 
504
- | Command | Description | When to Use |
505
- | ---------------------------------------------- | ---------------------------------------- | --------------------------- |
506
- | `pnpm wu:status --id WU-XXX` | Show WU state and valid commands | Check current state |
507
- | `pnpm wu:claim --id WU-XXX --lane "Lane"` | Claim WU and create worktree (default) | Start working (local) |
508
- | `pnpm wu:claim --id WU-XXX --lane "L" --cloud` | Claim WU in branch-pr mode (no worktree) | Start working (cloud) |
509
- | `pnpm wu:edit --id WU-XXX --field value` | Edit WU spec fields | Update notes/desc |
510
- | `pnpm wu:brief --id WU-XXX --client X` | Generate handoff prompt + evidence | Complex WUs |
511
- | `pnpm wu:brief --id WU-XXX --evidence-only` | Record evidence only (no prompt output) | Self-implementation path |
512
- | `pnpm wu:delegate --id WU-XXX --parent-wu P` | Generate prompt + record delegation | Auditable delegation flows |
513
- | `pnpm gates` | Run quality gates | Before wu:done |
514
- | `pnpm gates --docs-only` | Run docs-only gates | For documentation WUs |
515
- | `pnpm wu:done --id WU-XXX` | Complete WU (merge or PR, cleanup) | After gates pass |
516
- | `pnpm wu:cleanup --id WU-XXX` | Post-merge cleanup (branch-pr) | After PR merge (cloud only) |
517
- | `pnpm wu:escalate --id WU-XXX` | Show or resolve escalation status | Escalation-triggered WUs |
518
- | `pnpm wu:escalate --resolve --id WU-XXX` | Resolve human escalation | Before wu:done (escalation) |
519
- | `pnpm wu:delete --id WU-XXX` | Delete WU spec and cleanup | Cancel stale/throwaway WUs |
520
- | `pnpm wu:recover --id WU-XXX` | Fix inconsistent WU state | When state is broken |
549
+ | Command | Description | When to Use |
550
+ | ---------------------------------------------- | ----------------------------------------------- | --------------------------- |
551
+ | `pnpm wu:status --id WU-XXX` | Show WU state and valid commands | Check current state |
552
+ | `pnpm wu:claim --id WU-XXX --lane "Lane"` | Claim WU and create worktree (default) | Start working (local) |
553
+ | `pnpm wu:claim --id WU-XXX --lane "L" --cloud` | Claim WU in branch-pr mode (no worktree) | Start working (cloud) |
554
+ | `pnpm wu:edit --id WU-XXX --field value` | Edit WU spec fields | Update notes/desc |
555
+ | `pnpm wu:brief --id WU-XXX --client X` | Generate handoff prompt + evidence | Complex WUs |
556
+ | `pnpm wu:brief --id WU-XXX --evidence-only` | Record evidence only (no prompt output) | Self-implementation path |
557
+ | `pnpm wu:delegate --id WU-XXX --parent-wu P` | Generate prompt + record delegation | Auditable delegation flows |
558
+ | `pnpm wu:prep --id WU-XXX` | Run gates in claimed workspace, prep completion | Before wu:done |
559
+ | `pnpm wu:done --id WU-XXX` | Complete WU (merge or PR, cleanup) | After gates pass |
560
+ | `pnpm wu:cleanup --id WU-XXX` | Post-merge cleanup (branch-pr) | After PR merge (cloud only) |
561
+ | `pnpm wu:escalate --id WU-XXX` | Show or resolve escalation status | Escalation-triggered WUs |
562
+ | `pnpm wu:escalate --resolve --id WU-XXX` | Resolve human escalation | Before wu:done (escalation) |
563
+ | `pnpm wu:delete --id WU-XXX` | Delete WU spec and cleanup | Cancel stale/throwaway WUs |
564
+ | `pnpm wu:recover --id WU-XXX` | Fix inconsistent WU state | When state is broken |
521
565
 
522
566
  ---
523
567
 
@@ -525,7 +569,7 @@ pnpm wu:delegate --id WU-XXXX --parent-wu WU-YYYY --client <client-type>
525
569
 
526
570
  ```
527
571
  /path/to/repo/
528
- ├── docs/04-operations/tasks/
572
+ ├── {{DOCS_TASKS_PATH}}/
529
573
  │ ├── backlog.md # All WUs listed here (auto-generated, don't edit)
530
574
  │ └── wu/WU-XXXX.yaml # Individual WU specs
531
575
  ├── worktrees/
@@ -544,7 +588,7 @@ pnpm wu:delegate --id WU-XXXX --parent-wu WU-YYYY --client <client-type>
544
588
  Before reporting a WU complete, verify:
545
589
 
546
590
  - [ ] All acceptance criteria in WU YAML are satisfied
547
- - [ ] Gates pass (`pnpm gates` or `pnpm gates --docs-only`)
591
+ - [ ] `pnpm wu:prep --id WU-XXX` ran successfully in the claimed workspace
548
592
  - [ ] `pnpm wu:done --id WU-XXX` ran successfully
549
593
  - [ ] Output shows "Marked done, pushed, and cleaned up"
550
594
  - [ ] Worktree was removed (check `ls worktrees/`)
@@ -685,4 +729,5 @@ rm -rf /tmp/nextjs-scaffold
685
729
  - [troubleshooting-wu-done.md](troubleshooting-wu-done.md) - Why agents forget wu:done
686
730
  - [first-wu-mistakes.md](first-wu-mistakes.md) - Common mistakes to avoid
687
731
  - [quick-ref-commands.md](quick-ref-commands.md) - Command reference
732
+ - [wu-sizing-guide.md](wu-sizing-guide.md) - Context safety and WU sizing
688
733
  - [initiative-orchestration.md](initiative-orchestration.md) - Initiative orchestration, delegation, recovery
@@ -187,31 +187,25 @@ pnpm wu:claim --id WU-XXX --lane "<Lane>" --cloud
187
187
  LUMENFLOW_CLOUD=1 pnpm wu:claim --id WU-XXX --lane "<Lane>"
188
188
  ```
189
189
 
190
- Explicit activation (`--cloud` or `LUMENFLOW_CLOUD=1`) always takes precedence over
191
- auto-detection.
190
+ Cloud activation is explicit-only. `--cloud` and `LUMENFLOW_CLOUD=1` are the only
191
+ runtime activation paths.
192
192
 
193
- ### Config-Driven Auto-Detection (Opt-In)
193
+ ### Cloud Config Compatibility Fields
194
194
 
195
- For environments where agents should automatically enter cloud mode, enable
196
- auto-detection in `workspace.yaml`:
195
+ The workspace schema still carries `cloud.auto_detect` and `env_signals`, but they do
196
+ not activate cloud mode at runtime:
197
197
 
198
198
  ```yaml
199
199
  cloud:
200
- auto_detect: true # default: false
201
- env_signals:
202
- - name: CI # presence check (any non-empty value)
203
- - name: CODEX
204
- - name: GITHUB_ACTIONS
205
- equals: 'true' # exact match required
200
+ auto_detect: false
201
+ env_signals: []
206
202
  ```
207
203
 
208
204
  **Key design decisions:**
209
205
 
210
- - `auto_detect` defaults to `false` (opt-in, not opt-out)
211
- - No vendor-specific signals are hardcoded; all signals are user-configured
212
- - Each signal supports either presence checks (`name` only) or exact-value
213
- matches (`name` + `equals`)
214
- - Explicit activation always wins over auto-detection
206
+ - Runtime identity signals are intentionally ignored for activation
207
+ - Explicit activation always wins because it is the only activation path
208
+ - Config fields remain for compatibility, migration, and future policy metadata
215
209
 
216
210
  ### Cloud Lifecycle
217
211
 
@@ -225,10 +219,10 @@ cloud:
225
219
 
226
220
  ### Vendor-Specific Notes
227
221
 
228
- - **Codex**: Set `LUMENFLOW_CLOUD=1` in the environment or configure auto-detection with `name: CODEX`
229
- - **Claude web**: Use `--cloud` flag explicitly or configure `name: CLAUDE_CODE` in env_signals
230
- - **GitHub Actions**: Configure `name: GITHUB_ACTIONS, equals: 'true'` in env_signals
231
- - **Antigravity**: Expected to work with explicit `--cloud` flag; auto-detection signals TBD
222
+ - **Codex**: Set `LUMENFLOW_CLOUD=1` or pass `--cloud`
223
+ - **Claude web**: Use `--cloud` explicitly
224
+ - **GitHub Actions**: Set `LUMENFLOW_CLOUD=1` in the job environment
225
+ - **Antigravity**: Use explicit `--cloud` activation
232
226
 
233
227
  ---
234
228
 
@@ -2,116 +2,65 @@
2
2
 
3
3
  **Last updated:** {{DATE}}
4
4
 
5
- Before running `pnpm wu:create`, verify these items.
5
+ Use this checklist before running `pnpm wu:create`.
6
6
 
7
7
  ---
8
8
 
9
- ## Step 1: Check Valid Lanes
9
+ ## Step 1: Confirm the Lane
10
10
 
11
11
  ```bash
12
- grep -A 30 "lanes:" workspace.yaml
12
+ pnpm lane:status
13
+ pnpm wu:infer-lane --paths "packages/@lumenflow/cli/src/init.ts" --desc "Fix init docs drift"
13
14
  ```
14
15
 
15
- **Format:** `"Parent: Sublane"` (colon + single space)
16
-
17
- Examples:
18
-
19
- - `"Framework: CLI"`
20
- - `"Framework: Core"`
21
- - `"Operations: CI/CD"`
22
- - `"Content: Documentation"`
16
+ The lane should match the real implementation scope, not just the first file you noticed.
23
17
 
24
18
  ---
25
19
 
26
- ## Step 2: Required Fields
20
+ ## Step 2: Gather the Required Fields
27
21
 
28
- | Field | Required For | Example |
29
- | ------------------ | ------------ | ------------------------------------------------ |
30
- | `--id` | All | `WU-1234` |
31
- | `--lane` | All | `"Experience: Chat"` |
32
- | `--title` | All | `"Add feature"` |
33
- | `--description` | All | `"Context: ... Problem: ... Solution: ..."` |
34
- | `--acceptance` | All | `--acceptance "Works"` (repeatable) |
35
- | `--exposure` | All | `ui`, `api`, `backend-only`, `documentation` |
36
- | `--code-paths` | Code WUs | `"src/a.ts,src/b.ts"` |
37
- | `--test-paths-unit`| Code WUs | `"src/__tests__/a.test.ts"` |
38
- | `--spec-refs` | Feature WUs | `"lumenflow://plans/WU-XXX-plan.md"` |
39
-
40
- ---
22
+ | Field | Required For | Example |
23
+ | --------------------- | --------------------- | ------------------------------------------------------ |
24
+ | `--lane` | All WUs | `"Framework: CLI"` |
25
+ | `--title` | All WUs | `"Eliminate onboarding docs drift"` |
26
+ | `--description` | All WUs | `"Context: ... Problem: ... Solution: ..."` |
27
+ | `--acceptance` | All WUs | `--acceptance "Docs and templates stay aligned"` |
28
+ | `--exposure` | All WUs | `documentation` |
29
+ | `--code-paths` | Non-documentation WUs | `"packages/@lumenflow/cli/src/init.ts"` |
30
+ | `--test-paths-manual` | Non-documentation WUs | `"Run focused init/docs-sync tests"` |
31
+ | `--test-paths-unit` | Code WUs | `"packages/@lumenflow/cli/src/__tests__/init.test.ts"` |
32
+ | `--spec-refs` | Feature WUs | `"lumenflow://plans/WU-XXXX-plan.md"` |
41
33
 
42
- ## Step 3: Plan Storage
43
-
44
- Plans go in `$LUMENFLOW_HOME/plans/` (NOT in project):
45
-
46
- ```bash
47
- mkdir -p $LUMENFLOW_HOME/plans
48
- # or if LUMENFLOW_HOME is not set:
49
- mkdir -p ~/.lumenflow/plans
50
-
51
- # Create your plan
52
- vim ~/.lumenflow/plans/WU-XXX-plan.md
53
- ```
54
-
55
- Reference in wu:create:
56
-
57
- ```bash
58
- --spec-refs "lumenflow://plans/WU-XXX-plan.md"
59
- ```
34
+ `--id` is optional. If omitted, `wu:create` allocates the next WU ID automatically.
60
35
 
61
36
  ---
62
37
 
63
- ## Step 4: Validate First
38
+ ## Step 3: Decide Plan Storage
39
+
40
+ If the work needs a plan, prefer repo-native or `lumenflow://plans/` references:
64
41
 
65
42
  ```bash
66
- pnpm wu:create --id WU-XXX ... --validate
43
+ pnpm plan:create --id INIT-XXX --title "Plan title"
44
+ pnpm wu:create --lane "Framework: CLI" --title "..." --plan
67
45
  ```
68
46
 
69
- Fix errors, then remove `--validate` to create.
47
+ Avoid pointing `--spec-refs` at random local filesystem notes that other agents cannot resolve.
70
48
 
71
49
  ---
72
50
 
73
- ## Complete Example
51
+ ## Step 4: Validate Before Creating
74
52
 
75
53
  ```bash
76
- pnpm wu:create \
77
- --id WU-1234 \
78
- --lane "Framework: CLI" \
79
- --title "Add feature X" \
80
- --description "Context: Users need X. Problem: X doesn't exist. Solution: Add X." \
81
- --acceptance "Feature X works as specified" \
82
- --acceptance "Unit tests pass with >90% coverage" \
83
- --code-paths "packages/@lumenflow/cli/src/x.ts" \
84
- --test-paths-unit "packages/@lumenflow/cli/__tests__/x.test.ts" \
85
- --exposure backend-only \
86
- --spec-refs "lumenflow://plans/WU-1234-plan.md"
54
+ pnpm wu:create --lane "Framework: CLI" --title "..." --description "..." \
55
+ --acceptance "..." --exposure documentation --validate
87
56
  ```
88
57
 
89
- ---
90
-
91
- ## Common Errors
92
-
93
- ### "Lane format invalid"
94
-
95
- **Cause:** Missing colon or space in lane format.
96
-
97
- **Fix:** Use `"Parent: Sublane"` format (colon + space).
98
-
99
- ### "Missing required field"
100
-
101
- **Cause:** Required field not provided.
102
-
103
- **Fix:** Add the missing `--field` argument.
104
-
105
- ### "WU already exists"
106
-
107
- **Cause:** WU with this ID already exists.
108
-
109
- **Fix:** Use a different ID or check existing WUs.
58
+ Let validation tell you which fields are still missing before you create the real spec.
110
59
 
111
60
  ---
112
61
 
113
62
  ## After Creation
114
63
 
115
- 1. Review the created YAML: `cat docs/04-operations/tasks/wu/WU-XXX.yaml`
116
- 2. Claim the WU: `pnpm wu:claim --id WU-XXX --lane "Lane"`
117
- 3. cd to worktree: `cd worktrees/<lane>-wu-xxx`
64
+ 1. Review `{{DOCS_TASKS_PATH}}/wu/WU-XXX.yaml`.
65
+ 2. Claim it with `pnpm wu:claim --id WU-XXX --lane "<Lane>"`.
66
+ 3. Move into the worktree immediately.
@@ -0,0 +1,48 @@
1
+ # Work Unit Sizing Guide
2
+
3
+ **Last updated:** {{DATE}}
4
+
5
+ Use this summary when deciding whether a WU still fits in a single agent session.
6
+
7
+ ---
8
+
9
+ ## Baseline Heuristics
10
+
11
+ | Complexity | Files | Tool Calls | Suggested Strategy |
12
+ | ---------- | ----- | ---------- | --------------------------- |
13
+ | Simple | <20 | <50 | Single session |
14
+ | Medium | 20-50 | 50-100 | Checkpoint and resume |
15
+ | Complex | 50+ | 100+ | Decompose or orchestrate |
16
+ | Oversized | 100+ | 200+ | Split before implementation |
17
+
18
+ These are guardrails, not a license to keep pushing once context is clearly degrading.
19
+
20
+ ---
21
+
22
+ ## Context Safety Triggers
23
+
24
+ Checkpoint and hand off when any of these happen:
25
+
26
+ - Context usage approaches 50% and is still climbing
27
+ - Tool calls exceed roughly 50 in one session
28
+ - File churn keeps widening without clear closure
29
+ - You have to repeatedly rediscover the same repo rules
30
+
31
+ ---
32
+
33
+ ## Recovery Pattern
34
+
35
+ ```bash
36
+ pnpm mem:checkpoint "state before handoff" --wu WU-XXX
37
+ pnpm wu:brief --id WU-XXX --client codex-cli
38
+ ```
39
+
40
+ If the WU is clearly too large, split it instead of relying on a heroic handoff.
41
+
42
+ ---
43
+
44
+ ## Docs-Only Exception
45
+
46
+ Documentation WUs can tolerate broader file counts when the change pattern is shallow and mechanical, but they still need to stay understandable in one session.
47
+
48
+ If the docs work starts spilling into CLI, core, or packaging changes, treat it like a normal cross-code WU again.
@@ -2,7 +2,7 @@
2
2
  name: bug-classification
3
3
  description: Classify bugs (P0-P3) and determine fix-in-place vs separate Bug WU. Use when bug discovered mid-WU, deciding bug priority, or handling production issues.
4
4
  version: 1.0.0
5
- source: docs/04-operations/_frameworks/lumenflow/lumenflow-agent-capsule.md
5
+ source: {{DOCS_OPERATIONS_PATH}}/_frameworks/lumenflow/lumenflow-agent-capsule.md
6
6
  source_sections: §8 (Bug Handling Mid-WU)
7
7
  last_updated: {{DATE}}
8
8
  allowed-tools: Read, Grep
@@ -189,4 +189,4 @@ blocking: []
189
189
 
190
190
  ## Reference
191
191
 
192
- See [LumenFlow Agent Capsule](../../../docs/04-operations/_frameworks/lumenflow/lumenflow-agent-capsule.md) for complete bug handling guide.
192
+ See [LumenFlow Agent Capsule](../../../{{DOCS_OPERATIONS_PATH}}/_frameworks/lumenflow/lumenflow-agent-capsule.md) for complete bug handling guide.
@@ -2,7 +2,7 @@
2
2
  name: code-quality
3
3
  description: Shared patterns for SOLID/DRY code review, hexagonal architecture compliance, TypeScript best practices, and performance anti-patterns. Use when reviewing code quality, checking architecture boundaries, or validating TypeScript patterns.
4
4
  version: 1.1.0
5
- source: docs/04-operations/_frameworks/lumenflow/lumenflow-agent-capsule.md
5
+ source: {{DOCS_OPERATIONS_PATH}}/_frameworks/lumenflow/lumenflow-agent-capsule.md
6
6
  source_sections: Core Principles, Hexagonal Architecture
7
7
  last_updated: {{DATE}}
8
8
  allowed-tools: Read, Grep, Glob
@@ -10,7 +10,7 @@ allowed-tools: Read, Grep, Glob
10
10
 
11
11
  # Code Quality Skill
12
12
 
13
- **Source**: `docs/04-operations/_frameworks/lumenflow/lumenflow-agent-capsule.md` (canonical)
13
+ **Source**: `{{DOCS_OPERATIONS_PATH}}/_frameworks/lumenflow/lumenflow-agent-capsule.md` (canonical)
14
14
 
15
15
  ## When to Use
16
16
 
@@ -2,7 +2,7 @@
2
2
  name: context-management
3
3
  description: Session checkpoint patterns, output bypass for large results, when to spawn fresh sub-agents. Use for long-running sessions, context exhaustion, or agent coordination.
4
4
  version: 1.4.0
5
- source: docs/04-operations/_frameworks/lumenflow/agent/onboarding/agent-invocation-guide.md
5
+ source: {{DOCS_ONBOARDING_PATH}}/agent-invocation-guide.md
6
6
  source_sections: Context Tiers, Session Management, Wave Orchestration
7
7
  last_updated: {{DATE}}
8
8
  allowed-tools: Read, Write, Bash
@@ -10,7 +10,7 @@ allowed-tools: Read, Write, Bash
10
10
 
11
11
  # Context Management Skill
12
12
 
13
- **Source**: `docs/04-operations/_frameworks/lumenflow/agent/onboarding/agent-invocation-guide.md`
13
+ **Source**: `{{DOCS_ONBOARDING_PATH}}/agent-invocation-guide.md`
14
14
 
15
15
  Patterns for managing context in long-running AI coding sessions.
16
16
 
@@ -56,7 +56,7 @@ pnpm wu:brief --id WU-XXX --client claude-code
56
56
  - Recovery mechanisms are complex and vendor-specific
57
57
  - Prevention (fresh agent) is simpler and more reliable than recovery
58
58
 
59
- **This is not failure—it's disciplined execution.** See [wu-sizing-guide.md](../../../docs/04-operations/_frameworks/lumenflow/wu-sizing-guide.md) for complete sizing thresholds.
59
+ **This is not failure—it's disciplined execution.** See [wu-sizing-guide.md](../../../{{DOCS_OPERATIONS_PATH}}/_frameworks/lumenflow/wu-sizing-guide.md) for complete sizing thresholds.
60
60
 
61
61
  ---
62
62
 
@@ -2,7 +2,7 @@
2
2
  name: execution-memory
3
3
  description: Memory layer for session tracking, context recovery, and agent coordination. Use when resuming work after /clear, coordinating with parallel agents, or managing long-running sessions.
4
4
  version: 1.2.0
5
- source: docs/04-operations/_frameworks/lumenflow/agent/onboarding/quick-ref-commands.md
5
+ source: {{QUICK_REF_LINK}}
6
6
  source_sections: Memory Commands
7
7
  last_updated: {{DATE}}
8
8
  allowed-tools: Read, Bash, Grep
@@ -94,7 +94,7 @@ Edits initiative YAML fields atomically using micro-worktree isolation:
94
94
 
95
95
  ## Initiative Structure
96
96
 
97
- Initiatives are defined in `docs/04-operations/tasks/initiatives/INIT-001.yaml`:
97
+ Initiatives are defined in `{{DOCS_TASKS_PATH}}/initiatives/INIT-001.yaml`:
98
98
 
99
99
  ```yaml
100
100
  id: INIT-001
@@ -157,7 +157,7 @@ pnpm wu:brief --id WU-1504 --evidence-only # Evidence only, no prompt ou
157
157
  - Validation agents checking orchestrator's work
158
158
  - Explore agents for codebase research
159
159
 
160
- See [agent-invocation-guide.md](../../../docs/04-operations/_frameworks/lumenflow/agent/onboarding/agent-invocation-guide.md) for decision tree.
160
+ See [agent-invocation-guide.md](../../../{{DOCS_ONBOARDING_PATH}}/agent-invocation-guide.md) for decision tree.
161
161
 
162
162
  ## Best Practices
163
163
 
@@ -2,7 +2,7 @@
2
2
  name: library-first
3
3
  description: Validate well-known libraries solve your problem before custom code. Use when implementing parsing, dates, validation, or any non-trivial logic.
4
4
  version: 1.0.0
5
- source: docs/04-operations/_frameworks/lumenflow/agent/onboarding/library-first-toolkit.md
5
+ source: {{DOCS_ONBOARDING_PATH}}/library-first-toolkit.md
6
6
  source_sections: Validation Protocol, Decision Tree, Context7 Query Templates
7
7
  last_updated: {{DATE}}
8
8
  allowed-tools: Read, mcp__context7__*
@@ -10,7 +10,7 @@ allowed-tools: Read, mcp__context7__*
10
10
 
11
11
  # Library-First Skill
12
12
 
13
- **Source**: `docs/04-operations/_frameworks/lumenflow/agent/onboarding/library-first-toolkit.md` (canonical)
13
+ **Source**: `{{DOCS_ONBOARDING_PATH}}/library-first-toolkit.md` (canonical)
14
14
 
15
15
  Search for libraries BEFORE writing custom code. Custom implementations create debt, violate DRY/SOLID, and introduce bugs that libraries have already solved.
16
16
 
@@ -2,7 +2,7 @@
2
2
  name: lumenflow-gates
3
3
  description: Quality gates troubleshooting (format, lint, typecheck, tests). Use when gates fail, debugging format/lint/typecheck errors, or determining if failure is from your changes vs pre-existing.
4
4
  version: 2.1.0
5
- source: docs/04-operations/_frameworks/lumenflow/lumenflow-agent-capsule.md
5
+ source: {{DOCS_OPERATIONS_PATH}}/_frameworks/lumenflow/lumenflow-agent-capsule.md
6
6
  source_sections: Validation & Gates
7
7
  last_updated: {{DATE}}
8
8
  allowed-tools: Read, Bash, Grep
@@ -10,7 +10,7 @@ allowed-tools: Read, Bash, Grep
10
10
 
11
11
  # LumenFlow Gates Skill
12
12
 
13
- **Source**: `docs/04-operations/_frameworks/lumenflow/lumenflow-agent-capsule.md` (canonical)
13
+ **Source**: `{{DOCS_OPERATIONS_PATH}}/_frameworks/lumenflow/lumenflow-agent-capsule.md` (canonical)
14
14
 
15
15
  ## When to Use
16
16
 
@@ -84,4 +84,4 @@ pnpm tasks:validate # WU YAML validation
84
84
 
85
85
  ---
86
86
 
87
- **Full spec**: [LumenFlow Agent Capsule](../../../docs/04-operations/_frameworks/lumenflow/lumenflow-agent-capsule.md)
87
+ **Full spec**: [LumenFlow Agent Capsule](../../../{{DOCS_OPERATIONS_PATH}}/_frameworks/lumenflow/lumenflow-agent-capsule.md)