Failure

Seat performed end-of-turn feed-bracket read, saw three unclaimed self-filed follow-ons, and stopped instead of claiming one

feed-protocolturn-disciplineanti-idledoctrine-ambiguity

Seat performed end-of-turn feed-bracket read, saw three unclaimed self-filed follow-ons, and stopped instead of claiming one

Summary

On 2026-04-16 between 18:23Z and 18:34Z, CODEX-DESKTOP-MacBook-Air-CAMBER-10 claimed and shipped CMB-0092 (Beside ingest pipeline pressure test), filed three follow-on tickets from its findings (CMB-0095, CMB-0096, CMB-0097), posted the CMB-0092 DONE proof to FLEET_FEED.md, ran the end-of-turn feed-bracket read per ORA-2026-0015 — and then stopped, reporting verbatim to the operator: "Closing feed read shows those three follow-ons are still unclaimed." The seat treated observation of absorbable work as a terminal state. It had the warmest possible context in the fleet on all three tickets (it wrote them itself from its own pressure-test findings), full capacity (just completed its claim), and no declared handoff contract. The correct action per ORA-2026-0015 was to claim the next follow-on and loop back to step 2 of the Mechanics. The actual action was a status report and idle exit.

The doctrine was read, the trigger was observed, the response was skipped.

Evidence

Timeline (2026-04-16 ET afternoon)

  • 18:23:04ZCODEX-DESKTOP-MacBook-Air-CAMBER-10 posts CMB-0092 CLAIMED (Beside ingest pipeline pressure test).
  • 18:32:34Z — CAMBER-10 files CMB-0096 dispatch (close Beside direct-to-sms promotion gaps for media/voice notes) — a follow-on from CMB-0092 findings. OWNER: UNCLAIMED / STATE: AWAITING_CLAIM.
  • 18:32:49Z — CAMBER-10 files CMB-0097 dispatch (harden Beside reader timeout visibility and retry behavior) — second follow-on. Same unclaimed state.
  • 18:32:xxZ (between 18:32 and 18:33) — CAMBER-10 files CMB-0095 dispatch (align Redline realtime subscriptions with Beside direct publication). Third follow-on. Same unclaimed state.
  • 18:33:50Z — CAMBER-10 posts CMB-0092 DONE with commit proof (a7f612da on codex/cmb-0092-beside-pressure-test branch) and explicit list of three filed follow-ons (CMB-0095, CMB-0096, CMB-0097).
  • ~18:34-18:45Z — CAMBER-10 runs end-of-turn feed-bracket read per ORA-2026-0015. Observes CMB-0095, CMB-0096, CMB-0097 all in AWAITING_CLAIM state. Reports to operator: "Closing feed read shows those three follow-ons are still unclaimed." Stops.
  • 18:35:08ZCODEX-DESKTOP-MacBook-Air-CAMBER-03 claims CMB-0095 unprompted — it had warm context from FLT-0002 (Redline realtime path). This demonstrates the ticket was claimable in the fleet; CAMBER-10 had the warmest context, not exclusive context. Had CAMBER-10 claimed through, CAMBER-03 would have absorbed a different ticket.
  • CMB-0096 + CMB-0097 remained AWAITING_CLAIM for multiple minutes after CAMBER-10 stopped (confirmed by ORA-01 queue read at 2026-04-16T18:40Z).
  • ~18:45Z — Chad operator surfaces the incident to ORA lane with screenshot of CAMBER-10 session transcript showing the stop-without-claim sequence. Directive: "our doctrine about not ending turn before checking and executing follow on work needs to be more direct about not stopping the turn when there is follow on."

Why it happened

ORA-2026-0015 (feed-bracket every turn, ratified 2026-04-16 earlier the same day) expressed the rule as a conditional:

"DONE is a pivot, not a stop — after posting it, check the feed again. If the queue has a ticket you can absorb (your lane, warm context, AWAITING_CLAIM), claim it and keep going. Your turn ends when the feed has nothing for you, not when a single ticket closes."

Two verbs: check (unconditional) and claim (conditional on the check revealing absorbable work). The seat performed check dutifully, observed the trigger (three absorbable tickets), and then reported the trigger to the operator instead of executing the conditional response.

Root causes: 1. Conditional structure invites verification without execution. "If X then Y" can be read as "If X then report X" when Y is an action the seat is weakly motivated to perform (fresh session, fresh context, deploying focus). The rule needed to be a hard post-condition: "turn is not complete until Y executed OR X verifiably false" — not a branching conditional. 2. Observation-as-completion pattern. Codex seats are trained to be thorough and auditable; reporting observations is their default shape. "Closing feed read shows X" reads like a status update, not a precondition for action. The language affirmed the seat's instinct to report-and-wait. 3. No "self-filed follow-ons default to self-claim" rule. The seat had just authored CMB-0095/0096/0097 from its own findings. The warmest context in the fleet was with this seat. Yet the doctrine never instructed "if you filed it, you claim it unless you explicitly release." Absence of that default meant the seat treated "unclaimed" as neutral rather than as "obvious self-claim target." 4. Operator proximity hazard. Reporting to Chad ("I expect to see three follow-on tickets sitting claimable; I'm checking that state explicitly before I hand you the proof") positions the seat as a status-reporter-to-operator rather than a self-directed worker. When the operator is in view, the natural action is to report; when the queue is in view, the natural action is to claim. The doctrine didn't re-focus attention from operator-report to queue-claim at the critical moment.

Impact

  • CMB-0096 and CMB-0097 sat unclaimed for multiple minutes when the warmest-context seat had capacity.
  • CAMBER-03 absorbed CMB-0095 within 75 seconds — a graceful fallback, but one that cost the fleet parallelism (CAMBER-03 could have been absorbing a different ticket).
  • Operator cycle: Chad had to read the transcript, recognize the gap, and escalate as a doctrine strengthening ticket (this ORA-0007). That's a ~10-min operator-intervention window for a pattern the doctrine was supposed to prevent.
  • Secondary cost: every other Codex seat reading ORA-2026-0015 now has the same ambiguity latent in their boot. Until amended, the next pressure-test or refactor ticket that generates follow-ons is a potential repeat.

Implications

  • Same class as ORA-2026-0003 (hidden default), ORA-2026-0006 (reassignment-without-citing), ORA-2026-0017 (STRAT drifted into dev). A rule expressed without a hard post-condition gets violated at the exact moment it matters most. The fix is to convert the rule from "do X" to "you are not done until Y" — making the stop-condition observable and enforceable rather than implicit.
  • Pattern: any doctrine whose rule is "check and act if condition" must be rewritten as "check and act until condition is false (verifiable)" to prevent check-without-action drift. Positive-check states should be CLAIM TRIGGERS, not STATUS REPORTS.
  • Self-file → self-claim default needs explicit statement. If you filed a ticket from your own work, the fleet assumes you claim it unless you explicitly release. No other seat has better context; releasing to the fleet is an affirmative act, not a passive outcome.
  • Fix: codified in amendment to ORA-2026-0015 — stronger post-condition language, explicit CLAIM TRIGGER vs STATUS REPORT distinction, self-filed self-claim default, and an in-banner rule tightening across all 5 provider-side bundle mirrors. Canonical bundle v1.10 → v1.11.

References

  • Feed posts (FLEET_FEED.md):
  • 2026-04-16T18:23:04Z — CMB-0092 claim by CAMBER-10
  • 2026-04-16T18:32:34Z — CMB-0096 dispatch by CAMBER-10 (unclaimed)
  • 2026-04-16T18:32:49Z — CMB-0097 dispatch by CAMBER-10 (unclaimed)
  • ~18:32Z — CMB-0095 dispatch by CAMBER-10 (unclaimed)
  • 2026-04-16T18:33:50Z — CMB-0092 DONE by CAMBER-10 with follow-on list
  • 2026-04-16T18:35:08Z — CMB-0095 claim by CAMBER-03 (warm-context fallback)
  • Operator directive: 2026-04-16T~18:45Z Chad screenshot of CAMBER-10 session transcript + ORA-lane escalation requesting stronger doctrine language.
  • Superseding amendment: ORA-2026-0015 strengthened 2026-04-16 (same-day amendment cycle — doctrine ratified in AM, first documented violation in PM, amendment ratified in PM).