# Hard mode — completed with the accepted 38-win base

jdc confirmed on 2026-10-31 that the released Hard mode is complete. The website
marks it completed. The38/50 result and known limitations remain unchanged;
stable39/50 was not achieved and is no longer an open task. No new experiments
or ROM changes accompany this acceptance. The investigation below is history.

## Historical maintenance release — 2026-10-30-r2

Crit Shots locks after the selected season completes match 1; Auto Replays and
other options keep their behavior. Fresh B selects the eligible teammate nearest
the actual puck without skater possession, including own-goalie possession and
old pass animation; Y and own-skater passing retain their rules. A native goalie
outlet goes to that pad's newly selected skater. Stars of the Game keeps its whole
native panel; shot/crowd meters retire before it draws.

The selected 38-win AI base is preserved. All 40 original no-B playbook trajectories
(24,000 frames) match byte-for-byte. New regressions pass; all 67 checks executed:
66 pass and the exact inherited finisher geometry failure remains. Strict QA is
FAILED, as already documented for the chosen playtest. The first draft's new AI
timing regression was rejected; no per-frame guards/padding/RNG forcing remain.
Seven independent build/rollback comparisons and original-base IPS pass.
SHA256 f2a6d2ee40f4ac6c7bfe3277fe1859930fc1c579f1cb15aed742c1798f8fd9a3;
CRC32 AD60AF42. Fresh progress per release; remaps/config/history preserved.
See MAINTENANCE38_R2.md and QA_STATUS.json. The win-rate search stays stopped;
blue-line/one-timer/lateral-deke research is deferred, and human variant tests last.



## Final variant33/50: AI search stopped; keep released38/50

Development: **Codex GPT-6.1 Sol on High**. On2026-10-30, jdc identified this
session configuration and estimated a little over20hours spent trying to
improve Hard, including experiments and testing. This is user-reported elapsed
time, not a measured runtime or a claim that the strength target was achieved.
[Official OpenAI model documentation](https://developers.openai.com/api/docs/models/gpt-6.1-sol)
describes the model and its High reasoning setting; it does not verify this
individual session's configuration or elapsed time.

The final new-image series finished33/50, goals94–62. All74functional checks
pass, but the39win requirement was not met. Its matched Native-receiver control
won32/50, goals89–65; r3control won29/50, goals80–69. All150games finished with
25home games per club and no execution errors. All100new/control saves pass
the full statistics audit; four old r3scorer errors remain retained. No
confirmation was allocated. At jdc's direction, AI experimentation stops here
and the released38/50playtest stays current, including its honestly recorded
62/63QA result. Stable39/50 was not achieved.

The final private variant now considers a safe free wing both when an ordinary
central Hard carrier considers passing and when it considers shooting into a
covered net. It retains the actual native pass validation, catches, physical
shots and the close-slot priority. In14paired central scenes it makes8early
outlets,7catches and6following shots; the14quiet-carry scenes retain5close
finishes and exact Normal/Easy/Human controls. Across all22retained real-game
contexts it makes15early passes and13actual receptions, including same-frame
catch-and-release one-timers. These selected scenarios are functional evidence,
not a new win rate. All264outer caller cases,140opening probes,134choices and
112unmodified native pre/post action/stack comparisons pass individually.

An old E412test marker overwrote the E418entry reached by the new late path.
The failed harness run is retained; distinct pre/post action markers preserve
all264expectations, while the112actual-action comparisons execute native code.
A comparison-build preparation also exposed a conditional assembly label that
was missing only with centered-cross disabled. Moving the shared label leaves
the final production ROM byte-for-byte identical; the failed preparation is
retained. All74checks now pass in a fresh exact-source matrix, including the complete
native CPU game and final current-source validation. Independent7build/rollback
comparisons,378originalNative bytes/8veneers, benchmark-source matching and
original-base IPS reconstruction pass. The final preregistered primary2881–2930
is complete: new33/50, Native control32/50 and r3control29/50. All results and
sources are retained; no further AI variant or unchanged-image retest is planned.

At jdc's request this was the **last AI variant to test**. The failed primary
ends this investigation; do not allocate a confirmation or start another
prototype. The selected current game remains the unchanged released38/50image.
After the next release, work through the TODO list: Crit-only match1lock, then
immediate B switching without skater possession or with own-goalie possession,
preferably nearest the puck. Human playtests of saved variants come after all
other work, one variant at a time. Those impressions will be recorded separately
from these CPU-versus-CPU series.

## Close-slot Hard strength rejected at 32/50; all 69 functional checks pass

The separate Hard-only path restores the original Normal/Easy instruction path.
Its quiet carry variants still produced only 3 close carrier shots in 8 scenes,
short of the unchanged requirement of 4; both failures are retained. A further
prototype initially put its new call on the wrong native penalty-kill branch;
its unchanged 3/8 result is retained with the source and the control-flow fix.
No failed image was given fresh strength matches or weaker acceptance criteria.

The current private candidate adds a real close-slot decision before ordinary
native shooting probability. Both puck and carrier must be within 64 units of
goal, in front of the goal line, with the existing CPU Hard/ordinary-owner guards.
An actual opening of at least 16 and a clear lane prompts an ordinary native
shot. Otherwise, when a real opponent including the keeper is within 40 units,
Hard seeks an existing safe improved pass, or takes an ordinary shot if none
exists. Quiet covered carries retain the earlier native pass/weak-post waypoint.
Breakaways, one-timers, special contexts, human control and actual PK are guarded.
No changes to ratings, skating, shot height/power/accuracy or physical release.

The same 14 paired scenes now pass: all 8 Hard carriers advance at least 12
units before their first action, mean closest owned distance improves by 11.05
units, 7 act by frame 180, and 5 shoot within 64 units of goal by frame 240.
No unsafe early exit pass occurs. All 4 Normal/Easy whole traces and both Human
first-120-frame controls match exactly. The original finisher/catch regression
also passes without reduced criteria. New checks cover 181 actual close-slot
choices and 60 real native pass/shot/carry continuations with exact stack/action
state. Another 20 call the actual E09C/E292 chain, retaining early safe cross
passes and Human-recipient precedence. The 169 quiet-predicate cases pass.

The first full run stopped after 20 passes at an old attack harness that marked
only the original shot-decision addresses. The Hard-only path uses relocated
native entries. Its failure is retained; the original 76 attack, 172 hook and
126 relay cases now use the same markers at the actual entries, with every
case and assertion unchanged. They pass individually. The ROM is unchanged;
a fresh full 69-check run includes the additional actual-caller regression.
All 69 checks pass on the exact new image, including a complete native CPU game.

Five independent rebuild/feature-off/preceding-playtest/r3 comparisons and
original-base IPS reconstruction pass. The relocated 378-byte native decision
block normalizes exactly, with all 8 external branch veneers checked. Both sets
of 8 actual per-club benchmark probes pass. The full exact-image 69-check gate and its current-source validation pass.
The complete predeclared primary 2831–2880 finished all 150 games without an
execution error: new image 32/50, goals 101–68; Native-receiver control 31/50,
goals 82–56; r3 baseline 25/50, goals 83–72. All have 25 home games per club.
Every one of the 100 new/control saves passes the statistics audit. Six known
old r3 scorer errors are retained. The image fails the 39-win requirement;
no confirmation was allocated and the unchanged image will not be reseeded.
More goals in this matched series did not establish sufficient strength.

Next diagnosis replays four matched harm/benefit cases (each with Edmonton home
and away), on both exact images. All eight full runs reproduce their original
result, raw save, trajectory and three existing observer files byte-for-byte.
This outcome-selected sample is exploratory and supplies no new win-rate evidence.
In the two selected new-image losses, each preceding Hard shot is over 600
native frames before an opposing goal; these cases do not support an immediate
shot-to-counterattack explanation.
One overtime loss includes an intercepted Hard outlet from its defensive half,
followed by several recoveries and a Chicago goal. The current safe improved
receiver search explicitly stops below attacking depth 88, leaving defensive
outlets on the original fallback. Investigating safe native breakouts is a new
hypothesis, not an implemented fix or a proven explanation of the whole series.
The read-only audit of all 50 retained inputs on both images is complete:
100 runs reproduce all 600 original artifacts exactly. Some seemingly clear
static passing targets still lose possession; receiver and opponent motion and
actual native pass direction must be checked before a new policy is chosen.
Over 120 same-period frames, enemy next-possession follows 169 of 1,178 new
defensive-half skater passes versus 176 of 1,100 parent passes. This does not
support blaming the extra goals against on worse outlet completion.
A separate geometric screen finds 22 new-image covered central windups with
apparently safer wide receivers, versus 9 in the parent. These estimates require
actual native opening/pass/catch probes before a new combination is proposed.
The diagnosis above led to the final private variant described at the top.
The final primary2881–2930is complete as described at the top; AI search stopped.
The public 38/50 ROM, failed public 62/63 QA and deferred Crit lock are unchanged.

## Quiet covered-shot experiments: regressions retained; no new match series

The first private candidate kept safe pass choices first. If no safe receiver
wins, an ordinary CPU Hard carrier can defer a covered shot while every real
opponent, including the keeper, is at least 40 rink units away. Actual native
goal opening must be under 16; scope is puck depth 160–232 and width up to 88.
Pressure, an open shot, breakaways, busy actors and special contexts retain
ordinary decisions. The carrier uses native passing and skating; player values,
shot targets, height, accuracy, power and physical movement remain unchanged.
The rejected central-outlet and height experiments are not carried forward.

169 actual native opening/pressure/guard/register cases and 94 existing pass
choices pass. The hook suite retains its original 172 cases and adds 96 for
shot deferral, the native caller/stack continuation and safe CPU/Human-recipient
pass priority. In 8 paired Hard scenes, 7 carriers advance at least 12 units
before their first action; mean closest owned distance improves by 10.54 units.
Seven make a real pass/shot by frame 180, and four shoot within 64 units of goal
by frame 240. No unsafe early backward exit pass was observed. Four Normal/Easy
whole traces and two Human first-120-frame controls are exact.

Its full matrix stopped after 40 passes at the existing finisher regression:
mean receiver slot distance worsened from 3.16 to 7.62, with a missed catch in
one setup. The failure is retained and no new strength pool was allocated.
Moving the predicate to actual native shot commitment restored the original
finisher result and all four catches, but the unchanged Easy trace controls
still detected short puck-coordinate differences. Both slow and fast fallback
variants are retained as unsuccessful; no control criterion was relaxed.

The next work separates Hard shot selection from the original Normal/Easy
instruction path, retaining the same full geometry and pressure conditions.
The latest complete strength series remains the rejected 33/50 below; stable
39 is unfinished. Public ROM/failed 62/63 QA and the deferred Crit lock remain
unchanged.

## Covered-centre outlet rejected at 33/50; all 66 functional checks pass

The next private candidate addresses a decision gap: a CPU Hard carrier near
the middle could shoot into a covered net despite a free wing. It now considers
a safe real outlet when the current native opening is under 24 rink units and
the receiver offers at least 24 units of clearance and an 8-unit improvement.
Existing pass-corridor, marking, actor and native pass/catch/shot checks remain.
Player ratings, skating and shot physics are unchanged.

Targeted evidence: 140 native opening/guard/register cases, 134 pass choices and
252 actual pass/shot dispatch cases pass. In eight paired Hard scenes, early
wing outlets increase from 3 to 8, with 6 actual catches and 5 following native
shots. Four Normal/Easy traces match exactly; two Human controls retain the
first 120 frames and controller identity. These are controlled observations,
not a new win-rate result.

The first full 66-check run stopped after 55 passes: its broad smart-aim scenes
still showed 3 buffered releases, but no longer exercised the previously
incidental retained-catch branch. The failure is retained. An unchanged
preceding scene was reproduced for all 600 frames and its real incoming catch
captured. Read-only replay on both exact images retains the puck, skates and
shoots within 120 frames. The test now always requires this fixed actual-catch
coverage in addition to all 12 original scenes and the original continuation
criterion. No ROM timing or instructions were tuned to pass; the complete
66 checks have now passed in a fresh run. Independent rebuild, exact feature-off,
preceding 38-policy and r3 rollbacks, and IPS reconstruction pass.

The complete predeclared 150-game comparison is now finished. The new image
won **33/50**, goals **101–65**; the native-following control won 31/50, goals
100–57, and the released r3 control won 31/50, goals 92–67. Each had 25 home
games per club. All 100 candidate/native-control saves pass the statistics
audit; five known old r3 scorer errors remain recorded. No execution failures.

This candidate is rejected for strength: 33 is below 39, so no confirmation is
allocated and the unchanged image will not be reseeded. In the real attacking
centre-pass region, the new image made 39 observed outlets versus the parent's
19, but that did not establish the required scoring or win-rate improvement.
Approximate pass geometry is not a causal explanation for the match results.
Two already played losses, one home and one away, reproduced their complete
results, raw saves and existing observations exactly with added read-only
release/catch/turnover recording. A further controlled test compared the two
existing native corner heights for all 35 observed Hard releases: both produced
1 goal and 28 shots on target. Horizontal velocities and power were exact. The
height override failed its declared improvement requirement and was rejected
before fresh strength games. The quiet covered-shot work above follows this negative diagnostic. Diagnostic
replays and controlled shot clips never add fresh wins.

Stable 39 remains unachieved. The public 38 playtest and its 62/63 report remain
unchanged. Crit Shots locking stays deferred until stable 39; every other menu
choice must stay as it is. [Latest complete progress data](https://dela.jdc.se/nhl94/tools/notes/HARD_STRENGTH_PROGRESS.json).

## Receiver candidate reached39 once; independent confirmation rejected stability

The completed150-game comparison gave the native-following candidate39/50,
goals99–49; the current38-policy control won35/50, goals110–65, andr3won27/50,
goals89–71. Every cohort had25home games per club. All100new-candidate/current-
control saves pass the statistics audit; nine knownr3scorer errors are retained.

The single independent fresh50-game confirmation of the exact same candidate
finished31/50, goals92–63. All50saves pass and home ice is balanced. This is
**not stable39**. Both series remain in the record:70/100wins and191–112goals.
The failed image will not be repeatedly reseeded until a favorable result appears.
Its functional receiver correction passes all64checks, but further genuine AI
improvement is required. Crit Shots locking remains deferred until stable39.
The public download stays the user-requested2026-10-30playtest, unchanged.

The checkpoint below describes the candidate before these complete results.

## New private receiver correction: full64-check gate passed

A new2026-10-30-r2 candidate restores native incoming-puck following instead
of the custom distant receiver hold. In the same eight controlled scenarios,
the four Hard catches improve446to27frames, a missed catch to22,46to41and27to26.
Mean slot displacement improves2.777to1.905; early direct releases remain2.
All four Normal/Easy traces match exactly. Thirty-nine actual Native105A2
reference/guard/ABI cases and the complete64-check exact-image/source matrix
pass, including the original finisher test and a full native CPU game.
Independent rebuild, exact preceding38-policy rollback, exactr3rollback and
original-base IPS reconstruction also pass. Player attributes and native
physical shot/skating code remain unchanged.

A fresh predeclared150-game comparison is now running:50each for this candidate,
the current38/50 playtest and releasedr3control,25home per club. No new strength
result or stable39claim is available yet. A qualifying new candidate still needs
an independent fresh50-game confirmation at39wins with the exact same image.
All failures remain retained; unchanged failed images are not repeatedly reseeded.

This is private test evidence. The public download remains2026-10-30at38/50with
its documented receiver-hold failure and62/63passing report. The new64-check
success does not approve the older image. Crit Shots locking is explicitly
deferred until after the39-win target; see [TODO](TODO.md).

## Current playable release: 2026-10-30

At jdc's explicit request, the38/50 image is now released for playtesting,
goals132–66against the matchedr3control32/50and parent36/50. All63exact-build
checks executed:62pass and one known finisher-hold geometry failure. The strict
release gate remains failed; this is an explicitly requested interim playtest.
Independent rebuild/rollback/IPS verification passes. This does
not satisfy stable39/50and has no qualifying independent confirmation.
All200candidate/parent matches pass saved statistics; one oldr3control scorer
error remains retained. Three new images finished31/50,38/50and32/50.
[Released behavior and source](AI_TACTICS.md) · [Complete series](HARD_STRENGTH_RESULT.json).

The investigation continues. The earlier checkpoints below remain historical.

Updated 2026-10-30. The user now accepts **stable39 wins in50** Edmonton
Hard games against Chicago Normal, replacing the previous40-win threshold.
Each predeclared fresh series must contain25home games per club and positive
goal difference. A qualifying candidate must repeat at least39wins in a
separate fresh50-game confirmation with the exact same image. Original player
ratings, fatigue and native skating, shot, collision and save physics remain.
No candidate has established this stable result yet.

## Current checkpoint: 2026-10-29-r3

The public download remains **2026-10-29-r3**, SHA256
`0d196f206294ebf6c8bda449a41aa7cf4f6702585a57cc9ecceaee960915a8db`,
with40 exact-build checks. It fixes the Crit On/Off display and contains no new
strength prototype. The39-win target is a match result requirement; it is
separate from the number of regression checks.

Recent complete private series after correcting buffered-shot scorer attribution:

| Private candidate | Edmonton Hard wins | Matched r3 control | Goals EDM–CHI |
|---|---:|---:|---:|
| Complete shooting lanes with receiver hold | 38/50 | 35/50 | 109–58 |
| All actual actor objects with receiver hold | 35/50 | 29/50 | 105–54 |
| Forward passing up to the blue line | 37/50 | 28/50 | 117–62 |
| Same forward policy with coverage during real passes in flight | 36/50 | 25/50 | 122–68 |
| Accepted-pass planning plus continued coverage | 36/50 | 30/50 | 103–63 |
| Additional safe centered-keeper cross choices, latest completed comparison | 33/50 | 28/50 | 104–59 |

The best corrected complete series is **38/50**. Earlier promising results,
including43wins with a stale-passer scorer defect, cannot qualify corrected
code. Failed results and superseded builds remain retained. No promising pilot
or increased pass/shot count approves a release.

The400-game accepted-pass-planning comparison is complete: six new variants
and two controls,50games each. The best new result was36/50, goals103–63. All300
new-candidate matches pass the saved-statistics audit; six old scorer-attribution
errors in the released control remain recorded. None of these candidates
qualifies for the independent confirmation.

The following150-game comparison is also complete: the new centered-keeper
cross-pass policy won33/50, goals104–59; its unchanged parent also won33/50,
goals112–60, and the r3control won28/50. All100candidate matches pass the saved
statistics audit; seven old scorer-attribution errors remain in the control.
The new policy is not accepted. A clear far-post opportunity can now be
considered when the keeper is still centered, rather than requiring an8-unit
commitment first. The actual shot ray must still pass at least24units from the
real keeper, and the receiver/pass lane must be free. Actual native catch and
release remain required. In12paired controlled scenarios, early direct releases
increased1to3of8Hard cases; all4Normal/Easy trajectories were unchanged. This is
behavior evidence, not a win-rate claim. Two predictive-pursuit prototypes were
retained and rejected before full matches because their live skating comparison
did not improve.

A qualifying candidate must pass the independent confirmation above; repeatedly
reseeding unchanged code after a failed confirmation is not accepted as stability.
A private59-check matrix stopped after29passes at a HUD observation deadline.
The meters had returned three frames after the native penalty view, then a real
goal started an automatic replay before the old fixed measurement time. The
corrected first-return observation passes the exact ticker-pixel comparison and
rejects a private draw-disabled negative control. No ROM bytes changed for this
fixture correction, and no full59-check approval is claimed.

Ten read-only replays reproduce their complete original results exactly and
record buffered shots and keeper outlets. Three private shot-opening variants
are now implemented and undergoing a fresh predeclared250-game comparison with
two controls,50games per image. They retain the native shot height and choose
only among the existing target positions when a different post is meaningfully
more open. Two variants also decline a custom forced catch shot when it remains
covered, leaving ordinary native carrying, passing and shooting available.
No new version is released or qualified yet.

Each image passes122native target/guard/ABI cases,28complete native shot-physics
comparisons at the same selected target,26catch cases and the61accepted-pass
planning cases. Twelve paired live scenarios per image verify actual releases
and continued native play after a declined catch shot. Both Normal traces match
exactly; two Easy controls differ in sampled frame timing, which remains
recorded rather than being claimed byte-identical. Direct identical-input
Normal/Easy/human target and physical behavior checks pass. A fresh63-check
regression gate is running; these targeted results are not a full gate approval.
Extra direct-shot attempts alone have not established the required win rate.

A separate real-match regression found a legitimate empty-net goal by a keeper.
Experimental accounting now separates that keeper's own goal/shot from native
overloaded defensive counters. The actual goal sequence, native pause/resume,
foreign highlights and all32teams' saved statistics pass targeted checks. This
correction is still private and is not claimed for the current download.

Match inputs are declared before the first result. The current protocol uses
unique ordinary start waits without replacement, excluding every prior allocated
recipe, and never writes native RNG. Every complete comparison retains all50
matches and25home games per club. A historical tracker pool had48unique recipes
rather than50and is not credited as50independent inputs. Its original results
and the input-diversity audit remain retained. Save observers now wait for all32
team records and two identical complete SRAM frames, because the native8-bit
checksum can temporarily match partway through a write.

Current research seeks more natural cross-ice direct finishes with the keeper
still in the goal mouth and stronger native defensive decisions. Experimental
code remains private until accepted and fully tested. Released source, hooks
and exact-ROM byte exports remain available on the attributed forum cards and
in the tools archive.

The checkpoints below are historical. Their earlier targets and pending
releases describe the evidence available then; current release metadata and QA
remain authoritative for the public download.

## Continue from the durable record

Private work: `/home/jdc/mount/truenas/www/dela.jdc.se/nhl94/.workspace/work/hard-strength-20261028-231416`.
Read `RESTART.md` first. The latest investigation status is in
`.workspace/work/hard-strength-r3-20261029/STATUS.json` and its
`cross-sequence/EXPERIMENTS.json`; earlier handoff files remain historical. `EVIDENCE_INDEX.md` links the main
reports; `EVIDENCE_INDEX.json` records hashes and report statuses. The user-side
pointer is `/home/jdc/NHL94_NEXT.md`. Historical notes and failed reports remain
available. Do not build the old `stage/tools` tree: it contains rejected work.

## Larger native comparisons

Native CPU matches use fresh private batteries, ordinary inputs, actual
3-by-5-minute play, natural overtime/shootouts and balanced home ice. Eligibility
adapters assign Hard to the selected club while retaining identical dynamic
crowd policy. They never force scores, positions, velocities, RNG or outcomes.
Both saved team rows and checksum must agree before accepting a match. All
failures are retained, never silently substituted or credited.

| Candidate / fresh validation | Edmonton wins | Goals EDM–CHI |
|---|---:|---:|
| Clean body checks + pass anticipation | 25/50 | 88–83 |
| More cross-crease finishing | 19/49 | 81–100 |
| Strongest available real keeper | 26/50 | 72–77 |
| Keeper + strongest first forward unit, first pool | 30/50 | 93–69 |
| Same exact image, second pool | 29/50 | 78–77 |
| Same exact image, third pool | 34/50 | 90–59 |
| Whole-roster normal forward units | 23/50 | 77–78 |
| Whole-roster forwards + powerplay coaching | 27/50 | 74–69 |
| Whole-roster forwards + PP/PK coaching | 29/50 | 86–66 |

The identical keeper/first-line benchmark totals **93/150 wins, 261–205 goals**;
its matched r9 controls total 72/150 wins. Its latest 34–16 is one win short of
the promised threshold. All three pools remain part of the record. Small pilots
have repeatedly failed to carry through: whole-roster coaching went 8/10 before
23/50; PP coaching went 9/10 before 27/50. Do not select only favorable pools.
The 49-completion cohort above retains one explicit native failure. Subsequent
full validation pools with both crash fixes complete without failures.

The latest keeper-save-timing pilot completed 80 games: Normal 4/10, r9 4/10,
keeper/first-line control 7/10, later save at six frames 6/10, eight frames 8/10,
earlier saves at 16 and 20 frames both 6/10, adaptive timing 6/10. Its 145 native
flag/register/guard cases pass. This remains a private prototype; no 50-game
held-out timing validation has run. Native animations, speed and save traits
are retained.

## Confirmed bugs and private corrections

- Native rewind undo can decode the END sentinel of its circular buffer. The
  four-byte correction calls the existing wrapped advance. Six native cases,
  the prior whole-game failures, a clean 34-check stability gate, independent
  rebuild, exact r9 rollback and original-base IPS reconstruction pass.
- Clearing the powerplay display can lose the caller's team pointers inside a
  logo routine. A guarded helper preserves A2/A3 across that original graphics
  call. Four native cases preserve original graphics RAM; both crash fixes
  together complete all seven formerly failing captured matches.
- A later full CPU check exposes reserve-goalie season accounting errors:
  keeper GA/SA can become skater goals/shots, and the season can credit the
  profile's starting goalie instead of the keeper who actually played. A
  captured natural match proves the error. The correction passes twelve native
  accounting cases and the full 38-check exact-build gate.
  See [GOALIE_STATS_WIP.md](GOALIE_STATS_WIP.md).

Rejected renderer and checksum hypotheses remain documented privately. No
claim that the current public game is bug-free or that these fixes are released.

## Shared QA status

Private 36/37-check gates are **failed**, not release approvals. The old OT goal
fixture allowed a live skater to intercept its scripted puck; isolating the
actors preserves all native goal/statistics assertions, and focused r9/new
comparisons plus full corrected shootout suites pass.

The playbook suite retains its original 32 scenarios and every strict criterion,
and adds eight relay lanes outside the original marker's reach. Its focused
40-scenario comparison passes. A fresh 37-check PP build passes the first 36
checks but fails the final natural CPU game on the real keeper-statistics bug
above. That report remains failed. New accounting and first-line regressions,
an exact-build full gate and rebuild/IPS proof are required before a release.

## Pressure waves reported by jdc

Published code confirms dynamic momentum, score-sensitive third-period CPU line
choice and late goalie pulling when one or two goals behind. Six read-only
native replays preserve exact results, goal frames and sampled trajectories.
The sample does not establish a universal comeback switch. Findings, addresses,
measurement limits and the corrected percentage observer are recorded in
[MOMENTUM_WAVES.md](MOMENTUM_WAVES.md).

Every release must follow version replacement, fresh saves, preserved remaps,
Downloads/site/Bodin delivery and exact-ROM/source QA policy. Never close a
running RetroArch without asking. Bodin's existing r9 delivery remains queued
pending connection; no remote success is claimed.

## Latest completed checks and experiments

The best keeper/first-line version with corrected season accounting now passes
all 38 exact-ROM/source checks, including 46 native first-line cases and 12
keeper-accounting cases, plus the exact natural 0–2 reproduction. Independent
rebuild, exact r9 rollback and original-base IPS reconstruction pass. It is now released at the user's request, with the separate strength target still unfinished.

Held-out timing validation (six cohorts, 300 complete games) rejected the
promising eight-frame save pilot: late-eight and adaptive each won 27/50;
keeper/first-line control won 32/50 and r9 control 19/50. A later clear-blue-line
frequency experiment (another 300 complete games) produced 28/50 for every
eligible clear point decision, 26/50 for one-in-two, versus control 25/50. None
reaches 35/50. Native results and all prior pools remain recorded.

The point policy has a real measured behavior change: early point windups
increase 3/4 to 4/4 against its immediate predecessor, with four Normal/Easy
native trajectories byte-identical. More shots alone did not establish the
required win advantage. The next diagnostic concerns whether an incoming-pass
finisher moves out of his useful position while chasing the puck. That is a
hypothesis, not a newly confirmed bug.

## User-requested playable release

2026-10-29 publishes the GSb81 coaching/crash/accounting build with38 exact checks. Later timing/point/hold experiments remain private. The35/50 target is not claimed achieved. Crit On/Off in the main menu, including fullyOff on Easy, was requested and is the next task.

## Crit preference delivered (2026-10-29-r2)

The requested Crit menu is now released, including fullyOff on Easy; all39 exact checks pass. Current ROM/source/QA are r2. Continue the unfinished Hard strength objective from the private CURRENT_STATE and latest RESTART instructions. No timing/point/hold prototype is included.

## Current pool and UI correction (2026-10-29-r3)

Public r3 corrects Crit-value rendering only, all40 checks pass. Private hold64 on r2 completed50 fresh games:33 wins GF98-67, versus r2control31 wins GF91-61.100/100 native games complete, zero errors,25home each.35/50 NOT met; hold stays private. Receipts: .workspace/work/hard-strength-r2-20261029/validation-761-810/. Next fresh811+.

## Rejected images and human difficulty

Rejected prototypes retain their ROM images, source and test evidence privately.
Rejection means failing this particular CPU-versus-CPU qualification, not deletion
or proof that humans would find a variant easier. There has been no systematic
human-player comparison of these variants. They can be selected for future human
playtests without treating those tests as a new qualification attempt.
