Filed unassigned by the skills execution seat at shift end (session session_01JANH3y7qe3MD8aLaLXci8N, 2026-08-26/27). Platform-fact class — the durable home is a references/platform-readings.md row, not prose. Grading is the lane's.
Fact 1 — how a tier-quota death presents, and that it IS a host signal
A dispatched subagent terminated mid-edit with the host reporting the account's claude-fable-5 limit reached. This is a host signal, so it satisfies the standing rule that "maintainer abort" needs an explicit signal while a subagent death is an ordinary death: it is neither. It is a third shape worth naming — the dispatch is dead, the premise is intact, and re-dispatch is blocked on a resource rather than on anything about the card. Handling is dead-claim recovery (plus the worktree rescue filed alongside this), not premise re-verification and not an escalation.
⚠️ There is no pre-flight probe: quota state is not observable before dispatch, only when the dev dies inside it. So the mitigation is on the dev side (WIP-commit early, which is now the rule) rather than a PM-side precheck.
Fact 2 — a mandated tier is not a preference, and the lane is not therefore stopped
The mandated tier must not be downgraded because it is unavailable — that is precisely the substitution the downgrade fuse exists to refuse. But "this lane's work is fable-mandated" is usually recalled, not derived, and the recalled version is too wide. Measured today with node scripts/pm/dispatch-gates.mjs --tier PATH, per path rather than per lane:
| surface | derived tier |
|---|
.claude/skills/pm-dispatch/SKILL.md, .claude/agents/os-dev.md | MANDATORYclaude-fable-5 (clause ①) |
scripts/pm/check-half-states.mjs | no path-derived mandate — floor sonnet · default opus · ceiling fable |
references/** | no path-derived mandate (left the path mandate in the 2026-08-20 narrowing) |
So a blocked fold splits: the instruction-file halves wait for the tier, while reference fact rows and gate-script work dispatch at the default tier immediately. Clause ② still has to be judged from card CONTENT (a fact-table row and a report-only patrol row change no accept/reject behaviour and widen no public surface, so it does not reach them) — the path line is a floor, never a clearance.
The reusable rule: when a tier becomes unavailable, ⛔ do not declare the lane blocked from memory — re-derive the mandate per file surface and dispatch the unmandated remainder. Today that turned a fully-blocked 3-card fold into 1 blocked half and 3 runnable halves.
Live instance carrying both facts: #12220 (recovery record + the split), with #12200 / #12286 as the split members.
Filed unassigned by the skills execution seat at shift end (session
session_01JANH3y7qe3MD8aLaLXci8N, 2026-08-26/27). Platform-fact class — the durable home is areferences/platform-readings.mdrow, not prose. Grading is the lane's.Fact 1 — how a tier-quota death presents, and that it IS a host signal
A dispatched subagent terminated mid-edit with the host reporting the account's
claude-fable-5limit reached. This is a host signal, so it satisfies the standing rule that "maintainer abort" needs an explicit signal while a subagent death is an ordinary death: it is neither. It is a third shape worth naming — the dispatch is dead, the premise is intact, and re-dispatch is blocked on a resource rather than on anything about the card. Handling is dead-claim recovery (plus the worktree rescue filed alongside this), not premise re-verification and not an escalation.Fact 2 — a mandated tier is not a preference, and the lane is not therefore stopped
The mandated tier must not be downgraded because it is unavailable — that is precisely the substitution the downgrade fuse exists to refuse. But "this lane's work is fable-mandated" is usually recalled, not derived, and the recalled version is too wide. Measured today with
node scripts/pm/dispatch-gates.mjs --tier PATH, per path rather than per lane:.claude/skills/pm-dispatch/SKILL.md,.claude/agents/os-dev.mdclaude-fable-5(clause ①)scripts/pm/check-half-states.mjsreferences/**So a blocked fold splits: the instruction-file halves wait for the tier, while reference fact rows and gate-script work dispatch at the default tier immediately. Clause ② still has to be judged from card CONTENT (a fact-table row and a report-only patrol row change no accept/reject behaviour and widen no public surface, so it does not reach them) — the path line is a floor, never a clearance.
The reusable rule: when a tier becomes unavailable, ⛔ do not declare the lane blocked from memory — re-derive the mandate per file surface and dispatch the unmandated remainder. Today that turned a fully-blocked 3-card fold into 1 blocked half and 3 runnable halves.
Live instance carrying both facts: #12220 (recovery record + the split), with #12200 / #12286 as the split members.