@lumenflow/cli 3.13.0 → 3.13.2
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.
- package/package.json +8 -8
- package/packs/sidekick/.turbo/turbo-build.log +1 -1
- package/packs/sidekick/package.json +1 -1
- package/packs/software-delivery/.turbo/turbo-build.log +1 -1
- package/packs/software-delivery/package.json +1 -1
- package/templates/core/LUMENFLOW.md.template +11 -1
- package/templates/core/ai/onboarding/first-wu-mistakes.md.template +11 -2
- package/templates/core/ai/onboarding/initiative-orchestration.md.template +3 -0
- package/templates/core/ai/onboarding/quick-ref-commands.md.template +14 -14
- package/templates/core/ai/onboarding/starting-prompt.md.template +24 -21
- package/templates/core/ai/onboarding/wu-sizing-guide.md.template +36 -9
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lumenflow/cli",
|
|
3
|
-
"version": "3.13.
|
|
3
|
+
"version": "3.13.2",
|
|
4
4
|
"description": "Command-line interface for LumenFlow workflow framework",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"lumenflow",
|
|
@@ -185,13 +185,13 @@
|
|
|
185
185
|
"xstate": "^5.28.0",
|
|
186
186
|
"yaml": "^2.8.2",
|
|
187
187
|
"zod": "^4.3.6",
|
|
188
|
-
"@lumenflow/agent": "3.13.
|
|
189
|
-
"@lumenflow/
|
|
190
|
-
"@lumenflow/
|
|
191
|
-
"@lumenflow/initiatives": "3.13.
|
|
192
|
-
"@lumenflow/kernel": "3.13.
|
|
193
|
-
"@lumenflow/
|
|
194
|
-
"@lumenflow/
|
|
188
|
+
"@lumenflow/agent": "3.13.2",
|
|
189
|
+
"@lumenflow/control-plane-sdk": "3.13.2",
|
|
190
|
+
"@lumenflow/core": "3.13.2",
|
|
191
|
+
"@lumenflow/initiatives": "3.13.2",
|
|
192
|
+
"@lumenflow/kernel": "3.13.2",
|
|
193
|
+
"@lumenflow/metrics": "3.13.2",
|
|
194
|
+
"@lumenflow/memory": "3.13.2"
|
|
195
195
|
},
|
|
196
196
|
"devDependencies": {
|
|
197
197
|
"@vitest/coverage-v8": "^4.0.18",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> @lumenflow/packs-software-delivery@3.13.
|
|
2
|
+
> @lumenflow/packs-software-delivery@3.13.2 build /home/runner/work/lumenflow-dev/lumenflow-dev/packages/@lumenflow/packs/software-delivery
|
|
3
3
|
> tsc
|
|
4
4
|
|
|
@@ -72,7 +72,16 @@ pnpm initiative:add-wu --initiative INIT-001 --wu WU-XXX --phase 1
|
|
|
72
72
|
pnpm initiative:status --id INIT-001
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
**Skip initiatives
|
|
75
|
+
**Skip initiatives whenever the work is still one coherent WU**, even if it spans several files or needs checkpoint-resume.
|
|
76
|
+
|
|
77
|
+
Typical no-initiative cases:
|
|
78
|
+
|
|
79
|
+
- Single coherent bug fixes
|
|
80
|
+
- Small or medium documentation updates
|
|
81
|
+
- Isolated refactors that land as one atomic change
|
|
82
|
+
- One feature WU that needs checkpoint-resume but does not need decomposition
|
|
83
|
+
|
|
84
|
+
Create an initiative when you genuinely need multiple independently completable WUs, multiple lane owners, or staged rollout across phases. File count alone is not the split signal.
|
|
76
85
|
|
|
77
86
|
---
|
|
78
87
|
|
|
@@ -244,6 +253,7 @@ For the full worktree lifecycle (parallel execution, bootstrap, isolation guaran
|
|
|
244
253
|
| `pnpm wu:brief` | Generate handoff prompt + record evidence |
|
|
245
254
|
| `pnpm wu:delegate` | Generate prompt + record lineage + brief hash attestation |
|
|
246
255
|
| `pnpm wu:escalate` | Show or resolve WU escalation status |
|
|
256
|
+
| `pnpm wu:verify` | Verify WU completion (stamp, commit, clean tree) |
|
|
247
257
|
| `pnpm wu:delete` | Delete WU spec and cleanup |
|
|
248
258
|
| `pnpm gates` | Run quality gates (`--docs-only` for docs WUs) |
|
|
249
259
|
| `pnpm lumenflow:commands` | List all public commands (primary + alias + legacy) |
|
|
@@ -298,7 +298,7 @@ Agent: [ignores the warning, proceeds without sizing metadata]
|
|
|
298
298
|
|
|
299
299
|
### Right
|
|
300
300
|
|
|
301
|
-
When `wu:create` or `wu:brief` emits a sizing advisory warning,
|
|
301
|
+
When `wu:create` or `wu:brief` emits a sizing advisory warning, choose the smallest valid strategy:
|
|
302
302
|
|
|
303
303
|
1. **Add exception metadata** if the oversize WU is justified:
|
|
304
304
|
|
|
@@ -311,7 +311,16 @@ sizing_estimate:
|
|
|
311
311
|
exception_reason: All markdown documentation files, low complexity
|
|
312
312
|
```
|
|
313
313
|
|
|
314
|
-
2. **
|
|
314
|
+
2. **Keep one WU with a stronger execution strategy** if the work is still one coherent outcome:
|
|
315
|
+
|
|
316
|
+
```yaml
|
|
317
|
+
sizing_estimate:
|
|
318
|
+
estimated_files: 32
|
|
319
|
+
estimated_tool_calls: 90
|
|
320
|
+
strategy: checkpoint-resume
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
3. **Split the WU** only if the work is no longer atomic or should land independently (see [wu-sizing-guide.md](./wu-sizing-guide.md) section 3 for splitting patterns).
|
|
315
324
|
|
|
316
325
|
**Strict mode:** Teams can enforce sizing compliance for delegated work with `--strict-sizing` on `wu:brief`. In strict mode, missing or non-compliant sizing metadata blocks the operation.
|
|
317
326
|
|
|
@@ -14,6 +14,7 @@ Before orchestrating an initiative, ensure:
|
|
|
14
14
|
2. All WUs are linked to the initiative via `initiative:add-wu`
|
|
15
15
|
3. Dependencies between WUs are defined (blocking relationships)
|
|
16
16
|
4. Lane lifecycle is locked (`pnpm lane:status` shows `locked`)
|
|
17
|
+
5. The initiative is not made of artificial micro-WUs that should really be one coherent WU
|
|
17
18
|
|
|
18
19
|
---
|
|
19
20
|
|
|
@@ -35,6 +36,8 @@ The dry-run output shows:
|
|
|
35
36
|
- **Bottleneck WUs**: WUs that block the most downstream work (prioritize these)
|
|
36
37
|
- **Recommended execution mode**: Checkpoint-per-wave vs continuous
|
|
37
38
|
|
|
39
|
+
Before accepting the wave plan, sanity-check the decomposition. If several WUs sit in the same lane, describe one atomic outcome, and cannot ship independently, consolidate them instead of orchestrating them.
|
|
40
|
+
|
|
38
41
|
### Step 2: Choose Execution Mode
|
|
39
42
|
|
|
40
43
|
| Mode | Command | When to use |
|
|
@@ -154,20 +154,20 @@ automatically, and `.lumenflow/templates/` remains optional unless you want cust
|
|
|
154
154
|
|
|
155
155
|
### WU Maintenance
|
|
156
156
|
|
|
157
|
-
| Command | Description
|
|
158
|
-
| -------------------------------- |
|
|
159
|
-
| `pnpm wu:validate --id WU-XXX` | Validate WU spec
|
|
160
|
-
| `pnpm wu:preflight --id WU-XXX` | Pre-flight checks before wu:done
|
|
161
|
-
| `pnpm wu:verify --id WU-XXX`
|
|
162
|
-
| `pnpm wu:recover --id WU-XXX` | Analyze and fix WU state inconsistencies
|
|
163
|
-
| `pnpm wu:repair --id WU-XXX` | Repair WU state issues
|
|
164
|
-
| `pnpm wu:prune` | Clean stale worktrees
|
|
165
|
-
| `pnpm wu:cleanup --id WU-XXX` | Cleanup after PR merge (PR-only)
|
|
166
|
-
| `pnpm wu:deps --id WU-XXX` | Show WU dependencies
|
|
167
|
-
| `pnpm wu:infer-lane --id WU-XXX` | Infer lane from code paths/description
|
|
168
|
-
| `pnpm wu:delete --id WU-XXX` | Delete WU spec and cleanup
|
|
169
|
-
| `pnpm wu:unlock-lane --lane <L>` | Unlock stuck lane
|
|
170
|
-
| `pnpm wu:proto --lane <Lane>` | Create WU prototype (lightweight draft)
|
|
157
|
+
| Command | Description |
|
|
158
|
+
| -------------------------------- | ------------------------------------------------ |
|
|
159
|
+
| `pnpm wu:validate --id WU-XXX` | Validate WU spec |
|
|
160
|
+
| `pnpm wu:preflight --id WU-XXX` | Pre-flight checks before wu:done |
|
|
161
|
+
| `pnpm wu:verify --id WU-XXX` | Verify WU completion (stamp, commit, clean tree) |
|
|
162
|
+
| `pnpm wu:recover --id WU-XXX` | Analyze and fix WU state inconsistencies |
|
|
163
|
+
| `pnpm wu:repair --id WU-XXX` | Repair WU state issues |
|
|
164
|
+
| `pnpm wu:prune` | Clean stale worktrees |
|
|
165
|
+
| `pnpm wu:cleanup --id WU-XXX` | Cleanup after PR merge (PR-only) |
|
|
166
|
+
| `pnpm wu:deps --id WU-XXX` | Show WU dependencies |
|
|
167
|
+
| `pnpm wu:infer-lane --id WU-XXX` | Infer lane from code paths/description |
|
|
168
|
+
| `pnpm wu:delete --id WU-XXX` | Delete WU spec and cleanup |
|
|
169
|
+
| `pnpm wu:unlock-lane --lane <L>` | Unlock stuck lane |
|
|
170
|
+
| `pnpm wu:proto --lane <Lane>` | Create WU prototype (lightweight draft) |
|
|
171
171
|
|
|
172
172
|
---
|
|
173
173
|
|
|
@@ -91,13 +91,16 @@ If you are starting a new project or feature from a product vision (e.g., "Build
|
|
|
91
91
|
|
|
92
92
|
### When to Skip Initiatives
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
Skip initiatives whenever the work is still one coherent WU, even if it spans several files or needs checkpoint-resume.
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
- Small documentation updates
|
|
98
|
-
- Isolated refactoring tasks
|
|
96
|
+
Typical no-initiative cases:
|
|
99
97
|
|
|
100
|
-
|
|
98
|
+
- Single coherent bug fixes
|
|
99
|
+
- Small or medium documentation updates
|
|
100
|
+
- Isolated refactors that land as one atomic change
|
|
101
|
+
- One feature WU that may need checkpoint-resume but does not need decomposition
|
|
102
|
+
|
|
103
|
+
Create an initiative when you genuinely need multiple independently completable WUs, multiple lane owners, or staged rollout across phases. File count or execution strategy alone is not the split signal.
|
|
101
104
|
|
|
102
105
|
### Lane-Fit Reasoning
|
|
103
106
|
|
|
@@ -547,23 +550,23 @@ Domain-specific commands must come from local configuration, not core framework
|
|
|
547
550
|
|
|
548
551
|
## WU Lifecycle Commands
|
|
549
552
|
|
|
550
|
-
| Command | Description
|
|
551
|
-
| ---------------------------------------------- |
|
|
552
|
-
| `pnpm wu:status --id WU-XXX` | Show WU state and valid commands
|
|
553
|
-
| `pnpm wu:claim --id WU-XXX --lane "Lane"` | Claim WU and create worktree (default)
|
|
554
|
-
| `pnpm wu:claim --id WU-XXX --lane "L" --cloud` | Claim WU in branch-pr mode (no worktree)
|
|
555
|
-
| `pnpm wu:edit --id WU-XXX --field value` | Edit WU spec fields
|
|
556
|
-
| `pnpm wu:brief --id WU-XXX --client X` | Generate handoff prompt + evidence
|
|
557
|
-
| `pnpm wu:brief --id WU-XXX --evidence-only` | Record evidence only (no prompt output)
|
|
558
|
-
| `pnpm wu:delegate --id WU-XXX --parent-wu P` | Generate prompt + record delegation
|
|
559
|
-
| `pnpm wu:prep --id WU-XXX` | Run gates in claimed workspace, prep completion
|
|
560
|
-
| `pnpm wu:done --id WU-XXX` | Complete WU (merge or PR, cleanup)
|
|
561
|
-
| `pnpm wu:cleanup --id WU-XXX` | Post-merge cleanup (branch-pr)
|
|
562
|
-
| `pnpm wu:escalate --id WU-XXX` | Show or resolve escalation status
|
|
563
|
-
| `pnpm wu:escalate --resolve --id WU-XXX` | Resolve human escalation
|
|
553
|
+
| Command | Description | When to Use |
|
|
554
|
+
| ---------------------------------------------- | ------------------------------------------------ | --------------------------- |
|
|
555
|
+
| `pnpm wu:status --id WU-XXX` | Show WU state and valid commands | Check current state |
|
|
556
|
+
| `pnpm wu:claim --id WU-XXX --lane "Lane"` | Claim WU and create worktree (default) | Start working (local) |
|
|
557
|
+
| `pnpm wu:claim --id WU-XXX --lane "L" --cloud` | Claim WU in branch-pr mode (no worktree) | Start working (cloud) |
|
|
558
|
+
| `pnpm wu:edit --id WU-XXX --field value` | Edit WU spec fields | Update notes/desc |
|
|
559
|
+
| `pnpm wu:brief --id WU-XXX --client X` | Generate handoff prompt + evidence | Complex WUs |
|
|
560
|
+
| `pnpm wu:brief --id WU-XXX --evidence-only` | Record evidence only (no prompt output) | Self-implementation path |
|
|
561
|
+
| `pnpm wu:delegate --id WU-XXX --parent-wu P` | Generate prompt + record delegation | Auditable delegation flows |
|
|
562
|
+
| `pnpm wu:prep --id WU-XXX` | Run gates in claimed workspace, prep completion | Before wu:done |
|
|
563
|
+
| `pnpm wu:done --id WU-XXX` | Complete WU (merge or PR, cleanup) | After gates pass |
|
|
564
|
+
| `pnpm wu:cleanup --id WU-XXX` | Post-merge cleanup (branch-pr) | After PR merge (cloud only) |
|
|
565
|
+
| `pnpm wu:escalate --id WU-XXX` | Show or resolve escalation status | Escalation-triggered WUs |
|
|
566
|
+
| `pnpm wu:escalate --resolve --id WU-XXX` | Resolve human escalation | Before wu:done (escalation) |
|
|
564
567
|
| `pnpm wu:verify --id WU-XXX` | Verify WU completion (stamp, commit, clean tree) | After wu:done |
|
|
565
|
-
| `pnpm wu:delete --id WU-XXX` | Delete WU spec and cleanup
|
|
566
|
-
| `pnpm wu:recover --id WU-XXX` | Fix inconsistent WU state
|
|
568
|
+
| `pnpm wu:delete --id WU-XXX` | Delete WU spec and cleanup | Cancel stale/throwaway WUs |
|
|
569
|
+
| `pnpm wu:recover --id WU-XXX` | Fix inconsistent WU state | When state is broken |
|
|
567
570
|
|
|
568
571
|
---
|
|
569
572
|
|
|
@@ -2,20 +2,41 @@
|
|
|
2
2
|
|
|
3
3
|
**Last updated:** {{DATE}}
|
|
4
4
|
|
|
5
|
-
Use this summary
|
|
5
|
+
Use this summary to decide whether work should stay as one WU and what execution strategy it needs.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Default Bias
|
|
10
|
+
|
|
11
|
+
Bias toward **one coherent outcome = one WU**.
|
|
12
|
+
|
|
13
|
+
Do not split a WU just because it has multiple implementation steps, tests, or docs, or because it may need another session. Split only when the work is no longer one coherent deliverable.
|
|
14
|
+
|
|
15
|
+
Keep one WU when:
|
|
16
|
+
|
|
17
|
+
- The acceptance criteria describe one user-visible or operator-visible outcome
|
|
18
|
+
- One agent can still complete it with `single-session`, `checkpoint-resume`, or `orchestrator-worker`
|
|
19
|
+
- The touched files support the same change, even if there are several of them
|
|
20
|
+
|
|
21
|
+
Split when:
|
|
22
|
+
|
|
23
|
+
- Parts can ship or be reviewed independently
|
|
24
|
+
- Different lanes or owners should deliver different parts
|
|
25
|
+
- Risk isolation matters, such as tracer-bullet, feature-flag, or adapter-first rollout
|
|
26
|
+
- The work keeps widening and no longer has a clean stopping point
|
|
6
27
|
|
|
7
28
|
---
|
|
8
29
|
|
|
9
30
|
## Baseline Heuristics
|
|
10
31
|
|
|
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+ |
|
|
16
|
-
| Oversized | 100+ | 200+ | Split before implementation |
|
|
32
|
+
| Complexity | Files | Tool Calls | Suggested Strategy |
|
|
33
|
+
| ---------- | ----- | ---------- | ------------------------------------------------------- |
|
|
34
|
+
| Simple | <20 | <50 | Single session |
|
|
35
|
+
| Medium | 20-50 | 50-100 | Checkpoint and resume |
|
|
36
|
+
| Complex | 50+ | 100+ | Orchestrate or split only if the WU is non-atomic |
|
|
37
|
+
| Oversized | 100+ | 200+ | Split before implementation unless an exception applies |
|
|
17
38
|
|
|
18
|
-
These are guardrails, not a license to
|
|
39
|
+
These are guardrails for session strategy, not a license to multiply WUs that still belong together.
|
|
19
40
|
|
|
20
41
|
---
|
|
21
42
|
|
|
@@ -28,6 +49,8 @@ Checkpoint and hand off when any of these happen:
|
|
|
28
49
|
- File churn keeps widening without clear closure
|
|
29
50
|
- You have to repeatedly rediscover the same repo rules
|
|
30
51
|
|
|
52
|
+
If a trigger fires, first ask whether the WU is still atomic. If yes, checkpoint or hand off. If no, split it.
|
|
53
|
+
|
|
31
54
|
---
|
|
32
55
|
|
|
33
56
|
## Recovery Pattern
|
|
@@ -37,7 +60,7 @@ pnpm mem:checkpoint "state before handoff" --wu WU-XXX
|
|
|
37
60
|
pnpm wu:brief --id WU-XXX --client codex-cli
|
|
38
61
|
```
|
|
39
62
|
|
|
40
|
-
|
|
63
|
+
Use handoff when the WU is still coherent but the session is getting tired. Split only when the work itself is no longer coherent.
|
|
41
64
|
|
|
42
65
|
---
|
|
43
66
|
|
|
@@ -46,3 +69,7 @@ If the WU is clearly too large, split it instead of relying on a heroic handoff.
|
|
|
46
69
|
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
70
|
|
|
48
71
|
If the docs work starts spilling into CLI, core, or packaging changes, treat it like a normal cross-code WU again.
|
|
72
|
+
|
|
73
|
+
## Shallow Multi-File Exception
|
|
74
|
+
|
|
75
|
+
Code WUs may also stay as one WU when the change is mechanical across many files, such as a rename or import rewrite, and each file change stays shallow and uniform.
|