Pace was the missing dial, and the reachability test finally exists

"there are still balls which are basically not reachable with auto run..
please recheck" — and, asked twice: "did you write tests for the last issues
we encountered?" The straight answer: no. The unreachable-balls issue only
ever had config assertions, which is why it came back twice.

Pace is the ladder's fourth dial. Width alone never fixed reachability
because the returns left at ~27 m/s, crossing to the baseline in ~0.6s — less
than auto-run needs from the far corner. matchOppPace 0.78 puts opponent one
at ~20 m/s (measured live: twelve returns, 20.0-20.7), a quarter more flight
time, and matchOppPacePer hands it back per rung.

The vignette deepens: dmg x 0.8, cap 0.85, and the clean centre shrinks with
damage instead of only the rim darkening.

And the reachability regression the issue always deserved: a headless 90s
autopilot soak asserting at least 10 returns sampled and at most 15% that
never came within volley reach. Sabotage-verified. Its honest limit is
recorded in PROJECT.md: the autopilot attends perfectly and taps
frame-precisely, so it out-covers a human — it is a floor against
catastrophic regressions, not a proxy for the thumb. Oliver's playtest stays
the real gate.

46 tests, 15 seeds clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Opus 5 committed 2026-08-11 23:18:33 +02:00
1 parent 8ccf0a8fad
commit fdbadce94d
6 files changed
+73 -4

No files matched your search

+19
View File
@@ -948,6 +948,25 @@ strength because the balls kept landing where he wasn't.
the state is worn, not reported. At 1 hp the frame is properly blood-rimmed and the court centre
stays legible.
**NINETEENTH PASS — pace was the missing dial, and the reachability test finally exists.** Oliver:
*"the vignette can get more pronounced and there are still balls which are basically not reachable
with auto run.. please recheck"* — plus, asked twice and deserving a straight answer: *"did you
write tests for the last issues we encountered?"* **No — the unreachable-balls issue only ever had
config assertions, which is exactly why it came back twice.**
- **Pace, the ladder's FOURTH dial** (`matchOppPace` 0.78, `matchOppPacePer` 0.05/rung): width alone
never fixed reachability because the returns left at ~27 m/s — crossing to your baseline in
~0.6 s, less than auto-run needs from the far corner. Opponent one now returns at ~20 m/s
(measured live: twelve returns, 20.0-20.7), a quarter more flight time; the rungs take it back.
- **The vignette deepens**: `dmg * 0.8` (was 0.5), cap 0.85, and the clean centre SHRINKS with
damage rather than only the rim darkening.
- **The REACHABILITY REGRESSION** (the test this issue always deserved): a headless 90 s autopilot
soak — auto-run, fixed tap window, no placement — asserting ≥10 returns sampled and ≤15% that
never came within volley reach. Sabotage-verified: cranked knobs trip the suite.
**Its honest limit, recorded so nobody overtrusts it**: the autopilot attends perfectly and taps
frame-precisely, so it OUT-COVERS a human — knob-legal-but-hostile values still pass it. It is a
floor against catastrophic regressions, not a proxy for Oliver's thumb; his playtest stays the
real gate for "reachable".
**Open, and every one of them is Oliver's call after he plays it:**
1. ~~**A ball that carries through the lane can complete two steps at once.**~~ Largely CLOSED by
the slice removal (seventh pass) — a cut ball picking its own next victim was the main way this