port: re-derive black_hold_units against four measurements rather than inherit it

They answered ask #2 -- the gap is deterministic, not a load -- and held me to
re-stating the choice against four measurements (0, 6, 4, 6) rather than the three
it was made on. That is my own standard for check-all's stale allowance turned
around.

The arithmetic moved against 0: it costs 2.0x the best fit on four measurements
against 1.7x on three, and is now the minority outcome, wrong on 3 of 4 where a
uniform 6 is wrong on 2 of 4.

Still 0, because the reason was never the fit -- it adds no black the game does
not have, and is measured-correct for a real transition rather than for an average
of them. Picking 6 because it appears twice is choosing a mode from four samples
when their finding is that a rule exists and nobody has found it.

But one leg is gone and is not being kept quietly: part of the case for 0 was that
the quantity might be machine-dependent and unauthorable. It is not. That removes
an excuse without supplying a value.

Added a tripwire: if the gap is non-zero in most transitions and no rule emerges,
omitting a real quantity stops being caution and becomes a different invention.
The port is wrong by 4-6 units on three of four known transitions and the why now
says so.

Also records as settled: the outgoing ramp is the declared final ramp, my {8,10,10}
against their measured multiset, two independent routes.

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 14:29:25 +00:00
parent 5e7bc368f7
commit 82ae10a002
2 changed files with 80 additions and 19 deletions

View File

@@ -145,27 +145,38 @@
],
"black_hold_units": 0,
"black_hold_why": [
"0, AND THAT IS NOT 'RIGHT' -- IT IS THE VALUE THAT INVENTS NOTHING.",
"0, RE-DERIVED against FOUR measurements, not inherited from three.",
"",
"This was 9 units, measured in the draw stream. The Decoder has now measured",
"the black gap on THREE transitions off the running game and it is not a",
"constant: menu->title 0 units, title->menu 4, EXTRAS->menu 6. Not a",
"per-button property, not a per-direction property. Their recommendation is to",
"treat this as unauthored rather than uniform-at-9.",
"The Decoder's measured black gaps are now 0, 6, 4, 6 units across four",
"transitions. When this was set to 0 the multiset was (0, 4, 6), and they held",
"me to re-stating the choice against the new data rather than carrying it --",
"the same standard I applied to check-all's stale allowance.",
"",
"9 was outside the measured range entirely -- wrong for all three, by +9, +5",
"and +3, i.e. up to a sixth of a second of black the game does not show.",
"The arithmetic moved AGAINST 0 and it is worth writing down rather than",
"burying: a uniform 6 is wrong on 2 of 4 transitions for a total error of 8;",
"0 is wrong on 3 of 4 for a total of 16. Choosing 0 cost 1.7x the best fit on",
"three measurements and costs 2.0x on four. 0 is now the MINORITY outcome --",
"three of four transitions do have a gap.",
"",
"WHY 0 AND NOT 4. A uniform 4 minimises total error across the three samples",
"(6 units against 0's 10). That is FITTING THREE SAMPLES, and a fit chosen for",
"its residual is the thing this corpus keeps having to withdraw. 0 has a",
"reason that is not a fit: it adds no black the game does not have, which is",
"the same tie-breaker `input_during_transition` already uses in this file --",
"the choice that invents the least. It is also measured-CORRECT for one real",
"transition, which no other uniform value beats on principle.",
"IT IS STILL 0, and the reason is unchanged because it was never the fit: 0",
"adds no black the game does not have, which is the tie-breaker",
"input_during_transition already uses in this file, and it is measured-correct",
"for a real transition rather than for an average of them. Picking 6 because",
"it appears twice is choosing a mode from four samples with no rule behind it.",
"",
"The error is now a MISSING gap of at most 6 units on two transitions rather",
"than an INVENTED one of up to 9 on all three. Delete this entry the day the",
"rule is known; the Decoder cannot state it yet and neither can I."
"ALSO CHANGED: the gap is NOT machine-dependent. It was defensible to hold 0",
"partly because the quantity might be a load and therefore unauthorable; the",
"Decoder has now shown it is deterministic to the frame -- bundle size runs the",
"wrong way, and a repeat run moved press-to-first-change by ~12 frames while",
"the gap did not move at all. So this is a real game quantity with a rule",
"nobody has found, not noise. That REMOVES an excuse for 0 without supplying a",
"value.",
"",
"TRIPWIRE, because 'invent nothing' can stop being conservative: if the gap is",
"non-zero in most transitions and no rule emerges, systematically omitting a",
"real quantity is no longer the cautious choice -- it is a different invention.",
"Revisit at the next measurement that is not 0, or the moment a rule appears.",
"The port is currently wrong by 4-6 units on three of four known transitions",
"and says so here rather than in a number that looks decided."
]
}

View File

@@ -9,7 +9,7 @@ dies, which is what this file is for.
<!-- INDEX: generated by tools/port/index-decisions -- do not hand-edit -->
166 sections. Search this before re-deriving anything.
167 sections. Search this before re-deriving anything.
* [P0 — the exporter, 2026-08-28](#p0--the-exporter-2026-08-28)
* [P1 — Godot draws the screen, 2026-08-28](#p1--godot-draws-the-screen-2026-08-28)
@@ -177,6 +177,7 @@ dies, which is what this file is for.
* [🔴 `check-all` excused two failing rows with a reason that is measurably false](#check-all-excused-two-failing-rows-with-a-reason-that-is-measurably-false)
* [`black_hold_units` 9 → 0, and why not the value that fits best](#black_hold_units-9--0-and-why-not-the-value-that-fits-best)
* ["Already up to date" is not evidence that I am current](#already-up-to-date-is-not-evidence-that-i-am-current)
* [Re-deriving `black_hold_units` against four measurements, not three](#re-deriving-black_hold_units-against-four-measurements-not-three)
<!-- /INDEX -->
## P0 — the exporter, 2026-08-28
@@ -9537,3 +9538,52 @@ of signal taken as a positive one.**
main) is sound and will apply again. What changes is that its output is not
reassurance. And my `Cargo.toml` pin is on a tag whose commit is **unmerged**:
correct today, fragile, because nothing protects it.
## Re-deriving `black_hold_units` against four measurements, not three
They answered ask #2 — **the gap is not a load; it is deterministic to the
frame** — and then held me to something sharper: *"you now have four gap
measurements, not three. The multiset changed after you chose 0."*
That is my own standard for `check-all`'s stale allowance turned around, and it
applies. Re-derived:
| uniform | total error | wrong on |
|---|---|---|
| **0** | **16** | **3 of 4** |
| 4 | 8 | 3 of 4 |
| 6 | 8 | 2 of 4 |
| 9 (the old value) | 20 | 4 of 4 |
🔴 **The arithmetic moved against 0.** Choosing it cost 1.7× the best fit on three
measurements and costs **2.0×** on four, and 0 is now the *minority* outcome —
three of four transitions do have a gap.
✅ **It is still 0, because the reason was never the fit.** 0 adds no black the
game does not have, and it is measured-correct for a *real transition* rather than
for an average of them. Picking 6 because it appears twice is choosing a mode from
four samples with no rule behind it — and their whole finding is that a rule
exists and nobody has found it.
⚠️ **One of my reasons is gone, though, and I am not keeping it quietly.** Part of
the case for 0 was that the quantity might be machine-dependent and therefore
unauthorable. It is not: bundle size runs the wrong way (build 4 is 12.3 MB and
gaps zero frames; build 5 is 7.0 MB and gaps 3 and 2), and a repeat run moved
press-to-first-change by ~12 frames while the gap did not move at all. **Removing
the machine-dependence excuse does not supply a value**, but it does mean 0 now
rests on one leg rather than two.
📌 **A tripwire, because "invent nothing" can stop being conservative.** If the gap
is non-zero in most transitions and no rule emerges, systematically omitting a
real quantity is not caution — it is a different invention. Revisit at the next
non-zero measurement or the moment a rule appears. The port is currently wrong by
46 units on three of four known transitions, and `authored/timing.json` now says
so in the `why` rather than in a number that looks decided.
### Settled: the outgoing ramp is the declared final ramp
My export gives `title` **8**, `main_menu` **10**, `extras` **10**; their captures
measure 10u/5f, 8u/4f, 10u/5f. ✅ Two genuinely independent routes — disc and
running game — agreeing on a three-value multiset. They propose treating it as
settled and I agree: the port already plays each group to its own end, so nothing
is authored and nothing needs to change.