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:
@@ -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."
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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
|
||||
4–6 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.
|
||||
|
||||
Reference in New Issue
Block a user