depth 47 · 49 · 343nothing prunedevery branch valued, one column played
Technique

Expectimax search

When some of what happens next is your choice and some is luck, look ahead by taking the best of your options and the average of luck's.

Read the primer: Expectimax search

On this page
Records42
Experiments16
Show all 16Show fewer
Results16
Show all 16Show fewer

The problem

Drop7 hides two things from the player at every move. The disc after the visible next one is unknown, and the number under every gray disc stays hidden until a clear beside it cracks it and a second clear reveals it. A player weighing one column against another has to allow for both, and how that allowance is made decides the move. Hope for the reveal you want and the search builds boards that pay off one time in seven. Assume the reveal you fear and it never builds anything.

Before any learned or novel policy can be judged, the program needs one dependable player that handles that uncertainty honestly, reads only what a person at the screen could read, and produces the same games every time it is run on a cohort. Every other page on this site measures its candidate against this one.

Proposed solution

At each move the reference builds a look-ahead tree that alternates between two kinds of node. At a choice node the player picks a column, and the search keeps the best option. At a chance node the game deals a disc or reveals a hidden number, and the search takes the average over what could happen. "Fair" means the average runs over every legal next disc and every possible reveal. It doesn't hope for the best reveal or plan for the worst.

The search imagines four of the player's own moves (its depth, written D4 below; the three-move version is D3) and then hands every board at the bottom to a hand-written leaf evaluator, described on the fair leaf evaluator page. The policy reads only the visible board, the visible next disc, the moves until the next rise, and whether the game is over.

building the tree…
building the tree in the browser…
MAX node the position; the search picks the column with the highest expected value.chance branches every exact outcome of a drop — the next disc, and what any cracked gray disc turns out to be — weighted by its probability.leaf the opinion of the board scorer where the look-ahead stops. Click a column to expand it; click an outcome to play that transition and continue from it.Columns are numbered 1–7 from the left. Values come from the browser solver and are a demonstration, never research evidence; seed 0x5eed1002 is the same game as /play.
The browser analogue of the reference search on a seeded game, with one further ply below each outcome. It is a playground demonstration of the mechanics; the cohort numbers on this page come from the native reference.

How it works

  1. Read the position: the visible board, the visible next disc, the moves until the next rise, and whether the game is over.
  2. For each legal column, drop the disc and let the rules engine resolve every clear, chain and reveal it causes. This is a choice node, and each column is one branch.
  3. Below each branch the following disc and any reveals are unknown, so the search samples a fixed handful of representative outcomes, its strata (five in the reference), and gives each the same weight.
  4. Repeat steps 2 and 3 until four of the player's moves have been imagined. Points scored along the way are counted exactly; the leaf evaluator scores the board at the end of each line.
  5. Average at every chance node, take the best at every choice node, carry the values back up to the root, and play the column with the highest value.

What happened

On the eight-game confirmation cohort, replayed under corrected scoring, the depth-4 search averaged 400,675 points against the depth-3 search's 235,071 (ledger, "Corrected Hardcore scoring replay"; ledger-recorded). On the broader 64-game development cohort the depth-4 reference averages 308,296 points (status). Eight paired games is a confirmation replay on already-used seeds, so the 64-game mean is the number the rest of this site treats as the reference.

A fifth move did not help. Selective depth 5, full depth 5 and the cycle-boundary variants all failed their gates; the sibling pages in this group record each attempt. The reference is the teacher behind most label-generation experiments and the fallback inside most candidates, and its mean is far below the one-million-point mean the program is after.

What we learned

With this leaf, the fourth move of look-ahead is worth a lot and the fifth is worth nothing anyone could measure. The later reveal-sampling work put that in a wider frame: a three-move search with a better chance model matched the four-move reference at less work, so depth and the quality of the chance average are two ways of buying the same thing. The reference's value is that it is frozen, public, and reproducible game for game, which is what lets a negative result on any other page mean something.

The open question is what, if anything, beats it on games it has never seen at the same work per move.

Agent contextRecords and provenance
  • The eight-game numbers are from the ledger section "Corrected Hardcore scoring replay" in docs/research/history.md: after the mode audit restored the five-drop Hardcore award to 17,000, the qualified full-width fair-D4 policy was rebuilt and deterministically replayed on its already-consumed screen and confirmation seeds; no new gameplay seed was opened. Four-game screen: D3 318,528.75 points / 93 moves, D4 399,951.75 / 115, paired gain 81,423 points and 22 moves. Eight-game confirmation: D3 235,071.25 / 71, D4 400,675.25 / 116.375, D4 winning seven of eight pairs, paired gains 165,604 points and 45.375 moves; 1,000-move cap, neither arm censored. D4 used 1,351,112.595 logical work units per move, retained at most 36,105 cache entries, peaked at 30,441,472 RSS bytes, and ran at 0.744 moves per aggregate game-second. Replay artifact /tmp/drop7-fair-only-depth4-hardcore17-replay.json. The same table is in docs/strategies.md, which adds that D4 changed about 34% of the decisions D3 would have made.
  • The 64-game figure is the current-status number in docs/research/status.md ("308,296 points" over 64 games); the ledger's corrected-D4 bootstrap entry records it as 308,295.578 points and 90.031 moves, and finding-03 cites the same figure as 308,296 / 90.03.
  • Builds: fair-only-horizon.cpp is the fair-only depth-3 evaluator; fair-only-depth4.cpp is the depth-4 reference build (make native produces build/fair-depth4). The TypeScript counterpart used by the benchmark registry and by the browser figure above is evaluateMoves in src/core/typescript/solver.ts with the combined leaf.
Agent contextFull results table
ConfigurationGamesMean scoreMean movesPaired winsSource
Fair D38235,07171.0001 of 8ledger, corrected replay of the confirmation cohort
Fair D48400,675116.3757 of 8ledger, corrected replay of the confirmation cohort
Fair D4, broad development cohort64308,29690.031status.md; ledger corrected-D4 bootstrap entry

All rows are corrected 17,000-point Hardcore scoring and ledger-recorded. The eight-game rows are a deterministic replay on already-consumed seeds, so they are the corrected-score baseline and cannot serve as confirmation evidence again.

Agent contextValidity, gates and limitations
  • The ledger's own reading of the replay: it establishes the corrected-score baseline, and its confirmation mean is still about 40% of one million.
  • A fifth move did not pass its gates in any form tried: selective D5, full D5, and the cycle-boundary variants all failed (see the sibling approaches in this family). The chance-strata study found the fifth ply unmeasurable by its design.
  • One D4 game is reported at 1,246,684 points. That figure is task-record only: audit-03 records that no move count, seed, cohort, scoring mode or artifact exists for it anywhere, so it cannot be classified and must not be cited as evidence of anything. The million-point target requires the mean over a cohort to exceed one million; a single game is an anecdote.
  • Every serious candidate in this program keeps an exact D4 fallback; D4 is a strong tactical fallback and teacher, and its average is far below the target.
Agent contextScoring mode

Corrected 17,000-point Hardcore award throughout. The replay followed the mode audit; the TypeScript suite and a 256-seed native/TypeScript parity sweep passed exactly across 6,852 transitions before the rebuild, and the production score constant is regression-tested as 17,000. Ledger experiments marked levelBonus: 7000 are historical 7,000-point scoring, archival, and none of their numbers appears on this page.

RecordsTheories, experiments and results that reference this directory

Claim: A single action-free public-afterstate evaluator, trained only on successor-closed labels (every legal sibling at each root, aligned chance scenarios, a fixed public continuation policy), ranks the legal root actions of disjoint whole-origin games at least as accurately as fair D4, and therefore can serve as the value core of a direct 1-ply chance-averaged policy with exact D4 fallback.

This theory is currently not-supported-as-tested at the pilot (a small run to find bugs and project cost, not a strength claim) level.

Claim: A search-guided self-play loop — actors that run a fair public-information search at every visited position, record the value of every legal sibling column under aligned chance scenarios, and train a public board evaluator on those successor-closed labels, which then becomes the leaf of the next iteration's search — produces a frozen public student whose mean whole-game score on fresh paired development cohorts rises with the compute spent per iteration, and at sufficient scale exceeds fair D4's mean by a preregistered margin.

This theory is currently untested at the proposal (no games played) level.

Claim: For the corrected-score fair depth-4 search with the frozen five-stratum chance model (the contract comparator fair-d4), there exists a vector for the eighteen active fair-leaf weights whose mean whole-game score on fresh development seeds exceeds the frozen vector's by more than a 64-game paired cohort's detection floor, and a derivative-free optimiser that evaluates candidates by complete depth-4 games on a fresh seed block every generation can find such a vector within 40 generations of 16 candidates.

This theory is currently not-supported-as-tested at the public-development (a cohort for deciding what to try next, not confirmation) level.

Claim: A numbered disc of value n whose column already holds more than n discs and whose horizontal run already exceeds n (an 'entombed' disc; for n >= 3 unpriced by the frozen fair leaf, which has such terms only for 1s and 2s) is an early predictor of death for the fair depth-4 policy: it is present at most deaths, it typically appears well outside the four-ply horizon (more than two rises before death), and it carries lifetime information beyond the eighteen leaf features and occupancy.

This theory is currently not-supported-as-tested at the mechanics-only (checks only, no games played) level.

Claim: Memoising the fast fair leaf's eighteen board-only features across consecutive leaf calls with the same (board, moves_remaining), recomputing only next_disc_vertical_options, produces bit-identical leaf values, identical actions, logical work, nodes, cache hits and completed depth, and reduces the wall time of a depth-4 decision by at least 1.5x at five and seven chance strata.

This theory is currently supported-as-tested at the mechanics-only (checks only, no games played) level.

Claim: On the existing 5.26M-record training corpus (runs/RUN-A51D-corpus/all.states, whole-origin split of dataset.py), the NNUE-shaped survival leaf's held-out lifetime correlation does not improve by more than 0.01 when hidden width is raised from 64 to 512, the middle layer from 32 to 64, epochs from 10 to 20, or the learning rate is changed: its accuracy is saturated by the feature space and the data, not by capacity or training length.

This theory is currently supported-as-tested at the mechanics-only (checks only, no games played) level.

Claim: Survival instinct: when the next disc (value n >= 3) would land as the (n+1)-th or higher disc of a column it can never clear vertically, and refusing such placements at the root of the fair depth-4 search — leaving the search to choose among the remaining legal columns — extends mean paired lifetime and score on fresh development games relative to the unchanged search, by more than a 128-game paired cohort's detection floor.

This theory is currently mixed at the public-development (a cohort for deciding what to try next, not confirmation) level.

Claim: The depth-3 factored-chance fair search with seven disc strata and six reveal samples (D3 N7M6, fair leaf, finding-16) beats the frozen fair depth-4 five-stratum search (D4 s5, N5 M1, finding-05) on the shared development cohort 0xa51d1000-0xa51d103f by a paired per-game score margin whose one-sided 95% whole-game bootstrap lower bound and Student-t lower bound are both above zero.

This theory is currently supported-as-tested at the public-development (a cohort for deciding what to try next, not confirmation) level.

Claim: Public board states visited by the perfect-information oracle after move 50 have a higher expected remaining lifetime under FAIR, public-randomness continuation than fair-D4-visited states matched on rise phase, occupancy and maximum height. Defining R_fair(O) and R_fair(F) as the mean remaining moves over K independent public futures under a fixed public continuation policy, and R_tape(O), R_real(F) as the realised remaining moves on the states' own trajectories, the transferable fraction tau = (R_fair(O) - R_fair(F)) / (R_tape(O) - R_real(F)) is at least 0.25, with the same sign in both split halves of the O pool, and the oracle's column at oracle-visited roots is fair-top-1 under common public futures at least as often as fair D4's column is.

This theory is currently not-supported-as-tested at the pilot (a small run to find bugs and project cost, not a strength claim) level.

Claim: Adding to the frozen fair-D4 leaf a term that prices the JOINT same-wave readiness of two support-disjoint numbered neighbours of a solid gray (the cheapest reveal in the game: two hits in one cascade, no cracked intermediate), optionally with a second gray-terminating release step (a chain whose release delivers a hit to a cover) and a danger gate that switches these construction terms off when max height exceeds 4, increases cover reveals per move and mean paired lifetime and score against the unchanged search on fresh development games at depth 4 / seven strata, by more than a 256-game paired cohort's detection floor.

This theory is currently not-supported-as-tested at the public-development (a cohort for deciding what to try next, not confirmation) level.

It compares distributional-afterstate-ranker against fair-d4 at the PILOT (a small run to find bugs and project cost, not a strength claim) level, using public-development data.

valid run outcome: inconclusive The run was valid and the outcome was inconclusive (pilot (a small run to find bugs and project cost, not a strength claim)). Read the result.

It compares distributional-afterstate-ranker against fair-d4 at the PILOT (a small run to find bugs and project cost, not a strength claim) level, using public-development data.

valid run outcome: fail The run was valid and the outcome was fail (pilot (a small run to find bugs and project cost, not a strength claim)). Read the result.

It compares distributional-afterstate-ranker against fair-d4 at the PILOT (a small run to find bugs and project cost, not a strength claim) level, using public-development data.

valid run outcome: inconclusive The run was valid and the outcome was inconclusive (pilot (a small run to find bugs and project cost, not a strength claim)). Read the result.

It compares d4-toptwo-override against fair-d4 at the PILOT (a small run to find bugs and project cost, not a strength claim) level, using public-development data.

valid run outcome: fail The run was valid and the outcome was fail (pilot (a small run to find bugs and project cost, not a strength claim)). Read the result.

It compares distributional-afterstate-ranker-d2 against fair-d4 at the CHECK (mechanics checks only, no games played) level, using public-development data.

valid run outcome: fail The run was valid and the outcome was fail (pilot (a small run to find bugs and project cost, not a strength claim)). Read the result.

It compares afterstate-d4q-student against fair-d4 at the CHECK (mechanics checks only, no games played) level, using public-development data.

valid run outcome: fail The run was valid and the outcome was fail (pilot (a small run to find bugs and project cost, not a strength claim)). Read the result.

It compares distributional-afterstate-ranker against fair-d4 at the CHECK (mechanics checks only, no games played) level, using public-development data.

valid run outcome: fail The run was valid and the outcome was fail (pilot (a small run to find bugs and project cost, not a strength claim)). Read the result.

It compares entombed-disc-features against fair-d4 at the CHECK (mechanics checks only, no games played) level, using previously-evaluated-development data.

valid run outcome: fail The run was valid and the outcome was fail (mechanics-only (checks only, no games played)). Read the result.

It compares fast-d4s5-evolved-leaf against fair-d4 at the SCREEN (a 32-game paired screen) level, using public-development data.

valid run outcome: fail The run was valid and the outcome was fail (public-development (a cohort for deciding what to try next, not confirmation)). Read the result.

It compares fast-engine-memo MemoSearch against fair-d4 at the CHECK (mechanics checks only, no games played) level, using previously-evaluated-development data.

valid run outcome: pass The run was valid and the outcome was pass (mechanics-only (checks only, no games played)). Read the result.

It compares leafnet-capacity-grid against fair-d4 at the CHECK (mechanics checks only, no games played) level, using previously-evaluated-development data.

valid run outcome: pass The run was valid and the outcome was pass (mechanics-only (checks only, no games played)). Read the result.

It compares fast-d4s5-survival-instinct-strict against fair-d4 at the SCREEN (a 32-game paired screen) level, using public-development data.

valid run outcome: inconclusive The run was valid and the outcome was inconclusive (public-development (a cohort for deciding what to try next, not confirmation)). Read the result.

It compares D3 N7M6: factored-chance-fair-search, depth 3, discSamples 7, revealSamples 6, terminalUtility -1000000, maximumWork 51084852, 2000-move cap, corrected 17,000-point Hardcore scoring (finding-16 arm, RUN-20260821T035407Z-00483c6c) against D4 s5: parameterized-fair-search, depth 4, chanceSamples 5 (N5 M1), terminalUtility -1000000, maximumWork 3200000, 2000-move cap, corrected 17,000-point Hardcore scoring (finding-05 fresh-s5 arm, runs/RUN-A51D-s7confirm/fresh-s5.json; byte-identical games to runs/RUN-A52-LEAF/eval/s5-w000.json) at the CHECK (mechanics checks only, no games played) level, using previously-evaluated-development data.

valid run outcome: pass The run was valid and the outcome was pass (public-development (a cohort for deciding what to try next, not confirmation)). Read the result.

It compares oracle-curriculum state pool relabelled under public randomness against fair-d4 matched state pool at the CHECK (mechanics checks only, no games played) level, using no-gameplay data.

valid run outcome: fail The run was valid and the outcome was fail (pilot (a small run to find bugs and project cost, not a strength claim)). Read the result.

It compares fast-d4s7-memo-reveal-construction against fair-d4 at the SCREEN (a 32-game paired screen) level, using public-development data.

valid run outcome: fail The run was valid and the outcome was fail (mechanics-only (checks only, no games played)). Read the result.

It compares fast-d4s7-memo-reveal-construction against fair-d4 at the SCREEN (a 32-game paired screen) level, using public-development data.

valid run outcome: fail The run was valid and the outcome was fail (public-development (a cohort for deciding what to try next, not confirmation)). Read the result.

resultvalid runoutcome: inconclusivetier: pilotRS-20260820T094500Z-5c1e9a04

The run was valid; the outcome was inconclusive, at the pilot (a small run to find bugs and project cost, not a strength claim) level. Of 7 preregistered checks, 2 passed and 5 failed.

The successor-closed corpus pipeline works exactly as designed (11,379 roots, 616,048 sibling labels, 100% action completeness, all CHECK tests pass), but the frozen label-stability floor failed: with K=8 aligned scenarios and an H40 phase-greedy-D1 continuation, the split-half Spearman correlation of within-root action rankings is 0.246, far below the 0.50 floor. Per the preregistered gate the outcome is inconclusive: the scenario-mean H40 outcome ranking is too noisy at K=8 to certify any model's ranking. Diagnosis: within-action scenario std is ~21k points while the median between-action gap is ~7.1k, so the target ranking is noise-dominated; noise math predicts K=64 (split-half 32v32) lifts stability to roughly 0.7. For the record, against this noisy target the model trailed fair D4 (top-1 0.247 vs 0.330 pooled; pairwise 0.571 vs 0.637), and D4 beat D1 (0.330 vs 0.254), consistent with the historical ranking of those searches. No gameplay tier was opened.

Technical recordLimitations recorded with the resultRS-20260820T094500Z-5c1e9a04
  • Labels are H40 returns under a phase-greedy D1 continuation: a fixed, weak public teacher. Even a perfectly stable version of this target may not transfer to strong-play rankings.
  • Roots are harvested from fair-D1 games, so the state distribution is D1's, not the deployment policy's.
  • The model trailed D4 against the noisy target; with stability 0.246 it is impossible to say how much of that gap is real.
  • The protocol text was authored before data access but the researchctl freeze hash was computed after the run; the frozen content did not change during the run.
  • Single machine profile; FP32 training on the shared-memory iGPU.

Full record →

resultvalid runoutcome: inconclusivetier: pilotRS-20260820T114500Z-2b7c9e31

The run was valid; the outcome was inconclusive, at the pilot (a small run to find bugs and project cost, not a strength claim) level. Of 7 preregistered checks, 3 passed and 4 failed.

K=64 improved label stability from 0.246 to 0.446 mean split-half Spearman on fresh held-out origins, but still below the frozen 0.5 floor, so the preregistered verdict is again inconclusive. Quantile calibration passed (0.807 coverage of the nominal 76.5% interval). Against the still-noisy target the model trailed fair D4 consistently in both half-folds (pooled top-1 0.342 vs 0.433; pairwise 0.637 vs 0.697; regret 0.303 vs 0.232) while beating its D1 continuation teacher (top-1 0.342 vs 0.299). Training stopped at epoch 15 of 20 on the GPU time budget with the ranking loss still decreasing. No gameplay tier was opened.

Technical recordLimitations recorded with the resultRS-20260820T114500Z-2b7c9e31
  • Labels remain H40 returns under a phase-greedy D1 continuation (a weak fixed teacher).
  • Model undertrained: 15 of 20 epochs at the GPU budget stop.
  • Iteration-1 held-out roots were folded into training data here; the gate read only fresh origins 0x5da70100-0x5da7013f.
  • Single machine profile; FP32 on the shared-memory iGPU.

Full record →

resultvalid runoutcome: failtier: pilotRS-20260820T142500Z-8f4a2d17

The run was valid; the outcome was fail, at the pilot (a small run to find bugs and project cost, not a strength claim) level. Of 7 preregistered checks, 4 passed and 3 failed.

With K=256 aligned scenarios the label-stability floor passed decisively (decisive-root split-half Spearman 0.818, unconditioned 0.638, both >= 0.5), so for the first time in this line the ranking target is stable enough to certify a verdict. The verdict is a valid negative for the direct-play configuration: the distributional afterstate ranker trailed exact fair D4 on every preregistered comparison in both fresh held-out half-folds (pooled top-1 0.424 vs 0.499; pairwise 0.685 vs 0.737; regret 0.241 vs 0.178). On the 411 decisive roots (spread > 20k) the gap narrowed but persisted (top-1 0.526 vs 0.584; regret 0.082 vs 0.064). The model clearly beat its D1 continuation teacher (top-1 0.424 vs 0.319) and its quantile head is calibrated (0.864 coverage). Conclusion: a compact action-free afterstate network trained on successor-closed H40 D1-continuation labels is a viable, calibrated long-horizon evaluator, but it is NOT a viable direct replacement for 4-ply expectimax; any future use must be as a companion signal inside search, and the same ranking gate applies. No gameplay tier was opened.

Technical recordLimitations recorded with the resultRS-20260820T142500Z-8f4a2d17
  • Labels are H40 returns under a phase-greedy D1 continuation (a weak fixed teacher); a stronger-teacher corpus was not tested and might shift the verdict.
  • Model undertrained: 11 of 20 epochs at the 2h GPU budget stop; ranking loss was still decreasing.
  • Compact 3.4M-parameter ResNet; capacity and input resolution (single afterstate, no root context) were not scaled.
  • Roots are harvested from fair-D1 games; deployment-distribution roots were not represented.
  • Single machine profile; FP32 on the shared-memory iGPU.

Full record →

resultvalid runoutcome: failtier: pilotRS-20260820T184500Z-63c0a8e2

The run was valid; the outcome was fail, at the pilot (a small run to find bugs and project cost, not a strength claim) level. Of 7 preregistered checks, 6 passed and 1 failed.

The calibrated top-two near-tie override of fair D4 by the frozen iteration-3 afterstate model FAILED its frozen gate by a narrow margin, with genuinely positive signal. On 2,689 fresh held-out roots, 1,030 (38.3%) were near-tied at the frozen 500-point threshold and the override fired on 37.0% of those. On eligible roots the override reduced mean normalized regret versus unchanged D4 in both half-folds (half1 0.2484 vs 0.2835, +0.0351; half2 0.2343 vs 0.2418, +0.0075; pooled +0.0214), but the frozen criterion required at least +0.01 in EACH half-fold, and half2 fell short. On the 84 decisive eligible roots the improvement was larger (+0.0426: 0.0880 vs 0.1306). Label stability passed (decisive Spearman 0.814), model quantile calibration passed (0.861), the gate is deterministic (byte-identical repeated reports), and the corpus is successor-closed. Interpretation: the conservative-override MECHANISM works as designed (fires often, calibrated, positive in both halves) and this is the first preregistered held-out test in this repository where a learned model's intervention improved on fair D4 at all; the CHECKPOINT's ranking quality is the bottleneck, consistent with the model being undertrained (11 of 20 epochs) and trained on a weak D1-continuation teacher. Per the frozen failure action, no further override variants of this same checkpoint are opened; a retry requires new evidence such as a fully trained or stronger-teacher model under the same frozen rule.

Technical recordLimitations recorded with the resultRS-20260820T184500Z-63c0a8e2
  • The evaluation target is the H40 phase-greedy-D1 continuation outcome - the same label family the model was trained to predict; D4 is compared against the same target, but the offline gate cannot measure real gameplay interaction, which only a SCREEN tier can.
  • The model was undertrained (11 of 20 epochs) and used a weak D1-continuation teacher; both are documented as the likely bottleneck and motivate any retry.
  • The near-tie threshold (500) and regret margin (0.01) were frozen choices; the half2 miss (0.0075) is close to the margin and the result should be read as a narrow failure, not as evidence of no effect.
  • Single machine profile; FP32 on the shared-memory iGPU.

Full record →

resultvalid runoutcome: failtier: pilotRS-20260821T094500Z-1a7e3c55

The run was valid; the outcome was fail, at the pilot (a small run to find bugs and project cost, not a strength claim) level. Of 6 preregistered checks, 5 passed and 1 failed.

Full training does not rescue the afterstate model; it overfits. The model was trained to 22 epochs on the 2M-row K=256 subsample (44M row-updates, 2x iteration 3, cosine schedule completed, ranking loss 0.584 vs iteration 3's 0.630). On the SAME held-out roots as iteration 3 (corpus-C, a labeled diagnostic reuse), the fully-trained model ranks WORSE than iteration 3's 11-epoch checkpoint (top-1 0.361 vs 0.424, pairwise 0.658 vs 0.685, regret 0.281 vs 0.241) - training loss improved while held-out ranking degraded, a textbook overfitting signature against the D1-continuation H40 labels. The frozen override gate on fresh corpus-E (2,867 roots, 1,106 near-tie eligible, 41% override rate) then FAILED: eligible-root regret half1 0.2289 vs D4 0.2517 (+0.0228) but half2 0.2778 vs 0.2481 (-0.0297, the override is actively harmful there), pooled +0.0018. Stability (0.824), calibration (0.800), determinism (byte-identical) all passed. Conclusion: the model's limitation is not training completeness but generalization to held-out roots under a weak D1 teacher; the direct-override use of this model family is closed per the frozen failure action.

Technical recordLimitations recorded with the resultRS-20260821T094500Z-1a7e3c55
  • The diagnostic comparison to iteration 3 reuses corpus-C (iteration 3's held-out), a labeled diagnostic; the frozen override gate used fresh corpus-E.
  • The model family evaluated is the compact 3.4M-param ResNet over D1-continuation H40 labels; the result does not bound a stronger-teacher or different-architecture variant.
  • The iGPU is compute-bound for this model (~2-3k rows/s FP32); larger-scale training was not attempted within the overnight budget.
  • Two killed training attempts (tooling: memory blowup, output buffering) preceded the recorded run; they produced no artifacts and are disclosed in the run record.

Full record →

resultvalid runoutcome: failtier: pilotRS-20260821T104500Z-77d21e90

The run was valid; the outcome was fail, at the pilot (a small run to find bugs and project cost, not a strength claim) level. Of 5 preregistered checks, 2 passed and 3 failed.

Scale-out stage 1 fails its prerequisite: a compact action-free afterstate model cannot learn fair D4's within-root ordering even from successor-closed, exactly-labeled search values. Training labels were the pinned reference's own depth-3 values of every legal sibling's resolved afterstate under its own five-stratum quadrature (291,890 labeled afterstates over 8,639 training roots, completeness 1.0). On 3,030 fresh held-out roots the model's one-ply chance-averaged ordering agreed with exact fair D4 at top-1 0.375 (frozen threshold >= 0.60), pairwise 0.643 (>= 0.78), normalized regret 0.291 (<= 0.13), failing every criterion in both origin-hash half-folds. For scale, exact fair D1 agrees with D4 at 0.486 top-1 on the historical panel - the learned student is WORSE than the cheapest exact search. Combined with the repository's prior played-action distillation failures, this strengthens the conclusion to: the obstacle to learning D4's ranking is not sibling coverage but the representational capacity of a compact board evaluator for the 4-ply search-value function. The registered self-play loop's stage-1 prerequisite is not met at this model scale.

Technical recordLimitations recorded with the resultRS-20260821T104500Z-77d21e90
  • The student is the compact 3.4M-param ResNet; a materially larger model was not tested (the iGPU's FP32 throughput bounds what is trainable overnight).
  • Labels are the depth-3 value of afterstates (the value one ply below the D4 root), so the student approximates D4's search through its own horizon, not an oracle's.
  • The gate measures agreement with D4's ordering, which is itself a strong-but-not-optimal reference; a student below D4's agreement could in principle still add value inside a different search, which this experiment does not test.
  • Single machine profile; FP32 on the shared-memory iGPU.

Full record →

resultvalid runoutcome: failtier: pilotRS-20260821T134500Z-4b9d2f68

The run was valid; the outcome was fail, at the pilot (a small run to find bugs and project cost, not a strength claim) level. Of 5 preregistered checks, 3 passed and 2 failed.

The stronger-teacher hypothesis fails as tested. A successor-closed corpus relabeled with a fair-D2 (five-sample) continuation teacher at K=64 (2.88M rows over 6,535 roots; partial at the generator's 4h default wall stop) trained a model that, on the fresh 0x5da70500 ranking gate against the fixed D1-continuation H40 target, reached top-1 0.3365 - far below fair D4's 0.5020, below the D1-teacher model's 0.4245 from iteration 3, and only at exact-D1's own 0.3339. The frozen criterion (top-1 >= 0.4616 on each half, i.e. closing half the iteration-3 gap to D4) failed by a wide margin in both halves (0.342, 0.331). The frozen override gate on fresh 0x5da70600 roots also failed (eligible-root regret: half1 -0.0089, half2 +0.0110, pooled +0.0012). IMPORTANT CONFOUND, disclosed: the D2-teacher model was evaluated against D1-continuation outcomes (frozen for comparability with iteration 3), so part of its regression may reflect the teacher/target mismatch rather than teacher quality alone. Read narrowly, the result says a stronger-teacher corpus did not produce a better ranker of the fixed public-continuation outcome, and the afterstate line's ranking deficit is robust to the teacher choice within the tested configurations.

Technical recordLimitations recorded with the resultRS-20260821T134500Z-4b9d2f68
  • Teacher/target mismatch confound: the model was trained on D2-continuation outcomes but evaluated against D1-continuation outcomes (frozen for comparability with iteration 3). A matched D2-continuation target was not generated (cost); the regression may partly reflect the mismatch.
  • The D2 corpus is partial (6,535 of 8,192 roots) at the generator's 4h default wall stop.
  • The compact 3.4M-param architecture and the D1-harvested root distribution are unchanged from iteration 3.
  • Single machine profile; FP32 on the shared-memory iGPU.

Full record →

resultvalid runoutcome: passtier: mechanics-onlyRS-20260822T024228Z-94090db1

The run was valid; the outcome was pass, at the mechanics-only (checks only, no games played) level. Of 3 preregistered checks, 3 passed and 0 failed.

Offline capacity/training sweep of the NNUE-shaped survival leaf on runs/RUN-A51D-corpus/all.states (13 runs, same whole-origin test split, 486,819 held-out examples). Baseline h64/m32/e10/lr3e-3 held-out lifetime Pearson 0.8546 (finding-08 recorded 0.8564 on an earlier torch build); seed-to-seed spread 0.0023 over three seeds. Best configuration h64-m64-e10-lr3e3-s0 at 0.8568, delta +0.0022 <= max(0.005, 2 x spread): gate verdict supported-as-tested. Width hurts: Pearson by width (params, Pearson, final train loss) h32-m32-e10-lr3e3-s0 (286,447 params: 0.855, loss 0.5238); h64-m32-e10-lr3e3-s0 (572,367 params: 0.8546, loss 0.511); h128-m32-e10-lr3e3-s0 (1,144,207 params: 0.8543, loss 0.5006); h256-m32-e10-lr3e3-s0 (2,287,887 params: 0.8515, loss 0.4857); h256-m64-e20-lr3e3-s0 (2,296,591 params: 0.8446, loss 0.4596); h512-m64-e20-lr3e3-s0 (4,592,143 params: 0.8378, loss 0.4197). Training loss falls monotonically with width while held-out accuracy falls, i.e. larger students overfit this corpus; 20 epochs change nothing at h64 and hurt at h128/h256; lr 1e-3 and mid 16/64 are within spread. The accuracy of this feature space on this corpus is saturated near 0.855-0.857; it is not limited by hidden width, middle width, epochs or learning rate.

Technical recordLimitations recorded with the resultRS-20260822T024228Z-94090db1
  • Offline diagnostic on teacher labels from already-played games; says nothing about playing strength (finding-08: a 0.008 Pearson gap did not separate two models in play).
  • Single corpus (5.26M records, whole-origin split); a corpus several times larger could move the saturation point and is the natural follow-up, since the wider models overfit rather than underfit.
  • Per-board inference cost was not measured; irrelevant to the verdict because no wider model won.
  • GPU ran concurrently with a 30-thread CPU evolution; wall times are not timing-grade; metrics are unaffected.
  • The baseline reproduction differs from finding-08's 0.8564 by 0.0018 on a newer torch build; within the measured seed spread.

Full record →

resultvalid runoutcome: failtier: mechanics-onlyRS-20260822T051732Z-ceb257d7

The run was valid; the outcome was fail, at the mechanics-only (checks only, no games played) level. Of 4 preregistered checks, 3 passed and 1 failed.

Corpus analysis of entombed numbered discs (value n with column height > n and horizontal run > n) over 4,863,627 non-explored positions. Prevalence: an entombed disc of value >= 3 is on the board in 19.1% of depth-4 behaviour states overall, rising from 7.6% more than 40 moves before death to 69.8% within 5 moves of it. At death: 579 of 768 complete depth-4 games (75.4%) end with one on the board (criterion 1 holds). Lead time from first persistent appearance to death: median 11 moves, quartiles 5.5-15, 57% at least 10 moves, 8% at least 20 (criterion 2 holds, narrowly). Incremental signal: held-out R^2 for log1p(moves to death) is 0.6952 with the 18 frozen leaf features + occupancy + rise clock and 0.6955 with the entombed features added (+0.0003); the held-out partial correlation of the entombed count is -0.023 (threshold -0.05). Criterion 3 fails. Occupancy-matched, an entombed >= 3 disc shortens mean remaining life by about two moves (e.g. 35.0 vs 37.4 at 24-27 occupied cells; 24.6 vs 26.3 at 28-31). Reading: the disc is a reliable marker of the policy's last two rises, but the leaf's value-blind height and cover terms already carry almost all of its lifetime information; as a static foresight term it is not what the search is missing. Gate: FAIL (not-supported-as-tested).

Technical recordLimitations recorded with the resultRS-20260822T051732Z-ceb257d7
  • Offline, teacher-labelled diagnostic on already-played behaviour games; says nothing about whether avoiding the entombing move would have extended life (a counterfactual replay is the natural follow-up).
  • Linear incremental test: a nonlinear interaction with height could still carry signal a linear leaf cannot use; the NNUE leaf sees cell/pair features and could learn it.
  • The structural definition ignores release readiness (whether a neighbouring clear could free the disc); dead_low_numbers discounts by readiness and this feature does not.
  • Depth-4 behaviour games are 768 of the corpus's 86,784 games; depth-3 (4,096 games) agrees on every quantity.
  • The corpus seeds are training-role data; the numbers are development diagnostics and not strength evidence.

Full record →

resultvalid runoutcome: passtier: mechanics-onlyRS-20260822T074305Z-bd1697c8

The run was valid; the outcome was pass, at the mechanics-only (checks only, no games played) level. Of 4 preregistered checks, 4 passed and 0 failed.

One-entry leaf memo (fast-engine-memo/MemoSearch) on real probe seeds: leaf bits 0/4,260 (d4s5) and 0/2,500 (d4s7) mismatches in the search's feeding order; parity with FastSearch 0 action/work/node/cache-hit/completed-depth mismatches over 160 (d4s5, 117,732,775 leaf calls) and 50 (d4s7, 119,607,901 leaf calls) moves; determinism 0 mismatches at 1 vs 4 threads; memo hit rate 61.74% (d4s5) and 68.47% (d4s7); interleaved timing plain/memo 1.581x (d4s5, 12 real roots x 3 reps) and 1.634x (d4s7, 6 roots x 2 reps) under load ~31, indicative. Engineering result: semantics-preserving; no strength claim.

Technical recordLimitations recorded with the resultRS-20260822T074305Z-bd1697c8
  • Timing ratios were measured on a host at load ~31 and are indicative; an idle-host, three-repeat measurement is owed before any throughput claim.
  • Probe cohorts are small (210 parity moves); the bit-identity argument is structural and the gates are confirmation, not the proof.
  • Not adopted by any cohort runner yet.

Full record →

resultvalid runoutcome: failtier: public-developmentRS-20260822T120736Z-662b39ca

The run was valid; the outcome was fail, at the public-development (a cohort for deciding what to try next, not confirmation) level. Of 6 preregistered checks, 4 passed and 2 failed.

Held-out SCREEN of the CMA-ES leaf (distribution mean after 40 generations, stop=max-generations) against the frozen fair leaf, depth 4 five strata, 64 paired never-read games 0xa52b0000+: mean 289720 vs 320020, paired delta -30300 (bootstrap 95% LB -70928, t LB -71500, paired sd 197434, floor 40597), W-T-L 28-0-36, halves -53933/-6667, Q25 delta +8592. Gate: FAIL. Secondary seven-stratum transfer on the same seeds (diagnostic only): delta -47119 (LB -117910). Training-block population-mean-minus-control exceeded +20,000 in at least one of the last 10 generations.

Technical recordLimitations recorded with the resultRS-20260822T120736Z-662b39ca
  • Single 64-game development-tier screen on one machine; no replication yet (192 seeds of the held-out lease remain reserved for one).
  • Evolution and screen ran while a GPU training sweep shared the machine; wall times are not timing-grade, decisions are deterministic and unaffected.
  • The seven-stratum arm replays already-read held-out seeds and is diagnostic only.
  • The population-mean trajectory on training blocks carries the perturbation penalty of sampling at sigma and does not measure the candidate's own fitness.
  • Scripted-round (leaderboard) play of any vector is a demonstration and is not part of this result.

Full record →

resultvalid runoutcome: inconclusivetier: public-developmentRS-20260822T233343Z-12becce9

The run was valid; the outcome was inconclusive, at the public-development (a cohort for deciding what to try next, not confirmation) level. Of 5 preregistered checks, 2 passed and 3 failed.

Held-out SCREEN of the survival-instinct root filter, depth 4 five strata, 128 paired never-read games 0xa52c0000+. STRICT (refuse a landing that is vertically dead AND entombed by its row): mean 346838 vs unchanged 348808, paired delta -1970 (bootstrap 95% bounds -27738 to +22313, paired sd 171933, floor 24999), W-T-L 41-26-61, moves 100.95 vs 101.32; the filter refused a column at 811 of 12922 decisions and overrode the unchanged search's column at 254 (1.97%), just under the preregistered 2% coverage bar, so the primary gate is recorded as INCONCLUSIVE by its own rule: the strict rule neither helps nor hurts measurably and rarely applies. LITERAL (the owner's wording, refuse every vertically dead landing that does not clear on arrival; secondary arm): mean 251744, paired delta -97064 (LB -136887, UB -59500), W-T-L 43-0-85, moves 75.67 vs 101.32, overrides 1243 of 9686 (12.8%): a clear, valid negative — forbidding vertically dead landings outright costs about a quarter of the game's length. Both arms: 0 incomplete and 0 illegal decisions.

Technical recordLimitations recorded with the resultRS-20260822T233343Z-12becce9
  • Single 128-game development-tier screen; the strict arm's effect, if any, is below the 25,000-point floor of this cohort.
  • The strict coverage of 1.97% is within rounding of the 2% bar; the inconclusive label follows the preregistered rule literally rather than the spirit, and the deltas are reported in full.
  • The screen ran after the evolution's own screen on the same otherwise idle machine; decisions are deterministic, wall times are not timing-grade.
  • The literal arm's negative rejects the rule as a hard root constraint at depth 4; a soft penalty the search can weigh is a different candidate.

Full record →

resultvalid runoutcome: failtier: mechanics-onlyRS-20260823T110000Z-baecb816

The run was valid; the outcome was fail, at the mechanics-only (checks only, no games played) level. Of 6 preregistered checks, 3 passed and 2 failed.

Seed-free corpus gate for the reveal-construction leaf terms, read once on the depth-4 non-explored subset of runs/RUN-A51D-corpus/all.states (62,831 rows, 768 games, whole-origin split, base held-out R^2 0.6483): the gating term aligned_double_hit FAILS the preregistered four-part gate. Held-out partial correlation with log1p remaining lifetime beyond the 18 leaf features, occupancy and rise clock is -0.0443 (threshold >= +0.05) and incremental R^2 +0.00047 (>= 0.005); prevalence 19.75% and the uncollected-setup rate 60.47% (56.51% excluding ambiguous-empty outcomes; 6,969 setups) pass. chain_to_crack_cracked (partial r -0.0325, R^2 +0.00026, prevalence 28.92%) and chain_to_crack_solid (partial r -0.0385, prevalence 1.77%, uncollected 62.85%) also fail; entombed_high on depth 4 alone reads partial r -0.0595, incremental R^2 +0.00125. Per the protocol the 256-game screen was NOT run and no leased seed was read. All CHECK gates passed at the final term source (0 bit, parity, mirror, determinism, metadata mismatches at d4s5 and d4s7; runs/RUN-20260823T091530Z-cbe65468/gates.log). The value-criterion part of the gate rejects these terms as lifetime predictors; the action-level statistic says the depth-4 (s5, epsilon 0.03) behaviour policy leaves 60% of live same-wave double-hit setups uncollected within two moves.

Technical recordLimitations recorded with the resultRS-20260823T110000Z-baecb816
  • Mechanics-only tier: no gameplay was run; this rejects the terms as held-out predictors of remaining lifetime beyond the frozen leaf on depth-4 corpus positions, not as action-changing leaf terms in play.
  • The corpus behaviour policy is the reference depth-4 search at FIVE strata with epsilon 0.03 exploration, not the seven-stratum memo configuration the screen would have run; the uncollected-setup rate is therefore inflated by epsilon moves and by s5's coarser chance model (Kimi K3 review, written before the result was read: runs/RUN-20260823T091530Z-cbe65468/kimi-k3-prereg-review.md section 3).
  • The same review argued, blind to the result, that a partial-correlation kill criterion is a value criterion and can reject a term whose purpose is to re-rank sibling actions at the horizon boundary; the preregistered gate is nonetheless applied as written. Any successor that drops the value criterion must disclose that this gate was read first.
  • The uncollected-setup rate counts a reveal of a different gray as not collecting this setup; a high rate can mean the search had better lines.
  • The formal freeze command ran after the corpus gate was read; the thresholds were fixed by file content 9.5 minutes before the read (experiment amendment).
  • The implementer's support-disjoint rule R2 (skip adjacent-side pairs whose completion paths share a cell) excludes configurations where one dropped disc completes both runs in the same wave; the term as frozen is narrower than the design's prose.

Full record →

resultvalid runoutcome: failtier: public-developmentRS-20260823T131226Z-16564ed9

The run was valid; the outcome was fail, at the public-development (a cohort for deciding what to try next, not confirmation) level. Of 6 preregistered checks, 2 passed and 4 failed.

Paired 256-game SCREEN on fresh seeds 0xa52d0200-0xa52d02ff, fair D4 at seven strata with the memo engine. The preregistered primary arm A300 (aligned_double_hit +300) and the bundle arm B changed the unchanged search's column in 0.69% and 0.70% of decisions at the 32-game rarity check, below the 1% rule, and were stopped as no-measurements (partials: A300 -4,298 on 39 games, B +18,213 on 36 games, both far inside their floors). The dose arm A900 (aligned_double_hit +900), read as primary per the gate text, completed 256 games: mean 389,749 vs 386,545, paired delta +3,204 points (one-sided 95% bootstrap lower bound -26,860; Student-t -27,863; detection floor 30,957; paired sd 301,098), moves 112.55 vs 111.59 (+0.97), W-T-L 99-53-104, Q25 +18,534 (non-regression met), halves +48,762 and -42,354 (opposite signs: fail), coverage 598/28,814 = 2.08% (measured, not rarity). Predeclared mechanism directions were absent: cover reveals per move 1.1520 vs 1.1536, numbered clears per move 2.0541 vs 2.0551, occupancy 23.32 vs 23.22. Gate: FAIL. The term re-ranks about one decision in fifty at +900 and those re-rankings add no reveal flow; the score delta is a non-measurement for effects under about 31,000 points, but the flat flow statistics, whose paired noise is far smaller, reject the mechanism itself. The frozen arm is also the largest fresh-seed fair-D4 seven-stratum cohort on record: 386,545 points, 111.59 moves, 2.0551 clears and 1.1536 reveals per move over 256 never-read games, consistent with the 64-game 398,498 reference.

Technical recordLimitations recorded with the resultRS-20260823T131226Z-16564ed9
  • A score null inside a 30,957-point floor is a non-measurement for effects below that size; the rejection rests on the flat flow statistics and the opposite-sign halves, not on the score delta.
  • The preregistered primary dose (+300) could not be measured: it changed under 1% of decisions and was stopped by the rarity rule; the +900 dose was read as primary under the gate's own clause and is therefore a pass-or-fail at a dose chosen after a rarity null.
  • The runner has no per-arm stop; the operator killed the four-arm run after the 32-game check and relaunched frozen + A900 on the same seeds (deterministic; the frozen arm reproduces stage-1 games exactly). Stage-1 partials are retained under stopped-at-32/.
  • The corpus value gate for this term failed before this screen (RS-20260823T110000Z-baecb816) and was disclosed in the protocol; this result is the in-play test that the blind review asked for.
  • Single cohort, public-development tier; not independently replicated.
  • The frozen-arm fresh baseline is a by-product and has not been registered as a benchmark manifest.

Full record →

resultvalid runoutcome: passtier: public-developmentRS-20260823T194200Z-42b113db

The run was valid; the outcome was pass, at the public-development (a cohort for deciding what to try next, not confirmation) level. Of 2 preregistered checks, 2 passed and 0 failed.

C0 reanalysis (K2 program section 8 row 0): the paired per-game bound behind the +79,115 head start is now printed, and it clears zero. On the 64 shared seeds 0xa51d1000-0xa51d103f, depth 3 with seven disc strata and six reveal samples (fair leaf, finding-16) scores 376,442 against fair depth 4 at five strata's 297,327 (finding-05): paired +79,115, one-sided 95% percentile bootstrap lower bound +29,033 (upper +129,722; 20,000 resamples, seed 0xb0071eaf), Student-t lower bound +27,548, W-T-L 35-0-29, halves +88,138 / +70,092, Q25 +34,872 (227,224 vs 192,352), median 322,859 vs 260,415, median paired delta +32,926, moves +22.30 (LB +8.67), paired sd 247,113, detection floor 50,813, at 3.27x the logical work per move (4,244,020 vs 1,296,034). Both gate bounds are positive, so the experiment passes and the theory is supported-as-tested at public-development tier. READ THE CAVEATS: the means and their difference were published before this gate was written, so this is a bound attached to a known sign on already-read development data, not a discovery; it is not promotable above this tier on this cohort. The delta is heavy-tailed: the five largest paired gains (seeds 0xa51d1012 +747,416, 0xa51d1020 +684,129, 0xa51d1008 +643,799, 0xa51d1001 +643,344, 0xa51d1033 +558,163) carry 64.7% of the summed delta, the sixteen largest carry 134% (the remaining 48 games net negative), and the worst loss is -332,950 (0xa51d103c); the minimum leave-one-out mean is still +68,507, so no single game is load-bearing, but against a detection floor of 50,813 the mean sits 1.56 floors above zero and the bootstrap lower bound only 0.57 floors above it. The flow statistics move with the score: numbered clears per move 2.0447 vs 1.9489, cover reveals per move 1.1423 vs 1.0697 (paired clears +53.9 per game, LB +21.1; reveals +31.8, LB +12.6), mean occupancy 23.49 vs 24.29. SECONDARY, not gated: against fair depth 4 at seven strata (398,498) the same arm is -22,056 with bounds (-92,005, +45,490), t lower bound -92,330, W-T-L 30-0-34, halves -27,121 / -16,991, Q25 +14,360, moves -5.20, at 0.86x the work; this reproduces finding-16's -22,056 point estimate exactly and its bootstrap lower bound to within 2,138 (finding-16 printed -89,867 from its own resampler; this run's pinned seed gives -92,005), and remains a wash. So the head start the K2 fallback route (c) stands on is real against D4 s5 but the same arm does not separate from D4 s7, which is the stronger comparator and the one the program's end state must beat on the strength-cost frontier.

Technical recordLimitations recorded with the resultRS-20260823T194200Z-42b113db
  • Bound computation on already-read development data whose means and sign were published (finding-16, finding-05) before the gate was written; diagnostic, not promotable above public-development on this cohort. A fresh-development replication under a new protocol is required before the +79k is used as anything but a planning prior.
  • The two arms were played in different runs (RUN-20260821T035407Z-00483c6c for D3 N7M6; the finding-05 fresh-s5 arm) by different binaries (factored-chance-fair-search vs parameterized-fair-search); the seed lists, move cap, terminal utility and scoring are identical but the pairing is across builds, not within one runner invocation. Engine parity between these families was established separately (finding-09/16 checks; finding-15 engine control), not re-run here.
  • Heavy tail: five games carry 64.7% of the summed delta; the bootstrap lower bound sits 0.57 detection floors above zero. 64 games cannot resolve anything below about 50,800.
  • The arm does not separate from D4 s7 (-22,056, bounds -92,005 to +45,490), so 'beats D4 s5' does not transfer to 'beats the current best fair comparator'.
  • The wrapper pinned at freeze failed to import (module-name collision) and was amended before any output existed; the amendment changed no statistic. The first pinned wrapper hash is retained in expectedArtifacts and the amended hash in amendments.

Full record →

resultvalid runoutcome: failtier: pilotRS-20260823T205143Z-ead14c9d

The run was valid; the outcome was fail, at the pilot (a small run to find bugs and project cost, not a strength claim) level. Of 4 preregistered checks, 2 passed and 2 failed.

Stage D0 refuses the H-pool theory on two of its three preregistered criteria. Pool O was 1,984 public states sampled from 64 oracle games (depth 4, beam 128; 63 of 64 games reached the 500-move cap); 1,271 were matched 1:1 to fair-D4 states on exact (rise phase, occupancy/4, max-height/2) buckets over all 256 comparator seeds (match rate 0.641; 713 O states dropped and counted). Under 32 common public futures with fair D1 continuation at horizon 25, oracle-visited boards are only marginally better than matched fair boards: R_fair(O) = 24.783 vs R_fair(F) = 24.520 (difference +0.263 moves, cluster bootstrap 95% [+0.156, +0.367], same positive sign in both origin-game halves). The preregistered transferable fraction is negative, tau = -0.959 (95% cluster interval [-3.069, -0.390]), because its denominator degenerates at this horizon: R_tape(O) = 24.338 vs R_real(F) = 24.611 (94-95% of both realised remainders were capped at 25), so the realised-lifetime gap the fraction was defined against is -0.274 moves rather than positive. Independently of that degeneracy, the action-quality criterion fails outright: the oracle's own column is fair-top-1 at its own roots less often than fair D4's column at the same roots (0.766 vs 0.814 over 1,271 roots, difference -0.049, 95% [-0.069, -0.029]; on the 194 unique-maximum roots 0.268 vs 0.387). Blocked-flow-band fraction over matched O states is 0.0047 (F: 0.026). Per the preregistration the theory is assessed not-supported-as-tested, the pool-comparison follow-on is not registered, and audit-05's H-pool program closes.

Technical recordLimitations recorded with the resultRS-20260823T205143Z-ead14c9d
  • The preregistered tau is ill-conditioned as measured: with 63 of 64 oracle games censored at the 500-move cap and comparator states drawn from the same shape buckets, both realised remainders sit at the 25-move horizon cap (R_tape(O) 24.34, R_real(F) 24.61, 94-95% capped), so the denominator is -0.274 moves instead of the large positive gap the definition assumed. The tau < 0.25 refusal is therefore driven by a degenerate denominator, not by a negative numerator; the numerator (the fair-value advantage of oracle boards) is positive but small, +0.263 moves on a 25-move horizon.
  • The fair-top-1 criterion is unaffected by that degeneracy and fails on its own: the oracle's action is fair-best at its own roots significantly less often than fair D4's action at the same roots.
  • Match rate 0.641: the 713 dropped O states skew toward buckets fair D4 rarely visits (matched O states are shape-matched by construction), so the numerator is a lower bound on the raw O-vs-F fair-value difference over all oracle states, and the comparison is conditional on shape overlap as preregistered.
  • R_fair uses a fixed public D1 continuation and horizon 25 with 32 futures; 92-96% of futures survive the horizon, so both pools are near the measurement ceiling and the +0.263 difference is compressed by censoring at both ends.
  • F origin games contribute clustered states (mean 12.6 matched states over 101 of 256 games); uncertainty uses cluster bootstrap over O origin games carrying matched partners, with the independent-clusters sensitivity interval also recorded (it is much wider: [-9.35, +5.12]).
  • Diagnostic tier (CHECK): no gameplay evidence and no policy claim; training-role seeds only, opened once.

Full record →

Agent contextSource files, operational notes and how to reproduce

Directory: approaches/fair-expectimax/reference