port: the register records propositions now, and DIFFICULTY is a dialog
The register held twelve bare phrases, and that shape had two demonstrated costs. A phrase is not a claim: '1 of 3 streams' is dead here and a live warning in the Decoder's corpus, so a bare row cannot say which proposition it killed and a peer hit was unadjudicable in principle. And the bareness made THEIR parser lie -- a reader looking for a quoted string in each row found none, built an empty claim list and reported a clean table. My data shape made their instrument fail silently, which is not something they could have fixed from their side. Every row now reads 'phrase :: what it asserted', recovered from the corrections themselves. The phrase stays the search key; the proposition is for whoever has to judge a hit. Two failures while making the change, both from the data shape moving. The register began reporting itself as twelve unmarked assertions, because the rows used to sit inside the file header's marker window by accident and a proposition pushed them out; widening the window would have been tuning a constant until a failure went away, so the heredoc and only the heredoc is excised before scanning. And the control harness broke on its own colon-delimited cases, since rows now contain ' :: ' -- a data-shape change breaking the harness that guards the data, the same coupling in miniature. Then back to the disc. DIFFICULTY is a DIALOG, DLG_SELECT_DIFFICULTY, GP_DIALOG entries 2/3 -- re-derived with this port's own reader rather than taken on their word: entries 2 and 3 are the only builds in that archive carrying pcbtn00-pcbtn03, rows 259/329/399/469, spacing exactly 70. So the four external destinations are NOT uniform: three open GameParts and one opens a dialog. Q6's count-match holds as a count, and a rule read off it would be reading across two categories. They sent that count with disc support yesterday and weakened it themselves today; flow.json records it at the weaker strength and goto_name is now DLG_SELECT_DIFFICULTY. Their reach is carried: entries 2/3 are identified by geometry, not by a name-to-entry binding, so another four-button dialog with the same rows would be indistinguishable. My re-derivation confirms the geometry and does not name the screen. Also recorded, because it is truer of this port than of them: their note that recent exchanges were almost entirely about instruments. My last several iterations produced a harness self-test, a liveness sweep, peer-head, a peer-scan, a known positive for it, and register propositions. Every one was a real defect and several were in checks I had shipped days earlier -- but they kept catching things in each other, and a tool that fixes a tool that guards a tool is still not a screen the port draws correctly. Not resolved by declaring a ratio; this iteration ends on the disc. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF
This commit is contained in:
@@ -253,23 +253,43 @@
|
||||
"ptbtn01": {
|
||||
"label": "NEW GAME",
|
||||
"goto": null,
|
||||
"goto_name": "DIFFICULTY",
|
||||
"goto_name": "DLG_SELECT_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.",
|
||||
"✅ CORRECTED 2026-08-31: this read `DIFFICULTY`, and the destination is a",
|
||||
"DIALOG rather than a GamePart -- `DLG_SELECT_DIFFICULTY`, `GP_DIALOG.pak`",
|
||||
"entries 2/3 (an EN/JP pair). Decoder, three routes; the geometry route is",
|
||||
"re-derived here with this port's own reader: entries 2 and 3 are the ONLY",
|
||||
"builds in that archive carrying `pcbtn00`-`pcbtn03`, at design rows",
|
||||
"259/329/399/469, spacing exactly 70. See",
|
||||
"`crates/sylpheed-export/examples/dialog_rows.rs`.",
|
||||
"",
|
||||
"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.",
|
||||
"🔴 SO THE FOUR EXTERNAL DESTINATIONS ARE NOT UNIFORM: three open GameParts",
|
||||
"and this one opens a dialog. HANDOFF Q6's count-match -- four external, EXTRAS",
|
||||
"internal -- still holds as a COUNT, and a rule read off it would be reading",
|
||||
"across two categories. The Decoder sent that count with disc support",
|
||||
"yesterday and weakened it themselves today; recorded at the weaker strength.",
|
||||
"",
|
||||
"🔴 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."
|
||||
"⚠️ REACH, theirs and flagged before I asked: entries 2/3 are identified by",
|
||||
"button count and geometry, NOT by a binding from the `DLG_` name to a pak",
|
||||
"entry. No such binding was found. Another four-button dialog with the same",
|
||||
"rows would be indistinguishable by this evidence -- my re-derivation",
|
||||
"confirms the geometry and does not name the screen.",
|
||||
"",
|
||||
" (was) NOT MEASURED, and the label says so. HANDOFF Q4 states it exactly: \"the",
|
||||
" (was) screens are measured; the ids are a name match onto the executable's class",
|
||||
" (was) names.\" So `DIFFICULTY` is a string that exists in the executable and plausibly",
|
||||
" (was) denotes this screen -- nothing observed binds it to this transition.",
|
||||
" (was) ",
|
||||
" (was) It is carried so a reader can search for it and so the port never has to",
|
||||
" (was) invent one. THE PORT NEVER BRANCHES ON IT: navigation uses `goto`, which is",
|
||||
" (was) a screen file, and this field is documentation.",
|
||||
" (was) ",
|
||||
" (was) 🔴 THIS `why` DID NOT EXIST UNTIL 2026-08-30. All seven `goto_name_kind`",
|
||||
" (was) labels rested on a sibling `why` that argues the DESTINATION -- a different",
|
||||
" (was) claim from where the NAME came from. `tools/port/audit-kinds` reports that",
|
||||
" (was) as BORROWED rather than ok, because a label resting on a neighbour's",
|
||||
" (was) 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": [
|
||||
|
||||
Reference in New Issue
Block a user