diff --git a/docs/re/METHOD.md b/docs/re/METHOD.md index d7a1cd2f..e94f3d0c 100644 --- a/docs/re/METHOD.md +++ b/docs/re/METHOD.md @@ -2353,3 +2353,39 @@ revivals.** So the register's clean run is now backed by a reading. That is the point: the number was worth nothing until someone looked, and looking took one pass. + +## A press that leaves the harness is not a press the guest received — including the d-pad + +This corpus already knew it for Ⓐ and Ⓑ: `b_from_menu.py` confirms delivery from +the guest's own `[RE-INPUT]` log rather than from the pad, because a scripted press +can be swallowed. **It had not been applied to the d-pad**, and my first +focus-persistence run paid for it: two `pad.py dpad down` calls, and the guest +logged `vk=5811` **once**. + +The reader looked broken — F1 and F2 both read `LOAD GAME` — and the tempting +diagnosis was a stale frame. It was not: the two frames differ by 911 px, so they +were different frames of an unmoved cursor. **The control caught it and refused to +report F3**, which is the only reason the run was discarded rather than published +with a wrong number in it. + +⚠️ **The general form: a confirmation discipline adopted for one input silently +does not extend to the others.** Ⓐ and Ⓑ were confirmed because they had once +failed; DOWN had never visibly failed, so it was never confirmed. Ask of any +input-driven measurement *which* presses are confirmed, not whether presses are +confirmed. + +## Prose that drifts from the code beneath it — three instances, two agents + +`sylpheed-port` named this after hitting it in `spin_period_units`, whose doc +described the pre-fix "first timed, second untimed" rule while the body implemented +the span-based replacement. Two of the three are mine: the `rest` override's +comment still described it as testing the shifted time reading *after* the +record-layout fix had refuted that reading, and a `continue` was documented with +the pre-fix rule. + +All three were created the same way: **the code was corrected and the sentence +above it was not.** ⚠️ Neither agent's checker looks at this — `check_refuted.py` +reads prose against a register, the port's checks read numbers against a tree, and +a comment that contradicts the function under it is invisible to both. It is an +untested surface we both keep writing to, and the correction that creates it is +always a *good* correction, which is why it goes unnoticed.