method: screen_id.py cannot see a plate-less title, and calls DIFFICULTY a menu

Both reproduce on committed reference frames, so this is a defect in a shared
harness tool rather than a one-run anomaly:

  live-title-build4-no-plate.png -> other   (should be title)
  live-title-press-a.png         -> title
  difficulty-screen.png          -> menu    (is not the main menu)

It thresholds on green -- 0.0009 with the PRESS A plate against 0.0002 without --
so it only recognises a title once the plate has faded in. This corpus s own
finding is that the boot title shows build 4 FIRST, plate-less, for about 2.25 s,
which means any harness waiting for `title` from it can sit through a visible
title and report nothing. That is what happened on an S00A drive here: 396 s of
`other` with two spurious `menu` hits, on a run whose audio proved the guest was
healthy throughout. newgame_path.sh, nav_probe.sh and boot_menu.sh all gate on
it.

The zncc-against-committed-frames classifier used for the settle-time screen log
has neither defect, controlling 6/6 with both movie frames and difficulty-screen
as negatives -- but only at a 0.85 threshold. At 0.60 it also called
difficulty-screen a menu at 0.632, so the threshold is doing real work and has to
be controlled rather than chosen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsEPXWVaEpyfudtR6re1Pd
This commit is contained in:
sylph-decoder
2026-08-29 17:14:03 +00:00
parent a13dd42c2d
commit fbe4ba5526

View File

@@ -154,6 +154,28 @@ agent's loop prompt, i.e. nowhere durable. See [`README.md`](README.md) for the
the content classifier has already said `title_*`*, not because the threshold
discriminates. ⚠️ **`glyph()` alone is not a plate detector**; a two-frame
control over a 3½-minute movie is not a control over that movie.
* 🔴 **`screen_id.py` cannot see a plate-less title, and calls DIFFICULTY a
menu.** Both reproduce on committed reference frames:
| frame | `screen_id.py` says | should be |
|---|---|---|
| `live-title-build4-no-plate.png` | **`other`** | title |
| `live-title-press-a.png` | `title` | title |
| `difficulty-screen.png` | **`menu`** | not the main menu |
It thresholds on **green** (0.0009 with the plate vs 0.0002 without), so it
recognises a title only once `PRESS Ⓐ` has faded in — and this corpus's own
finding is that **the boot title shows build 4 FIRST, plate-less**, for ~2.25 s.
⚠️ **Any harness that waits for `title` from it can sit through a visible title
and report nothing** — that is what happened on an `S00A` drive here, 396 s of
`other` with two spurious `menu` hits, on a run whose audio proved the guest was
healthy throughout. `newgame_path.sh`, `nav_probe.sh` and `boot_menu.sh` all
gate on this.
✅ The zncc-against-committed-frames classifier used for the settle-time screen
log does not have either defect: 6/6 including both movie frames and
`difficulty-screen` as negatives, at a 0.85 threshold. ⚠️ At 0.60 it *also*
called `difficulty-screen` a menu (0.632) — the threshold is doing real work
and must be controlled, not chosen.
* **Classify screens by whole-image statistics, not named pixels** — a named
pixel is only valid while the image sits at a known place, and nothing errors
when it moves.