---
name: a-frontier-names-where-progress-stopped-not-the-cause
description: "In a stall, hang, or cascade, the item at the frontier is a CASUALTY — naming it as the cause is a finding-shaped mistake, and skipping it only moves the frontier."
metadata: 
  node_type: memory
  type: feedback
  originSessionId: 16e93f3e-952f-4c31-9297-d1786339c6ce
  modified: 2026-08-22T05:32:05.338Z
---

> **Provenance, resolved 2026-08-22 (doyle).** deployah overwrote an earlier copy of this file with
> `cat >` and reconstructed it from `MEMORY.md`'s index line, flagging the parts they could not
> recover. **The substance was never actually lost: it lives in `docs/INFRA-REGISTER.md` IR-55, which
> is git-tracked**, and this file has been checked against that entry — the reconstruction was
> faithful and in places better than the register's own prose, so it stands as written rather than
> being replaced. The original was NOT doyle's write; this project's memory root is shared by every
> agent working it, which is the condition that makes the clobber possible at all. The clobber
> mechanism is recorded in [[write-a-shared-memory-file-only-after-checking-it-exists]]. Treat IR-55
> as the authoritative long form; treat this file as the lesson.

When a serial process wedges, the last thing it was doing is where progress STOPPED, not what
stopped it. Naming the frontier item as the culprit produces a confident, specific, wrong diagnosis
that survives review because it comes with a name and a line number.

**Measured, doyle, IR-55, 2026-08-21.** Bare `cargo test -p spt --bins` wedged on HFENDULEAM (twice;
once 24 minutes at 13.5s CPU — BLOCKED, not spinning).

**[from the index line]** Streaming plus `--test-threads=1` NAMED the wedger — and it passes ALONE in
**0.02s**. Skipping it moved the frontier **183 → 335**, then stalled on TWO. The real cause was an
EARLIER test leaking `findstr .` children: with no file argument `findstr` reads stdin forever under
headless conhost, and a single-process harness lets one leak block every test after it. doyle
retracted his own register entry within the hour, and also killed his own second hypothesis — the
gate's identity-env scrub — because the isolation runs HAD the scrub applied and passed. **Run the
frontier alone first; then BISECT, never edit at the frontier.**

`cargo nextest run -p spt --bins --no-fail-fast` ran the same 653 in 22.2s, 653 passed — see
[[cargo-test-bins-wedges-use-nextest]].

**The falsification tests are cheap and decisive:** run the frontier item ALONE (passes in ms ⇒
casualty), and SKIP it (frontier merely advances ⇒ cause is upstream and shared). Both cost seconds
and both are available before you file anything.

**How to apply:**
- Never name a frontier item as a cause without the isolation run. "It hung at X" and "X hangs" are
  different claims.
- Prefer the explanation that accounts for the WHOLE tail, not just the first casualty. One leaked
  blocking child explains every subsequent test; a bad test explains one.
- Bisect for the leaker; do not edit at the frontier, which is where the damage shows and not where
  it is caused.
- A serial harness converts one leak into a total stall; a per-process harness does not. When a wedge
  appears under one runner and not another, suspect the ISOLATION MODEL before the tests.
- Leaving a hypothesis OPEN is a result. doyle's scrub theory is unsupported, not refuted, and it
  stays open in IR-55 rather than being closed neatly.

Related: [[dont-take-a-diagnosis-as-measured]], [[identical-readings-across-opposite-outcomes-indict-the-meter]],
[[cargo-test-bins-wedges-use-nextest]].
