Register-only. No workflow, no code, no REQ tag, no ledger row. One file, +99 −0.

## IR-90 — the disk red that wore a product costume

A full disk on hfenduleam did not fail a build. It failed a test, in our own code, with our own refusal string — `sync refused: bundle failed` at `spt-daemon/tests/sync.rs:198`, with `Out of diskspace` in the **fourth** nested clause behind a git exit code. `C:` was at **0.018 GiB free of 1862.02** at that instant.

That is worse than the two disk faces already banked: `LNK1318` and rustc I/O route a reader to *"the box is sick"*; this one names our file, our line and our refusal string, so it routes to a **code owner**. It arrived mid-discriminator with an old sha and a new sha side by side, where the cheapest reading — "the head arm failed, the old arm passed" — is a head regression that does not exist.

**Remedy: one guard, two placements, and it REFUSES rather than runs.** A free-space floor at rig start (10 GiB, tuned only with a measurement), and free space appended to a shelled-out git/store error before it becomes a product refusal string. Both placements, because a floor read once at rig start would have **passed** the #209 lane at 136.32 GiB and that run still ended at 12.27 — 221 test binaries took 88 GiB in ten minutes. A start-only guard is a guard against yesterday's disk.

Recorded as **not** fallout, so the entry cannot overclaim: `serve list`'s `SERVE_UNCONFIRMED` (the 0.67.0 resident broker image lacking `servehost.rs`, read from source by doyle) and the 4-of-7 quic `DEGRADED` (10.2 days old). Even the pump stall is claimed as *concurrent*, not caused — one sample of a "last tick N s ago" counter cannot separate still-ticking from ticked-once.

## IR-85 amendment

Two terms it did not name when it landed at `d32d5c4c`:

1. **`ci.yml`'s classify step at `:49` emits `code=true` for every non-`pull_request` event**, so a push to `main` runs `unit` on both runners and the docs-only skip is `pull_request`-only. doyle's finding, named as his own error, and the reason run 34337797758 completed FAILURE at the 40-minute wall on a docs-only delta over a golden-green sha. An IR-85 face, not a flake row.
2. **A near-full volume joins its environment term** — deliberately unquantified, because the window that would have apportioned it was void.

What the voided discriminator established is negative and stated as such: the slowdown **reproduces at `04e32c8c`**, 3.2x–4.7x on all five tests, so head growth is not *necessary*. It measures nothing about how much the environment explains. **Arm 1 stays open.**

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01WAw9XAcTR8oSwzYPsqZoY2
