port: correct a check that asserted an absence of measurement as a finding
The pair I shipped this iteration -- focus_persists on for main_menu, off everywhere else -- reported both halves as agreement with the contract. Nothing measured that extras does not persist. The corpus has EXTRAS' opening item from one entry and (B) restoring the PARENT's focus 4/4; neither says what a submenu's own cursor does on re-entry. Caught by the Decoder. It is the mirror of the trap it was written to avoid. I refused to let a derived menu-wide rule overwrite a measured value, then let 'not measured here' become a positive assertion of the negative. Both treat a gap in the corpus as if it carried information and differ only in which direction they fill it. And the failure mode was the bad one: if the game does persist EXTRAS, the check holds the port to the wrong behaviour and passes while doing it. check_focus_persists now asserts only the measured half. The scope became a separate guard with its own outcome word -- 'only main_menu, AUTHORED DEFAULT, unmeasured elsewhere' -- which still fails if widened, since that should be a deliberate edit, but can no longer be read as the game being known to reset. focus_persists_why records the correction rather than being rewritten. It also weakens a label. EXTRAS' initial_focus is marked measured and was taken on a single entry; now that the main menu is known to remember its cursor, a one-entry reading of any screen may be measuring history rather than what the screen opens on -- the same objection that reframed the TUTORIAL/NEW GAME disagreement. The observation stands, its reading as an initial focus does not. Caveat attached, kind left as measured with a note that it changes if EXTRAS turns out to persist. Not building on the non-persistence half until their EXTRAS re-entry run returns. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF
This commit is contained in:
@@ -144,7 +144,24 @@
|
||||
"",
|
||||
"⚠️ WHAT IS NOT KNOWN: whether the memory survives a return to the BOOT",
|
||||
"(as opposed to the title), and whether any other screen has it. Ask before",
|
||||
"widening this."
|
||||
"widening this.",
|
||||
"",
|
||||
"🔴 CORRECTED 2026-08-30, SAME DAY, by the Decoder: the paragraph above argued",
|
||||
"the scope from `extras` having a MEASURED initial focus that a remembered",
|
||||
"cursor would override. That is a good reason to be CAUTIOUS and NOT a finding",
|
||||
"that `extras` resets. Nothing has measured what a submenu's own cursor does on",
|
||||
"re-entry: the corpus has EXTRAS' opening item from ONE entry, and (B) restoring",
|
||||
"the PARENT's focus 4/4, and neither answers it.",
|
||||
"",
|
||||
"So `focus_persists: false` everywhere else is THE PORT'S DEFAULT, not the",
|
||||
"game's behaviour. It invents the least and it preserves the one measurement",
|
||||
"there is. `tools/port/contract-check` asserts only the main-menu half against",
|
||||
"the contract and reports the scope as a GUARD, because for one iteration it",
|
||||
"asserted non-persistence as though it had been measured -- which would have",
|
||||
"held the port to the wrong behaviour and passed while doing it.",
|
||||
"",
|
||||
"❔ The Decoder is measuring EXTRAS re-entry now. Do not build on the",
|
||||
"non-persistence half until it returns."
|
||||
],
|
||||
"initial_focus_why": [
|
||||
"AUTHORED, standing in for HANDOFF Q5, which measured that initial focus is NOT STABLE: four boots of the same harness opened on TUTORIAL, TUTORIAL, NEW GAME, NEW GAME. A port has to open on something. ptbtn01 (NEW GAME) is picked because it is one of the two states actually observed and it is the top item, so a reader can predict it. It is a CHOICE. Delete this the day the RE agent finds what selects it. CORROBORATED 2026-08-29, and still not decoded: the committed capture live-main-menu.png has NEW GAME focused. Identified by rendering all five focus states and taking the minimum difference -- 531 differing pixels against 6080-7094 for the others, an 11.5x margin -- with the method controlled on live-main-menu-options-focused.png, whose answer is in its filename and which it picks by 4.7x. That means the port's choice matches the state of one committed frame. It does NOT make focus stable: Q5's four boots gave TUTORIAL, TUTORIAL, NEW GAME, NEW GAME, and this identifies one frame rather than a rule. Delete this entry the day something says what SELECTS it. TIGHTENED 2026-08-29: Q5 now has SIX boots, and the shape is sharper than 'unstable' -- TUTORIAL x3, NEW GAME x3, and NO OTHER ITEM EVER OBSERVED. So it is not uniform over five buttons; whatever selects it has to explain a two-way split. That does not change this choice (NEW GAME remains one of exactly two observed states, and it is the state of the committed capture) but it does change what would REFUTE it: a boot opening on LOAD GAME, OPTIONS or EXTRAS would break the two-way shape, and a rule that predicts the split would delete this entry outright.",
|
||||
@@ -223,7 +240,20 @@
|
||||
"extras": {
|
||||
"initial_focus": "ptbtn11",
|
||||
"initial_focus_kind": "measured",
|
||||
"initial_focus_why": "MEASURED, unlike the main menu's: EXTRAS opens focused on MISSION SELECT (live-extras.png). It is authored here only because there is nowhere else to put a measurement -- it is not a choice.",
|
||||
"initial_focus_why": [
|
||||
"MEASURED, unlike the main menu's: EXTRAS opens focused on MISSION SELECT (live-extras.png). It is authored here only because there is nowhere else to put a measurement -- it is not a choice.",
|
||||
"",
|
||||
"⚠️ WEAKENED 2026-08-30 -- the OBSERVATION stands, its reading as an INITIAL",
|
||||
"focus does not. It was taken on a single entry. Now that the main menu is known",
|
||||
"to remember its cursor across a round trip, a one-entry reading of any screen",
|
||||
"may be measuring HISTORY rather than what the screen opens on -- the same",
|
||||
"objection that reframed the main menu's TUTORIAL/NEW GAME disagreement.",
|
||||
"",
|
||||
"Kept as `measured` because the frame really does show MISSION SELECT focused,",
|
||||
"and kept as the port's opening item because it is the only reading there is.",
|
||||
"🔴 If EXTRAS turns out to persist, this becomes history and the kind must",
|
||||
"change with it."
|
||||
],
|
||||
"on_cancel": {
|
||||
"goto": "main_menu",
|
||||
"goto_name": "TITLE_MENU",
|
||||
|
||||
Reference in New Issue
Block a user