Doctrine
USER-VALUE-CLOSURE on every DONE (fleet-wide)
USER-VALUE-CLOSURE on every DONE (fleet-wide)
The rule
Every DONE post from ANY seat MUST include a USER-VALUE-CLOSURE: block:
USER-VALUE-CLOSURE:
user: <Zack | Grace | Aleah | Chad-as-operator | none>
surface: <BT app | Redline Mac | Redline iOS | Monday email | Dollhouse | Operator Console | Slack | none>
change: <one sentence — what this user will see differently>
closure_date: <date | infra-only>
If the answer is user: none and closure_date: infra-only, that MUST be stated explicitly. Infra-only is not shameful — but it must be named, because unnamed infra-only compounds into 260 DONEs with zero user-visible change.
Scope change from ORA-2026-0053
ORA-2026-0053 applied to "every STRAT output (decision render, dispatch, shepherd tick close, summary to Chad)." This doctrine extends the same obligation to ALL seats — Codex lane seats, Gemini verification seats, CLI sessions, every seat that posts a DONE.
The rationale: STRAT doesn't do the work — lane seats do. If only STRAT has a user-value obligation, the 18 Codex seats producing code can be fully compliant while producing zero user-visible change. The 260-DONE-zero-BT-change event on 2026-04-25 proved this: every STRAT decision had a USER-VALUE-CLOSURE block, but the Codex seats executing those decisions had no obligation to connect their DONEs to user-visible output.
Shepherd protocol
Probe Z from ORA-2026-0053 is retained and extended:
- Per shepherd tick, count DONEs since last tick where
closure_date: infra-only - T9-zero trigger: after 4 consecutive infra-only DONEs from the same lane, escalate. Green-without-user-change is yellow.
- Fleet-wide T9-zero: after 10 consecutive fleet-wide DONEs where zero name a user, escalate to Chad as CRITICAL.
What this kills
- Infra velocity as proxy for progress: "We shipped 35 BT-tagged tickets" means nothing if Zack sees zero change. Now every seat must name the gap explicitly.
- Lane seats hiding behind STRAT closure: STRAT can render a decision with perfect USER-VALUE-CLOSURE, but if the Codex seat executing it DONEs with
infra-only8 times in a row, the shepherd catches it. - Process-work masquerading as product-work: "Doc hygiene," "backlog sync," "feed cleanup" — if these have
user: none, closure_date: infra-only, the shepherd counts them against the T9-zero threshold.
Evidence
- 2026-04-25: ~260 overnight DONEs, ~35 BT-tagged. Zero change visible in BT. Chad: "does BT look any different than 12 hours ago?"
- 2026-04-26: Gemini CAMBER-04 produced 21-second DONEs with zero user-value while fully compliant with STRAT-scoped ORA-2026-0053.
- Root cause: user-value was a STRAT obligation. Lane seats had no user-value gate. Now they do.