docs(remediation): bank D-31 — seat ran past 100% context with 28 uncommitted files

coder-mos1 hit 102.5%/372k on RM-03 with 28 modified files uncommitted and its branch
still at base — a full context window spent with nothing durable. Caught by polling seat
state, not by any system signal. Nothing warned anyone: no threshold alert, no
pre-compaction hook.

The founding failure mode of this mission — compaction destroying in-flight work —
nearly hit the mission's own delivery twice in one night. RM-01 survived because it had
committed work when checkpointed; this one had none. Commit-then-rotate works;
rotate-without-commit loses everything.

RM-34: a context threshold is not enough — rotation must force a durable checkpoint and
refuse to rotate a seat with uncommitted work. RM-50: seat context is observable state
and must be monitored; relying on an orchestrator to poll is instructions-not-enforcement
applied to lifecycle. Brief doctrine: commit early, commit WIP.

Adjacent: the diff spans 5 guides and 11 templates against a brief scoped to one script.
Queried, not assumed — but a 28-file diff from a one-script brief is a scope signal
regardless of the answer.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
mos-dt-0
2026-08-01 00:07:59 -05:00
co-authored by Claude Opus 5
parent bdf8932328
commit bf8c6f4a89
+32
View File
@@ -221,6 +221,38 @@ reviewer, and no other seat holds mosaicstack write. Flagged to the coordinator
busy lane. Not blocking today — RM-02's code blockers are independently disqualifying — but the next
otherwise-clean PR meets this.
### D-31 — a seat ran past 100% context with 28 uncommitted files and no commits
`coder-mos1` reached **102.5% / 372k context** on RM-03 with **28 modified files uncommitted** and its
branch still at the base commit — i.e. **a full context window spent (~\$27) with nothing durable**. The
orchestrator caught it by polling seat state, not by any signal from the system.
**Nothing warned anyone.** No threshold alert, no pre-compaction hook, no "you are about to lose this"
prompt. The seat did not report distress because from inside, running low on context feels like ordinary
work right up until it is not. **The one failure mode the mission was founded on — compaction destroying
in-flight work — very nearly happened to the mission's own delivery, twice in one night** (RM-01 was
checkpointed at 69%; this one was already past the window).
**What made RM-01 survivable and this one nearly not:** RM-01 had _committed_ work when it was
checkpointed, so rotation was cheap. Here the work existed only in the worktree and the seat's context.
**Commit-then-rotate works; rotate-without-commit loses everything.**
**Requirements.**
- **RM-34 (rotation daemon):** a context-threshold trigger is not enough — it must **force a durable
checkpoint before rotating**, and refuse to rotate a seat with uncommitted work until that work is
committed or explicitly discarded. Rotation without a commit is data loss with extra steps.
- **RM-50 (fleet ownership):** seat context level is **observable state** and must be monitored, with a
threshold alert to the coordinator. Relying on an orchestrator to poll is exactly the "instructions,
not enforcement" pattern (D-4) applied to lifecycle.
- **Worker briefs (immediate, mechanical):** _commit early, commit WIP, an imperfect commit that exists
beats perfect work that vanishes._ Added to standing brief doctrine rather than left to judgement.
**Adjacent observation — scope drift, unverified.** The same diff spans 5 framework guides and 11 agent
templates against a brief scoped to the queue guard and its tests. Queried rather than assumed: if the
edits are consequential to the tri-state change they stay; if drive-by, they split. Recorded here because
**a 28-file diff from a brief that named one script is a scope signal regardless of the answer.**
### D-29 — the registry's own coverage clause was SYNTACTIC, not semantic
`rev-974` blocked PR #1030 with a finding that lands in the keystone's own enforcement: