diff --git a/docs/re/METHOD.md b/docs/re/METHOD.md index 136409ae..2448d791 100644 --- a/docs/re/METHOD.md +++ b/docs/re/METHOD.md @@ -485,6 +485,26 @@ agent's loop prompt, i.e. nowhere durable. See [`README.md`](README.md) for the πŸ“Œ **So audit headings first**: they are the assertions most likely to be read and least likely to carry the qualification that would save them. +* πŸ”΄ **A stale INSTRUCTION is worse than a stale description, because it fails + silently and manufactures a false confirmation.** `ui-keyframe-time-unit.md` told + readers a comparison was *"gated by `SYLPHEED_KF_TIME_SHIFT=1`"* β€” a variable + **removed with the record-layout fix and present nowhere in `crates/`**. Anyone + following it sets something inert, gets default behaviour, and concludes the two + readings agree. ⚠️ The same shape as `screen-transitions.md` telling the port to + **author** a value that is decoded. **When sweeping for stale text, rank + instructions above descriptions**: a wrong description misleads a reader, a wrong + instruction produces a wrong *result* that looks like evidence. + πŸ“Œ And `sylpheed-port`'s generalisation of the heading rule: **an index is an + amplifier.** Anything that republishes headings β€” a generated table of contents, + a summary, `INDEX.md`'s H1-and-Status table β€” multiplies whatever the heading + asserts, including what it asserts wrongly. Theirs was republishing three + withdrawn claims at the top of the file as live findings. + ⚠️ **Denominator, stated because the number is unflattering:** this corpus has + **2 989 headings**, of which **401** make a negative or absolute assertion. I have + audited the ones this session touched plus the high-yield intersection with dead + rule vocabulary. **That is a sample, not a sweep**, and older headings are the + likelier to be stale for having had more chances to be overturned. + ## Runtime / emulator * **Look at the PNG** β€” and check its dimensions. diff --git a/docs/re/ui-keyframe-time-unit.md b/docs/re/ui-keyframe-time-unit.md index 32fb9ebc..1cf83a92 100644 --- a/docs/re/ui-keyframe-time-unit.md +++ b/docs/re/ui-keyframe-time-unit.md @@ -309,7 +309,13 @@ group, because a group owns `framesΒ·40 βˆ’ 4` bytes. `kf[nβˆ’1]` takes `W[nβˆ’2]` β€” which exists. Nothing is missing and nothing is special-cased: `W[k]` is simply *the time at which pose `k+1` is reached*. -Gated by `SYLPHEED_KF_TIME_SHIFT=1`, default unchanged. See below for what +πŸ”΄ **This sentence used to read "Gated by `SYLPHEED_KF_TIME_SHIFT=1`, default +unchanged."** That gate **no longer exists** β€” it was removed with the +[record-layout fix](ui-keyframe-record-layout.md) and appears **nowhere in +`crates/`**. ⚠️ A reader following the old instruction sets an environment +variable that does nothing, gets default behaviour, and concludes the two readings +agree: **a stale instruction that no-ops manufactures a false confirmation**, +which is worse than a stale description. See below for what adopting it would cost. ### πŸ”΄ …and what it costs β€” which is why the default is UNCHANGED @@ -359,7 +365,14 @@ as they are. --- -## βœ… Replicated: three elements, two screens, and the shifted reading wins every time +## βœ… Replicated: three elements, two screens β€” evidence that SUPPORTED the shifted reading + +⚠️ **This heading used to end "and the shifted reading wins every time".** Demoted +because the shifted reading was itself superseded: the +[record-layout fix](ui-keyframe-record-layout.md) established the same association +by a better route and timed pose 0 as well, which the shifted reading never did. +The evidence below stands; it is now evidence for the *corrected* reading, and the +gate it was collected behind no longer exists. **2026-08-29.** The case for reading `+36` as *"the time the NEXT pose is reached"* rested on one element's fade-out shape, then on one element's hold @@ -412,4 +425,5 @@ the five screens' correlations stand ([acceptance](five-screens-acceptance.md)). 🟑 Classified **measured, not decoded**: this is three elements in one game screen family, not a disc-wide field check, and our own decoder still defaults to -the other reading behind `SYLPHEED_KF_TIME_SHIFT=1`. +the other reading behind `SYLPHEED_KF_TIME_SHIFT=1` β€” ⚠️ **a gate since removed; +there is no way to select the old reading today, and nothing to set.**