tools: the refuted-claim register never scanned code, and code is where a retraction fails to land

sylpheed-port found three live stale claims in their own source, each already
retracted in their log days earlier. Their framing is the one that matters: a
correction that does not reach the artifact a consumer reads has not been made, and
a comment sits beside the thing it describes.

check_refuted.py scanned docs/ only. Running it over tools/ and crates/ for the
first time found one here too: jp_title_session.sh justified its own existence with
'a free-running clock lands somewhere else on a fresh boot' -- a claim I refuted
myself the day before, when I measured the plate-pulse gate phase-locking the
shutter to 1.6 % of the sweep traverse. The script's stated rationale rested on a
premise I had already killed.

Fixed the file with the correction in place, including what it means for what that
script actually measures: a second capture through the same gate is a second sample
at nearly the same animation phase, so its RMSE 0.32 is a phase-locked lower bound.

Taught the register to scan code behind --code, excluding crates/sylpheed-viewer,
which is the human's tool. Controlled three ways: a planted code revival exits 1
with --code, exits 0 without it -- which is the proof the gap was real -- and 0
again once removed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
This commit is contained in:
sylph-decoder
2026-08-31 03:22:55 +00:00
parent f1f23fc74c
commit dda1bc183b
2 changed files with 36 additions and 4 deletions

View File

@@ -115,6 +115,18 @@ if "--selftest" in sys.argv:
sys.exit(0)
root = Path(os.environ.get("CHECK_REFUTED_ROOT", "docs"))
# 🔴 THIS SCANNED `docs/` ONLY, AND CODE IS WHERE A RETRACTION FAILS TO LAND.
# sylpheed-port found three live stale claims in their own source, each already
# retracted in DECISIONS.md days earlier -- "a correction that does not reach the
# artifact a consumer reads has not been made", and a comment sits BESIDE the
# thing it describes. Running this register over code for the first time on
# 2026-08-31 found one here too: jp_title_session.sh justified its own existence
# with "a free-running clock lands somewhere else on a fresh boot", which I had
# refuted myself the day before.
# ⚠️ crates/sylpheed-viewer is excluded: it is the human's tool, not mine to edit.
CODE_GLOBS = ("tools/**/*.py", "tools/**/*.sh", "crates/**/*.rs")
CODE_SKIP = ("target/", "sylpheed-viewer")
ref = root / "re" / "REFUTED.md"
claims = []
seen_report = set()
@@ -138,7 +150,13 @@ suppressed = []
seen_marked = set()
for c in claims:
needle = c.strip()
for f in root.rglob("*.md"):
code_files = []
if "--code" in sys.argv:
import glob as _g
for _p in CODE_GLOBS:
code_files += [Path(x) for x in _g.glob(_p, recursive=True)
if not any(k in x for k in CODE_SKIP)]
for f in list(root.rglob("*.md")) + code_files:
if f == ref or f.name in CHRONOLOGICAL:
continue
lines = f.read_text(errors="replace").splitlines()

View File

@@ -4,9 +4,23 @@
# The first JP capture (2026-08-30) demonstrated the logo stack is at rest
# WITHIN a run: five frames ~1.5 s apart, byte-identical over the port's ROI,
# against a whole-frame contrast control showing 5-8 % of the screen moving.
# That does not test the axis sylpheed-port's drift was on -- BETWEEN runs, where
# a free-running clock lands somewhere else on a fresh boot. This script exists
# to take a second, independent capture so that axis can be measured.
# That does not test the axis sylpheed-port's drift was on -- BETWEEN runs. This
# script exists to take a second, independent capture so that axis can be measured.
#
# 🔴 THE ORIGINAL RATIONALE HERE WAS REFUTED, and the retraction never reached this
# file until 2026-08-31. It read: "BETWEEN runs, where a free-running clock lands
# somewhere else on a fresh boot". IT DOES NOT. Both captures are shuttered on the
# plate pulse, and the plate's pulse is part of the title animation, so the gate
# PHASE-LOCKS the shutter: measured, the sweep sits 25-26 px apart across two runs
# in different locales and different sessions -- 1.6 % of a ~1600 px traverse.
# See structures/plate-pulse-phase-lock.md.
#
# ⚠️ SO WHAT THIS SCRIPT MEASURES IS NARROWER THAN THE COMMENT CLAIMED. A second
# capture through the same gate is a second sample at nearly the SAME animation
# phase, not a sample of a free-running clock. The RMSE 0.32 it produced is a
# phase-locked lower bound on capture noise, not capture noise. The era
# adjudication it fed still stands -- its margin, 16.72, clears even the unlocked
# 11.9 -- but for the reason bgm/jp-title-at-rest.txt gives, not this one.
#
# Usage: jp_title_session.sh OUTDIR [wait_s]
set -u