port: EXTRAS resets, measured -- and being right by luck is not evidence

Ring at 347.5 on entry (MISSION SELECT), 427.5 after one delivery-confirmed DOWN,
347.5 on re-entry with the frame 0.0% different from first entry, screen
confirmed by eye because an earlier run was fooled about which screen it was on.

Two things settle here. The caveat on extras/initial_focus comes off: MISSION
SELECT is a genuine initial focus, because a screen that RESETS cannot have a
single-entry reading that is measuring history -- that objection was live only
while persistence here was unknown. And focus_persists: false for extras is now
written explicitly with kind: measured. Nothing changes at runtime, since the
port already defaulted to false; the point is that an absent key and a measured
false behave identically and mean opposite things -- 'nobody looked' versus 'the
game was watched doing it' -- and only the second is visible to audit-kinds.

It does not vindicate how it got there and is not recorded as if it did. For one
iteration contract-check ASSERTED extras non-persistence with nothing behind it,
the Decoder flagged it, and the measurement then agreed. Their separation is
sharper than my own account was: declining to generalise the memory was correct,
on the evidence then and on measurement now, since the two screens genuinely
disagree -- but encoding 'not measured here' as a positive assertion of the
negative was a different move that happened to land. Being right by luck does not
retroactively make it evidence. The check is rewritten to rest on the
measurement rather than left in place looking vindicated.

guard_focus_scope no longer polices 'only main_menu': there is no menu-wide rule
to state, since two measured screens disagree. It now states both measured values
and counts the screens that say nothing, printing UNMEASURED, not 'resets'.

Untested and not built on: OPTIONS, LOAD GAME, TUTORIAL. And nobody can separate
'resets to MISSION SELECT' from 'resets to the top item' -- they coincide, since
ptbtn11 is both. The port's value is right under either reading and the reason is
not established, which matters the day a screen is authored whose opening item is
not its first.

16 kind labels audited clean, 14 controls firing, every asserting check passes.
The P5 walk artifact now matches a measurement on both halves rather than one
measurement and one default.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF
This commit is contained in:
Sylpheed port agent
2026-08-30 22:14:10 +00:00
parent 5ff278a5ca
commit 1ca90bfbd6
3 changed files with 150 additions and 25 deletions

View File

@@ -341,19 +341,59 @@
"extras": {
"initial_focus": "ptbtn11",
"initial_focus_kind": "measured",
"focus_persists": false,
"focus_persists_kind": "measured",
"focus_persists_why": [
"MEASURED 2026-08-30 -- EXTRAS RESETS. HANDOFF `4ed75e6`: ring back to",
"y=347.5 on re-entry after a confirmed DOWN, frame 0.0 % different from the",
"first entry, and the screen confirmed by eye as EXTRAS because an earlier",
"run was fooled about which screen it was on.",
"",
"📌 WRITTEN EXPLICITLY, THOUGH THE PORT'S DEFAULT IS ALREADY false. The",
"absent key and the measured false behave identically and mean completely",
"different things: one is 'nobody looked', the other is 'the game was",
"watched doing it'. `tools/port/audit-kinds` can see the second and not the",
"first, which is the whole reason for spending a key on it.",
"",
"🔴 AND THIS IS NOT A VINDICATION OF HOW IT GOT HERE. For one iteration the",
"port ASSERTED non-persistence for EXTRAS in `contract-check` while nothing",
"had measured it; the Decoder flagged that, and it turned out right. Being",
"right by luck does not retroactively make it evidence -- declining to",
"generalise the memory was the correct move, and encoding 'not measured",
"here' as a positive claim was a different and wrong one that happened to",
"land. The measurement is what makes it true; the assertion never did.",
"",
"⚠️ Do NOT generalise in either direction: main_menu persists, EXTRAS resets,",
"and OPTIONS / LOAD GAME / TUTORIAL are untouched."
],
"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."
"✅ CAVEAT LIFTED 2026-08-30 -- MEASURED, not a single-entry reading any more.",
"HANDOFF `4ed75e6`, docs/re/data/extras-focus-resets.txt: EXTRAS opens at ring",
"y=347.5 on MISSION SELECT, moves to 427.5 after one delivery-confirmed DOWN,",
"and returns to 347.5 on re-entry with the frame 0.0 % different from the first",
"entry. Because this screen RESETS, a single-entry reading of it is not",
"measuring history -- which is precisely what made the caveat necessary while",
"persistence here was unknown.",
"",
"⚠️ WHAT IS STILL AMBIGUOUS, and it matters if another screen is ever authored:",
"nobody can separate \"resets to MISSION SELECT\" from \"resets to the TOP ITEM\".",
"They coincide here -- ptbtn11 is both. The port's value is correct under either",
"reading, and the REASON is not established.",
"",
"The superseded caveat is kept below.",
" (was) ⚠️ WEAKENED 2026-08-30 -- the OBSERVATION stands, its reading as an INITIAL",
" (was) focus does not. It was taken on a single entry. Now that the main menu is known",
" (was) to remember its cursor across a round trip, a one-entry reading of any screen",
" (was) may be measuring HISTORY rather than what the screen opens on -- the same",
" (was) objection that reframed the main menu's TUTORIAL/NEW GAME disagreement.",
" (was) ",
" (was) Kept as `measured` because the frame really does show MISSION SELECT focused,",
" (was) and kept as the port's opening item because it is the only reading there is.",
" (was) 🔴 If EXTRAS turns out to persist, this becomes history and the kind must",
" (was) change with it."
],
"on_cancel": {
"goto": "main_menu",