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:
@@ -114,6 +114,22 @@
|
||||
"goto": "main_menu",
|
||||
"goto_name": "TITLE_MENU",
|
||||
"goto_name_kind": "name match, not measured",
|
||||
"goto_name_why": [
|
||||
"NOT MEASURED, and the label says so. HANDOFF Q4 states it exactly: \"the",
|
||||
"screens are measured; the ids are a name match onto the executable's class",
|
||||
"names.\" So `TITLE_MENU` is a string that exists in the executable and plausibly",
|
||||
"denotes this screen -- nothing observed binds it to this transition.",
|
||||
"",
|
||||
"It is carried so a reader can search for it and so the port never has to",
|
||||
"invent one. THE PORT NEVER BRANCHES ON IT: navigation uses `goto`, which is",
|
||||
"a screen file, and this field is documentation.",
|
||||
"",
|
||||
"🔴 THIS `why` DID NOT EXIST UNTIL 2026-08-30. All seven `goto_name_kind`",
|
||||
"labels rested on a sibling `why` that argues the DESTINATION -- a different",
|
||||
"claim from where the NAME came from. `tools/port/audit-kinds` reports that",
|
||||
"as BORROWED rather than ok, because a label resting on a neighbour's",
|
||||
"argument reads as evidenced and is not."
|
||||
],
|
||||
"why": "MEASURED, HANDOFF: (A) on the title opens the main menu, with (A) on the boot title as the control in the same run."
|
||||
},
|
||||
"on_cancel": null,
|
||||
@@ -182,7 +198,23 @@
|
||||
"goto": "title",
|
||||
"goto_name": "TITLE_SCREEN",
|
||||
"goto_name_kind": "name match, not measured",
|
||||
"kind": "MEASURED",
|
||||
"goto_name_why": [
|
||||
"NOT MEASURED, and the label says so. HANDOFF Q4 states it exactly: \"the",
|
||||
"screens are measured; the ids are a name match onto the executable's class",
|
||||
"names.\" So `TITLE_SCREEN` is a string that exists in the executable and plausibly",
|
||||
"denotes this screen -- nothing observed binds it to this transition.",
|
||||
"",
|
||||
"It is carried so a reader can search for it and so the port never has to",
|
||||
"invent one. THE PORT NEVER BRANCHES ON IT: navigation uses `goto`, which is",
|
||||
"a screen file, and this field is documentation.",
|
||||
"",
|
||||
"🔴 THIS `why` DID NOT EXIST UNTIL 2026-08-30. All seven `goto_name_kind`",
|
||||
"labels rested on a sibling `why` that argues the DESTINATION -- a different",
|
||||
"claim from where the NAME came from. `tools/port/audit-kinds` reports that",
|
||||
"as BORROWED rather than ok, because a label resting on a neighbour's",
|
||||
"argument reads as evidenced and is not."
|
||||
],
|
||||
"kind": "measured",
|
||||
"why": "MEASURED 2026-08-30, delivery-confirmed (B = 0x5801), 73.5 % of pixels changed, and both captures name themselves. Latency <= 0.4 s and NO loading screen in between, which matters because the disc carries four pgloading_* screens. This entry previously read 'likely but UNPROVEN': it had been seen once without a capture, and the title ALSO returns on its own after ~8-10 s idle, so an observer could not tell a response from a timeout. The <= 0.4 s latency is what kills that confound -- it is twenty times faster than the idle return. Decoder 86a8ce7, menu-navigation-semantics.md row 'B on the main menu', docs/re/data/b-on-main-menu.txt."
|
||||
},
|
||||
"buttons": {
|
||||
@@ -191,6 +223,22 @@
|
||||
"goto": null,
|
||||
"goto_name": "DIFFICULTY",
|
||||
"goto_name_kind": "name match, not measured",
|
||||
"goto_name_why": [
|
||||
"NOT MEASURED, and the label says so. HANDOFF Q4 states it exactly: \"the",
|
||||
"screens are measured; the ids are a name match onto the executable's class",
|
||||
"names.\" So `DIFFICULTY` is a string that exists in the executable and plausibly",
|
||||
"denotes this screen -- nothing observed binds it to this transition.",
|
||||
"",
|
||||
"It is carried so a reader can search for it and so the port never has to",
|
||||
"invent one. THE PORT NEVER BRANCHES ON IT: navigation uses `goto`, which is",
|
||||
"a screen file, and this field is documentation.",
|
||||
"",
|
||||
"🔴 THIS `why` DID NOT EXIST UNTIL 2026-08-30. All seven `goto_name_kind`",
|
||||
"labels rested on a sibling `why` that argues the DESTINATION -- a different",
|
||||
"claim from where the NAME came from. `tools/port/audit-kinds` reports that",
|
||||
"as BORROWED rather than ok, because a label resting on a neighbour's",
|
||||
"argument reads as evidenced and is not."
|
||||
],
|
||||
"blocked": "DIFFICULTY is not in this export. MEASURED destination (EASY/NORMAL/HARD/BACK, opening on NORMAL, then SELECT DATA) but it is not a GP_TITLE build, so there is no screen file to go to yet.",
|
||||
"skipped_chain": [
|
||||
"DIFFICULTY",
|
||||
@@ -219,6 +267,22 @@
|
||||
"goto": null,
|
||||
"goto_name": "TUTORIAL_MENU",
|
||||
"goto_name_kind": "name match, not measured",
|
||||
"goto_name_why": [
|
||||
"NOT MEASURED, and the label says so. HANDOFF Q4 states it exactly: \"the",
|
||||
"screens are measured; the ids are a name match onto the executable's class",
|
||||
"names.\" So `TUTORIAL_MENU` is a string that exists in the executable and plausibly",
|
||||
"denotes this screen -- nothing observed binds it to this transition.",
|
||||
"",
|
||||
"It is carried so a reader can search for it and so the port never has to",
|
||||
"invent one. THE PORT NEVER BRANCHES ON IT: navigation uses `goto`, which is",
|
||||
"a screen file, and this field is documentation.",
|
||||
"",
|
||||
"🔴 THIS `why` DID NOT EXIST UNTIL 2026-08-30. All seven `goto_name_kind`",
|
||||
"labels rested on a sibling `why` that argues the DESTINATION -- a different",
|
||||
"claim from where the NAME came from. `tools/port/audit-kinds` reports that",
|
||||
"as BORROWED rather than ok, because a label resting on a neighbour's",
|
||||
"argument reads as evidenced and is not."
|
||||
],
|
||||
"blocked": "The lesson list is not a GP_TITLE build. Destination MEASURED."
|
||||
},
|
||||
"ptbtn04": {
|
||||
@@ -232,6 +296,22 @@
|
||||
"goto": "extras",
|
||||
"goto_name": "EXTRA_MENU",
|
||||
"goto_name_kind": "name match, not measured",
|
||||
"goto_name_why": [
|
||||
"NOT MEASURED, and the label says so. HANDOFF Q4 states it exactly: \"the",
|
||||
"screens are measured; the ids are a name match onto the executable's class",
|
||||
"names.\" So `EXTRA_MENU` is a string that exists in the executable and plausibly",
|
||||
"denotes this screen -- nothing observed binds it to this transition.",
|
||||
"",
|
||||
"It is carried so a reader can search for it and so the port never has to",
|
||||
"invent one. THE PORT NEVER BRANCHES ON IT: navigation uses `goto`, which is",
|
||||
"a screen file, and this field is documentation.",
|
||||
"",
|
||||
"🔴 THIS `why` DID NOT EXIST UNTIL 2026-08-30. All seven `goto_name_kind`",
|
||||
"labels rested on a sibling `why` that argues the DESTINATION -- a different",
|
||||
"claim from where the NAME came from. `tools/port/audit-kinds` reports that",
|
||||
"as BORROWED rather than ok, because a label resting on a neighbour's",
|
||||
"argument reads as evidenced and is not."
|
||||
],
|
||||
"why": "MEASURED, HANDOFF Q4: EXTRAS opens GP_TITLE build 6. It is the ONLY main-menu destination inside this archive, and therefore the only (A)-into-a-submenu the P5 gate can actually walk."
|
||||
}
|
||||
},
|
||||
@@ -258,6 +338,22 @@
|
||||
"goto": "main_menu",
|
||||
"goto_name": "TITLE_MENU",
|
||||
"goto_name_kind": "name match, not measured",
|
||||
"goto_name_why": [
|
||||
"NOT MEASURED, and the label says so. HANDOFF Q4 states it exactly: \"the",
|
||||
"screens are measured; the ids are a name match onto the executable's class",
|
||||
"names.\" So `TITLE_MENU` is a string that exists in the executable and plausibly",
|
||||
"denotes this screen -- nothing observed binds it to this transition.",
|
||||
"",
|
||||
"It is carried so a reader can search for it and so the port never has to",
|
||||
"invent one. THE PORT NEVER BRANCHES ON IT: navigation uses `goto`, which is",
|
||||
"a screen file, and this field is documentation.",
|
||||
"",
|
||||
"🔴 THIS `why` DID NOT EXIST UNTIL 2026-08-30. All seven `goto_name_kind`",
|
||||
"labels rested on a sibling `why` that argues the DESTINATION -- a different",
|
||||
"claim from where the NAME came from. `tools/port/audit-kinds` reports that",
|
||||
"as BORROWED rather than ok, because a label resting on a neighbour's",
|
||||
"argument reads as evidenced and is not."
|
||||
],
|
||||
"why": "MEASURED, HANDOFF Q5: (B) goes up one level and RESTORES FOCUS to the item you came from. EXTRAS advertises (B) in its own footer -- the red glyph is in ptmsg2.png and absent from the main menu's ptmsg.png."
|
||||
},
|
||||
"buttons": {
|
||||
@@ -278,6 +374,22 @@
|
||||
"goto": "main_menu",
|
||||
"goto_name": "TITLE_MENU",
|
||||
"goto_name_kind": "name match, not measured",
|
||||
"goto_name_why": [
|
||||
"NOT MEASURED, and the label says so. HANDOFF Q4 states it exactly: \"the",
|
||||
"screens are measured; the ids are a name match onto the executable's class",
|
||||
"names.\" So `TITLE_MENU` is a string that exists in the executable and plausibly",
|
||||
"denotes this screen -- nothing observed binds it to this transition.",
|
||||
"",
|
||||
"It is carried so a reader can search for it and so the port never has to",
|
||||
"invent one. THE PORT NEVER BRANCHES ON IT: navigation uses `goto`, which is",
|
||||
"a screen file, and this field is documentation.",
|
||||
"",
|
||||
"🔴 THIS `why` DID NOT EXIST UNTIL 2026-08-30. All seven `goto_name_kind`",
|
||||
"labels rested on a sibling `why` that argues the DESTINATION -- a different",
|
||||
"claim from where the NAME came from. `tools/port/audit-kinds` reports that",
|
||||
"as BORROWED rather than ok, because a label resting on a neighbour's",
|
||||
"argument reads as evidenced and is not."
|
||||
],
|
||||
"same_as_cancel": true,
|
||||
"why": "MEASURED: EXTRAS' third item is BACK (live-extras.png). Treated as (B): it pops the stack, so focus is restored on the main menu exactly as (B) does. Whether the game distinguishes them is untested and there is no reason here to invent a difference."
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user