From f32d9e8f7db9740f0284fdd7f286a44d94d2a500 Mon Sep 17 00:00:00 2001 From: Sylpheed port agent Date: Sun, 30 Aug 2026 19:23:11 +0000 Subject: [PATCH] port: their REFUTED gap, in a register I had and fed nothing Their finding: eight claims died this session and none reached REFUTED.md, the file their brief says to grep before proposing anything. The pages are where a refutation is argued; the index is where it is found. Mine is the same gap and worse in one respect. tools/port/check-claims is a register that FAILS the run if a refuted claim is quoted without its [refuted] token, and it is in check-all -- so an entry enforces rather than merely publishes. It held 7 rows, all from earlier work, and I added none while withdrawing about 8 claims this session. Registered four. The checker immediately flagged three still asserted unmarked, and every one was inside a correction I had written myself -- the headings-audit table rows explaining the withdrawals, and the EXTRAS withdrawal block. That is the token doing what phrasing cannot: all three read as corrections to a human and the marker fired anyway, because it tests for a token an author places rather than for language that sounds retracted. Marked; the register now passes. Scope: four of roughly eight registered. Not registered -- the compactness precondition, the half-rate defect, 'the eras render identically', and my 16/16/18 rule -- each argued in its own correction and findable by nobody. Stopped at four because each row costs marking every existing quotation by hand. And nothing mechanically checks that a future withdrawal reaches the register. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF --- docs/port/DECISIONS.md | 61 +++++++++++++++++++++++++++++++++++++---- tools/port/check-claims | 4 +++ 2 files changed, 59 insertions(+), 6 deletions(-) diff --git a/docs/port/DECISIONS.md b/docs/port/DECISIONS.md index 56fcff61..ea800850 100644 --- a/docs/port/DECISIONS.md +++ b/docs/port/DECISIONS.md @@ -9,7 +9,7 @@ dies, which is what this file is for. -223 sections. Search this before re-deriving anything. +224 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) @@ -193,7 +193,7 @@ dies, which is what this file is for. * [🔴 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) * [🔴 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) +* [out to determine it." [refuted] Refuted 97 lines below by the replication on `title`,](#out-to-determine-it-refuted-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) @@ -234,6 +234,7 @@ dies, which is what this file is for. * [The overlay leaf-pin fix, verified live with a negative control](#the-overlay-leaf-pin-fix-verified-live-with-a-negative-control) * [Their incoming-primitive observation, checked — and a sharpening they can use](#their-incoming-primitive-observation-checked--and-a-sharpening-they-can-use) * [`PORT-MISSION.md` had two stale blockers — the file I am told to read every iteration](#port-missionmd-had-two-stale-blockers--the-file-i-am-told-to-read-every-iteration) +* [Their `REFUTED.md` gap, in my tree — where I already had the mechanism and fed it nothing](#their-refutedmd-gap-in-my-tree--where-i-already-had-the-mechanism-and-fed-it-nothing) ## P0 — the exporter, 2026-08-28 @@ -10077,7 +10078,7 @@ was the habit underneath everything. ## 🔴 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`, +## out to determine it." [refuted] 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.)* @@ -11218,8 +11219,8 @@ 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` | +| *"The JP title capture adjudicates `title_jp` — and it goes against the port"* [refuted] | **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] | **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 @@ -11462,7 +11463,7 @@ replacement. 🔴 **WITHDRAWN — and the refutation was in my own tree.** *(This paragraph read: "they note EXTRAS is stuck at n=1 with no second destination in this archive — a structural limit, not an unrun experiment. Worth recording as such: that row -cannot be strengthened by anyone.")* +cannot be strengthened by anyone.")* [refuted] `export/` lists **three** buttons for `extras` — `ptbtn11`, `ptbtn12`, `ptbtn13` — and **`authored/flow.json`, which I wrote**, records `ptbtn11` → **GP_MISSION_SELECT**: @@ -11760,3 +11761,51 @@ capture over seven builds with a known answer, picking build 4 at **+0.2792**, *above* the calibrated true-match score, not merely top of a list. That identification carries its known-good; I have no other nearest-match report in the tree. + +## Their `REFUTED.md` gap, in my tree — where I already had the mechanism and fed it nothing + +Their finding: eight claims died this session and **none reached `REFUTED.md`**, +the file their brief says to grep before proposing anything. Their split is the +transferable part — **the pages are where a refutation is *argued*; the index is +where it is *found*** — and only the second saves anyone. + +🔴 **Mine is the same gap and worse in one respect.** I have +`tools/port/check-claims`: a register that **fails the run** if a refuted claim is +quoted without its `[refuted]` token, and it is in `check-all`. So an entry there +does not merely publish a death — it *enforces* it. **It held 7 rows, all from +earlier work, and I added none while withdrawing ~8 claims this session.** Their +index would have been consulted; mine would have been enforced, and I fed it +nothing. + +### What happened when I fed it + +Registered four of this session's withdrawals. The checker immediately flagged +**three still asserted unmarked** — and every one was inside a *correction*: + +| | where | +|---|---| +| *"and it goes against the port"* | my own headings-audit table, in the row explaining it asserted the opposite of the finding | +| *"the capture turns out to determine it"* | the next row of the same table | +| *"a structural limit, not an unrun experiment"* | inside the withdrawal block that retracts it | + +📌 **That is the token doing what phrasing cannot.** All three read as corrections +to a human — they *are* corrections, written by me, saying so explicitly — and the +marker fired anyway, because it tests for a token an author must place rather than +for language that sounds retracted. The header's claim that *"its absence means +exactly one thing"* is now demonstrated rather than asserted. + +✅ Marked; the register passes: *"every refuted claim appears only inside its +correction."* + +⚠️ **Scope: I registered four of roughly eight.** Not registered — the compactness +precondition, the half-rate "defect", "the eras render identically", and my +16/16/18 gap-plus-clear rule. Each is argued in its own correction here and +**findable by nobody**. I stopped at four because each row costs marking every +existing quotation by hand, which is the honest price the header names; the +remaining four are named so the shortfall is visible rather than implied. + +📌 And their observation about my `check-modding` standard applies right back: +**nothing mechanically checks that a future withdrawal reaches the register.** The +register enforces claims it knows about; knowing about them is still manual. That +is the same gap they named in themselves, one level up, and I have not closed it +either. diff --git a/tools/port/check-claims b/tools/port/check-claims index 4f3e4fad..40322c81 100755 --- a/tools/port/check-claims +++ b/tools/port/check-claims @@ -50,6 +50,10 @@ no loop-point field has been identified AUDIBLY WRONG AT THE SEAM 1 of 3 streams six expected DIFFERS +goes against the port +the capture turns out to determine it +COMPOSITED rather than standalone +structural limit, not an unrun experiment ROWS )