From e63f20468fc64c94c16634dbf33885bcb5ca4a9a Mon Sep 17 00:00:00 2001 From: Sylpheed port agent Date: Sun, 30 Aug 2026 18:02:13 +0000 Subject: [PATCH] port: audit headings -- my own index was republishing withdrawn claims Their third mechanical search, audit headings first, lands harder here than on their side because tools/port/index-decisions builds a table of contents FROM the headings. A withdrawn claim was not merely sitting above its correction, it was being republished at the top of the file as a live finding. Three hits. 'The JP title capture adjudicates title_jp -- and it goes against the port' asserted the opposite of the finding: I scored --pose=rest, which the port does not ship, and posed as it runs the port beats the reference +0.9994 to +0.8727. 'The leaf phase was an arbitrary choice; the capture turns out to determine it' was refuted 97 lines below by the replication on title. 'Nested leaves may advance at half rate -- a quantified defect in shipped output' is not a defect, since the rate it is quantified against is known wrong. All three now lead with the correction, original quoted and demoted beneath. Scope stated because the number is unflattering: I audited the ~30 headings from this session plus one older one I remembered, out of 211. Roughly 180 unaudited, and older headings are likelier to be stale, not less. This is a sample, not a sweep. The generalisation: an index is an amplifier. Any mechanism that republishes headings multiplies the reach of whatever they assert, including wrongly. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF --- docs/port/DECISIONS.md | 84 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 77 insertions(+), 7 deletions(-) diff --git a/docs/port/DECISIONS.md b/docs/port/DECISIONS.md index 14087766..72a58d7b 100644 --- a/docs/port/DECISIONS.md +++ b/docs/port/DECISIONS.md @@ -9,7 +9,7 @@ dies, which is what this file is for. -198 sections. Search this before re-deriving anything. +212 sections. Search this before re-deriving anything. * [P0 — the exporter, 2026-08-28](#p0--the-exporter-2026-08-28) * [P1 — Godot draws the screen, 2026-08-28](#p1--godot-draws-the-screen-2026-08-28) @@ -158,7 +158,12 @@ dies, which is what this file is for. * [BLOCKED.md's five "blocking" rows were all answered, some days ago](#blockedmds-five-blocking-rows-were-all-answered-some-days-ago) * [The plate came back in the game and not in the port](#the-plate-came-back-in-the-game-and-not-in-the-port) * [🔴 `verify-screen` was nondeterministic, and it looked fine most of the time](#verify-screen-was-nondeterministic-and-it-looked-fine-most-of-the-time) -* [The JP title capture adjudicates `title_jp` — and it goes against the port](#the-jp-title-capture-adjudicates-title_jp--and-it-goes-against-the-port) +* [🔴 WITHDRAWN — the JP capture does NOT go against the port; I scored the wrong frame](#withdrawn--the-jp-capture-does-not-go-against-the-port-i-scored-the-wrong-frame) +* [*(This heading read: "The JP title capture adjudicates `title_jp` — and it goes](#this-heading-read-the-jp-title-capture-adjudicates-title_jp--and-it-goes) +* [against the port." Withdrawn in full below. I scored `verify-screen`'s](#against-the-port-withdrawn-in-full-below-i-scored-verify-screens) +* [`--pose=rest` frame, which the port does not ship; posed as it runs, the port](#--poserest-frame-which-the-port-does-not-ship-posed-as-it-runs-the-port) +* [beats the reference +0.9994 to +0.8727. The heading asserted the opposite of](#beats-the-reference-09994-to-08727-the-heading-asserted-the-opposite-of) +* [the finding for as long as it stood.)*](#the-finding-for-as-long-as-it-stood) * [🔴 CORRECTION: the port did not move away from the game — I scored the wrong frame](#correction-the-port-did-not-move-away-from-the-game--i-scored-the-wrong-frame) * [The `rest()` flash defect reaches four screens I ship — and the port already survives it](#the-rest-flash-defect-reaches-four-screens-i-ship--and-the-port-already-survives-it) * [Correction: those two are the *sound* path, which makes the rule stronger](#correction-those-two-are-the-sound-path-which-makes-the-rule-stronger) @@ -186,7 +191,11 @@ dies, which is what this file is for. * [The oracle harness was nondeterministic, and I quoted its numbers for a dozen iterations](#the-oracle-harness-was-nondeterministic-and-i-quoted-its-numbers-for-a-dozen-iterations) * [Answering "an unenumerated set" — don't enumerate, test](#answering-an-unenumerated-set--dont-enumerate-test) * [🔴 The third clock was in my own list, and I did not wire it](#the-third-clock-was-in-my-own-list-and-i-did-not-wire-it) -* [The leaf phase was an arbitrary choice; the capture turns out to determine it](#the-leaf-phase-was-an-arbitrary-choice-the-capture-turns-out-to-determine-it) +* [🔴 WITHDRAWN — the leaf-phase minimum measures the capture, not the game](#withdrawn--the-leaf-phase-minimum-measures-the-capture-not-the-game) +* [*(This heading read: "The leaf phase was an arbitrary choice; the capture turns](#this-heading-read-the-leaf-phase-was-an-arbitrary-choice-the-capture-turns) +* [out to determine it." Refuted 97 lines below by the replication on `title`,](#out-to-determine-it-refuted-97-lines-below-by-the-replication-on-title) +* [which minimises at a different phase for the same object. What the minimum](#which-minimises-at-a-different-phase-for-the-same-object-what-the-minimum) +* [locates is where the shutter fell, not the game's rest phase.)*](#locates-is-where-the-shutter-fell-not-the-games-rest-phase) * [Cross-checking their leaf reading against my export — it reconciles](#cross-checking-their-leaf-reading-against-my-export--it-reconciles) * [Replicating the phase result on the title — it fails, and the failure is the finding](#replicating-the-phase-result-on-the-title--it-fails-and-the-failure-is-the-finding) * [Their masking rule, implemented — and it does not transfer to my screens](#their-masking-rule-implemented--and-it-does-not-transfer-to-my-screens) @@ -194,7 +203,11 @@ dies, which is what this file is for. * [Using the clean splash rows to measure the tone curve — and repeating a documented mistake](#using-the-clean-splash-rows-to-measure-the-tone-curve--and-repeating-a-documented-mistake) * [Localising the 1.92 splash floor: it is glyph edges, and off them the port is ~1 RMSE from the game](#localising-the-192-splash-floor-it-is-glyph-edges-and-off-them-the-port-is-1-rmse-from-the-game) * [Their draw-stream result checked against my export — three confirmations and one correction](#their-draw-stream-result-checked-against-my-export--three-confirmations-and-one-correction) -* [Nested leaves may advance at half rate — a quantified defect in shipped output](#nested-leaves-may-advance-at-half-rate--a-quantified-defect-in-shipped-output) +* [Nested leaves may advance at half rate — a CONDITIONAL exposure, not a defect](#nested-leaves-may-advance-at-half-rate--a-conditional-exposure-not-a-defect) +* [*(This heading read "a quantified defect in shipped output". The rate it is](#this-heading-read-a-quantified-defect-in-shipped-output-the-rate-it-is) +* [quantified against was later shown to be neither frame-locked nor simple](#quantified-against-was-later-shown-to-be-neither-frame-locked-nor-simple) +* [wall-clock, so the input is known wrong rather than merely unpinned. Nothing](#wall-clock-so-the-input-is-known-wrong-rather-than-merely-unpinned-nothing) +* [is established as defective.)*](#is-established-as-defective) * [Their Route 1 is closed for the whole archive, not just the title](#their-route-1-is-closed-for-the-whole-archive-not-just-the-title) * [The off-edge splash residual is **not** tonal — and I was comparing it to the wrong floor](#the-off-edge-splash-residual-is-not-tonal--and-i-was-comparing-it-to-the-wrong-floor) * [Their linearity gate, applied to my side of the ratio — and an inversion](#their-linearity-gate-applied-to-my-side-of-the-ratio--and-an-inversion) @@ -209,6 +222,7 @@ dies, which is what this file is for. * [`black_hold_units`: my own tripwire has tripped, and I am not resolving it alone](#black_hold_units-my-own-tripwire-has-tripped-and-i-am-not-resolving-it-alone) * [Their sharpened tell, applied to my tree: two descriptions the code below had already refuted](#their-sharpened-tell-applied-to-my-tree-two-descriptions-the-code-below-had-already-refuted) * [The grep found two more — and the reason is my correction *habit*, not my attention](#the-grep-found-two-more--and-the-reason-is-my-correction-habit-not-my-attention) +* [Auditing headings — and my own index was amplifying the withdrawn ones](#auditing-headings--and-my-own-index-was-amplifying-the-withdrawn-ones) ## P0 — the exporter, 2026-08-28 @@ -8623,7 +8637,13 @@ agreement with the reference is not correctness and a `DIFFERS` is not automatically the port's fault. Guessing a direction here is precisely the move the mission forbids. Asked, not resolved. -## The JP title capture adjudicates `title_jp` — and it goes against the port +## 🔴 WITHDRAWN — the JP capture does NOT go against the port; I scored the wrong frame +## +## *(This heading read: "The JP title capture adjudicates `title_jp` — and it goes +## against the port." Withdrawn in full below. I scored `verify-screen`'s +## `--pose=rest` frame, which the port does not ship; posed as it runs, the port +## beats the reference +0.9994 to +0.8727. The heading asserted the opposite of +## the finding for as long as it stood.)* The Decoder captured the Japanese title at rest (`310bf86`) and deliberately did **not** compare it to either renderer, so that my diff and theirs stay @@ -10043,7 +10063,12 @@ compared an in-box margin against a whole-frame spread; I tested a pin I had documented as insufficient. Both errors happened one message after agreeing this was the habit underneath everything. -## The leaf phase was an arbitrary choice; the capture turns out to determine it +## 🔴 WITHDRAWN — the leaf-phase minimum measures the capture, not the game +## +## *(This heading read: "The leaf phase was an arbitrary choice; the capture turns +## out to determine it." Refuted 97 lines below by the replication on `title`, +## which minimises at a different phase for the same object. What the minimum +## locates is where the shutter fell, not the game's rest phase.)* Last iteration I pinned the leaf at phase 0 to make the harness reproducible and said plainly that **which pose the game shows is not settled by this**. It is a @@ -10449,7 +10474,12 @@ what their measurement is for, and 6–7 px/frame is *their* number from the gam What I can say is that the disc figure it was compared against was computed over a span that includes 60 units of holding. -## Nested leaves may advance at half rate — a quantified defect in shipped output +## Nested leaves may advance at half rate — a CONDITIONAL exposure, not a defect +## +## *(This heading read "a quantified defect in shipped output". The rate it is +## quantified against was later shown to be neither frame-locked nor simple +## wall-clock, so the input is known wrong rather than merely unpinned. Nothing +## is established as defective.)* Their corrected fit (least squares over 132/112 points, replacing an eyeballed figure that was 50 % high) gives **4.287** and **−4.348** px/frame against my @@ -11163,3 +11193,43 @@ is the shape of a rule fitted to its own sample. ✅ Agreed, and worth stating plainly: **I did not carve out the exception.** The rule was rejected, not narrowed to menu transitions, and `black_hold_units` remains escalated rather than set from it. + +## Auditing headings — and my own index was amplifying the withdrawn ones + +Their third mechanical search — **audit headings first**, because they assert with +maximum reach and minimum context and a reader scanning them never reaches the +retraction — lands harder on my tree than theirs, for a reason neither of us +anticipated: **`tools/port/index-decisions` builds a table of contents *from the +headings*.** A withdrawn claim was not merely sitting above its correction; it was +being *republished* at the top of the file as a live finding. + +Three hits: + +| heading | status | +|---|---| +| *"The JP title capture adjudicates `title_jp` — and it goes against the port"* | **asserted the opposite of the finding.** I scored `--pose=rest`, which the port does not ship; posed as it runs the port beats the reference +0.9994 to +0.8727 | +| *"The leaf phase was an arbitrary choice; the capture turns out to determine it"* | **refuted 97 lines below** by the replication on `title` | +| *"Nested leaves may advance at half rate — a quantified defect in shipped output"* | **not a defect** — the rate it is quantified against is known wrong | + +✅ All three now lead with the correction, with the original quoted and demoted +beneath — my own fix from last iteration, applied to the class where it matters +most. + +### ⚠️ Scope, stated because the number is unflattering + +I audited **the ~30 headings from this session, plus one older one I happened to +remember**. There are **211**. So roughly 180 are unaudited — and *older headings +are likelier to be stale*, not less, because they have had more chances to be +overturned. **This is a sample, not a sweep**, and calling it an audit without the +denominator would be the exact failure this whole thread is about. + +📌 The generalisation their refinement earns: **an index is an amplifier.** Any +mechanism that republishes headings — a table of contents, a summary, a `--help` +listing — multiplies the reach of whatever the heading asserts, including the +things it asserts wrongly. My index was built to make decisions findable and it +was making three withdrawn claims findable first. + +⚠️ Their point about *why* the additive habit fails is the one I would keep over my +own framing: **"record" and "statement" want opposite orders, and a single block +cannot be both without deciding which one leads.** That is more precise than +calling the habit wrong — it isn't wrong, it is under-specified about ordering.