docs: replace route 7's unfalsifiable gate criterion with a positive assertion (#319)

The original criterion — "the session counts ONLY if cause=propagate lines
appear" — cannot fail in the presence of the bug it exists to catch. #319
makes a player-parented child emit no probe line at all, so the defect's
signature is ABSENCE, which that wording reads as "not exercised" rather than
"broken". Two captured gate logs contain #319 and neither flags it; the second
was run specifically to thicken this gate and still missed it.

Replaced with a positive assertion: read the equipped child's FullCellId and
require it to EQUAL the parent's after a crossing — a zero child cell is a
failure, not a silence. Probe-line volume drops to a secondary check. And the
gate must now be run with a PLAYER parent as well as a creature parent, since
#319 exists precisely because every probe-firing parent in both logs was
instance-sequence 0 and the sole player parent was the sole failure.

The rule this generalises, added to the handoff's process findings: a gate
whose failure mode is indistinguishable from a not-run manufactures
confidence. Counting evidence-of-success is not the same as asserting the
property; only the latter can fail.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-08-05 10:00:16 +02:00
parent 195667db94
commit 2687d89363

View file

@ -97,9 +97,31 @@ traffic); this is the one purely visual gate.
6. Portal recall while equipped — equipment present and following after 6. Portal recall while equipped — equipment present and following after
arrival. arrival.
**Pass criterion: the session counts ONLY if `[child-cell]` lines with **Pass criterion — CORRECTED 2026-08-05, the original was unfalsifiable.**
`cause=propagate` appear during step 2**, child cell always equal to the
player's. Regressions: weapon drawn at the world origin or its last ground The original read: *"the session counts ONLY if `[child-cell]` lines with
`cause=propagate` appear during step 2."* **That criterion cannot fail in the
presence of the bug it exists to catch.** #319 makes a player-parented child
emit NO probe line at all, so the defect's signature is ABSENCE — which the
old wording reads as "you didn't exercise it" rather than "it is broken." Two
captured gate logs (`c4-gates.log`, `c5-gates.log`) contain #319 and neither
flags it; the second was even run specifically to thicken this gate.
A gate whose failure mode is indistinguishable from a not-run manufactures
confidence. Replace it with a POSITIVE assertion:
1. **Assert the equipped child's `FullCellId` EQUALS the parent's** after a
landblock crossing — read it, do not infer it from probe volume. A zero
child cell is a FAILURE, not a silence.
2. Then, and only as a secondary check, expect `cause=propagate` counts in
double digits across several crossings.
3. Run it with a **player** parent AND a **creature** parent. #319 exists
precisely because every probe-firing parent in both captured logs was
`0x7…`/`0x8…` (instance sequence 0) and the sole `0x5…` player parent was
the sole failure. A gate that only ever sees sequence-0 parents is blind to
the entire player class.
Regressions: weapon drawn at the world origin or its last ground
position; invisible while equipped; **left behind at a landblock boundary** position; invisible while equipped; **left behind at a landblock boundary**
(the D4 demotion's specific risk); invisible-but-solid at a former position (the D4 demotion's specific risk); invisible-but-solid at a former position
(#184); child culled while the parent is visible or vice versa. The headless (#184); child culled while the parent is visible or vice versa. The headless
@ -379,7 +401,9 @@ load-bearing observation: before the round-2 R3 fix the field read
**Route 7 (child cell) — PASS, but THIN.** 17 `[child-cell]` lines: **Route 7 (child cell) — PASS, but THIN.** 17 `[child-cell]` lines:
13 `cause=attach`, 3 `cause=delete`, **1 `cause=propagate`**. The stated pass 13 `cause=attach`, 3 `cause=delete`, **1 `cause=propagate`**. The stated pass
criterion (at least one `cause=propagate`) is met, so the gate passes — but criterion (at least one `cause=propagate`) was met, so the gate was recorded
as passing — but see #319: that criterion was UNFALSIFIABLE and this very log
contains an undetected defect. Corrected above. The remaining note stands:
propagation across a parent cell crossing is the slice's entire purpose, and propagation across a parent cell crossing is the slice's entire purpose, and
one sample proves the path executes rather than that it is robust across one sample proves the path executes rather than that it is robust across
repeated crossings. A future session should run several equipped landblock repeated crossings. A future session should run several equipped landblock