---
name: setup-suppresses-failing-arm
description: A test whose SETUP writes the precondition the gate requires can never observe the failing shape — it reads as coverage while the real class is unreachable; second form is a Default fixture that renders only some sections, scoping the guard to whatever the default emits; distinct from uniform-row blindness.
metadata: 
  node_type: memory
  type: feedback
  originSessionId: 709471f7-927d-4b0b-934d-0b9c919a2d08
  modified: 2026-08-03T23:34:16.781Z
---

A test can be well-written, assert the right thing, and still be structurally
incapable of failing — because its **setup** puts the system into the exact state
the gate under test requires. The cascade case: `resting.rs:1265`
(`rest_edges_cascade_shells_with_divergence`) suspends before it wakes, and the
suspend *writes* the offline shell record; the wake arm gates on that record being
offline. So the restart shape (record left `online`, no rest edge at all) is
unreachable from that test by construction. Nothing is weak about the assertions —
the precondition is manufactured.

**Why:** a reader auditing "is the cascade covered?" gets a true answer to the
wrong question, and the uncovered class then reads as covered for as long as the
test exists. Doyle called this the third suppressed-arm instance in one week
(2026-08-01), so it is a recurring shape on this codebase, not a one-off.

**A second form: the DEFAULT FIXTURE that renders only some of the subject**
(4th instance, 2026-08-01, DOORBELL W2). The briefing grammar-walk fed
`BriefingFacts::default()`, which has no pending declarations — and the pending
line was the *only* place the composed briefing prescribed a command inside
backticks. So the guard walked a briefing whose sole backticked command never
rendered, and a dead verb planted there passed. Mutation-proved both directions:
the same dead verb REDS the two-shape guard and is GREEN under the default-only
one. Here nothing in the setup writes a precondition — the setup simply omits a
*section*, and the guard silently scopes itself to whatever the default emits.
Detector question: does the fixture exercise every BRANCH of the renderer, or
only the branches a zero-value default happens to take? A `Default` impl is a
fixture choice, not a neutral one.

**A third form: the NAME asserts the premise the FIXTURE never constructs**
(2026-08-03, is_process_alive stage-2 at `b7b00c3`).
`spt-msg/src/deliver.rs:348` is named `recycled_pid_address_does_not_misdeliver`
and its comment says "(e.g. recycled to this test process)" — but the fixture
writes the registry row with `std::process::id()` and the probe reads that same
live process back. There is no identity mismatch, so nothing recycled is
exercised; what it actually proves is that a dead ADDRESS spools. Here the setup
writes no precondition and omits no section — the *label* carries the premise.
Same effect at the traceability layer: it is `[unit->REQ-HAZARD-WINDOWS-PID-RECYCLE]`,
so an activated hazard REQ reads COVERED while its discriminating arm (alive pid
worn by a DIFFERENT process than recorded) is untested at all four of its unit tags.
Detector question: does the fixture CONSTRUCT the condition in the test's name, or
only assert an outcome that would hold without it? Corollary worth stating in any
finding — sometimes the honest test cannot be written yet: here no parent-side
birth stamp exists to mismatch against, so test debt and site debt are ONE debt
with one prerequisite ([[stable-anchor-is-not-a-recycling-defense]]). Say that, or
the next author writes another own-pid test and it reads covered a second time.

**How to apply:** when a test drives a state machine through a happy sequence,
ask which step of the SETUP writes the value the assertion's gate reads. If the
setup writes it, the test cannot see the arm where that value is wrong — say so
in the finding, and make the hazard text name the suppression explicitly so a
future reader cannot re-mistake the test for coverage. Sibling of
[[uniform-table-blindness-sweep]] (uniform rows) and
[[instrument-soundness-guards]] (a gate whose failure signature matches the fault
it guards); the discriminant here is the setup, not the data. Proving the gate
rather than a dead rig still needs the two-arm control —
[[stacked-defects-mask-each-other]].
