re: the refuted register ignored the deaths I just wrote, and two false positives shared a cause
Three refutations written as prose under ### headings never entered the register:
check_refuted.py parses * "claim" lines, so the count stayed at 188. Registered
them properly (188 -> 192). A register that parses one syntax silently ignores
every other, and it is invisible from the author's side -- ask the register what it
holds, do not re-read what you wrote.
Both standing false positives were bullets under a header that retracts the whole
list, with no marker in the +-4-line window: scope marks them, not proximity. The
scan now includes the nearest preceding header and matches markers
case-insensitively ('An earlier version' was missed by the marker 'an earlier
version'). Controlled by planting a real revival and confirming it is still caught;
register now runs clean at 0.
Also records sylpheed-port's diagnosis of the phase-lock fallout: a number can be
inapplicable rather than wrong, and a tension built on one is manufactured. Plus
their point that some claims are not registrable in a substring register at all.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
This commit is contained in:
@@ -2232,3 +2232,48 @@ the gate, and it is cheap: fire at gate + k frames for a few k.
|
||||
Note which results survive this and why: a **margin between two candidates scored
|
||||
on one capture** was unaffected, because correlated noise moves both scores
|
||||
together and cancels. Prefer margins to absolute scores when the shutter is gated.
|
||||
|
||||
## Publishing a death is not registering it — the register has a *form*
|
||||
|
||||
I wrote three refutations this iteration as prose under `###` headings and
|
||||
considered them published. `check_refuted.py` parses `* "claim"` lines, so **none
|
||||
of the three entered the register**: 188 claims before, 188 after. The deaths were
|
||||
readable and unenforceable, which is the exact hole I had been carrying as "I have
|
||||
a checker; knowing is still manual" — and I widened it while writing the checker's
|
||||
own supporting docs.
|
||||
|
||||
⚠️ **A register that parses one syntax silently ignores every other syntax.** The
|
||||
failure is invisible from the author's side, because the prose looks finished. The
|
||||
only way to see it is to *ask the register what it holds* after writing, not to
|
||||
re-read what you wrote. Do that: the count must go up.
|
||||
|
||||
Two false positives in the same run had one shared cause worth keeping: both were
|
||||
bullets under `## 🔴 What this retracts`, each bullet a claim being killed, with no
|
||||
marker within the ±4-line window. **Scope marks them, not proximity** — the scan now
|
||||
includes the nearest preceding header, and matches markers case-insensitively
|
||||
(`An earlier version` had been missed by the marker `an earlier version`). Both
|
||||
changes were controlled by planting a real revival and confirming it is still
|
||||
caught.
|
||||
|
||||
## A number can be inapplicable rather than wrong
|
||||
|
||||
`sylpheed-port`'s diagnosis of the fallout from the phase-lock finding, and it is a
|
||||
distinct failure mode from anything else on this page. They had recorded a tension
|
||||
they could not adjudicate: my 0.32 argued *absent*, their curve argued *present*.
|
||||
The 0.32 was not a wrong measurement — it was a **correct measurement of something
|
||||
that carried no information about the question**, because a phase-locked shutter
|
||||
shows identical content in the sweep band whether or not the sweep is drawn.
|
||||
|
||||
⚠️ **The tension was manufactured entirely by treating an inapplicable number as
|
||||
evidence.** It presented as a conflict between two measurements; it was one
|
||||
measurement and one artefact. Before recording two results as in tension, check
|
||||
that both are *about* the question — a number that would read the same under both
|
||||
hypotheses cannot discriminate them, however carefully it was measured.
|
||||
|
||||
📌 And a limit they surfaced rather than papered over: **some claims are not
|
||||
registrable in a substring register.** Their `0.32` collides with an unrelated
|
||||
measurement of their own, so registering it would produce a permanent false hit and
|
||||
train the check to be ignored. Mine avoids that collision only by accident — a
|
||||
25-character minimum excludes bare numbers by construction, which is the same limit
|
||||
from the other side. A short claim cannot be enforced by substring; say so instead
|
||||
of forcing a row in.
|
||||
|
||||
@@ -718,6 +718,9 @@ reachable by the person about to repeat it.
|
||||
|
||||
### The JP title might not draw the sweep leaves at rest — ❌ REFUTED (2026-08-30, mine)
|
||||
|
||||
* ~~"the JP title does not draw the sweep leaves at rest"~~ — refuted, see below.
|
||||
* ~~"build 7's denser logo stack occludes the sweep leaves"~~ — refuted, see below.
|
||||
|
||||
I hypothesised that build 7's denser logo stack (katakana + crystalline burst)
|
||||
**occludes** the two sweep leaves, to explain why two JP title captures differ by
|
||||
RMSE 0.32 inside the adjudication box while two EN captures a plateau-phase apart
|
||||
@@ -730,6 +733,9 @@ The 0.32 had a different cause: **my own gate**. See below.
|
||||
|
||||
### "Two sessions sample a free-running clock" — ❌ REFUTED (2026-08-30, mine)
|
||||
|
||||
* ~~"a free-running clock lands somewhere else on a fresh boot"~~ — refuted, the gate phase-locks it.
|
||||
* ~~"the in-box capture noise of 0.32 between sessions"~~ — refuted as a noise floor; it measures the trigger.
|
||||
|
||||
`jp-title-at-rest.txt` justified a second capture as probing the between-run axis
|
||||
"where a free-running clock lands somewhere else on a fresh boot", and reported
|
||||
its in-box **0.32 as capture noise**. Measured at the shutter instant, the sweep
|
||||
|
||||
@@ -25,7 +25,7 @@ from pathlib import Path
|
||||
|
||||
MARKERS = ("refuted", "REFUTED", "withdrawn", "WITHDRAWN", "retracted", "RETRACTED",
|
||||
"🔴", "~~", "used to say", "used to read", "was wrong", "is wrong",
|
||||
"no longer", "superseded", "corrected",
|
||||
"no longer", "superseded", "corrected", "retracts", "an earlier version",
|
||||
# text explicitly DECLINING to revive a claim reads as an assertion to
|
||||
# a neighbourhood scan; two real hits were exactly this.
|
||||
"does **not** revive", "does not revive")
|
||||
@@ -61,8 +61,19 @@ for c in claims:
|
||||
for i, l in enumerate(lines):
|
||||
if needle in l:
|
||||
lo, hi = max(0, i - CTX), min(len(lines), i + CTX + 1)
|
||||
near = "\n".join(lines[lo:hi])
|
||||
if not any(m in near for m in MARKERS) and (f, i) not in seen_report:
|
||||
# ⚠️ A +-CTX neighbourhood misses the commonest real marker: a
|
||||
# SECTION HEADER that retracts a whole list. Two false positives
|
||||
# were exactly this -- bullets under "## 🔴 What this retracts",
|
||||
# each bullet a claim being killed, no marker within 4 lines.
|
||||
# Scope, not proximity, is what marks them, so include the
|
||||
# nearest preceding header in the scan.
|
||||
hdr = ""
|
||||
for j in range(i, -1, -1):
|
||||
if re.match(r"#{1,4} ", lines[j]):
|
||||
hdr = lines[j]
|
||||
break
|
||||
near = "\n".join(lines[lo:hi]) + "\n" + hdr
|
||||
if not any(m.lower() in near.lower() for m in MARKERS) and (f, i) not in seen_report:
|
||||
seen_report.add((f, i))
|
||||
hits += 1
|
||||
print(f"🔴 {f}:{i+1}")
|
||||
|
||||
Reference in New Issue
Block a user