port: audit every kind label, and seven rested on a neighbour's argument
tools/port/audit-kinds reports what each in authored/ rests on. Nothing had ever checked them, which is the point -- the disciplines that fail this way are the ones that never visibly failed. Seven of fifteen labels, every goto_name_kind, had no of their own. Four scored ok on the first run because the audit fell back to the parent's , which argues the DESTINATION while the label is about where the NAME came from. That is the same error I was corrected for the previous iteration, one level down: crediting a claim with evidence that does not bear on it. Borrowed evidence is now its own outcome, and all seven carry a why citing HANDOFF Q4's own words and stating that the port never branches on the field. The audit refuted itself twice first. It counted only paths, shas and filenames as citations, so HANDOFF Q1 and PORT-MISSION section 7 read as citing nothing -- four false positives, and an audit that invents defects is worse than none because its false positives are indistinguishable from its true ones until each is opened. It also resolved paths against committed refs only, failing on a citation to the tool being written. Both fixed. It still cannot read a cited page to confirm it says what the why claims, and prints that every run. MEASURED and measured both existed; a consumer comparing == measured misses the other, and a label that fails to match reads as ABSENT rather than wrong. Normalised. Refutation attempt on HANDOFF Q2's map of GP_TITLE. The headline survives and is exactly right: 4 UI states + 2 loading variants + 2 boot splashes = 8 states shipped twice = the 16 entries the archive holds, confirmed against my export's entry map. But the row enumerates six of those eight -- entries 10, 11, 13 and 14, publisher_logo and developer_logos, appear nowhere in it. A reader counting Q2 gets twelve, and this is the row already corrected once for an ordinal-versus- entry error, which is the mistake four unlisted entries feed. The port is unaffected; both splashes are exported, named and verified at RMSE 2.17 and 3.05. Every asserting check passes, audit-kinds included. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF
This commit is contained in:
@@ -9,7 +9,7 @@ dies, which is what this file is for.
|
||||
|
||||
<!-- INDEX: generated by tools/port/index-decisions -- do not hand-edit -->
|
||||
|
||||
242 sections. Search this before re-deriving anything.
|
||||
244 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)
|
||||
@@ -253,6 +253,8 @@ dies, which is what this file is for.
|
||||
* [The pin moves to `formats-pin-2026-08-30b`, and the port stops owning `+0x08`](#the-pin-moves-to-formats-pin-2026-08-30b-and-the-port-stops-owning-0x08)
|
||||
* [The menu remembers its cursor — a measured P5 defect, fixed and scoped](#the-menu-remembers-its-cursor--a-measured-p5-defect-fixed-and-scoped)
|
||||
* [🔴 Correction, same day: I encoded an absence of measurement as a finding](#correction-same-day-i-encoded-an-absence-of-measurement-as-a-finding)
|
||||
* [The `kind` sweep I said I owed: 15 labels, and 7 rested on a neighbour's argument](#the-kind-sweep-i-said-i-owed-15-labels-and-7-rested-on-a-neighbours-argument)
|
||||
* [A refutation attempt on Q2's map of `GP_TITLE` — the count is right, the list is short](#a-refutation-attempt-on-q2s-map-of-gp_title--the-count-is-right-the-list-is-short)
|
||||
|
||||
<!-- /INDEX -->
|
||||
## P0 — the exporter, 2026-08-28
|
||||
@@ -12633,3 +12635,74 @@ Delivery-confirmation went to Ⓐ and Ⓑ because those broke once; the d-pad ha
|
||||
always quietly worked, so nothing directed attention at it. `kind: "measured"` is
|
||||
the same shape — it has never visibly failed, so nothing has been checking what
|
||||
each instance of it actually rests on.
|
||||
|
||||
## The `kind` sweep I said I owed: 15 labels, and 7 rested on a neighbour's argument
|
||||
|
||||
Every authored entry carries a `kind` — `measured`, `authored`, `name match, not
|
||||
measured` — and the label is the load-bearing part: `measured` tells a reader
|
||||
downstream that the port is repeating something observed off the running game.
|
||||
**Nothing had ever checked them**, which is the point — the Decoder's sharpening
|
||||
is that *the disciplines that fail this way are the ones that never visibly
|
||||
failed*. `tools/port/audit-kinds` now reports what each label rests on.
|
||||
|
||||
### 🔴 It found the same error I was corrected for, one level down
|
||||
|
||||
Seven of fifteen labels — **every `goto_name_kind`** — had no `why` of their own.
|
||||
Four of them scored `ok` on the first run because the audit fell back to the
|
||||
parent's `why`, which argues **the destination**. `goto_name_kind` is about
|
||||
**where the NAME came from**. Different claims, and the audit was crediting one
|
||||
with the other's evidence.
|
||||
|
||||
That is precisely what I had been corrected for the previous iteration: treating
|
||||
evidence as bearing on a claim it does not bear on. Borrowed evidence is now its
|
||||
own outcome, `BORROW`, because *a label resting on a neighbour's argument reads
|
||||
as evidenced and is not*. All seven now carry a `why` citing HANDOFF Q4's own
|
||||
words — *"the screens are measured; the ids are a name match onto the
|
||||
executable's class names"* — and state that the port never branches on the field.
|
||||
|
||||
### And the audit refuted itself twice before it was worth trusting
|
||||
|
||||
* **Four false positives.** The first version counted only paths, shas and
|
||||
filenames as citations, so `HANDOFF Q1` and `PORT-MISSION section 7` read as
|
||||
*cites nothing*. **An audit that invents defects is worse than no audit**: its
|
||||
false positives are indistinguishable from its true ones until each is opened
|
||||
by hand.
|
||||
* **Seven false dangling.** It resolved paths against committed refs only, so a
|
||||
`why` citing the tool being written this iteration failed. Working-tree paths
|
||||
count now.
|
||||
|
||||
⚠️ **What it cannot do** is read the cited page and confirm it says what the `why`
|
||||
claims, and it prints that on every run. Fifteen labels with resolving citations
|
||||
is not fifteen verified labels.
|
||||
|
||||
📌 One cosmetic find with teeth: `MEASURED` and `measured` both existed. **A
|
||||
consumer comparing `== "measured"` misses the other, and a label that fails to
|
||||
match reads as ABSENT rather than as wrong.** Normalised.
|
||||
|
||||
## A refutation attempt on Q2's map of `GP_TITLE` — the count is right, the list is short
|
||||
|
||||
Q2 is titled *"which build is which screen state"* and reads: **`GP_TITLE` is 8
|
||||
screens shipped twice, EN/JP** — `2/3` plate, `4/7` title, `5/8` main menu, `6/9`
|
||||
EXTRAS, and `0/1` and `12/15` the loading screen. The port ships **16** screen
|
||||
files, so I checked the enumeration against my own export's entry map:
|
||||
|
||||
| entries | state |
|
||||
|---|---|
|
||||
| 0/1, 12/15 | loading, two variants — ✅ in Q2 |
|
||||
| 2/3, 4/7, 5/8, 6/9 | plate, title, main menu, EXTRAS — ✅ in Q2 |
|
||||
| **10/13, 11/14** | **`publisher_logo`, `developer_logos` — absent from Q2** |
|
||||
|
||||
✅ **The headline survives and is exactly right.** Four UI states + two loading
|
||||
variants + **two boot splashes** = 8 states, each shipped twice = **16 entries**,
|
||||
which is what the archive holds. The count is confirmed by a second reading.
|
||||
|
||||
🔴 **The row's own enumeration lists 6 of those 8.** A reader who counts Q2's
|
||||
entries gets twelve and has no slot for the splashes — and **this is the row
|
||||
already corrected once for an ordinal-versus-entry error**, which is exactly the
|
||||
mistake an incomplete map feeds: four unlisted entries are four places for an
|
||||
off-by-three to hide. The splashes are not obscure to the contract either; the
|
||||
190/145 dwell retraction is about these very entries.
|
||||
|
||||
Not a defect in the port — `publisher_logo` and `developer_logos` are exported,
|
||||
named and verified against captures at RMSE 2.17 and 3.05. Reported because the
|
||||
map is what the next reader will trust.
|
||||
|
||||
Reference in New Issue
Block a user