@lumenflow/cli 3.19.0 → 3.20.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.
@@ -143,9 +143,9 @@ you want to refresh docs without upgrading packages (e.g., after manually editin
143
143
  | `pnpm approval:request --type <type> --subject <json>` | Request control-plane approval for an action |
144
144
  | `pnpm approval:review --id <approvalId> --decision <decision>` | Resolve an approval decision (`approved`/`rejected`/`expired`) |
145
145
  | `pnpm approval:list [--status <status>]` | List approvals with optional status/type filters |
146
- | `pnpm wu:block --id WU-XXX --reason "..."` | Block WU with reason |
147
- | `pnpm wu:unblock --id WU-XXX` | Unblock WU |
148
- | `pnpm wu:release --id WU-XXX` | Release orphaned WU (in_progress to ready) |
146
+ | `pnpm wu:block --id WU-XXX --reason "..."` | Block WU with reason (ownership-guarded, v3.19.0) |
147
+ | `pnpm wu:unblock --id WU-XXX` | Unblock WU (ownership-guarded, v3.19.0) |
148
+ | `pnpm wu:release --id WU-XXX --reason "..."` | Release orphaned WU (ownership-guarded, v3.19.0) |
149
149
  | `pnpm wu:status --id WU-XXX` | Show WU status, location, valid commands |
150
150
  | `pnpm wu:brief --id WU-XXX --client <client>` | **MANDATORY after wu:claim.** Generate handoff prompt + record evidence. wu:done blocks without this (WU-2379) |
151
151
  | `pnpm wu:brief --id WU-XXX --no-context` | Generate prompt without memory context injection |
@@ -154,20 +154,25 @@ you want to refresh docs without upgrading packages (e.g., after manually editin
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` | 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) |
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 (ownership-guarded, v3.19.0) |
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
+
172
+ **Ownership guards (v3.19.0, WU-2468):** `wu:block`, `wu:unblock`, `wu:release`, and `wu:recover`
173
+ validate session ownership before state mutations. If the WU belongs to another session, use
174
+ `--override-owner --reason "..."` to override (audited). **AGENTS: NEVER use --override-owner
175
+ without explicit human instruction.**
171
176
 
172
177
  ---
173
178
 
@@ -198,6 +203,11 @@ you want to refresh docs without upgrading packages (e.g., after manually editin
198
203
  ¹ **Script aliases:** `spec:linter` and `tasks:validate` are pnpm script aliases
199
204
  for `wu:validate --all`. They are not standalone CLI commands.
200
205
 
206
+ **Conditional gates (v3.19.0, WU-2448):** Define pattern-triggered commands in
207
+ `workspace.yaml > software_delivery.gates.conditional_commands`. Commands with `trigger_patterns`
208
+ only run when matching files change. Supports `error` (blocks), `warn` (logs), and `off` (skip)
209
+ severity levels. See workspace-spec.mdx for schema.
210
+
201
211
  **Formatting: always scope to changed files only.**
202
212
  Use `pnpm prettier --write <changed-files...>` — never unscoped `pnpm format`.
203
213
  Running `pnpm format` reformats every file in the repo, creating hundreds of
@@ -203,6 +203,7 @@ These are the mistakes agents make most often. Memorize these before reading any
203
203
  5. **State files are auto-generated.** Never manually edit `wu-events.jsonl`, `backlog.md`, or `status.md` — lifecycle commands manage them.
204
204
  6. **wu:edit requires a clean worktree.** Commit `wu-events.jsonl` and other changes before running `wu:edit`.
205
205
  7. **Don't edit on main then stash to a worktree.** If a hook blocks you on main, that means you need a WU. Create one and work in the worktree from the start.
206
+ 8. **Don't modify another agent's WU to free a lane.** `wu:block`, `wu:unblock`, `wu:release`, and `wu:recover` enforce ownership guards (v3.19.0). If you hit a `SESSION OWNERSHIP VIOLATION`, wait for the owning WU to complete or block itself — never use `--override-owner` without explicit human instruction.
206
207
 
207
208
  ---
208
209
 
@@ -527,7 +528,7 @@ Default profiles:
527
528
 
528
529
  - Behavior/logic changes: follow project policy (`methodology.testing`: `tdd`, `test-after`, or `none`).
529
530
  - Structured-content-only changes (`.yaml/.yml/.json/.md/.mdx`): use parse/schema/lint/eval evidence; TDD checkpoint is omitted.
530
- - UI presentation hints: prefer smoke/manual/integration/E2E verification and use unit tests for pure logic or explicitly required checks.
531
+ - UI presentation hints: prefer smoke/manual/integration/E2E verification, never assert inline styles, CSS values, exact copy, or DOM shape, and use unit tests only for pure logic or explicitly required checks.
531
532
 
532
533
  Common override points include `visual-directive`, `structured-content-directive`,
533
534
  `verification-requirements`, and `design-context-ui`.