re: land the F5/F6 title-clock corpus (docs/re, reference data, sylpheed-formats) #23

Merged
fabi merged 511 commits from auto/frame-blend-draw-path into main 2026-09-13 11:16:19 +00:00
2 changed files with 57 additions and 1 deletions
Showing only changes of commit eef2567448 - Show all commits

View File

@@ -1244,3 +1244,44 @@ something to be wrong about.
is not "this is broken" but "this has been correct-by-inactivity since the day
somebody disabled it". When a fix works by *stopping* something rather than
correcting it, that is the moment to write down what has been stopped.
## A detector that can fire on a single frame will fire on the wrong one
The Ⓐ A/B's first pair was **void**, and the reason is worth more than the result.
The "wait for the title" step tested one frame against a glyph threshold. The intro
movie throws green flashes of **1 298…5 433** lasting under a second, which clears
any threshold the title also clears — so both legs pressed Ⓐ into the movie, about
**6 s before the title appeared**.
🔴 **What makes this dangerous is that it looked like it ran.** The presses were
real and had a real effect: each skipped the rest of the movie, which is exactly
what the corpus documents Ⓐ doing to a movie. Both legs then reported zero swallow
and zero crashes — a clean, symmetric, entirely meaningless result. **A void test
that appears to have run is worse than one that errors**, because nothing prompts
you to look.
It is the same shape `is_title.py` already records for `screen_id.py`, which called
the SQUARE ENIX logo "title" 151 s into a boot and spent `skip_intro`'s one press
there. The corpus has now paid for this twice.
**The rule: a screen detector matches a *signature over time*, never a single
frame.** The fixed version requires 12 consecutive samples inside a band the movie
overshoots — and, crucially, it was **replayed against the void runs' own recorded
series as its control**, where it declines the flash at 84.8 / 85.5 s and fires at
93.9 / 94.7 s. A broken run's data is the cheapest possible control for its
replacement; keep the series.
## A demand for reproducibility can surface a defect that is not the one demanded
The port agent challenged this corpus's pulse figures as unverifiable — it had the
capture and could not reproduce the numbers. The literal answer was small: name the
predicate, and its counts then matched **exactly**.
But writing the method down is what exposed the actual defect: the floor came from a
**1279×675** capture and the pulse from **1280×720** frames, silently compared
across geometries. Nobody was looking for that.
⚠️ **And both sides were wrong at once.** The challenger's counts were the wrong
measurement (single-channel, plate-crop) *and* the published figure had a real flaw.
"One of us must be right" was never the shape of it — which is worth remembering
before spending a round arguing about which.

View File

@@ -64,7 +64,22 @@ t = 255.0 — the title art alone, in the very frames the pulse was measured in.
| pulse peak | **1520** | |
**"It never goes off" now rests on one run in one geometry**, which is what it
should have rested on from the start. ⚠️ The port's independent ratio — about
should have rested on from the start.
### ✅ …and it now has a witness that is not this run
With the predicate named, the port agent reproduced the floor **exactly** and
counted an independent capture from a different session:
| | this run | the port, from `live-title-press-a.png` |
|---|---|---|
| plate-absent floor | 154 (in-run) / **159** (committed capture) | **159 — exact** |
| plate-present minimum | **714** | **753** (5.5 % apart) |
| ratio | **4.6×** | **4.7×** |
The second row is the one that matters: a capture taken in a different session,
counted by someone else, lands within 5.5 % of this run's pulse floor and gives the
same ratio to one part in fifty. **The load-bearing claim is no longer single-run.** ⚠️ The port's independent ratio — about
**1 : 10.4–10.9** between plate-absent and plate-present over its own crop, stable
across a wide threshold band — brackets this page's 1 : 9.6 and is the part that is
robust to how anyone counts.