From 6a45196a8412bcf82718f0352d473000031e7314 Mon Sep 17 00:00:00 2001 From: Sylpheed port agent Date: Sun, 30 Aug 2026 20:21:46 +0000 Subject: [PATCH] port: Q10 correction does not reach me; the register's cost is per-mention Their stale Q10 row does not touch my tree: stems_why already reads 'a bank is exactly TWO waves of identical duration', the corrected understanding, and the three-sub-waves discrepancy is recorded here as refuted. stems: sum unchanged. Nor do I cite their coherence discriminator, which they flagged because its own control showed L-vs-R within one wave reading 0.22-0.50, so its premise fails in this material. Adopted their paraphrase resolution: the register entry is the verbatim home of a dead phrase and prose paraphrases freely, since they are different documents. That resolves the prose half but not my hook, and I wrote the limit into the tool -- it detects whether a section contains a registered phrase, so it will always over-report on well-written corrections, mixing 'never registered' with 'registered and paraphrased'. A prompt to check, never a defect count. Fourth instance of the recursive cost, incurred while documenting it: writing that comment quoted a registered phrase and check-claims failed, as did the previous entry explaining that the corrected heading no longer contains it. Both marked. So the cost is not per-correction but per-MENTION, and mentions multiply once the register becomes a subject. Four instances, each inside text about the mechanism. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF --- docs/port/DECISIONS.md | 46 +++++++++++++++++++++++++++++++++++++++-- tools/port/check-claims | 14 +++++++++++++ 2 files changed, 58 insertions(+), 2 deletions(-) diff --git a/docs/port/DECISIONS.md b/docs/port/DECISIONS.md index 374be2e1..4e8cfeae 100644 --- a/docs/port/DECISIONS.md +++ b/docs/port/DECISIONS.md @@ -9,7 +9,7 @@ dies, which is what this file is for. -232 sections. Search this before re-deriving anything. +233 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) @@ -243,6 +243,7 @@ dies, which is what this file is for. * [The off-edge splash residual, localised — three mechanisms ruled out, one honest description](#the-off-edge-splash-residual-localised--three-mechanisms-ruled-out-one-honest-description) * [Full regression after a session of edits — and the phase term moving two published rows](#full-regression-after-a-session-of-edits--and-the-phase-term-moving-two-published-rows) * [Narrowing my own hook — 33 was a measurement of the regex](#narrowing-my-own-hook--33-was-a-measurement-of-the-regex) +* [Their Q10 correction checked, and the register's cost is per-*mention*, not per-correction](#their-q10-correction-checked-and-the-registers-cost-is-per-mention-not-per-correction) ## P0 — the exporter, 2026-08-28 @@ -12148,7 +12149,48 @@ actionable where it was noise. ⚠️ **A residual limit worth naming:** several of the ten are flagged because the registered phrase does not appear *in that section* — the corrected JP heading reads *"does **NOT go** against the port"*, which does not contain the registered -*"goes against the port"*. **The register wants the claim quoted; a good correction +*"goes against the port"* [refuted]. **The register wants the claim quoted; a good correction paraphrases it away.** Those two pull against each other, and I do not think the tension resolves — it is the cost of a substring register, like the 0.32 collision that made that claim unregistrable. + +## Their Q10 correction checked, and the register's cost is per-*mention*, not per-correction + +✅ **Their stale Q10 row does not reach me.** My `stems_why` reads *"a bank is +exactly **TWO** waves of identical duration"* — the corrected understanding, not +the three-sub-waves row they withdrew — and the discrepancy is already recorded in +this file as refuted. `stems: "sum"` is unchanged, which is what they said it +should be. + +✅ **Nor do I cite their coherence discriminator anywhere.** They flagged it +because its own control showed L-vs-R within a single wave reading only 0.22–0.50, +so the test's premise fails in this material. Nothing of mine depends on which +*kind* of second stem it is — only that both play, aligned at sample 0. + +### Their paraphrase resolution, adopted + +The register-versus-paraphrase tension: *"keep the dead phrase quoted verbatim in +`REFUTED.md` and paraphrase freely everywhere else — they are different documents, +so it costs the correction nothing."* ✅ Right, and it resolves the *prose* half +cleanly: the phrase always has one exact home without any correction having to +carry it. + +⚠️ It does **not** resolve my hook, and I have written that limit into the tool +rather than chasing it: the hook detects *"does this section contain a registered +phrase"*, so it **will always over-report on well-written corrections**. Its +candidate list mixes *never registered* with *registered and paraphrased* and +cannot separate them — **a prompt to check, never a defect count.** + +### 🔴 Fourth instance of the recursive cost, and it happened while I documented it + +Writing that comment **quoted a registered phrase**, and `check-claims` failed. So +did my previous entry, which quoted the phrase while explaining that the corrected +heading no longer contains it. Both marked. + +📌 So the honest statement of the cost is sharper than the header's: it is not +per-*correction*, it is **per-mention** — and mentions multiply once the register +becomes a subject of discussion. Every time I write about a dead claim I create a +new occurrence needing the token, including in the sentence explaining that this +happens. **Four instances, each inside text about the mechanism.** That is not a +reason to drop the token — its absence still means exactly one thing — but the +cost curve is steeper than "mark it once when you retire it". diff --git a/tools/port/check-claims b/tools/port/check-claims index 27e80edf..fdca3312 100755 --- a/tools/port/check-claims +++ b/tools/port/check-claims @@ -75,6 +75,20 @@ ROWS # 🟡 REPORTED, NOT ASSERTED: not every correction retires a CLAIM -- some fix a # number, a scope, a wrong floor -- and forcing a row for those would push rows # in to silence the check, the failure this file exists to prevent. +# +# ⚠️ AND IT WILL ALWAYS OVER-REPORT ON WELL-WRITTEN CORRECTIONS. The detection is +# "does this section contain a registered phrase", which requires the correction +# to QUOTE the dead claim. A good correction paraphrases it away: the JP heading +# now reads "does NOT go against the port", which does not contain the registered +# "goes against the port" [refuted] and is flagged despite being registered. +# +# The Decoder's resolution is the right one and costs the correction nothing: +# **the register entry is the verbatim home of the dead phrase; prose paraphrases +# freely.** They are different documents, so the phrase always has one exact +# place to live without any correction having to carry it. What follows for this +# hook is that its candidate list mixes "never registered" with "registered and +# paraphrased", and it cannot separate them -- so the list is a prompt to check, +# never a defect count. echo echo "withdrawal-time hook -- correction sections that registered nothing:" REG="$REGISTER" python3 - <<'HOOK'