← ResearchExperiments
Preregistered experiment protocols from research/experiments/ and their recorded results. For the full historical inventory of every approach — including the ledger-recorded runs that predate the registry — see the approach pages and the experiment index.
completedtier PILOTalgorithmicpublic-developmentEX-20260820-afterstate-pilot-h40-29b8588a
On roots harvested from fair-D1 development games, a compact residual-CNN afterstate evaluator trained on successor-closed H40 scenario labels (every legal sibling, 8 aligned chance scenarios, phase-greedy D1 continuation) ranks held-out whole-origin siblings non-inferiorly to exact fair D4 on top-1 accuracy, pairwise accuracy, and normalized regret against the scenario-mean H40 outcome ranking.
Candidatedistributional-afterstate-ranker
approaches/afterstate-learning/distributional-afterstate/common.hpp Comparatorfair-d4
approaches/fair-expectimax/reference/fair-only-depth4.cpp outcome: inconclusiverun: validpilotRS-20260820T094500Z-5c1e9a04
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.
| Gate criterion | Verdict | Observed |
|---|
| Successor-closed corpus: every non-trivial root labeled for every legal sibling under all 8 scenarios | pass | 616,048 rows over 11,379 roots; completeness 1.0 by construction and verified by self-test legality checks |
| Label stability floor: mean scenario-half Spearman >= 0.5 on held-out roots | fail | 0.2457 mean, 0.286 median over 2,470 held-out roots; per the frozen rule this makes the outcome inconclusive, not a pass and not a theory rejection |
| Model top-1 >= fair D4 top-1 - 0.02 on each held-out half-fold | fail | half1 model 0.2478 vs D4 0.3296; half2 model 0.2462 vs D4 0.3239 (moot given the stability failure) |
| Model pairwise accuracy >= fair D4 pairwise - 0.02 on each half-fold | fail | half1 model 0.5678 vs D4 0.6413; half2 model 0.5745 vs D4 0.6322 (moot given the stability failure) |
| Model normalized regret <= fair D4 regret + 0.02 on each half-fold | fail | half1 model 0.4193 vs D4 0.3318; half2 model 0.4076 vs D4 0.3418 (moot given the stability failure) |
| 80% quantile interval coverage within [0.70, 0.90] | fail | 0.631 coverage of the nominal 76.5% outer-quantile interval on held-out afterstates |
| All CHECK-tier mechanics, legality, determinism, reflection, information-boundary, and resource-bound tests pass before any label is inspected | pass | build/afterstate/self-test prints SELFTEST OK (9 checks); make test (TypeScript, native, parity) also passes |
Raw metrics (15)
labelStabilityMeanSpearman
0.2457
quantileIntervalCoverage
0.6310
modelPairwisePooled
0.5710
withinActionScenarioStdMedian
20,922
betweenActionMedianGap
7,096
completedtier PILOTalgorithmicpublic-developmentEX-20260820-afterstate-pilot-h40-k256-65a05477
With K=256 aligned scenarios (per-action standard error ~1.3k points against a ~7k median sibling gap), the scenario-half label stability on decisive roots passes the 0.5 floor, and a fully trained distributional afterstate ranker ranks fresh held-out whole-origin siblings non-inferiorly to exact fair D4. Iterations 1-2 showed K=8/K=64 stability of 0.246/0.446 and an undertrained model; this iteration changes scenario count and training completeness, and refines only the stability diagnostic to condition on decisive roots.
Candidatedistributional-afterstate-ranker
approaches/afterstate-learning/distributional-afterstate/common.hpp Comparatorfair-d4
approaches/fair-expectimax/reference/fair-only-depth4.cpp outcome: failrun: validpilotRS-20260820T142500Z-8f4a2d17
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.
| Gate criterion | Verdict | Observed |
|---|
| Successor-closed corpus (all legal siblings x 256 scenarios) | pass | 24,270,592 rows over 14,009 roots across both corpora; completeness 1.0 |
| Label stability floor: decisive-root scenario-half (128 vs 128) Spearman >= 0.5 | pass | 0.8181 on 411 decisive roots; unconditioned 0.6379 on 2,523 roots |
| Model top-1 >= D4 top-1 - 0.02 on each half-fold | fail | half1 0.3981 vs 0.4776; half2 0.4439 vs 0.5141 |
| Model pairwise >= D4 pairwise - 0.02 on each half-fold | fail | half1 0.6828 vs 0.7280; half2 0.6868 vs 0.7429 |
| Model regret <= D4 regret + 0.02 on each half-fold | fail | half1 0.2496 vs 0.1870; half2 0.2344 vs 0.1720 |
| Nominal 76.5% quantile interval coverage within [0.66, 0.87] | pass | 0.8635 |
| All CHECK-tier tests pass before any label is inspected | pass | SELFTEST OK (9 checks) |
Raw metrics (19)
labelStabilityMeanSpearman
0.6379
labelStabilityDecisiveSpearman
0.8181
quantileIntervalCoverage
0.8635
modelPairwisePooled
0.6851
modelRegretDecisive
0.0820
completedtier PILOTalgorithmicpublic-developmentEX-20260820-afterstate-pilot-h40-k64-d7a9faf5
Raising aligned chance scenarios from K=8 to K=64 (the only change from EX-20260820-afterstate-pilot-h40-29b8588a) lifts scenario-half label stability above the frozen 0.5 Spearman floor, and the unchanged distributional afterstate ranker then ranks fresh held-out whole-origin siblings non-inferiorly to exact fair D4 on top-1 accuracy, pairwise accuracy, and normalized regret against the scenario-mean H40 outcome ranking.
Candidatedistributional-afterstate-ranker
approaches/afterstate-learning/distributional-afterstate/common.hpp Comparatorfair-d4
approaches/fair-expectimax/reference/fair-only-depth4.cpp outcome: inconclusiverun: validpilotRS-20260820T114500Z-2b7c9e31
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.
| Gate criterion | Verdict | Observed |
|---|
| Successor-closed corpus (all legal siblings x 64 scenarios) | pass | 6,167,936 rows over 14,228 roots across both corpora; completeness 1.0 |
| Label stability floor: mean scenario-half (32 vs 32) Spearman >= 0.5 | fail | 0.4462 on 2,750 fresh held-out roots; inconclusive per the frozen rule |
| Model top-1 >= D4 top-1 - 0.02 on each half-fold | fail | half1 0.3401 vs 0.4365; half2 0.3442 vs 0.4299 (moot given the stability failure) |
| Model pairwise >= D4 pairwise - 0.02 on each half-fold | fail | half1 0.6341 vs 0.6970; half2 0.6391 vs 0.6974 (moot) |
| Model regret <= D4 regret + 0.02 on each half-fold | fail | half1 0.3031 vs 0.2388; half2 0.3028 vs 0.2247 (moot) |
| Nominal 76.5% quantile interval coverage within [0.66, 0.87] | pass | 0.8069 |
| All CHECK-tier tests pass before any label is inspected | pass | SELFTEST OK (9 checks) after the K-parameterization change |
Raw metrics (13)
labelStabilityMeanSpearman
0.4462
quantileIntervalCoverage
0.8069
modelPairwisePooled
0.6367
completedtier PILOTalgorithmicpublic-developmentEX-20260820-d4-toptwo-override-gate-0bdb39a1
At roots where fair D4's top two actions are near-tied (Q gap <= 500 points, the bottom ~37% of the top-two gap distribution measured on already-read development labels), the frozen iteration-3 distributional afterstate model can identify the better action more reliably than D4's own ordering, because near-ties are where D4's 4-ply estimates are most noise-sensitive while the model's calibrated H40 outcome distributions carry independent long-horizon information. The override policy (D4, plus swapping to the second action only when the model's paired 256-scenario advantage has a positive 95% bootstrap lower bound) will show lower mean normalized regret than unchanged D4 on eligible fresh held-out roots.
Candidated4-toptwo-override
approaches/afterstate-learning/distributional-afterstate/override-gate.py Comparatorfair-d4
approaches/fair-expectimax/reference/fair-only-depth4.cpp outcome: failrun: validpilotRS-20260820T184500Z-63c0a8e2
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.
| Gate criterion | Verdict | Observed |
|---|
| Successor-closed corpus (all legal siblings x 256 scenarios) | pass | 4,858,880 rows over 2,793 roots; completeness 1.0 |
| Label stability floor: decisive-root scenario-half Spearman >= 0.5 | pass | 0.8144 |
| Eligible-root override regret <= D4 regret - 0.01 in EACH half-fold | fail | half1 +0.0351 (passes); half2 +0.0075 (below the frozen 0.01 margin); pooled +0.0214 |
| Override rate >= 5% of eligible roots | pass | 37.0% |
| Quantile interval coverage within [0.66, 0.87] | pass | 0.8606 |
| Gate script deterministic (byte-identical repeated reports) | pass | two runs byte-identical after moving wall time out of the report |
| All existing CHECK-tier self-tests pass before any label is inspected | pass | SELFTEST OK (9 checks) |
Raw metrics (13)
overrideRateEligible
0.3699
d4RegretEligiblePooled
0.2629
overrideRegretEligiblePooled
0.2414
overrideRegretWholeSet
0.1850
labelStabilityDecisiveSpearman
0.8144
quantileIntervalCoverage
0.8606
completedtier CHECKalgorithmicpublic-developmentEX-20260821-afterstate-d2-teacher-58772f17
The iteration-3 valid negative used a weak phase-greedy D1 continuation for its H40 labels. Regenerating the successor-closed corpus with a stronger public teacher (fair D2, five chance samples) at K=64 over the same training roots produces labels whose trained model ranks fresh held-out siblings closer to fair D4 than the D1-teacher model did (top-1 gap to D4 shrinks by at least half), and the frozen override rule then passes on fresh origins.
Candidatedistributional-afterstate-ranker-d2
approaches/afterstate-learning/distributional-afterstate/common.hpp Comparatorfair-d4
approaches/fair-expectimax/reference/fair-only-depth4.cpp outcome: failrun: validpilotRS-20260821T134500Z-4b9d2f68
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.
| Gate criterion | Verdict | Observed |
|---|
| Corpus successor-closed at K=64 with the D2 teacher, completeness 1.0 | pass | per-root completeness 1.0 over 6,535 fully labeled roots; the corpus is partial (6,535 of 8,192 planned) at the generator's 4h default wall stop |
| Ranking gate: model top-1 >= 0.4616 on each half-fold | fail | half1 0.3418, half2 0.3314 |
| Override gate: eligible-root override regret <= D4 regret - 0.01 in EACH half-fold, rate >= 5% | fail | half1 -0.0089, half2 +0.0110, pooled +0.0012; override rate 35.9% |
| Decisive-root label stability >= 0.5 for both evaluation corpora | pass | 0.8058 (override corpus), 0.8010 (ranking corpus) |
| Quantile coverage within [0.66, 0.87] | pass | 0.7244 |
Raw metrics (18)
iteration3D1TeacherTop1
0.4245
rankingPairwisePooled
0.6310
rankingRegretPooled
0.3120
overrideRegretGainHalf1
-0.0089
overrideRegretGainHalf2
0.0110
overrideRegretGainPooled
0.0012
labelStabilityDecisiveSpearman
0.8058
quantileIntervalCoverage
0.7244
completedtier CHECKalgorithmicpublic-developmentEX-20260821-afterstate-d4q-stage1-40136e9e
A successor-closed corpus of exact fair-D4 per-action search values (every legal sibling labeled by the pinned reference itself) lets the action-free afterstate model learn fair D4's within-root ordering well enough to reach preregistered agreement thresholds on fresh held-out roots - the stage-1 prerequisite of the registered search-guided self-play loop (TH-20260821-search-guided-self-play-at-scale-299ed02f). Prior D4 clones failed on played-action or sparse-sibling data; this configuration is successor-closed.
Candidateafterstate-d4q-student
approaches/afterstate-learning/distributional-afterstate/train.py Comparatorfair-d4
approaches/fair-expectimax/reference/fair-only-depth4.cpp outcome: failrun: validpilotRS-20260821T104500Z-77d21e90
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.
| Gate criterion | Verdict | Observed |
|---|
| Successor-closed D4-value labels on >= 8,000 training roots, completeness 1.0 | pass | 8,639 roots, 291,890 afterstate labels, every legal sibling x 5 strata |
| Held-out top-1 agreement >= 0.60 on each half-fold | fail | half1 0.3628, half2 0.3864 |
| Held-out pairwise agreement >= 0.78 on each half-fold | fail | half1 0.6375, half2 0.6473 |
| Normalized regret <= 0.13 on each half-fold | fail | half1 0.3055, half2 0.2778 |
| All CHECK-tier self-tests pass before any label is inspected | pass | SELFTEST OK (10 checks including D2-continuation determinism) |
Raw metrics (10)
trainAfterstateLabels
291,890
completedtier CHECKalgorithmicpublic-developmentEX-20260821-afterstate-full-train-override-ec7f28f4
The iteration-3 model was stopped at epoch 11 of 20 with its ranking loss still decreasing, so it was undertrained. Fully training the identical architecture on the identical K=256 successor-closed corpus (up to 40 epochs, 4M-row deterministic subsample, 6h GPU budget) improves its calibrated ranking enough that the FROZEN top-two near-tie override rule (epsilon=500, paired-bootstrap 95% lower bound > 0, 1000 resamples, domain 0x4f565252) passes its frozen margin on fresh held-out origins.
Candidatedistributional-afterstate-ranker
approaches/afterstate-learning/distributional-afterstate/train.py Comparatorfair-d4
approaches/fair-expectimax/reference/fair-only-depth4.cpp outcome: failrun: validpilotRS-20260821T094500Z-1a7e3c55
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.
| Gate criterion | Verdict | Observed |
|---|
| Training completes 22 epochs on the 2M-row subsample within budget (44M row-updates, 2x iteration 3) | pass | 22 epochs, cosine schedule completed, ~5.5h GPU |
| Eligible-root override regret <= D4 regret - 0.01 in EACH half-fold | fail | half1 +0.0228 (passes); half2 -0.0297 (override harmful); pooled +0.0018 |
| Override rate >= 5% of eligible roots | pass | 41.1% |
| Decisive-root label stability >= 0.5 | pass | 0.8244 |
| Quantile coverage within [0.66, 0.87] | pass | 0.7997 |
| Gate report byte-identical across two runs | pass | byte-identical |
Raw metrics (12)
diagnosticTop1VsIter3
0.3611 vs 0.4245 (same roots)
diagnosticRegretVsIter3
0.2807 vs 0.2408 (same roots)
overrideEligibleRoots
1,106
overrideRegretGainHalf1
0.0228
overrideRegretGainHalf2
-0.0297
overrideRegretGainPooled
0.0018
labelStabilityDecisiveSpearman
0.8244
quantileIntervalCoverage
0.7997
runningtier STANDARDalgorithmicpreviously-evaluated-developmentEX-20260821-depth5-chance-exactness-factorial-a6a604fd
On the shared 64-game development cohort 0xa51d1000-0xa51d103f, a five-ply fair search beats the same search at four plies at the same stratum count, with a one-sided 95% whole-game bootstrap lower bound above zero at seven strata (where finding-05 measured a +86,172 [+26,468] third-to-fourth ply gradient) and no requirement at five strata (where finding-05 measured none). The fast engine's depth-4 seven-stratum arm must first reproduce the recorded unoptimised arm field-for-field, so that any depth-5 difference is a depth difference and not an engine difference.
Candidatefast-engine-parameterized-fair-search, depth 5 (arms d5s7 and d5s5)
approaches/lifetime-objective/fast-engine/cohort.cpp Comparatorthe recorded depth-4 arms on the same seeds (d4s7 = runs/RUN-A51D-s7confirm/fresh-s7.json, d4s5 = runs/RUN-A51D-s7confirm/fresh-s5.json), plus a same-cohort fast-engine reproduction of d4s7 as the control
approaches/lifetime-objective/risk-calibration/search.cpp outcome: failrun: partialpublic-developmentRS-20260821T181917Z-9a34ba02
The fifth ply buys nothing at either chance resolution, and the earlier interim reading that it was actively harmful is withdrawn. Complete leg, 64 of 64 games: depth 5 at five strata scores 288,704 against depth 4 at five strata's 297,327, a paired -8,624 with a one-sided 95% whole-game bootstrap lower bound of -55,134 and W-T-L 33-0-31, for 23.29x the logical work per move. That is a wash, not a reversal. Partial leg, 16 of 64 games and still running: depth 5 at seven strata is -1,581 against the depth-4 seven-stratum control (95% lower bound -173,154, W-T-L 7-0-9) at 34.32x the work, and +16,622 against depth 3 at seven strata (95% lower bound -130,027, W-T-L 8-0-8) at 1,084.78x the work. At a fixed stratum count, depth 3 -> 4 -> 5 does not separate. READ THIS BEFORE QUOTING THE MEANS: the eye-catching gap between the 398,498 of d4s7 and the 288,704 of d5s5 is a chance-samples effect and not a depth effect, because those two arms differ in both factors; the correct paired depth contrasts at fixed chance resolution are d5s5 - d4s5 = -8,624 and d5s7 - d4s7 = -1,581, both indistinguishable from zero, and the correct paired stratum contrast at fixed depth is finding-05's d4s7 - d4s5 = +101,171. The interim slice reported in finding-15 section 2.2 (-268,611 over 8 paired games) was completion-order biased against depth 5 exactly as that section warned; at 16 games the bias is gone and the delta is -1,581. The engine control is clean and is the other retained result here: the fast engine's depth-4 seven-stratum arm reproduces the recorded unoptimised arm over 64 paired games x 11 fields with 0 mismatches, and the depth-5 five-stratum arm reproduces the recorded 32-game unoptimised arm over 32 paired games x 11 fields with 0 mismatches across two binaries and two different cache capacities. Every arm audited 0 incomplete decisions at its requested depth, 0 censored games and 0 score-decomposition identity failures. Flow rates fall with depth at five strata (1.9387 clears and 1.0651 reveals per move against depth 4's 1.9489 and 1.0697, and against the 2.400 and 1.400 indefinite survival needs), so nothing here moves toward the target.
| Gate criterion | Verdict | Observed |
|---|
| Control: the fast engine's depth-4 seven-stratum arm reproduces the recorded unoptimised arm on all 11 per-game fields | pass | 64 paired games x 11 fields = 704 comparisons, 0 mismatches; a second, unplanned reproduction fell out of d5s5 against the recorded 32-game arm (352 comparisons, 0 mismatches) across two binaries and cache capacities 60,000 vs 200,000 |
| Audit: 0 incomplete decisions and minimum completed depth equal to the requested depth in every arm | pass | d4s7 7,338 decisions minCompletedDepth 4; d5s5 5,420 decisions minCompletedDepth 5; d5s7 (partial) 1,760 decisions minCompletedDepth 5; 0 incomplete decisions everywhere, busiest decision at 76% (d5s7), 72% (d5s5) and 89% (d4s7) of its declared bound |
| Depth 5 beats depth 4 at seven strata with a one-sided 95% bootstrap lower bound above zero, on 64 complete games | n/a | undecidable as run: the arm holds 16 of 64 games and is still executing. On the 16 paired games the delta is -1,581 with a 95% lower bound of -173,154 and W-T-L 7-0-9 - no gradient is visible, but 16 games cannot decide this criterion and no claim is made that they do |
| Depth 5 is at least not worse than depth 4 at five strata, on 64 complete games | fail | -8,624 with a 95% lower bound of -55,134, W-T-L 33-0-31, median paired delta +349, at 23.29x the logical work per move; a wash that costs 23x |
| Clears per move, reveals per move and occupancy all move toward the survival requirement from depth 4 to depth 5 at the same stratum count | fail | at five strata clears/move 1.9387 vs 1.9489, reveals/move 1.0651 vs 1.0697 and occupancy 24.1886 vs 24.2880 - two of three move away from the 2.400/1.400 requirement |
| 0 censored games and 0 score-decomposition identity failures in every arm | pass | 0 and 0 in all three arms |
Raw metrics (30)
cohort
0xa51d1000-0xa51d103f, 2,000-move cap, corrected 17,000-point Hardcore scoring
d4s7ControlMeanScore
398498.2344
d4s7ControlMeanMoves
114.6563
d4s7ControlWorkPerMove
4956614.2652
d5s5WorkPerMove
30,183,227
d5s7MeanScoreOn16
383691.1875
d5s7WorkPerMove
170,131,134
pairedD5s5MinusD4s5
- n
- 64
- meanScoreDelta
- -8623.7000
- lowerBound95
- -55133.7000
- meanMoveDelta
- -2.4700
- winTieLoss
- 33-0-31
- medianDelta
- 349
- workRatio
- 23.2900
pairedD5s7MinusD4s7
- n
- 16
- meanScoreDelta
- -1581.1000
- lowerBound95
- -173154.2000
- meanMoveDelta
- -0.8800
- winTieLoss
- 7-0-9
- medianDelta
- -39660.5000
- workRatio
- 34.3200
pairedD5s7MinusD3s7
- n
- 16
- meanScoreDelta
- 16622.4000
- lowerBound95
- -130026.9000
- meanMoveDelta
- 3.2500
- winTieLoss
- 8-0-8
- medianDelta
- -8,539
- workRatio
- 1084.7800
pairedD5s7MinusD5s5
- n
- 16
- meanScoreDelta
- 114640.3000
- lowerBound95
- -7279.5000
- meanMoveDelta
- 30.5600
- winTieLoss
- 8-0-8
- medianDelta
- 14,763
- workRatio
- 5.6400
pairedD4s7MinusD4s5
- n
- 64
- meanScoreDelta
- 101170.8000
- lowerBound95
- 47446.8000
- meanMoveDelta
- 27.5000
- winTieLoss
- 41-0-23
- medianDelta
- 55416.5000
- workRatio
- 3.8200
- note
- the stratum contrast at fixed depth 4 - this is the significant effect the 398,498-vs-288,704 gap is actually made of, not depth
reproductionD4s7
- pairedGames
- 64
- fields
- 11
- comparisons
- 704
- mismatches
- 0
reproductionD5s5
- pairedGames
- 32
- fields
- 11
- comparisons
- 352
- mismatches
- 0
auditD4s7
- decisions
- 7,338
- incompleteDecisions
- 0
- minimumCompletedDepth
- 4
- maxWorkPerDecision
- 10,639,860
- declaredBound
- 11,892,399
- declaredCacheEntries
- 60,000
auditD5s5
- decisions
- 5,420
- incompleteDecisions
- 0
- minimumCompletedDepth
- 5
- maxWorkPerDecision
- 78,537,460
- declaredBound
- 109,723,461
- declaredCacheEntries
- 200,000
auditD5s7Partial
- decisions
- 1,760
- incompleteDecisions
- 0
- minimumCompletedDepth
- 5
- maxWorkPerDecision
- 441,657,335
- declaredBound
- 582,727,797
- declaredCacheEntries
- 200,000
scoreIdentityFailuresAllArms
0
bootstrap
one-sided 95% percentile bootstrap over whole paired games, 20,000 resamples, Mulberry32 domain 0xb0075eed (analyze.py)
twoSidedContext
the same estimator's one-sided 95% upper bounds are +39,052 for d5s5-d4s5 and +166,299 for d5s7-d4s7, so neither delta is distinguishable from zero in either direction
outcome: inconclusiverun: partialpublic-developmentRS-20260821T205102Z-d89df4b5
SUPERSEDES RS-20260821T181917Z-9a34ba02, which assessed this experiment when the depth-5 seven-stratum arm held 16 games. The arm was stopped by the repository owner's decision at the 32-game chunk boundary and will not be resumed, so its analysis is now FINAL even though the cohort is partial: 32 of 64 planned games, every one of them a whole game, 0 censored, 0 score-decomposition identity failures, 0 incomplete decisions, minimum completed depth 5. The old record remains committed history and is not edited. THE HEADLINE IS A CORRECTION, NOT AN UPDATE. The previous record read the fifth ply as 'does not separate'. That reading was a NON-MEASUREMENT REPORTED AS A NULL. Doubling the sample from 16 to 32 games moved the depth-5-minus-depth-4 seven-stratum contrast from -1,581 to +23,367 and its median from -39,660 to +18,820 - THE SIGN FLIPPED - which is what a quantity being estimated far below its detection floor looks like. By chunk the paired mean is -1,581 on the first 16 seeds and +48,315 on the second 16. Do NOT replace the old reading with 'depth 5 helps': +23,367 is equally unsupported. The one-sided 95% bootstrap lower bound is -83,046 and the contrast's detection floor at n=32 is 107,988, so the estimate sits at 22% of the smallest effect this cohort could have resolved. The correct statement is that THE FOURTH-TO-FIFTH PLY CONTRAST AT SEVEN STRATA WAS NEVER MEASURED, in either record. THE POWER ANALYSIS IS THE MOST USEFUL THING THIS EXPERIMENT PRODUCED. Detection floor, taken as 1.645 x sd / sqrt(n), the smallest true effect whose one-sided 95% bound would clear zero: d4s7-d4s5 +101,171 against a floor of 55,192 (n=64); d4s7-d3s7 +86,172 against 61,457 (n=64); d5s5-d4s5 -8,624 against 47,052 (n=64); d5s7-d4s7 +23,367 against 107,988 (n=32). EVERY SIGNIFICANT RESULT IN THIS FACTORIAL IS ABOVE ITS FLOOR AND EVERY NULL IS BELOW IT - the factorial separated the contrasts it had the power to separate and nothing else. Resolving the observed +23,367 needs about 684 paired games; finishing to the planned 64 would have left a standard error near 46,400 against a 23,367 estimate, still a non-measurement. That is the justification for the stop: the contrast is not answerable at any affordable cohort size, so the marginal machine-day buys no information. The variance is structural, not fixable by tidier running: the five largest single-seed paired deltas are -1,002,862, +958,985, -678,455, +592,546 and -577,069, so individual games swing by more than twice the cohort mean. WHAT IS ACTUALLY MEASURED HERE, and it is the same lesson from the other side: at depth 5, going from five to seven strata is worth +123,613 with a lower bound of +32,575, W-T-L 19-0-13 - SIGNIFICANT, and comfortably above its 95,207 floor - for 5.85x the work. The chance-exactness axis pays at depth 5 exactly as it pays at depth 4 (+101,171 [+47,447] there). The previous record's warning therefore survives and is strengthened: the eye-catching gap between d4s7's 398,498 and d5s5's 288,704 is a CHANCE-SAMPLES effect, not a depth effect, and both stratum contrasts are now significant while no depth contrast is. The engine controls are unchanged and clean: the fast engine's depth-4 arm reproduces the recorded unoptimised arm over 704 field comparisons with 0 mismatches, and the depth-5 five-stratum arm reproduces its recorded 32-game predecessor over 352 comparisons with 0 mismatches across two binaries and two cache capacities.
| Gate criterion | Verdict | Observed |
|---|
| Control: the fast engine's depth-4 seven-stratum arm reproduces the recorded unoptimised arm on all 11 per-game fields | pass | 704 comparisons, 0 mismatches; plus d5s5 against its recorded 32-game predecessor, 352 comparisons, 0 mismatches, across two binaries and cache capacities 60,000 vs 200,000 |
| Audit: 0 incomplete decisions and minimum completed depth equal to the requested depth in every arm | pass | d4s7 7,338 decisions minCompletedDepth 4; d5s5 5,420 decisions minCompletedDepth 5; d5s7 3,775 decisions minCompletedDepth 5; 0 incomplete everywhere, busiest decision at 80% of bound in d5s7 |
| Depth 5 beats depth 4 at seven strata with a one-sided 95% bootstrap lower bound above zero, on 64 complete games | n/a | NOT MEASURABLE AS RUN, and not measurable at 64 games either. On 32 games: +23,367, lower bound -83,046, W-T-L 17-0-15, median +18,820. The paired sd is 371,351, giving a detection floor of 107,988 at n=32 and 76,359 at n=64; the estimate is 22% and 31% of those. Resolving it needs about 684 paired games. The criterion is neither passed nor failed - it was never tested with the power to answer it |
| Depth 5 is at least not worse than depth 4 at five strata, on 64 complete games | fail | -8,624 [-55,134], W-T-L 33-0-31, at 23.29x work, on a complete 64-game cohort. This is a bounded null and the strongest depth statement the factorial supports: any true d4->d5 effect at five strata is smaller than about 47,000 points |
| Clears per move, reveals per move and occupancy all move toward the survival requirement from depth 4 to depth 5 at the same stratum count | fail | at seven strata on 32 games, clears/move 2.0575 vs 2.0571 (+0.0004), reveals/move 1.1481 vs 1.1549 (-0.0069), occupancy 23.62 vs 23.15 (worse); at five strata all three move away. Nothing approaches the 2.400/1.400 requirement |
| 0 censored games and 0 score-decomposition identity failures in every arm | pass | 0 and 0 in all three arms, including the arm that was stopped |
Raw metrics (32)
cohort
0xa51d1000-0xa51d103f, 2,000-move cap, corrected 17,000-point Hardcore scoring; the depth-5 seven-stratum arm covers the first 32 seeds 0xa51d1000-0xa51d101f
supersedes
RS-20260821T181917Z-9a34ba02
supersededFieldsFromPartialRecord
d5s7Games 16 -> 32 (final; cohort stopped by decision, not resumed); d5s7MeanScoreOn16 383,691 -> d5s7MeanScore 411,874; d5s7MeanMoves 110.00 -> 117.97; d5s7WorkPerMove 170,131,134 -> 176,536,117; d5s7 decisions 1,760 -> 3,775; pairedD5s7MinusD4s7 -1,581 [-173,154] median -39,660 W-T-L 7-0-9 -> +23,367 [-83,046] median +18,820 W-T-L 17-0-15 (SIGN FLIP); pairedD5s7MinusD5s5 +114,640 [-7,280] not significant -> +123,613 [+32,575] SIGNIFICANT W-T-L 19-0-13; pairedD5s7MinusD3s7 +16,622 [-130,027] -> +86,397 [-6,303] W-T-L 20-0-12; scientificOutcome fail -> inconclusive; assessment not-supported-as-tested -> mixed. Unchanged: every depth-4 and depth-5 five-stratum figure, both reproduction controls, and pairedD5s5MinusD4s5 at -8,624 [-55,134] W-T-L 33-0-31 on 64 games.
d5s7StopKind
deliberate resource decision at a clean chunk boundary; not resumed
d5s7MedianScore
344436.5000
d5s7WorkPerMove
176,536,117
pairedD5s7MinusD4s7
- n
- 32
- meanScoreDelta
- 23366.8000
- lowerBound95
- -83046.2000
- meanMoveDelta
- 6.0300
- winTieLoss
- 17-0-15
- medianDelta
- 18,820
- workRatio
- 35.6200
- chunk1MeanDelta
- -1,581
- chunk2MeanDelta
- 48,315
- note
- sign flipped from the n=16 record; sits at 22% of its 107,988 detection floor
pairedD5s7MinusD5s5
- n
- 32
- meanScoreDelta
- 123612.7000
- lowerBound95
- 32575.2000
- meanMoveDelta
- 33.5300
- winTieLoss
- 19-0-13
- medianDelta
- 119,724
- workRatio
- 5.8500
- significant
- true
- detectionFloor
- 95,207
pairedD5s7MinusD3s7
- n
- 32
- meanScoreDelta
- 86396.8000
- lowerBound95
- -6302.9000
- meanMoveDelta
- 22.2800
- winTieLoss
- 20-0-12
- workRatio
- 1125.6200
- detectionFloor
- 97,211
pairedD5s5MinusD4s5
- n
- 64
- meanScoreDelta
- -8623.7000
- lowerBound95
- -55133.7000
- winTieLoss
- 33-0-31
- workRatio
- 23.2900
- detectionFloor
- 47,052
pairedD4s7MinusD4s5
- n
- 64
- meanScoreDelta
- 101170.8000
- lowerBound95
- 47446.8000
- winTieLoss
- 41-0-23
- workRatio
- 3.8200
- significant
- true
- detectionFloor
- 55,192
powerTable
- contrast
- d4s7 - d4s5
- n
- 64
- mean
- 101,171
- pairedSd
- 268,413
- standardError
- 33,552
- detectionFloor
- 55,192
- aboveFloor
- true
- contrast
- d4s7 - d3s7
- n
- 64
- mean
- 86,172
- pairedSd
- 298,877
- standardError
- 37,360
- detectionFloor
- 61,457
- aboveFloor
- true
- contrast
- d5s7 - d5s5
- n
- 32
- mean
- 123,613
- pairedSd
- 327,399
- standardError
- 57,876
- detectionFloor
- 95,207
- aboveFloor
- true
- contrast
- d5s7 - d3s7
- n
- 32
- mean
- 86,397
- pairedSd
- 334,291
- standardError
- 59,095
- detectionFloor
- 97,211
- aboveFloor
- false
- contrast
- d5s5 - d4s5
- n
- 64
- mean
- -8,624
- pairedSd
- 228,827
- standardError
- 28,603
- detectionFloor
- 47,052
- aboveFloor
- false
- contrast
- d5s7 - d4s7
- n
- 32
- mean
- 23,367
- pairedSd
- 371,351
- standardError
- 65,646
- detectionFloor
- 107,988
- aboveFloor
- false
detectionFloorDefinition
1.645 * sd(paired deltas) / sqrt(n): the smallest true mean difference whose one-sided 95% bound would clear zero. Sample sd uses the n-1 denominator.
gamesNeededToResolveD5s7MinusD4s7
684
standardErrorHadTheArmFinishedAt64
46,419
detectionFloorHadTheArmFinishedAt64
76,359
largestSingleSeedPairedDeltasD5s7MinusD4s7
- -1,002,862
- 958,985
- -678,455
- 592,546
- -577,069
costToResolve
684 games at the run's own observed 1,647 s per game at 14 threads is 1,126,562 s = 13.0 wall-days (about 182 thread-days). The two chunks differed 2.3x in throughput under other agents' load (2,306 and 989 s per game), so the honest range is roughly 8-18 wall-days.
bootstrapVersusNormalApproximation
The tooling reports a one-sided percentile bootstrap (20,000 resamples, Mulberry32 domain 0xb0075eed) and the floors above are the normal approximation 1.645*sd/sqrt(n). They agree on the significance call for all six contrasts. The bootstrap bound is systematically 0.5k-4.5k HIGHER (less conservative) than mean minus 1.645*SE, i.e. 1-5% of the half-width: d4s7-d4s5 +47,447 vs +45,979; d4s7-d3s7 +26,468 vs +24,715; d5s5-d4s5 -55,134 vs -55,676; d5s7-d4s7 -83,046 vs -84,621; d5s7-d5s5 +32,575 vs +28,406; d5s7-d3s7 -6,303 vs -10,814. Paired-delta skewness is +0.55 to +0.92 on four of the six contrasts and -0.30 on d5s7-d4s7, so the two methods are close but not interchangeable at the third digit; no conclusion in this record depends on which is used.
auditD5s7Final
- decisions
- 3,775
- incompleteDecisions
- 0
- minimumCompletedDepth
- 5
- maxWorkPerDecision
- 467,827,983
- declaredBound
- 582,727,797
- declaredCacheEntries
- 200,000
reproductionD4s7
- pairedGames
- 64
- fields
- 11
- comparisons
- 704
- mismatches
- 0
reproductionD5s5
- pairedGames
- 32
- fields
- 11
- comparisons
- 352
- mismatches
- 0
scoreIdentityFailuresAllArms
0
runningtier STANDARDalgorithmicpreviously-evaluated-developmentEX-20260821-reveal-sampling-unfinished-arms-470677b5
On the shared 64-game development cohort 0xa51d1000-0xa51d103f, factoring the chance node keeps paying when it is applied on top of the fourth ply: depth 4 with seven disc samples and two reveal samples beats depth 4 with seven disc samples and one reveal sample with a one-sided 95% whole-game bootstrap lower bound above zero. Separately, the depth-3 ladder continues to order with joint (disc, reveal) coverage: twelve reveal samples (100% joint coverage) is at least as strong as six (85.7%).
Candidatefactored-chance-fair-search, arms d4 N=7 M=2 and d3 N=7 M=12
approaches/lifetime-objective/reveal-sampling/search.cpp Comparatorthe recorded single-reveal-sample arms on the same seeds (d4 N=7 M=1 = runs/RUN-A51D-s7confirm/fresh-s7.json; d4 N=5 M=1 = runs/RUN-A51D-s7confirm/fresh-s5.json) and finding-09's completed depth-3 ladder (M=1, 3, 6)
approaches/lifetime-objective/risk-calibration/search.cpp outcome: failrun: partialpublic-developmentRS-20260821T181918Z-ea7076a3
Chance-node decorrelation and search depth do not compound; they substitute. The primary arm is complete at 64 of 64 games: depth 4 with seven disc samples and two reveal samples scores 356,548 against the 398,498 of the same search with one reveal sample, a paired -41,950 with a one-sided 95% whole-game bootstrap lower bound of -100,137 and W-T-L 28-0-36, for 4.07x the logical work per move. The gate asked for a lower bound above zero and got a negative point estimate, so the compounding theory is rejected as tested. STATE THE DOSE WHEN QUOTING THIS: two reveal samples raises joint (disc, reveal) coverage from 14.3% to 28.6%, which is a smaller increment than the six samples (85.7%) that first cleared noise at depth 3; at depth 3 the three-sample dose (42.9%) was also not significant (+24,980, lower bound -23,451). This result therefore rejects a doubling of reveal samples on top of the fourth ply, and does not establish that a wide reveal estimator at depth 4 would fail - that arm was never affordable. What the arm does establish is that the depth-4 search is not starved for the thing the extra samples supply. The striking positive finding is an equivalence at near-equal work: depth 3 with six reveal samples costs 4,244,020 work per move and scores 376,442, while depth 4 with one reveal sample costs 4,956,614 and scores 398,498, and the paired delta between them is -22,056 with a lower bound of -89,867 and W-T-L 30-0-34 - two different ways of spending the same budget landing in the same place, which is the same exchangeability the depth factorial shows from the other side. The new arm is not worthless: against the frozen five-stratum depth-4 reference it is +59,221 with a lower bound of +9,134 and W-T-L 37-0-27, so the gain comes from the seven disc samples, not from the reveal samples. Second arm, partial at 32 of 64 games and still running: depth 3 with twelve reveal samples takes joint coverage to 100% and scores -4,495 against the six-sample arm on the 32 shared seeds (lower bound -91,425, W-T-L 15-0-17) and +31,413 against the one-sample arm (lower bound -70,729), so the ladder that ordered with coverage from M=1 to M=6 stops ordering at M=12. Every arm audited 0 decisions below target depth, 0 work-limit events, 0 censored games and 0 score-decomposition identity failures, and the chunk-pooling used to survive interruption was verified to reproduce a single 64-game run field-for-field with identical summed logical work.
| Gate criterion | Verdict | Observed |
|---|
| Pooling validity: four pooled 16-game chunks reproduce a single 64-game run on all 13 per-game fields with identical summed logical work | pass | 64 games, 0 field mismatches, logical work 312,966,881 vs 312,966,881 (equal) |
| Bound diagnostics: 0 decisions below target depth and 0 work-limit events in every arm | pass | d4 N=7 M=2: 6,633 decisions, 0 below target, 0 work-limit events, busiest decision at 44% of its bound; d3 N=7 M=12 (partial): 3,335 decisions, 0 below target, 0 work-limit events, busiest at 31% of its bound |
| Depth 4 with two reveal samples beats depth 4 with one reveal sample, 95% bootstrap lower bound above zero, 64 complete games | fail | -41,950 with a 95% lower bound of -100,137 (upper bound +17,541), W-T-L 28-0-36, at 4.07x the logical work per move; negative point estimate, and not distinguishable from zero in either direction |
| Depth 3 with twelve reveal samples is at least as strong as depth 3 with six | n/a | undecidable as run: the arm holds 32 of 64 games and is still executing. On the 32 shared seeds the delta is -4,495 with a 95% lower bound of -91,425 and W-T-L 15-0-17 - the coverage ladder has stopped ordering, but 32 games cannot decide this criterion |
| 0 censored games and 0 score-decomposition identity failures in every arm | pass | 0 and 0 in both new arms and in every comparator arm re-read here |
Raw metrics (30)
cohort
0xa51d1000-0xa51d103f, 2,000-move cap, corrected 17,000-point Hardcore scoring
d4N7M2WorkPerMove
20,178,327
d4N7M2ClearsPerMove
2.0306
d4N7M2RevealsPerMove
1.1358
d3N7M12MeanScoreOn32
356,890
d3N7M12WorkPerMove
13,575,768
ladderD3N7
- M1
- 312,327
- M3
- 337,306
- M6
- 376,442
- M12partial32
- 356,890
jointCoverageByM
- M1
- 0.1430
- M2
- 0.2860
- M3
- 0.4290
- M6
- 0.8570
- M12
- 1
pairedD4M2MinusD4M1
- n
- 64
- meanScoreDelta
- -41,950
- lowerBound95
- -100,137
- upperBound95
- 17,541
- meanMoveDelta
- -11.0200
- winTieLoss
- 28-0-36
- workRatio
- 4.0700
pairedD4M2MinusD4N5M1
- n
- 64
- meanScoreDelta
- 59,221
- lowerBound95
- 9,134
- meanMoveDelta
- 16.4800
- winTieLoss
- 37-0-27
- workRatio
- 15.5700
pairedD4M2MinusD3M6
- n
- 64
- meanScoreDelta
- -19,894
- lowerBound95
- -76,456
- meanMoveDelta
- -5.8100
- winTieLoss
- 37-0-27
- workRatio
- 4.7500
pairedD3M6MinusD4M1
- n
- 64
- meanScoreDelta
- -22,056
- lowerBound95
- -89,867
- meanMoveDelta
- -5.2000
- winTieLoss
- 30-0-34
- workRatio
- 0.8600
pairedD3M3MinusD3M1
- n
- 64
- meanScoreDelta
- 24,980
- lowerBound95
- -23,451
- winTieLoss
- 32-0-32
pairedD3M6MinusD3M1
- n
- 64
- meanScoreDelta
- 64,116
- lowerBound95
- 7,475
- winTieLoss
- 36-0-28
pairedD3M12MinusD3M6
- n
- 32
- meanScoreDelta
- -4,495
- lowerBound95
- -91,425
- winTieLoss
- 15-0-17
- note
- partial arm, paired on the 32 shared seeds
pairedD3M12MinusD3M1
- n
- 32
- meanScoreDelta
- 31,413
- lowerBound95
- -70,729
- winTieLoss
- 15-0-17
- note
- partial arm, paired on the 32 shared seeds
pairedD3M12MinusD4M1
- n
- 32
- meanScoreDelta
- -31,616
- lowerBound95
- -143,344
- winTieLoss
- 12-0-20
- note
- partial arm, paired on the 32 shared seeds
boundDiagnosticsD4N7M2
- decisions
- 6,633
- decisionsBelowTargetDepth
- 0
- workLimitEvents
- 0
- minCompletedDepth
- 4
- maxDecisionWork
- 81,686,570
- declaredBound
- 187,336,114
boundDiagnosticsD3N7M12
- decisions
- 3,335
- decisionsBelowTargetDepth
- 0
- workLimitEvents
- 0
- minCompletedDepth
- 3
- maxDecisionWork
- 128,386,272
- declaredBound
- 407,634,528
poolingValidity
- games
- 64
- fieldMismatches
- 0
- summedLogicalWorkCandidate
- 312,966,881
- summedLogicalWorkComparator
- 312,966,881
- note
- four pooled 16-game chunks against the single 64-game d3 N=5 M=1 run
scoreIdentityFailuresAllArms
0
bootstrap
one-sided 95% percentile bootstrap over whole paired games, 20,000 resamples, seed 0xb0075eed (stats.py)
outcome: failrun: validpublic-developmentRS-20260821T192140Z-189fe392
SUPERSEDES RS-20260821T181918Z-ea7076a3, which assessed the same experiment while its second arm held 32 of 64 games. Both arms are now complete at 64 of 64 and the run validity rises from partial to valid. The old record remains as committed history and is not edited; this record carries the completed figures and everything below replaces the partial ones. Nothing in arm 1 changed and the direction of arm 2 did not change; only its magnitude did, by about 6x. ARM 1, unchanged and complete: depth 4 with seven disc samples and two reveal samples scores 356,548 against the 398,498 of the same search with one reveal sample - a paired -41,950 with a one-sided 95% bootstrap interval of (-100,137, +17,541) and W-T-L 28-0-36, for 4.07x the logical work per move. The gate required a lower bound above zero, so the compounding theory is rejected as tested. The sign is stable across both cohort halves (-11,082 on seeds 0xa51d1000-0xa51d101f and -72,818 on 0xa51d1020-0xa51d103f), independently confirmed by the agent that completed the runs. The +17,541 ceiling is the load-bearing number: had the axes compounded even at a quarter of the +64,116 the same knob is worth at depth 3, the data would have had to show it. The axes substitute in the strong sense. ARM 2, now complete: depth 3 with twelve reveal samples - the configuration at which (disc, reveal) joint coverage reaches 100% - scores 349,345, not the 356,890 its first 32 games suggested. Against the six-sample arm it is -27,097 with an interval of (-83,807, +31,209) and W-T-L 28-0-36; against the one-sample arm +37,019 (-25,076, +102,426), 30-0-34. THE REVEAL AXIS SATURATES AT M ABOUT 6 AND DOES NOT IMPROVE TO FULL COVERAGE. Read this as saturation, not as a demonstrated regression: the M=6 to M=12 step does not clear zero in either direction, so the data are consistent with the curve being flat from M=6 onward and are not consistent with it continuing to climb at the rate M=1 to M=6 showed. Score, moves, numbered clears and covered reveals all peak at M=6 (85.7% coverage) and fall back at M=12 (100%); only mean occupancy improves monotonically across all four points (23.88, 23.81, 23.49, 23.39). This weakens two SUPPORTING arguments in finding-09 without touching its headline, which rests on its own paired tests and stands: the dose-response is no longer monotone once the fourth point is added, with four of five tracked quantities reversing, and section 2's attribution of strength to joint coverage fails exactly at the 100% endpoint that attribution predicts should be best. finding-09 section 5 should now be read as 'M=6 is a local optimum', not 'more M is better'. Validity controls all pass: 0 decisions below target depth, 0 work-limit events, 0 censored games and 0 score-decomposition identity failures in both arms, and the chunk-and-pool procedure on which every cohort in this family depends was verified end to end by running depth 3 (N=5, M=1) as four 16-game chunks at 1 thread and reproducing the existing 64-game 12-thread artifact field-for-field - 0 mismatches, identical summed logical work of 312,966,881, only per-game wallSeconds differing, which also re-confirms worker-count independence.
| Gate criterion | Verdict | Observed |
|---|
| Pooling validity: four pooled 16-game chunks reproduce a single 64-game run on all per-game fields with identical summed logical work | pass | depth 3 (N=5, M=1) as 4x16 chunks at 1 thread vs the existing 64-game 12-thread artifact: 64 games, 0 field mismatches, logical work 312,966,881 = 312,966,881, only per-game wallSeconds differing; pooled bound diagnostics identical (5,750 decisions, 0 below target, 0 work-limit events, maxDecisionWork 85,085) |
| Bound diagnostics: 0 decisions below target depth and 0 work-limit events in every arm | pass | d4 N=7 M=2: 6,633 decisions, busiest at 44% of its bound; d3 N=7 M=12: 6,523 decisions, busiest at 47% of its bound; 0 below target depth and 0 work-limit events in both |
| Depth 4 with two reveal samples beats depth 4 with one reveal sample, 95% bootstrap lower bound above zero, 64 complete games | fail | -41,950, interval (-100,137, +17,541), W-T-L 28-0-36, at 4.07x the logical work per move; negative in both cohort halves (-11,082 and -72,818) and not distinguishable from zero in either direction |
| Depth 3 with twelve reveal samples is at least as strong as depth 3 with six, 64 complete games | fail | -27,097, interval (-83,807, +31,209), W-T-L 28-0-36, at 3.18x the work; the ladder peaks at M=6 and turns over at full joint coverage. Failed as a criterion, but the interval spans zero, so this is saturation rather than a demonstrated regression |
| 0 censored games and 0 score-decomposition identity failures in every arm | pass | 0 and 0 in both arms and in every comparator arm re-read here |
Raw metrics (37)
cohort
0xa51d1000-0xa51d103f, 64 games, 2,000-move cap, corrected 17,000-point Hardcore scoring
supersedes
RS-20260821T181918Z-ea7076a3
supersededFieldsFromPartialRecord
d3N7M12MeanScoreOn32 356,890 -> d3N7M12MeanScore 349,345 (64 games); pairedD3M12MinusD3M6 -4,495 [-91,425] at n=32 -> -27,097 [-83,807, +31,209] at n=64; pairedD3M12MinusD3M1 +31,413 [-70,729] at n=32 -> +37,019 [-25,076, +102,426] at n=64; pairedD3M12MinusD4M1 -31,616 [-143,344] at n=32 -> -49,153 [-125,029, +27,828] at n=64; runValidity partial -> valid
ladderD3N7
- M1
- 312,327
- M3
- 337,306
- M6
- 376,442
- M12
- 349,345
ladderMovesD3N7
- M1
- 92.2700
- M3
- 98.7000
- M6
- 109.4500
- M12
- 101.9200
ladderClearsPerMoveD3N7
- M1
- 1.9849
- M3
- 2.0033
- M6
- 2.0447
- M12
- 2.0231
ladderRevealsPerMoveD3N7
- M1
- 1.1001
- M3
- 1.1111
- M6
- 1.1423
- M12
- 1.1309
ladderOccupiedD3N7
- M1
- 23.8800
- M3
- 23.8100
- M6
- 23.4900
- M12
- 23.3900
ladderWorkPerMoveD3N7
- M1
- 156,834
- M3
- 1,045,719
- M6
- 4,244,020
- M12
- 13,506,434
jointCoverageByM
- M1
- 0.1430
- M2
- 0.2860
- M3
- 0.4290
- M6
- 0.8570
- M12
- 1
d4N7M2WorkPerMove
20,178,327
d3N7M12MeanScore
349345.2188
d3N7M12MedianScore
258,855
d3N7M12ScoreSd
254059.0100
d3N7M12WorkPerMove
13,506,434
d3N7M12GamesAtOrAboveOneMillion
3
pairedD4M2MinusD4M1
- n
- 64
- meanScoreDelta
- -41,950
- lowerBound95
- -100,137
- upperBound95
- 17,541
- meanMoveDelta
- -11.0200
- winTieLoss
- 28-0-36
- workRatio
- 4.0700
- half1
- -11,082
- half2
- -72,818
pairedD4M2MinusD4N5M1
- n
- 64
- meanScoreDelta
- 59,221
- lowerBound95
- 9,134
- upperBound95
- 111,812
- winTieLoss
- 37-0-27
- workRatio
- 15.5700
pairedD4M2MinusD3M6
- n
- 64
- meanScoreDelta
- -19,894
- lowerBound95
- -76,456
- upperBound95
- 36,846
- winTieLoss
- 37-0-27
- workRatio
- 4.7500
pairedD3M6MinusD4M1
- n
- 64
- meanScoreDelta
- -22,056
- lowerBound95
- -89,867
- upperBound95
- 46,009
- winTieLoss
- 30-0-34
- workRatio
- 0.8600
pairedD3M3MinusD3M1
- n
- 64
- meanScoreDelta
- 24,980
- lowerBound95
- -23,451
- upperBound95
- 73,442
- winTieLoss
- 32-0-32
pairedD3M6MinusD3M1
- n
- 64
- meanScoreDelta
- 64,116
- lowerBound95
- 7,475
- upperBound95
- 121,776
- winTieLoss
- 36-0-28
pairedD3M12MinusD3M6
- n
- 64
- meanScoreDelta
- -27,097
- lowerBound95
- -83,807
- upperBound95
- 31,209
- meanMoveDelta
- -7.5300
- winTieLoss
- 28-0-36
- workRatio
- 3.1800
- half1
- -4,495
- half2
- -49,698
pairedD3M12MinusD3M1
- n
- 64
- meanScoreDelta
- 37,019
- lowerBound95
- -25,076
- upperBound95
- 102,426
- meanMoveDelta
- 9.6600
- winTieLoss
- 30-0-34
pairedD3M12MinusD4M1
- n
- 64
- meanScoreDelta
- -49,153
- lowerBound95
- -125,029
- upperBound95
- 27,828
- meanMoveDelta
- -12.7300
- winTieLoss
- 22-0-42
boundDiagnosticsD4N7M2
- decisions
- 6,633
- decisionsBelowTargetDepth
- 0
- workLimitEvents
- 0
- minCompletedDepth
- 4
- maxDecisionWork
- 81,686,570
- declaredBound
- 187,336,114
boundDiagnosticsD3N7M12
- decisions
- 6,523
- decisionsBelowTargetDepth
- 0
- workLimitEvents
- 0
- minCompletedDepth
- 3
- maxDecisionWork
- 190,214,472
- declaredBound
- 407,634,528
poolingValidity
- games
- 64
- fieldMismatches
- 0
- summedLogicalWorkChunked1Thread
- 312,966,881
- summedLogicalWorkSingle12Thread
- 312,966,881
- onlyDifferingField
- per-game wallSeconds
- note
- depth 3 (N=5, M=1) run as four 16-game chunks at 1 thread against the existing single 64-game 12-thread artifact; also a worker-count independence check. Recorded in finding-09 Continuation section 12.
poolDeterminism
the completing agent's single-file pooling and this session's independent re-pooling of the same four chunks produce byte-identical artifacts for both arms (d4-n7-m2.json vs d4-n7-m2-pooled.json, d3-n7-m12.json vs d3-n7-m12-pooled.json)
scoreIdentityFailuresAllArms
0
bootstrap
one-sided 95% percentile bootstrap over whole paired games, 20,000 resamples, seed 0xb0075eed (stats.py); upper bounds from the same estimator at alpha 0.95
preregisteredtier CHECKdiagnosticpreviously-evaluated-developmentEX-20260822-entombed-disc-corpus-analysis-38be404e
On runs/RUN-A51D-corpus/all.states (5.26M positions from depth-1..4 behaviour policies with epsilon exploration, explored records excluded), computing the structural entombed-disc features defined in analyze.py and the frozen fast leaf's 18 features via leafdump.cpp: (1) at least half of complete depth-4 games end with an entombed >= 3 disc on the board; (2) the median lead time from first persistent appearance to death is at least 10 moves; (3) the held-out partial correlation of ent_count_ge3 with log1p(movesToDeath) beyond the 18 leaf features + occupancy + rise clock is at most -0.05 and the incremental held-out R^2 is at least 0.005.
Candidateentombed-disc-features
approaches/lifetime-objective/entombed-discs/analyze.py Comparatorfair-d4
approaches/fair-expectimax/reference/fair-only-depth4.cpp outcome: failrun: validmechanics-onlyRS-20260822T051732Z-ceb257d7
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).
| Gate criterion | Verdict | Observed |
|---|
| analysis completes on all non-explored records with finite leaf values | pass | 4863627 records analysed, 393554 explored records excluded, 0 invalid leaf rows |
| depth-4 fracAtDeath >= 0.5 | pass | 0.7539 |
| depth-4 lead-time median >= 10 moves | pass | median 11.0, q25 5.5, q75 15.0 |
| held-out partial correlation <= -0.05 AND incremental R^2 >= 0.005 | fail | partial -0.0234; incremental R^2 0.00031; depth-4-only incremental R^2 0.00043 |
Raw metrics (5)
prevalence
- depth1
- states
- 664,432
- fracWithEntombedGe3
- 0.2291
- fracWithEntombedLe2
- 0.7340
- byMovesToDeath
- death<=5
- states
- 70,086
- fracWithEntombedGe3
- 0.6572
- meanEntombedGe3
- 1.5275
- meanOccupancy
- 38.0101
- fracWithEntombed34
- 0.6525
- death6-15
- states
- 142,831
- fracWithEntombedGe3
- 0.4339
- meanEntombedGe3
- 0.7169
- meanOccupancy
- 31.2209
- fracWithEntombed34
- 0.4324
- death16-40
- states
- 323,577
- fracWithEntombedGe3
- 0.1177
- meanEntombedGe3
- 0.1483
- meanOccupancy
- 22.1048
- fracWithEntombed34
- 0.1174
- death>40
- states
- 127,938
- fracWithEntombedGe3
- 0.0477
- meanEntombedGe3
- 0.0580
- meanOccupancy
- 17.3375
- fracWithEntombed34
- 0.0477
- depth2
- states
- 3,840,470
- fracWithEntombedGe3
- 0.2056
- fracWithEntombedLe2
- 0.7731
- byMovesToDeath
- death<=5
- states
- 302,037
- fracWithEntombedGe3
- 0.6640
- meanEntombedGe3
- 1.5443
- meanOccupancy
- 38.6116
- fracWithEntombed34
- 0.6588
- death6-15
- states
- 609,783
- fracWithEntombedGe3
- 0.4542
- meanEntombedGe3
- 0.7616
- meanOccupancy
- 31.7454
- fracWithEntombed34
- 0.4527
- death16-40
- states
- 1,472,663
- fracWithEntombedGe3
- 0.1487
- meanEntombedGe3
- 0.1933
- meanOccupancy
- 23.8524
- fracWithEntombed34
- 0.1484
- death>40
- states
- 1,455,987
- fracWithEntombedGe3
- 0.0640
- meanEntombedGe3
- 0.0787
- meanOccupancy
- 19.2009
- fracWithEntombed34
- 0.0639
- depth3
- states
- 295,894
- fracWithEntombedGe3
- 0.1981
- fracWithEntombedLe2
- 0.7871
- byMovesToDeath
- death<=5
- states
- 19,429
- fracWithEntombedGe3
- 0.6915
- meanEntombedGe3
- 1.5718
- meanOccupancy
- 39.2730
- fracWithEntombed34
- 0.6840
- death6-15
- states
- 39,219
- fracWithEntombedGe3
- 0.4741
- meanEntombedGe3
- 0.8055
- meanOccupancy
- 32.2350
- fracWithEntombed34
- 0.4727
- death16-40
- states
- 95,924
- fracWithEntombedGe3
- 0.1716
- meanEntombedGe3
- 0.2273
- meanOccupancy
- 24.5149
- fracWithEntombed34
- 0.1714
- death>40
- states
- 141,322
- fracWithEntombedGe3
- 0.0716
- meanEntombedGe3
- 0.0883
- meanOccupancy
- 19.7004
- fracWithEntombed34
- 0.0716
- depth4
- states
- 62,831
- fracWithEntombedGe3
- 0.1912
- fracWithEntombedLe2
- 0.7960
- byMovesToDeath
- death<=5
- states
- 3,709
- fracWithEntombedGe3
- 0.6983
- meanEntombedGe3
- 1.5980
- meanOccupancy
- 40.0768
- fracWithEntombed34
- 0.6945
- death6-15
- states
- 7,461
- fracWithEntombedGe3
- 0.4832
- meanEntombedGe3
- 0.8128
- meanOccupancy
- 32.7330
- fracWithEntombed34
- 0.4801
- death16-40
- states
- 18,403
- fracWithEntombedGe3
- 0.1783
- meanEntombedGe3
- 0.2425
- meanOccupancy
- 24.8813
- fracWithEntombed34
- 0.1777
- death>40
- states
- 33,258
- fracWithEntombedGe3
- 0.0763
- meanEntombedGe3
- 0.0941
- meanOccupancy
- 20.0137
- fracWithEntombed34
- 0.0761
occupancyMatched
- occ12-15
- with
- 513
- without
- 186,855
- meanMovesToDeathWith
- 63.0546
- meanMovesToDeathWithout
- 61.1056
- medianWith
- 57
- medianWithout
- 53
- occ16-19
- with
- 6,583
- without
- 658,931
- meanMovesToDeathWith
- 55.4624
- meanMovesToDeathWithout
- 54.8682
- medianWith
- 48
- medianWithout
- 47
- occ20-23
- with
- 43,236
- without
- 856,842
- meanMovesToDeathWith
- 45.5290
- meanMovesToDeathWithout
- 47.7573
- medianWith
- 38
- medianWithout
- 40
- occ24-27
- with
- 142,959
- without
- 845,929
- meanMovesToDeathWith
- 35.0183
- meanMovesToDeathWithout
- 37.3720
- medianWith
- 28
- medianWithout
- 30
- occ28-31
- with
- 233,244
- without
- 541,605
- meanMovesToDeathWith
- 24.6265
- meanMovesToDeathWithout
- 26.3040
- medianWith
- 18
- medianWithout
- 20
- occ32-35
- with
- 232,362
- without
- 235,132
- meanMovesToDeathWith
- 14.6345
- meanMovesToDeathWithout
- 15.7091
- medianWith
- 11
- medianWithout
- 12
- occ36-39
- with
- 168,268
- without
- 78,623
- meanMovesToDeathWith
- 8.2391
- meanMovesToDeathWithout
- 8.4068
- medianWith
- 7
- medianWithout
- 7
leadTime
- depth3
- completeGames
- 4,096
- gamesWithEntombedGe3AtDeath
- 3,011
- fracAtDeath
- 0.7351
- leadTimeMoves
- median
- 10
- q25
- 6
- q75
- 15
- mean
- 11.0651
- fracAtLeast10
- 0.5739
- fracAtLeast20
- 0.0973
- meanGameLength
- 75.4805
- depth4
- completeGames
- 768
- gamesWithEntombedGe3AtDeath
- 579
- fracAtDeath
- 0.7539
- leadTimeMoves
- median
- 11
- q25
- 5.5000
- q75
- 15
- mean
- 10.8377
- fracAtLeast10
- 0.5665
- fracAtLeast20
- 0.0794
- meanGameLength
- 84.0182
incrementalSignal
- leafScalar+occupancy
- heldOutR2
- 0.6593
- heldOutPearson
- 0.8120
- train
- 3,891,854
- test
- 486,819
- leafFeatures18+occupancy
- heldOutR2
- 0.6952
- heldOutPearson
- 0.8338
- train
- 3,891,854
- test
- 486,819
- leafFeatures18+occupancy+entombed
- heldOutR2
- 0.6955
- heldOutPearson
- 0.8340
- train
- 3,891,854
- test
- 486,819
- entombedOnly+occupancy
- heldOutR2
- 0.5588
- heldOutPearson
- 0.7476
- train
- 3,891,854
- test
- 486,819
- depth4only
- leafFeatures18+occupancy
- heldOutR2
- 0.6483
- heldOutPearson
- 0.8062
- train
- 50,003
- test
- 5,528
- leafFeatures18+occupancy+entombed
- heldOutR2
- 0.6488
- heldOutPearson
- 0.8065
- train
- 50,003
- test
- 5,528
- depth3only
- leafFeatures18+occupancy
- heldOutR2
- 0.6657
- heldOutPearson
- 0.8162
- train
- 235,370
- test
- 28,612
- leafFeatures18+occupancy+entombed
- heldOutR2
- 0.6662
- heldOutPearson
- 0.8165
- train
- 235,370
- test
- 28,612
- partialCorrelationHeldOut
- ent_count_ge3
- -0.0234
- ent_mass_ge3
- -0.0156
- ent_covers_ge3
- -0.0162
- ent_top_ge3
- -0.0241
- ent_count_34
- -0.0234
featureMeans
- ent_count_ge3
- 0.3518
- ent_mass_ge3
- 8.1043
- ent_covers_ge3
- 1.1874
- ent_top_ge3
- 0.1959
- ent_count_le2
- 2.3535
- ent_count_34
- 0.3465
completedtier SCREENalgorithmicpublic-developmentEX-20260822-leaf-cmaes-d4s7-4f5f462a
Starting from the frozen vector in sign-normalised coordinates (sigma0 = 0.25 relative), a (8/8_w, 16)-CMA-ES with mirrored sampling whose fitness is the mean score of 32 complete depth-4 five-stratum games on a fresh contiguous block of the training lease per generation (the frozen vector played on every block as a control) produces, after at most 40 generations, a distribution mean whose 64-game held-out paired delta against the frozen leaf passes the gate below. Tuning and deployment use the same search: the bit-exact fast engine (finding-13) with the leaf weights as data, depth 4, five strata, cache 60,000, worst-case-bound work, terminal utility -1,000,000, policy seed 0xd7075eed.
Candidatefast-d4s5-evolved-leaf
approaches/lifetime-objective/leaf-evolution/evolve.py Comparatorfair-d4
approaches/fair-expectimax/reference/fair-only-depth4.cpp outcome: failrun: validpublic-developmentRS-20260822T120736Z-662b39ca
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.
| Gate criterion | Verdict | Observed |
|---|
| CHECK gates passed before the first training seed (runs/RUN-20260822T013756Z-0f7ab038/gates.log) | pass | 6 of 6 gates passed, 0 mismatches; recorded in RUN-20260822T013756Z-0f7ab038 |
| incompleteDecisionsTotal 0, illegalDecisionsTotal 0, no score-identity failures across all generation and screen artifacts | pass | incomplete 0, illegal 0, identity failures 0 over 40 generations and 2 screen arms |
| held-out d4s5: bootstrap 95% lower bound > 0 AND Student-t 95% lower bound > 0 | fail | mean delta -30300.4, bootstrap LB -70928.5, t LB -71499.9, floor 40597.3 |
| held-out d4s5: candidate Q25 >= frozen Q25 | pass | Q25 candidate 188540.2 vs frozen 179948.5 |
| held-out d4s5: paired mean delta > 0 in both halves | fail | halves -53933.4 / -6667.4 |
| the screened vector is the CMA distribution mean frozen before the held-out lease was opened | pass | candidate-weights.txt sha256 0dd29deb11f0238455353a396098e85c47ba4e02587c48286557bcad5429b637; final.json stop reason max-generations after 40 generations |
Raw metrics (4)
heldOutD4S5
- candidate
- name
- candidate
- games
- 64
- score
- mean
- 289719.6563
- median
- 250811.5000
- sd
- 157309.7762
- q25
- 188540.2500
- min
- 103,274
- max
- 951,994
- moves
- mean
- 85.5313
- q25
- 58.7500
- numberedClearsPerMove
- 1.9731
- coverRevealsPerMove
- 1.0981
- maxChainDepth
- 11
- meanOccupiedCells
- 23.4275
- censoredGames
- 0
- incompleteDecisions
- 0
- illegalDecisions
- 0
- gamesAtOrAboveMillion
- 0
- reference
- name
- frozen
- games
- 64
- score
- mean
- 320020.0469
- median
- 274934.5000
- sd
- 190746.2218
- q25
- 179948.5000
- min
- 102,878
- max
- 933,091
- numberedClearsPerMove
- 1.9676
- coverRevealsPerMove
- 1.0810
- maxChainDepth
- 10
- meanOccupiedCells
- 24.3490
- censoredGames
- 0
- incompleteDecisions
- 0
- illegalDecisions
- 0
- gamesAtOrAboveMillion
- 0
- pairedScore
- n
- 64
- meanDelta
- -30300.3906
- pairedSd
- 197433.6487
- bootstrapLower95
- -70928.4727
- bootstrapUpper95
- 9786.4258
- studentTLower95
- -71499.9121
- studentTQuantile
- 1.6694
- detectionFloor
- 40597.2940
- detectionFloorNote
- 1.645 * sd / sqrt(n), the z-based floor defined in docs/research/status.md
- wins
- 28
- ties
- 0
- losses
- 36
- firstHalfMeanDelta
- -53933.4063
- secondHalfMeanDelta
- -6667.3750
- q25Delta
- 8591.7500
- largestSwings
- -593,033
- -533,691
- -514,095
- 438,358
- 365,844
- bootstrapSeedHex
- 0xb0071eaf
- resamples
- 20,000
- pairedMoves
- n
- 64
- meanDelta
- -8.0156
- pairedSd
- 53.1609
- bootstrapLower95
- -18.9531
- bootstrapUpper95
- 2.8125
- studentTLower95
- -19.1090
- studentTQuantile
- 1.6694
- detectionFloor
- 10.9312
- detectionFloorNote
- 1.645 * sd / sqrt(n), the z-based floor defined in docs/research/status.md
- wins
- 27
- ties
- 4
- losses
- 33
- firstHalfMeanDelta
- -14.1563
- secondHalfMeanDelta
- -1.8750
- q25Delta
- 3.7500
- largestSwings
- -160
- -145
- -137
- 115
- 101
- bootstrapSeedHex
- 0xb0071eaf
- resamples
- 20,000
heldOutD4S7Diagnostic
- candidate
- name
- candidate
- games
- 64
- score
- mean
- 346762.6250
- median
- 264269.5000
- sd
- 229722.0652
- q25
- 176323.2500
- min
- 104,372
- max
- 1,090,823
- numberedClearsPerMove
- 2.0216
- coverRevealsPerMove
- 1.1240
- maxChainDepth
- 12
- meanOccupiedCells
- 23.4526
- censoredGames
- 0
- incompleteDecisions
- 0
- illegalDecisions
- 0
- gamesAtOrAboveMillion
- 1
- reference
- name
- frozen
- games
- 64
- score
- mean
- 393881.4375
- median
- 320,713
- sd
- 249901.8659
- q25
- 195442.7500
- min
- 102,870
- max
- 1,130,039
- numberedClearsPerMove
- 2.0640
- coverRevealsPerMove
- 1.1621
- maxChainDepth
- 10
- meanOccupiedCells
- 23.2727
- censoredGames
- 0
- incompleteDecisions
- 0
- illegalDecisions
- 0
- gamesAtOrAboveMillion
- 2
- pairedScore
- n
- 64
- meanDelta
- -47118.8125
- pairedSd
- 352065.1287
- bootstrapLower95
- -117909.7625
- bootstrapUpper95
- 25407.0273
- studentTLower95
- -120586.1010
- studentTQuantile
- 1.6694
- detectionFloor
- 72393.3921
- detectionFloorNote
- 1.645 * sd / sqrt(n), the z-based floor defined in docs/research/status.md
- wins
- 29
- ties
- 1
- losses
- 34
- firstHalfMeanDelta
- 28192.9063
- secondHalfMeanDelta
- -122430.5313
- q25Delta
- -19119.5000
- largestSwings
- -937,256
- 827,839
- -822,882
- -820,654
- 660,216
- bootstrapSeedHex
- 0xb0071eaf
- resamples
- 20,000
- pairedMoves
- n
- 64
- meanDelta
- -12.5781
- pairedSd
- 96.0415
- bootstrapLower95
- -31.8758
- bootstrapUpper95
- 7.2344
- studentTLower95
- -32.6196
- studentTQuantile
- 1.6694
- detectionFloor
- 19.7485
- detectionFloorNote
- 1.645 * sd / sqrt(n), the z-based floor defined in docs/research/status.md
- wins
- 28
- ties
- 5
- losses
- 31
- firstHalfMeanDelta
- 7.5938
- secondHalfMeanDelta
- -32.7500
- q25Delta
- -5
- largestSwings
- -255
- 230
- -225
- -225
- 180
- bootstrapSeedHex
- 0xb0071eaf
- resamples
- 20,000
evolution
- generationsCompleted
- 40
- stopReason
- max-generations
- finalSigma
- 0.0652
- wallHours
- 9.7180
- seedsConsumedEndExclusiveHex
- 0xa5290500
- candidateWeights
- open_columns
- 148.0413
- height_load
- -30.0776
- solid_cells
- -557.0387
- cracked_cells
- -326.7377
- numbered_cells
- -25.3490
- high_low_numbers
- -60.4035
- direct_potential
- 1230.7800
- latent_chain_potential
- 608.4009
- cracked_exposure
- 131.4615
- solid_exposure
- 29.9260
- adjacent_ones
- -541.3196
- triple_twos
- -1010.3798
- dead_low_numbers
- -124.7647
- covered_height_risk
- -106.2648
- low_number_height_risk
- -122.5011
- danger_height_squared
- -370.8171
- rise_pressure
- -56.8454
- next_disc_vertical_options
- 243.3987
- progress
- gen
- 0
- seedStartHex
- 0xa5290000
- games
- 32
- controlMean
- 292650.4688
- populationMean
- 317698.3945
- populationBest
- 395203.9063
- bestIndex
- 10
- populationWorst
- 256451.2188
- meanPairedDeltaVsControl
- 25047.9258
- medianPairedSdVsControl
- 257159.9862
- sigma
- 0.2308
- condition
- 1
- wallSeconds
- 879.2809
- evaluatorWallSeconds
- 879.2180
- gen
- 1
- seedStartHex
- 0xa5290020
- games
- 32
- controlMean
- 331323.8125
- populationMean
- 333282.2930
- populationBest
- 409984.8438
- bestIndex
- 13
- populationWorst
- 251655.2188
- meanPairedDeltaVsControl
- 1958.4805
- medianPairedSdVsControl
- 282134.8053
- sigma
- 0.2097
- condition
- 1.0568
- wallSeconds
- 1055.1275
- evaluatorWallSeconds
- 1055.1069
- gen
- 2
- seedStartHex
- 0xa5290040
- games
- 32
- controlMean
- 355123.6250
- populationMean
- 341635.2910
- populationBest
- 397514.8125
- bestIndex
- 12
- populationWorst
- 297434.1563
- meanPairedDeltaVsControl
- -13488.3340
- medianPairedSdVsControl
- 222916.1663
- sigma
- 0.2040
- condition
- 1.0776
- wallSeconds
- 1143.9142
- evaluatorWallSeconds
- 1143.8994
- gen
- 3
- seedStartHex
- 0xa5290060
- games
- 32
- controlMean
- 300,919
- populationMean
- 315542.7715
- populationBest
- 383093.1250
- bestIndex
- 7
- populationWorst
- 269873.3438
- meanPairedDeltaVsControl
- 14623.7715
- medianPairedSdVsControl
- 190883.2522
- sigma
- 0.2031
- condition
- 1.1176
- wallSeconds
- 925.8001
- evaluatorWallSeconds
- 925.7860
- gen
- 4
- seedStartHex
- 0xa5290080
- games
- 32
- controlMean
- 244690.7500
- populationMean
- 298252.3008
- populationBest
- 357613.4063
- bestIndex
- 6
- populationWorst
- 235541.1875
- meanPairedDeltaVsControl
- 53561.5508
- medianPairedSdVsControl
- 191238.0987
- sigma
- 0.2018
- condition
- 1.1561
- wallSeconds
- 826.2938
- evaluatorWallSeconds
- 826.2856
- gen
- 5
- seedStartHex
- 0xa52900a0
- games
- 32
- controlMean
- 411910.3438
- populationMean
- 337136.5488
- populationBest
- 412157.2813
- bestIndex
- 11
- populationWorst
- 292414.5938
- meanPairedDeltaVsControl
- -74773.7949
- medianPairedSdVsControl
- 281498.3952
- sigma
- 0.1994
- condition
- 1.2015
- wallSeconds
- 970.7468
- evaluatorWallSeconds
- 970.7302
- gen
- 6
- seedStartHex
- 0xa52900c0
- games
- 32
- controlMean
- 324333.4688
- populationMean
- 313821.2832
- populationBest
- 384518.5313
- bestIndex
- 10
- populationWorst
- 275682.7188
- meanPairedDeltaVsControl
- -10512.1855
- medianPairedSdVsControl
- 213547.0042
- sigma
- 0.1956
- condition
- 1.2253
- wallSeconds
- 882.3206
- evaluatorWallSeconds
- 882.3045
- gen
- 7
- seedStartHex
- 0xa52900e0
- games
- 32
- controlMean
- 314238.3125
- populationMean
- 299477.0293
- populationBest
- 356821.7188
- bestIndex
- 2
- populationWorst
- 252119.6875
- meanPairedDeltaVsControl
- -14761.2832
- medianPairedSdVsControl
- 209719.3799
- sigma
- 0.1888
- condition
- 1.2669
- wallSeconds
- 876.8127
- evaluatorWallSeconds
- 876.7968
- gen
- 8
- seedStartHex
- 0xa5290100
- games
- 32
- controlMean
- 322854.4063
- populationMean
- 315864.7285
- populationBest
- 386536.7500
- bestIndex
- 8
- populationWorst
- 277846.9375
- meanPairedDeltaVsControl
- -6989.6777
- medianPairedSdVsControl
- 206748.7277
- sigma
- 0.1751
- condition
- 1.2834
- wallSeconds
- 900.3674
- evaluatorWallSeconds
- 900.3524
- gen
- 9
- seedStartHex
- 0xa5290120
- games
- 32
- controlMean
- 337027.1250
- populationMean
- 319454.0605
- populationBest
- 387768.5313
- bestIndex
- 5
- populationWorst
- 263397.5000
- meanPairedDeltaVsControl
- -17573.0645
- medianPairedSdVsControl
- 229496.0838
- sigma
- 0.1678
- condition
- 1.2874
- wallSeconds
- 926.3565
- evaluatorWallSeconds
- 926.3408
- gen
- 10
- seedStartHex
- 0xa5290140
- games
- 32
- controlMean
- 314070.5625
- populationMean
- 297247.2617
- populationBest
- 408713.2813
- bestIndex
- 10
- populationWorst
- 256560.1875
- meanPairedDeltaVsControl
- -16823.3008
- medianPairedSdVsControl
- 232905.0067
- sigma
- 0.1582
- condition
- 1.3195
- wallSeconds
- 851.7892
- evaluatorWallSeconds
- 851.7750
- gen
- 11
- seedStartHex
- 0xa5290160
- games
- 32
- controlMean
- 330154.5625
- populationMean
- 308306.4590
- populationBest
- 359216.5313
- bestIndex
- 1
- populationWorst
- 256,147
- meanPairedDeltaVsControl
- -21848.1035
- medianPairedSdVsControl
- 216546.4329
- sigma
- 0.1453
- condition
- 1.3338
- wallSeconds
- 878.2832
- evaluatorWallSeconds
- 878.2706
- gen
- 12
- seedStartHex
- 0xa5290180
- games
- 32
- controlMean
- 267510.2188
- populationMean
- 295379.1504
- populationBest
- 347882.6563
- bestIndex
- 7
- populationWorst
- 252667.1875
- meanPairedDeltaVsControl
- 27868.9316
- medianPairedSdVsControl
- 215364.0723
- sigma
- 0.1357
- condition
- 1.3425
- wallSeconds
- 816.9223
- evaluatorWallSeconds
- 816.9068
- gen
- 13
- seedStartHex
- 0xa52901a0
- games
- 32
- controlMean
- 281312.4688
- populationMean
- 305882.2344
- populationBest
- 344430.8438
- bestIndex
- 15
- populationWorst
- 265519.5313
- meanPairedDeltaVsControl
- 24569.7656
- medianPairedSdVsControl
- 220029.4649
- sigma
- 0.1307
- condition
- 1.3579
- wallSeconds
- 870.3636
- evaluatorWallSeconds
- 870.3485
- gen
- 14
- seedStartHex
- 0xa52901c0
- games
- 32
- controlMean
- 306501.9375
- populationMean
- 293954.7305
- populationBest
- 323774.5625
- bestIndex
- 11
- populationWorst
- 261123.2500
- meanPairedDeltaVsControl
- -12547.2070
- medianPairedSdVsControl
- 226236.3821
- sigma
- 0.1243
- condition
- 1.3639
- wallSeconds
- 859.9627
- evaluatorWallSeconds
- 859.9490
- gen
- 15
- seedStartHex
- 0xa52901e0
- games
- 32
- controlMean
- 324819.8125
- populationMean
- 320132.2129
- populationBest
- 372,096
- bestIndex
- 6
- populationWorst
- 280408.7188
- meanPairedDeltaVsControl
- -4687.5996
- medianPairedSdVsControl
- 229391.3653
- sigma
- 0.1176
- condition
- 1.3756
- wallSeconds
- 908.5931
- evaluatorWallSeconds
- 908.5782
- gen
- 16
- seedStartHex
- 0xa5290200
- games
- 32
- controlMean
- 307740.2813
- populationMean
- 316884.4844
- populationBest
- 355074.2813
- bestIndex
- 6
- populationWorst
- 267560.5938
- meanPairedDeltaVsControl
- 9144.2031
- medianPairedSdVsControl
- 203642.8706
- sigma
- 0.1112
- condition
- 1.3625
- wallSeconds
- 891.5091
- evaluatorWallSeconds
- 891.4940
- gen
- 17
- seedStartHex
- 0xa5290220
- games
- 32
- controlMean
- 279214.2813
- populationMean
- 290942.4883
- populationBest
- 343331.5000
- bestIndex
- 13
- populationWorst
- 254166.6563
- meanPairedDeltaVsControl
- 11728.2070
- medianPairedSdVsControl
- 202693.2109
- sigma
- 0.1026
- condition
- 1.3639
- wallSeconds
- 821.1754
- evaluatorWallSeconds
- 821.1615
- gen
- 18
- seedStartHex
- 0xa5290240
- games
- 32
- controlMean
- 349346.5625
- populationMean
- 304053.8145
- populationBest
- 340,435
- bestIndex
- 2
- populationWorst
- 265592.6250
- meanPairedDeltaVsControl
- -45292.7480
- medianPairedSdVsControl
- 223599.3402
- sigma
- 0.0996
- condition
- 1.3594
- wallSeconds
- 883.3804
- evaluatorWallSeconds
- 883.3667
- gen
- 19
- seedStartHex
- 0xa5290260
- games
- 32
- controlMean
- 258603.1563
- populationMean
- 298239.6074
- populationBest
- 401832.6563
- bestIndex
- 0
- populationWorst
- 246027.5625
- meanPairedDeltaVsControl
- 39636.4512
- medianPairedSdVsControl
- 183667.2882
- sigma
- 0.0950
- condition
- 1.3684
- wallSeconds
- 837.9650
- evaluatorWallSeconds
- 837.9487
- gen
- 20
- seedStartHex
- 0xa5290280
- games
- 32
- controlMean
- 319503.3750
- populationMean
- 357245.7051
- populationBest
- 414937.5000
- bestIndex
- 11
- populationWorst
- 284687.1563
- meanPairedDeltaVsControl
- 37742.3301
- medianPairedSdVsControl
- 231844.0098
- sigma
- 0.0899
- condition
- 1.3876
- wallSeconds
- 991.7921
- evaluatorWallSeconds
- 991.7767
- gen
- 21
- seedStartHex
- 0xa52902a0
- games
- 32
- controlMean
- 288687.4688
- populationMean
- 306587.9668
- populationBest
- 399982.9063
- bestIndex
- 13
- populationWorst
- 271227.9375
- meanPairedDeltaVsControl
- 17900.4980
- medianPairedSdVsControl
- 207016.5421
- sigma
- 0.0906
- condition
- 1.3964
- wallSeconds
- 864.9214
- evaluatorWallSeconds
- 864.9060
- gen
- 22
- seedStartHex
- 0xa52902c0
- games
- 32
- controlMean
- 317476.8750
- populationMean
- 331994.4766
- populationBest
- 393960.2813
- bestIndex
- 12
- populationWorst
- 254229.4375
- meanPairedDeltaVsControl
- 14517.6016
- medianPairedSdVsControl
- 228309.3911
- sigma
- 0.0921
- condition
- 1.4173
- wallSeconds
- 990.5519
- evaluatorWallSeconds
- 990.5361
- gen
- 23
- seedStartHex
- 0xa52902e0
- games
- 32
- controlMean
- 331177.3125
- populationMean
- 306366.6367
- populationBest
- 375437.4063
- bestIndex
- 11
- populationWorst
- 278781.9688
- meanPairedDeltaVsControl
- -24810.6758
- medianPairedSdVsControl
- 268787.2582
- sigma
- 0.0911
- condition
- 1.4223
- wallSeconds
- 872.1912
- evaluatorWallSeconds
- 872.1769
- gen
- 24
- seedStartHex
- 0xa5290300
- games
- 32
- controlMean
- 274604.0625
- populationMean
- 288459.4063
- populationBest
- 328693.5938
- bestIndex
- 2
- populationWorst
- 249625.1563
- meanPairedDeltaVsControl
- 13855.3438
- medianPairedSdVsControl
- 214462.9845
- sigma
- 0.0880
- condition
- 1.4649
- wallSeconds
- 816.9897
- evaluatorWallSeconds
- 816.9740
- gen
- 25
- seedStartHex
- 0xa5290320
- games
- 32
- controlMean
- 394248.8125
- populationMean
- 318951.4746
- populationBest
- 371139.2813
- bestIndex
- 14
- populationWorst
- 257599.8438
- meanPairedDeltaVsControl
- -75297.3379
- medianPairedSdVsControl
- 355548.1631
- sigma
- 0.0888
- condition
- 1.4694
- wallSeconds
- 933.6182
- evaluatorWallSeconds
- 933.6092
- gen
- 26
- seedStartHex
- 0xa5290340
- games
- 32
- controlMean
- 373975.8438
- populationMean
- 305625.9570
- populationBest
- 372646.2813
- bestIndex
- 12
- populationWorst
- 263425.0938
- meanPairedDeltaVsControl
- -68349.8867
- medianPairedSdVsControl
- 248534.7412
- sigma
- 0.0860
- condition
- 1.4752
- wallSeconds
- 856.1095
- evaluatorWallSeconds
- 856.0943
- gen
- 27
- seedStartHex
- 0xa5290360
- games
- 32
- controlMean
- 306527.3438
- populationMean
- 311577.5840
- populationBest
- 361121.5313
- bestIndex
- 14
- populationWorst
- 261,334
- meanPairedDeltaVsControl
- 5050.2402
- medianPairedSdVsControl
- 244600.9454
- sigma
- 0.0860
- condition
- 1.4856
- wallSeconds
- 864.5847
- evaluatorWallSeconds
- 864.5752
- gen
- 28
- seedStartHex
- 0xa5290380
- games
- 32
- controlMean
- 425243.6250
- populationMean
- 336869.3926
- populationBest
- 392982.9063
- bestIndex
- 4
- populationWorst
- 294603.5000
- meanPairedDeltaVsControl
- -88374.2324
- medianPairedSdVsControl
- 272346.5070
- sigma
- 0.0815
- condition
- 1.5208
- wallSeconds
- 967.0923
- evaluatorWallSeconds
- 967.0789
- gen
- 29
- seedStartHex
- 0xa52903a0
- games
- 32
- controlMean
- 352649.8750
- populationMean
- 305152.9082
- populationBest
- 358598.1563
- bestIndex
- 4
- populationWorst
- 247336.2188
- meanPairedDeltaVsControl
- -47496.9668
- medianPairedSdVsControl
- 258355.8448
- sigma
- 0.0777
- condition
- 1.5243
- wallSeconds
- 855.1493
- evaluatorWallSeconds
- 855.1336
- gen
- 30
- seedStartHex
- 0xa52903c0
- games
- 32
- controlMean
- 260597.2188
- populationMean
- 320306.2441
- populationBest
- 386149.7500
- bestIndex
- 0
- populationWorst
- 283558.7813
- meanPairedDeltaVsControl
- 59709.0254
- medianPairedSdVsControl
- 213531.5884
- sigma
- 0.0726
- condition
- 1.5277
- wallSeconds
- 885.3881
- evaluatorWallSeconds
- 885.3722
- gen
- 31
- seedStartHex
- 0xa52903e0
- games
- 32
- controlMean
- 359296.3125
- populationMean
- 327388.4082
- populationBest
- 387984.2813
- bestIndex
- 4
- populationWorst
- 273712.4688
- meanPairedDeltaVsControl
- -31907.9043
- medianPairedSdVsControl
- 246018.3954
- sigma
- 0.0699
- condition
- 1.5327
- wallSeconds
- 915.2263
- evaluatorWallSeconds
- 915.2098
- gen
- 32
- seedStartHex
- 0xa5290400
- games
- 32
- controlMean
- 277942.3750
- populationMean
- 303626.5098
- populationBest
- 343677.5000
- bestIndex
- 1
- populationWorst
- 252287.8125
- meanPairedDeltaVsControl
- 25684.1348
- medianPairedSdVsControl
- 213494.7003
- sigma
- 0.0708
- condition
- 1.5431
- wallSeconds
- 876.0767
- evaluatorWallSeconds
- 876.0621
- gen
- 33
- seedStartHex
- 0xa5290420
- games
- 32
- controlMean
- 379779.7813
- populationMean
- 316443.3535
- populationBest
- 371682.6875
- bestIndex
- 3
- populationWorst
- 275071.9688
- meanPairedDeltaVsControl
- -63336.4277
- medianPairedSdVsControl
- 280981.8576
- sigma
- 0.0707
- condition
- 1.5663
- wallSeconds
- 886.5113
- evaluatorWallSeconds
- 886.4983
- gen
- 34
- seedStartHex
- 0xa5290440
- games
- 32
- controlMean
- 304261.7813
- populationMean
- 319626.4297
- populationBest
- 363,269
- bestIndex
- 1
- populationWorst
- 295119.8125
- meanPairedDeltaVsControl
- 15364.6484
- medianPairedSdVsControl
- 272748.8985
- sigma
- 0.0680
- condition
- 1.5899
- wallSeconds
- 889.6517
- evaluatorWallSeconds
- 889.6369
- gen
- 35
- seedStartHex
- 0xa5290460
- games
- 32
- controlMean
- 255848.6563
- populationMean
- 331995.6289
- populationBest
- 377511.2500
- bestIndex
- 14
- populationWorst
- 289589.3750
- meanPairedDeltaVsControl
- 76146.9727
- medianPairedSdVsControl
- 221086.8710
- sigma
- 0.0653
- condition
- 1.5876
- wallSeconds
- 923.6854
- evaluatorWallSeconds
- 923.6700
- gen
- 36
- seedStartHex
- 0xa5290480
- games
- 32
- controlMean
- 267823.7813
- populationMean
- 290865.1133
- populationBest
- 322046.1875
- bestIndex
- 11
- populationWorst
- 262735.1250
- meanPairedDeltaVsControl
- 23041.3320
- medianPairedSdVsControl
- 177721.0672
- sigma
- 0.0660
- condition
- 1.6020
- wallSeconds
- 831.9670
- evaluatorWallSeconds
- 831.9511
- gen
- 37
- seedStartHex
- 0xa52904a0
- games
- 32
- controlMean
- 310436.4375
- populationMean
- 309239.6777
- populationBest
- 359385.4688
- bestIndex
- 2
- populationWorst
- 271522.4688
- meanPairedDeltaVsControl
- -1196.7598
- medianPairedSdVsControl
- 271233.4125
- sigma
- 0.0675
- condition
- 1.6150
- wallSeconds
- 859.6889
- evaluatorWallSeconds
- 859.6734
- gen
- 38
- seedStartHex
- 0xa52904c0
- games
- 32
- controlMean
- 324310.9688
- populationMean
- 339401.6621
- populationBest
- 394045.8750
- bestIndex
- 2
- populationWorst
- 303462.0625
- meanPairedDeltaVsControl
- 15090.6934
- medianPairedSdVsControl
- 275916.6619
- sigma
- 0.0663
- condition
- 1.6348
- wallSeconds
- 931.3985
- evaluatorWallSeconds
- 931.3823
- gen
- 39
- seedStartHex
- 0xa52904e0
- games
- 32
- controlMean
- 300656.6250
- populationMean
- 280208.6367
- populationBest
- 308910.5313
- bestIndex
- 2
- populationWorst
- 246365.3125
- meanPairedDeltaVsControl
- -20447.9883
- medianPairedSdVsControl
- 206957.2805
- sigma
- 0.0652
- condition
- 1.6499
- wallSeconds
- 844.4164
- evaluatorWallSeconds
- 844.4023
detectionFloorNote
A 64-game paired cohort cannot resolve effects below roughly the stated floor; a fail rejects this exact configuration and does not show the frozen weights are optimal.
completedtier CHECKengineeringpreviously-evaluated-developmentEX-20260822-leaf-memo-gates-b31e4e7f
MemoSearch (fast-search.hpp with the leaf call replaced by fastFairLeafMemo below ++work_) passes: leaf bit identity in the search's feeding order on probe games at d4s5 and d4s7; parity with FastSearch on every move (column, work, nodes, cache hits, completed depth); identical results at 1 and 4 threads; interleaved timing ratio >= 1.5x on real roots.
Candidatefast-engine-memo MemoSearch
approaches/lifetime-objective/fast-engine-memo/gate.cpp Comparatorfair-d4
approaches/fair-expectimax/reference/fair-only-depth4.cpp outcome: passrun: validmechanics-onlyRS-20260822T074305Z-bd1697c8
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.
| Gate criterion | Verdict | Observed |
|---|
| 0 leaf bit mismatches at d4s5 and d4s7 | pass | 0/4,260 and 0/2,500 |
| 0 parity mismatches vs FastSearch | pass | 0 over 160 and 50 moves |
| 0 determinism mismatches | pass | 0 over 4 games |
| timing ratio >= 1.5 at both strata (indicative) | pass | 1.581 and 1.634 under load |
Raw metrics (4)
leafBits
- d4s5
- boards
- 4,260
- mismatches
- 0
- hitRateFeedOrder
- 0.5655
- d4s7
- boards
- 2,500
- mismatches
- 0
- hitRateFeedOrder
- 0.6392
parity
- d4s5
- moves
- 160
- mismatches
- 0
- leafCalls
- 117,732,775
- hitRate
- 0.6174
- d4s7
- moves
- 50
- mismatches
- 0
- leafCalls
- 119,607,901
- hitRate
- 0.6847
timingIndicative
- d4s5
- roots
- 12
- reps
- 3
- plainSeconds
- 7.1319
- memoSeconds
- 4.5098
- ratio
- 1.5814
- d4s7
- roots
- 6
- reps
- 2
- plainSeconds
- 12.5726
- memoSeconds
- 7.6951
- ratio
- 1.6338
preregisteredtier CHECKdiagnosticpreviously-evaluated-developmentEX-20260822-nnue-leaf-capacity-sweep-79632fd9
Training approaches/lifetime-objective/learned-leaf/train_leaf.py unchanged on runs/RUN-A51D-corpus/all.states (explored == 0 records, whole-origin split seed 0x59117000) over the 13-configuration grid in sweep.sh — hidden 32/64/128/256/512, mid 16/32/64, 10 or 20 epochs, lr 1e-3 or 3e-3, plus three training seeds at the baseline — yields a best held-out lifetime Pearson within 0.01 of the h64/m32/e10/lr3e-3 baseline (finding-08 recorded 0.8564 on the same split).
Candidateleafnet-capacity-grid
approaches/lifetime-objective/leaf-capacity-sweep/sweep.sh Comparatorfair-d4
approaches/fair-expectimax/reference/fair-only-depth4.cpp outcome: passrun: validmechanics-onlyRS-20260822T024228Z-94090db1
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.
| Gate criterion | Verdict | Observed |
|---|
| All 13 runs complete with finite metrics on the same split | pass | 13 rows, 0 FAILED lines in sweep.log |
| Gate verdict from summarize.py | pass | delta +0.0022 vs threshold max(0.005, 2 x 0.0023) -> supported-as-tested |
| Every number copied from the trainer's own <tag>.json output | pass | summarize.py reads heldOut/heldOutMirrored/history fields verbatim |
Raw metrics (8)
bestTag
h64-m64-e10-lr3e3-s0
gateVerdict
supported-as-tested
runs
- tag
- h128-m32-e10-lr3e3-s0
- hidden
- 128
- mid
- 32
- epochs
- 10
- lr
- 0.0030
- seed
- 42,282
- parameters
- 1,144,207
- lifetimePearson
- 0.8543
- mirroredPearson
- 0.8541
- lifetimeMAE
- 14.4423
- hazardAccMean
- 0.8387
- finalTrainLoss
- 0.5006
- trainWallSeconds
- 10.7382
- tag
- h128-m32-e20-lr3e3-s0
- hidden
- 128
- mid
- 32
- epochs
- 20
- lr
- 0.0030
- seed
- 42,282
- parameters
- 1,144,207
- lifetimePearson
- 0.8520
- mirroredPearson
- 0.8516
- lifetimeMAE
- 14.5026
- hazardAccMean
- 0.8374
- finalTrainLoss
- 0.4887
- trainWallSeconds
- 10.7461
- tag
- h256-m32-e10-lr3e3-s0
- hidden
- 256
- mid
- 32
- epochs
- 10
- lr
- 0.0030
- seed
- 42,282
- parameters
- 2,287,887
- lifetimePearson
- 0.8515
- mirroredPearson
- 0.8512
- lifetimeMAE
- 14.5446
- hazardAccMean
- 0.8365
- finalTrainLoss
- 0.4857
- trainWallSeconds
- 15.5636
- tag
- h256-m64-e20-lr3e3-s0
- hidden
- 256
- mid
- 64
- epochs
- 20
- lr
- 0.0030
- seed
- 42,282
- parameters
- 2,296,591
- lifetimePearson
- 0.8446
- mirroredPearson
- 0.8444
- lifetimeMAE
- 14.7638
- hazardAccMean
- 0.8322
- finalTrainLoss
- 0.4596
- trainWallSeconds
- 15.2548
- tag
- h32-m32-e10-lr3e3-s0
- hidden
- 32
- mid
- 32
- epochs
- 10
- lr
- 0.0030
- seed
- 42,282
- parameters
- 286,447
- lifetimePearson
- 0.8550
- mirroredPearson
- 0.8548
- lifetimeMAE
- 14.4879
- hazardAccMean
- 0.8384
- finalTrainLoss
- 0.5238
- trainWallSeconds
- 7.5850
- tag
- h512-m64-e20-lr3e3-s0
- hidden
- 512
- mid
- 64
- epochs
- 20
- lr
- 0.0030
- seed
- 42,282
- parameters
- 4,592,143
- lifetimePearson
- 0.8378
- mirroredPearson
- 0.8379
- lifetimeMAE
- 15.1885
- hazardAccMean
- 0.8256
- finalTrainLoss
- 0.4197
- trainWallSeconds
- 13.9648
- tag
- h64-m16-e10-lr3e3-s0
- hidden
- 64
- mid
- 16
- epochs
- 10
- lr
- 0.0030
- seed
- 42,282
- parameters
- 571,087
- lifetimePearson
- 0.8542
- mirroredPearson
- 0.8543
- lifetimeMAE
- 14.4476
- hazardAccMean
- 0.8388
- finalTrainLoss
- 0.5151
- trainWallSeconds
- 8.3707
- tag
- h64-m32-e10-lr1e3-s0
- hidden
- 64
- mid
- 32
- epochs
- 10
- lr
- 0.0010
- seed
- 42,282
- parameters
- 572,367
- lifetimePearson
- 0.8552
- mirroredPearson
- 0.8552
- lifetimeMAE
- 14.4757
- hazardAccMean
- 0.8386
- finalTrainLoss
- 0.5219
- trainWallSeconds
- 3.2629
- tag
- h64-m32-e10-lr3e3-s0
- hidden
- 64
- mid
- 32
- epochs
- 10
- lr
- 0.0030
- seed
- 42,282
- parameters
- 572,367
- lifetimePearson
- 0.8546
- mirroredPearson
- 0.8546
- lifetimeMAE
- 14.4145
- hazardAccMean
- 0.8390
- finalTrainLoss
- 0.5110
- trainWallSeconds
- 8.5447
- tag
- h64-m32-e10-lr3e3-s1
- hidden
- 64
- mid
- 32
- epochs
- 10
- lr
- 0.0030
- seed
- 42,283
- parameters
- 572,367
- lifetimePearson
- 0.8567
- mirroredPearson
- 0.8565
- lifetimeMAE
- 14.4525
- hazardAccMean
- 0.8391
- finalTrainLoss
- 0.5114
- trainWallSeconds
- 7.2195
- tag
- h64-m32-e10-lr3e3-s2
- hidden
- 64
- mid
- 32
- epochs
- 10
- lr
- 0.0030
- seed
- 42,284
- parameters
- 572,367
- lifetimePearson
- 0.8569
- mirroredPearson
- 0.8569
- lifetimeMAE
- 14.4411
- hazardAccMean
- 0.8391
- finalTrainLoss
- 0.5131
- trainWallSeconds
- 8.8389
- tag
- h64-m32-e20-lr3e3-s0
- hidden
- 64
- mid
- 32
- epochs
- 20
- lr
- 0.0030
- seed
- 42,282
- parameters
- 572,367
- lifetimePearson
- 0.8564
- mirroredPearson
- 0.8563
- lifetimeMAE
- 14.4448
- hazardAccMean
- 0.8389
- finalTrainLoss
- 0.5051
- trainWallSeconds
- 8.4661
- tag
- h64-m64-e10-lr3e3-s0
- hidden
- 64
- mid
- 64
- epochs
- 10
- lr
- 0.0030
- seed
- 42,282
- parameters
- 574,927
- lifetimePearson
- 0.8568
- mirroredPearson
- 0.8567
- lifetimeMAE
- 14.4299
- hazardAccMean
- 0.8391
- finalTrainLoss
- 0.5097
- trainWallSeconds
- 5.2192
environment
python 3.13.5 torch 2.13.0+rocm7.1 hip 7.1.52802 device Radeon 8060S Graphics
completedtier SCREENalgorithmicpublic-developmentEX-20260822-survival-instinct-root-filter-8531cbd9
With the bit-exact fast fair-D4 search at five strata (cache 60,000, worst-case work bound, terminal utility -1,000,000, policy seed 0xd7075eed), three arms play the same 128 ordered seeds 0xa52c0000-0xa52c007f: 'none' (unchanged), 'strict' (refuse a root column when the next disc of value >= 3 would land above its vertical-clear height AND its landing row run already exceeds its value, unless no column remains) and 'literal' (refuse every vertically dead landing that does not clear on arrival). The strict arm's paired score delta versus 'none' passes the gate below; the literal arm is a secondary measurement. Per-arm coverage (triggered decisions, overrides of the unfiltered column, no-column fallbacks) is recorded.
Candidatefast-d4s5-survival-instinct-strict
approaches/lifetime-objective/survival-instinct/run.cpp Comparatorfair-d4
approaches/fair-expectimax/reference/fair-only-depth4.cpp outcome: inconclusiverun: validpublic-developmentRS-20260822T233343Z-12becce9
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.
| Gate criterion | Verdict | Observed |
|---|
| CHECK gates passed before the lease was opened | pass | RUN-20260822T063817Z-a5d4c143: 7 of 7 (mask units re-run after a corrected test expectation) |
| incompleteDecisionsTotal 0 and illegalDecisionsTotal 0 | pass | 0 / 0 |
| strict minus none: bootstrap and Student-t 95% lower bounds > 0 | fail | -27738 / -27150 |
| strict minus none: Q25 >= and both halves > 0 | fail | Q25 delta -13513; halves +1721 / -5661 |
| strict arm overrides >= 2% of decisions (else inconclusive) | fail | 254 of 12922 = 1.97% |
Raw metrics (2)
strict
- candidate
- name
- strict
- games
- 128
- score
- mean
- 346838.4609
- median
- 285244.5000
- sd
- 234288.6063
- q25
- 175358.2500
- min
- 86,228
- max
- 1,312,546
- numberedClearsPerMove
- 2.0076
- coverRevealsPerMove
- 1.1163
- maxChainDepth
- 13
- meanOccupiedCells
- 23.8341
- censoredGames
- 0
- incompleteDecisions
- 0
- illegalDecisions
- 0
- gamesAtOrAboveMillion
- 1
- reference
- name
- none
- games
- 128
- score
- mean
- 348808.3047
- median
- 268,837
- sd
- 246206.6767
- q25
- 188871.5000
- min
- 103,221
- max
- 1,698,396
- numberedClearsPerMove
- 2.0040
- coverRevealsPerMove
- 1.1149
- maxChainDepth
- 13
- meanOccupiedCells
- 24.0289
- censoredGames
- 0
- incompleteDecisions
- 0
- illegalDecisions
- 0
- gamesAtOrAboveMillion
- 3
- pairedScore
- n
- 128
- meanDelta
- -1969.8438
- pairedSd
- 171932.7446
- bootstrapLower95
- -27738.2355
- bootstrapUpper95
- 22313.0406
- studentTLower95
- -27150.1196
- studentTQuantile
- 1.6569
- detectionFloor
- 24998.8202
- detectionFloorNote
- 1.645 * sd / sqrt(n), the z-based floor defined in docs/research/status.md
- wins
- 41
- ties
- 26
- losses
- 61
- firstHalfMeanDelta
- 1721.0313
- secondHalfMeanDelta
- -5660.7188
- q25Delta
- -13513.2500
- largestSwings
- -844,875
- -805,407
- -548,601
- 505,964
- 486,921
- bootstrapSeedHex
- 0xb0071eaf
- resamples
- 20,000
- pairedMoves
- n
- 128
- meanDelta
- -0.3672
- pairedSd
- 46.6503
- bootstrapLower95
- -7.3516
- bootstrapUpper95
- 6.2109
- studentTLower95
- -7.1993
- studentTQuantile
- 1.6569
- detectionFloor
- 6.7829
- detectionFloorNote
- 1.645 * sd / sqrt(n), the z-based floor defined in docs/research/status.md
- wins
- 29
- ties
- 60
- losses
- 39
- firstHalfMeanDelta
- 0.7031
- secondHalfMeanDelta
- -1.4375
- q25Delta
- 0
- largestSwings
- -227
- -220
- -150
- 135
- 134
- bootstrapSeedHex
- 0xb0071eaf
- resamples
- 20,000
- coverage
- decisions
- 12,922
- triggeredDecisions
- 811
- overrides
- 254
- noColumnFallbacks
- 22
literal
- candidate
- name
- literal
- games
- 128
- score
- mean
- 251744.0781
- median
- 236792.5000
- sd
- 112378.7779
- q25
- 159800.2500
- min
- 85,922
- max
- 628,660
- numberedClearsPerMove
- 1.8787
- coverRevealsPerMove
- 1.0197
- maxChainDepth
- 11
- meanOccupiedCells
- 24.6577
- censoredGames
- 0
- incompleteDecisions
- 0
- illegalDecisions
- 0
- gamesAtOrAboveMillion
- 0
- reference
- name
- none
- games
- 128
- score
- mean
- 348808.3047
- median
- 268,837
- sd
- 246206.6767
- q25
- 188871.5000
- min
- 103,221
- max
- 1,698,396
- numberedClearsPerMove
- 2.0040
- coverRevealsPerMove
- 1.1149
- maxChainDepth
- 13
- meanOccupiedCells
- 24.0289
- censoredGames
- 0
- incompleteDecisions
- 0
- illegalDecisions
- 0
- gamesAtOrAboveMillion
- 3
- pairedScore
- n
- 128
- meanDelta
- -97064.2266
- pairedSd
- 265747.3813
- bootstrapLower95
- -136887.3000
- bootstrapUpper95
- -59499.6051
- studentTLower95
- -135984.0518
- studentTQuantile
- 1.6569
- detectionFloor
- 38639.3588
- detectionFloorNote
- 1.645 * sd / sqrt(n), the z-based floor defined in docs/research/status.md
- wins
- 43
- ties
- 0
- losses
- 85
- firstHalfMeanDelta
- -71884.9844
- secondHalfMeanDelta
- -122243.4688
- q25Delta
- -29071.2500
- largestSwings
- -1,577,399
- -823,508
- -787,758
- -774,508
- -674,807
- bootstrapSeedHex
- 0xb0071eaf
- resamples
- 20,000
- pairedMoves
- n
- 128
- meanDelta
- -25.6484
- pairedSd
- 72.1942
- bootstrapLower95
- -36.4305
- bootstrapUpper95
- -15.4375
- studentTLower95
- -36.2216
- studentTQuantile
- 1.6569
- detectionFloor
- 10.4970
- detectionFloorNote
- 1.645 * sd / sqrt(n), the z-based floor defined in docs/research/status.md
- wins
- 42
- ties
- 10
- losses
- 76
- firstHalfMeanDelta
- -18.7656
- secondHalfMeanDelta
- -32.5313
- q25Delta
- -5
- largestSwings
- -425
- -225
- -212
- -210
- -185
- bootstrapSeedHex
- 0xb0071eaf
- resamples
- 20,000
- coverage
- decisions
- 9,686
- triggeredDecisions
- 3,470
- overrides
- 1,243
- noColumnFallbacks
- 497
completedtier CHECKdiagnosticpreviously-evaluated-developmentEX-20260823-d3n7m6-vs-d4s5-paired-reanalysis-ea66f4ec
On the retained drop7-lifetime-cohort-v1 per-game records for D3 N7M6 (runs/RUN-A525-reveal/d3-n7-m6.json) and D4 s5 (runs/RUN-A51D-s7confirm/fresh-s5.json), both covering seeds 0xa51d1000-0xa51d103f, the paired score delta has a one-sided 95% bootstrap lower bound and a Student-t lower bound both above zero.
CandidateD3 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)
runs/RUN-20260823T191900Z-b9f8f80d/c0/c0_compare.py ComparatorD4 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)
approaches/fair-expectimax/reference/fair-only-depth4.cpp outcome: passrun: validpublic-developmentRS-20260823T194200Z-42b113db
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.
| Gate criterion | Verdict | Observed |
|---|
| Both arms are drop7-lifetime-cohort-v1 artifacts covering exactly the same 64 seeds 0xa51d1000-0xa51d103f in order, 0 censored games, 2000-move cap, terminalUtility -1000000, seedLease SEEDLEASE-A51D | pass | seed lists identical and in order for d3-n7-m6.json, fresh-s5.json, fresh-s7.json and s5-w000.json; censoredGames 0 in all; maximumMoves 2000; terminalUtility -1000000; seedLease SEEDLEASE-A51D; dataRole exploratory-development-diagnostic. Work bounds differ by design (51,084,852 vs 3,200,000 vs 16,000,000): they are the arms' own budgets, not a scoring setting. fresh-s5.json and s5-w000.json carry identical scores and moves on every game. |
| D3 N7M6 minus D4 s5: percentile bootstrap 95% lower bound > 0 AND Student-t 95% lower bound > 0 | pass | bootstrap LB +29,033, Student-t LB +27,548 (t quantile 1.6694, df 63); mean +79,115; W-T-L 35-0-29; halves +88,138 / +70,092 |
Raw metrics (6)
cohort
0xa51d1000-0xa51d103f, 64 games, 2,000-move cap, corrected 17,000-point Hardcore scoring, terminalUtility -1000000, SEEDLEASE-A51D, exploratory-development-diagnostic, already read
d3n7m6
- artifact
- runs/RUN-A525-reveal/d3-n7-m6.json
- sha256
- 36aa1d0f0ec29b0ec70bd540e7d06758e37147a521f6891c0fde930943aa83fc
- meanScore
- 376442.1406
- median
- 322,859
- q25
- 227224.5000
- min
- 103,015
- max
- 1,002,557
- sd
- 223365.7773
- meanMoves
- 109.4531
- workPerMove
- 4244020.0805
- maximumWork
- 51,084,852
- censoredGames
- 0
- gamesAtOrAboveMillion
- 1
d4s5
- artifact
- runs/RUN-A51D-s7confirm/fresh-s5.json
- sha256
- d6c1dbd403dbf5b477f1b0905b4aa440e443c2dfba8eef29085b7f5bee024d9a
- meanScore
- 297327.3906
- median
- 260,415
- q25
- 192,352
- min
- 86,935
- max
- 836,427
- sd
- 150549.5574
- meanMoves
- 87.1563
- workPerMove
- 1296033.6877
- maximumWork
- 3,200,000
- censoredGames
- 0
- gamesAtOrAboveMillion
- 0
d4s7
- artifact
- runs/RUN-A51D-s7confirm/fresh-s7.json
- sha256
- 0c95442620a78ef5a928a4b8cdab9f57b3bdb8a3d7df5fcd1a6d818785bd4209
- meanScore
- 398498.2344
- median
- 344630.5000
- q25
- 212,864
- meanMoves
- 114.6563
- workPerMove
- 4956614.2652
- maximumWork
- 16,000,000
- censoredGames
- 0
pairedD3n7m6MinusD4s5
- n
- 64
- meanScoreDelta
- 79114.7500
- pairedSd
- 247112.6017
- bootstrapLower95
- 29032.5102
- bootstrapUpper95
- 129721.6797
- studentTLower95
- 27548.4592
- studentTQuantile
- 1.6694
- detectionFloor
- 50812.5287
- winTieLoss
- 35-0-29
- firstHalfMeanDelta
- 88137.8438
- secondHalfMeanDelta
- 70091.6563
- q25Delta
- 34872.5000
- medianPairedDelta
- 32925.5000
- minLeaveOneOutMeanDelta
- 68506.7900
- top5Share
- 0.6470
- top16Share
- 1.3400
- meanMovesDelta
- 22.2969
- movesBootstrapLower95
- 8.6719
- movesStudentTLower95
- 8.2664
- numberedClearedDelta
- 53.9375
- numberedClearedLower95
- 21.1406
- coversRevealedDelta
- 31.7969
- coversRevealedLower95
- 12.6094
- workRatio
- 3.2746
- bootstrapSeedHex
- 0xb0071eaf
- resamples
- 20,000
pairedD3n7m6MinusD4s7
- n
- 64
- meanScoreDelta
- -22056.0938
- pairedSd
- 336763.8340
- bootstrapLower95
- -92004.8930
- bootstrapUpper95
- 45490.1641
- studentTLower95
- -92330.3803
- detectionFloor
- 69247.0634
- winTieLoss
- 30-0-34
- firstHalfMeanDelta
- -27121.1250
- secondHalfMeanDelta
- -16991.0625
- q25Delta
- 14360.5000
- meanMovesDelta
- -5.2031
- movesBootstrapLower95
- -24.0313
- workRatio
- 0.8562
- finding16PointEstimate
- -22,056
- finding16BootstrapLower95
- -89,867
completedtier CHECKengineeringno-gameplayEX-20260823-fast-m6-reveal-sampling-port-be23e203
Engineering port, no new science: implement factored reveal sampling (M>1, matching the native FactoredSearch semantics used by the C0 arms: N disc strata x M reveal samples, work accounting, cache behaviour) inside the fast memo engine family (approaches/lifetime-objective fast-search/fast-engine/fast-leaf, proven bit-identical to the reference at M=1 in finding-13/audit-06 and re-verified at d3s7 by RS-20260823T225753Z-0fbd48c3's re-gates: 240 decisions, 0 mismatches). The port is accepted only if it is trace-equivalent to the native factored search: identical chosen columns, identical work counts, identical completed depths and cache statistics semantics, across the full equivalence gate below. Expected speedup ~10-40x per move at d3 N7M6 (native measured 1.754-6.83 CPU-s/move; fast M=1 d3s7 measured 54.6 ms/move in continuation duty, ~4 ms/move in play duty); the realised figure is measured and reported with the machine profile. Per docs/benchmarks.md, any deviation in actions, random events, or work semantics reclassifies the port as a new algorithmic candidate and it is then not accepted under this record.
Candidatefast-engine factored reveal sampling
Comparatornative FactoredSearch (C0 configuration)
approaches/lifetime-objective/reveal-sampling/search.cpp outcome: passrun: validmechanics-onlyRS-20260824T010000Z-8f3e9b4f
E-FAST-M6 passes: factored reveal sampling (N disc strata x M reveal samples, native scenario indexing s = r*N + d over T = N*M) is ported into the fast memo engine as drop7::fastr::FastFactoredSearch and is trace-equivalent to the native FactoredSearch. Grid gate: 6,300 live probe decisions (525 per point over d3/d4 x N5/N7 x M1/M2/M6) with 0 column, 0 work-count and 0 completed-depth mismatches, including 549 work-limited decisions on the two budget-capped d4-M6 points where both engines degrade to completed depth 3 identically. All 3 retained C0 games replay to byte-for-value final identity with the fast engine driving (335 decisions, 0 mismatches). M=1 regression: 2,100 decisions x {memo-on, memo-off} bit-identical to the untouched fast::FastSearch on all six metric fields. Determinism byte-identical across repeated runs and {26,7,1} threads; mirror invariance exact with symmetric boards excluded (finding-13 4C; one disclosed gate-harness iteration); the one-entry leaf memo stays enabled under M>1 (board-memcmp keying cannot alias across reveal samples) with memo-on/off trace identity across the grid. Continuation duty: 8 CRN continuations (2 C0 roots, K=4, H=40) byte-identical to native. Realised speedup at d3 N7M6 is 5.5-5.8x (play duty 2.140 -> 0.385 s/move; continuation duty 0.990 -> 0.177 s/move; grid 4.38-5.87x across points), measured under the gate's own 26-thread load - well below the 10-40x hoped for in the hypothesis, because that figure divided native M6 seconds by fast M1 seconds and ignored the ~27x work ratio. P-SOL continuation labels at native D3 N7M6 semantics now cost ~0.18 s/move instead of ~1-3.4 s/move.
| Gate criterion | Verdict | Observed |
|---|
| Equivalence: >= 500 live decisions per grid point over d3/d4 x N5/N7 x M1/M2/M6 on probe seeds and >= 3 full replayed C0 games, 0 column/work/completed-depth mismatches vs the native factored search | pass | 525 decisions per point (6,300 total), 0/0/0 mismatches; per-point native and fast trace hashes identical; 3 C0 replays with 0 mismatches and all finals byte-for-value identical to runs/RUN-A525-reveal/d3-n7-m6.json |
| M=1 regression: the port at M=1 remains bit-identical to the existing fast search | pass | 2,100 decisions x memo-on and memo-off vs fast::FastSearch: 0 mismatches on action, completed_depth, nodes, work, cache_hits, cache_entries |
| Determinism: byte-identical outputs across two runs and across thread counts; mirror invariance of decisions | pass | subset artifact byte-identical across {repeat at 26, 7, 1} threads; mirror invariance 0 mismatches on 114 asymmetric-board decisions (18 mirror-symmetric boards excluded per finding-13 4C; iteration 1's harness compared symmetric boards and is disclosed in gates.log) |
| npm test and make test pass; default random-reveal behaviour byte-identical (latent-mode contract untouched) | pass | npm test pass; make test pass including TypeScript/native parity (256 seeds, 6,852 moves, exact); the change is additive (new approach directory only) and touches no engine source |
Raw metrics (11)
gridMismatches
- column
- 0
- work
- 0
- completedDepth
- 0
gridPointsAtLeast500Decisions
12/12 (525 each)
c0Replay
- games
- 3
- decisions
- 335
- mismatches
- 0
- finalsIdentical
- 3/3 (320871/95, 381355/110, 463094/130)
m1Regression
- decisions
- 2,100
- comparators
- fast::FastSearch vs port memo-on and memo-off
- metricFieldMismatches
- 0
determinism
subset output byte-identical across {repeat, 26, 7, 1} threads (sha256 645a2bb8977f4e86ad95c048964186061970183179ae615159dde8cccb0aed97)
memoUnderM6
enabled; memo-on/off trace identity on all 12 grid points and 2,100 M=1 decisions; no aliasing possible (full-board memcmp key below the work increment)
continuationDuty
- continuations
- 8
- outcomeMismatches
- 0
- nativeCpuSecondsPerMove
- 0.9904
- fastCpuSecondsPerMove
- 0.1767
- speedup
- 5.6000
playDuty
- nativeCpuSecondsPerMove
- 2.1397
- fastCpuSecondsPerMove
- 0.3847
- speedup
- 5.5600
gridSpeedupRange
4.38-5.87x (per-point table in timing.json)
testSuites
npm test pass; make test pass (parity 256 seeds / 6,852 moves exact)
completedtier CHECKdiagnosticno-gameplayEX-20260823-hpool-stage-d0-e0ad1c65
Generate 64 perfect-information-oracle games (approaches/oracle-curriculum/perfect-information-oracle semantics as implemented in approaches/oracle-curriculum/state-curriculum/oracle-curriculum.cpp: depth 4, beam 128, 500-move cap, corrected 17,000-point Hardcore scoring) on the fresh training lease 0xa52e0000-0xa52e003f and sample public states from move 50 onward to form pool O (target 2,000 states, capped by availability). Generate fair-D4 (reference, five strata) games on 0xa52e0100-0xa52e01ff and sample public states from move 50 onward to form pool F, matched 1:1 to O on rise phase, occupancy and maximum height (exact-match buckets as in approaches/oracle-curriculum/topology/oracle-topology-audit.cpp; unmatched O states are dropped and counted). Every state is reduced to the public tuple (board, next disc, moves-until-rise) before any label is computed. For each state compute R_fair = mean remaining moves over K=32 independent public futures derived from the public-state hash (domain-separated streams as in oracle-curriculum.cpp, never from the seed) under a fixed public depth-1 fair continuation with horizon 25 (moves capped at 25 count as 25, censor flag kept), and R_tape/R_real = the realised remaining moves on the state's own trajectory capped at the same horizon. Report R_fair(O), R_fair(F), R_tape(O), R_real(F), tau = (R_fair(O)-R_fair(F))/(R_tape(O)-R_real(F)), by origin-game split halves, plus the kBlocked flow-band fraction over O, and at every O root the fair-top-1 rate (under the same 32 common futures over all legal columns) of the oracle's column versus fair D4's column at that root.
Candidateoracle-curriculum state pool relabelled under public randomness
Comparatorfair-d4 matched state pool
approaches/fair-expectimax/reference/fair-only-depth4.cpp outcome: failrun: validpilotRS-20260823T205143Z-ead14c9d
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.
| Gate criterion | Verdict | Observed |
|---|
| CHECK gates before any seed is read: privilege boundary (relabel binary links no oracle tape accessor), determinism of R_fair across two runs and thread counts, domain separation of restart streams, mirror invariance of R_fair | pass | ALL GATES PASS in runs/RUN-20260823T191900Z-b9f8f80d/d0/gates.log on probe seeds 0xa5278000-0xa527810f: 0 oracle symbols in d0-relabel, generate byte-identical at 16 vs 4 threads, relabel byte-identical at 1 vs 8 threads across two runs, 0 mirror/metadata/sibling/stream failures on 47 probe states (mirror invariance is exact: the restart plays in the canonical frame), label edits changed no relabel byte |
| tau >= 0.25 pooled | fail | tau = -0.9590, 95% cluster interval [-3.0691, -0.3897]; denominator R_tape(O)-R_real(F) = -0.274 moves is degenerate at horizon 25 (94-95% of both realised remainders capped) while the numerator R_fair(O)-R_fair(F) = +0.263 [+0.156, +0.367] |
| sign of R_fair(O) - R_fair(F) agrees in both origin-game halves | pass | half 0 (games 0-31): +0.2319; half 1 (games 32-63): +0.3146; both positive |
| oracle-column fair-top-1 rate at O roots >= fair-D4-column fair-top-1 rate at the same roots | fail | oracle 0.7655 vs fair D4 0.8143 over all 1,271 matched O roots under the same 32 common futures (no subsampling; ties count for every tied column); difference -0.0488, 95% cluster interval [-0.0691, -0.0288]; strict-maximum roots only: 0.268 vs 0.387 |
Raw metrics (20)
R_fair_O
- mean
- 24.7826
- seStates
- 0.0365
- seOriginGames
- 0.0633
R_fair_F
- mean
- 24.5201
- seStates
- 0.0491
- seOriginGames
- 0.1772
R_tape_O
- mean
- 24.3375
- seStates
- 0.0904
- seOriginGames
- 0.0827
R_real_F
- mean
- 24.6113
- seStates
- 0.0525
- seOriginGames
- 0.2163
fairDifference95ClusterBootstrap
realisedDifference
-0.2738
poolSizes
- oStates
- 1,984
- oMatched
- 1,271
- oUnmatched
- 713
- matchRate
- 0.6406
- fStates
- 1,271
- oOriginGames
- 64
- fOriginGames
- 101
- bucketsMatched
- 63
censoring
- R_tape_O_cappedAt25Fraction
- 0.9473
- R_real_F_cappedAt25Fraction
- 0.9426
- R_fair_O_survivedHorizonFraction
- 0.9624
- R_fair_F_survivedHorizonFraction
- 0.9167
- oracleGamesCensoredAt500
- 63
- oracleOriginCensoredStates
- 62
flowBands
- O_matched_blocked
- 0.0047
- O_all_blocked
- 0.0030
- F_blocked
- 0.0260
top1AtORoots
- roots
- 1,271
- subsampled
- false
- oracleColumnTop1Rate
- 0.7655
- fairD4ColumnTop1Rate
- 0.8143
- difference
- -0.0488
- difference95ClusterBootstrap
- -0.0691
- -0.0288
- oracleEqualsD4ColumnRate
- 0.3895
- uniqueMaximumRoots
- 194
- oracleColumnTop1RateStrictRoots
- 0.2680
- fairD4ColumnTop1RateStrictRoots
- 0.3866
bootstrap
- method
- cluster bootstrap over O origin games carrying matched F partners
- resamples
- 10,000
- seed
- 0xb0071eaf
- clusters
- 64
- sensitivityIndependentClustersTau95
- -9.3496
- 5.1228
oracleGameScoresMeanMoves
495
completedtier CHECKdiagnosticno-gameplayEX-20260823-nnue-d4q-ordering-probe-0ca09bb1
Train a LeafNet-shaped student (features exactly approaches/lifetime-objective/learned-leaf/leaf_features.py applied to the afterstate board, next disc and moves-remaining columns of runs/RUN-20260821T085042Z-c5cf0e71/d4q-labels/d4q-labels.tsv; EmbeddingBag(8902,64,sum)->ReLU->Linear(64,32)->ReLU->Linear(32,1)) on the existing successor-closed exact D4 sibling values (291,890 rows, 8,639 roots, fold column as written by the d4q experiment: its train/validation/held-out origins are reused unchanged). Loss: within-root listwise softmax cross-entropy over the root's legal siblings against softmax(value/T) with T fixed at the root's value spread times 0.18 as in d4-q-clone, plus gap-weighted pairwise margin, plus 0.1 absolute MSE anchor on standardised value. 5 initialisation seeds (0xA52E01-05), 30 epochs, Adam 1e-3, batch 256 roots, OPENBLAS_NUM_THREADS=1, CPU or GPU via approaches/lifetime-objective/gpu/activate.sh. Model selection uses validation origins only; the held-out half-folds are read once for the selected seed and reported for all five.
CandidateLeafNet h64/m32 listwise student on d4q labels
Comparatorexact fair D4 ordering (d4q labels); exact D1 0.486 and D2 0.568 top-1 as calibration
approaches/afterstate-learning/distributional-afterstate/d4q.py outcome: failrun: validpilotRS-20260823T194142Z-946e3cd1
The leaf-affordable NNUE-class student does not reproduce fair D4's within-root ordering from the existing successor-closed labels. Five initialisation seeds of the LeafNet h64/m32 student (571,905 parameters; features from learned-leaf/leaf_features.py) were trained for 30 epochs on the 6,551 training roots of runs/RUN-20260821T085042Z-c5cf0e71/d4q-labels with the preregistered listwise + gap-weighted pairwise + 0.1 MSE loss; the seed with the best calibration-fold top-1 (0xA52E02, 0.3281) was then read once on the 3,030-root held-out panel of that experiment. Held-out top-1 was 0.296 / 0.3011 in the two origin-seed half-folds (gate >= 0.60), pairwise 0.6266 / 0.6259 (>= 0.78), normalised regret 0.3354 / 0.3379 (<= 0.13): every criterion fails in both half-folds. The other four seeds lie between 0.2987 and 0.3135 pooled top-1, all below the 3.4M-parameter afterstate CNN of RS-20260821T104500Z-77d21e90 (0.375) and below exact D1 (0.486). The student is leaf-affordable as claimed (1.27 us per state through the existing d7leaf export and leaf-check), but at this size it holds less of D4's ordering than the CNN did. Per the preregistered failure action: no leaf-affordable NNUE-class student of this size reproduces D4's ordering from these labels; the self-play loop TH-20260821-...-299ed02f stays blocked in its leaf form and its redesign is routed to the larger-student question. Diagnostic tier: the held-out panel had already been read once by the d4q experiment, so this is a diagnostic read on existing data, not new evidence about fresh roots.
| Gate criterion | Verdict | Observed |
|---|
| Label file is the preregistered artifact: 291,890 rows / 8,639 roots | pass | 291890 rows, 8639 roots (train 6,551, calibration 2,088) |
| No non-finite loss in any seed; all five seeds completed 30 epochs within 5,400 wall-seconds | pass | 5 of 5 seeds valid; 166.08 wall-seconds total |
| Selected seed (best validation top-1, 0xA52E02) held-out top1 >= 0.6 in each half-fold | fail | half1 0.2960, half2 0.3011 |
| Selected seed (best validation top-1, 0xA52E02) held-out pairwise >= 0.78 in each half-fold | fail | half1 0.6266, half2 0.6259 |
| Selected seed (best validation top-1, 0xA52E02) held-out regret <= 0.13 in each half-fold | fail | half1 0.3354, half2 0.3379 |
Raw metrics (28)
selectedValidationTop1
0.3281
heldoutTop1AllSeeds
- 0xA52E01
- 0.3026
- 0xA52E02
- 0.2987
- 0xA52E03
- 0.3069
- 0xA52E04
- 0.3132
- 0xA52E05
- 0.3135
validationTop1FinalAllSeeds
- 0xA52E01
- 0.3051
- 0xA52E02
- 0.3281
- 0xA52E03
- 0.3089
- 0xA52E04
- 0.3127
- 0xA52E05
- 0.3027
validationTop1BestEpochAllSeeds
- 0xA52E01
- 0.3554
- 0xA52E02
- 0.3549
- 0xA52E03
- 0.3520
- 0xA52E04
- 0.3525
- 0xA52E05
- 0.3592
heldoutTop1SpreadAcrossSeeds
inferenceMicrosecondsPerState
1.2721
comparatorAfterstateCnnTop1Pooled
0.3752
completedtier SCREENalgorithmicpublic-developmentEX-20260823-reveal-construction-screen-371fd638
With the fast fair-D4 search at seven strata, the one-entry leaf memo (bit-exact, finding audit-06), cache 60,000, work bound worstCaseWork(4,7)+1 = 11,892,399, terminal utility -1,000,000, policy seed 0xd7075eed, 2,000-move cap, three arms play the same 256 ordered seeds 0xa52d0000-0xa52d00ff: 'frozen' (unchanged leaf, zero extra weights, gated bit-identical to FastSearch), 'A' (frozen + aligned_double_hit at +300), 'B' (frozen + aligned_double_hit +300 + chain_to_crack_cracked +150 + chain_to_crack_solid +300, all three multiplied by danger_gate = 1 if max height <= 4, 0.5 at height 5, 0 at height >= 6). Term definitions are fixed in approaches/lifetime-objective/chain-reveal-leaf/extra-terms.hpp as specified in runs/RUN-20260823T091530Z-cbe65468/kimi-k3-theory-design.md section 2 (i)-(iii). Before any leased seed is read, a seed-free corpus gate on runs/RUN-A51D-corpus/all.states (training-role data, already opened) must pass for aligned_double_hit; if it fails, the screen is not run and the record is valid + fail at mechanics tier. The primary contrast is A minus frozen; B minus A is a declared-underpowered secondary. A shadow unchanged search runs at every decision of arms A and B to measure coverage (root-argmax divergence), doubling their cost but changing no decision.
Candidatefast-d4s7-memo-reveal-construction
approaches/lifetime-objective/chain-reveal-leaf/run.cpp Comparatorfair-d4
approaches/fair-expectimax/reference/fair-only-depth4.cpp outcome: failrun: validmechanics-onlyRS-20260823T110000Z-baecb816
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.
| Gate criterion | Verdict | Observed |
|---|
| aligned_double_hit held-out partial r >= +0.05 | fail | -0.0443 |
| aligned_double_hit incremental held-out R^2 >= 0.005 | fail | 0.00047 |
| aligned_double_hit prevalence >= 5% of depth-4 positions | pass | 19.75% |
| aligned_double_hit uncollected-setup rate >= 30% | pass | 60.47% (excluding ambiguous 56.51%) |
| CHECK gates (bit parity, search parity, mirror, determinism, metadata blindness, memo identity) at d4s5 and d4s7 | pass | 0 mismatches in every gate; runs/RUN-20260823T091530Z-cbe65468/gates.log |
| Screen gate (A minus frozen lower bounds, Q25, halves, coverage) | n/a | not evaluated: the screen was not run because the corpus gate failed |
Raw metrics (9)
corpus
- records
- 5,257,181
- depth4Rows
- 62,831
- depth4Games
- 768
- depth4Train
- 50,003
- depth4Test
- 5,528
- baseHeldOutR2
- 0.6483
aligned_double_hit
- partialR
- -0.0443
- incrementalR2
- 0.0005
- prevalenceDepth4
- 0.1975
- uncollectedRate
- 0.6047
- uncollectedRateExcludingAmbiguous
- 0.5651
- setups
- 6,969
- revealedWithin2
- 2,750
chain_to_crack_cracked
- partialR
- -0.0325
- incrementalR2
- 0.0003
- prevalenceDepth4
- 0.2892
chain_to_crack_solid
- partialR
- -0.0385
- incrementalR2
- 0.0001
- prevalenceDepth4
- 0.0177
- uncollectedRate
- 0.6285
- uncollectedRateExcludingAmbiguous
- 0.5775
- setups
- 324
- revealedWithin2
- 120
entombed_high
- partialR
- -0.0595
- incrementalR2
- 0.0013
- prevalenceDepth4
- 0.1678
aligned_double_hit_gated
- partialR
- -0.0504
- incrementalR2
- 0.0007
- prevalenceDepth4
- 0.1698
chain_to_crack_cracked_gated
- partialR
- -0.0277
- incrementalR2
- 0.0003
- prevalenceDepth4
- 0.2383
chain_to_crack_solid_gated
- partialR
- -0.0064
- incrementalR2
- 0.0000
- prevalenceDepth4
- 0.0151
checkGates
- leafBitMismatches
- 0
- parityMismatches
- 0
- mirrorMismatches
- 0
- determinismMismatches
- 0
- metadataBlindnessMismatches
- 0
- liveDivergence
- A_d4s5
- 2/600
- B_d4s5
- 5/645
- A_d4s7
- 7/370
- B_d4s7
- 6/310
completedtier SCREENalgorithmicpublic-developmentEX-20260823-reveal-construction-screen-v2-63d73b6a
Successor to EX-20260823-reveal-construction-screen-371fd638, whose seed-free corpus VALUE gate failed (RS-20260823T110000Z-baecb816: aligned_double_hit held-out partial r -0.0443, incremental R^2 +0.00047) while its ACTION statistic passed (60.47% of live same-wave double-hit setups uncollected by the corpus depth-4 policy within two moves). The independent review written before that result (kimi-k3-prereg-review.md section 3) argued that a partial-correlation kill is a value criterion that can reject a term whose purpose is to re-rank sibling actions at the horizon boundary. This experiment therefore tests the owner's hypothesis in play, with no corpus gate, and discloses that the corpus result was read first and points the wrong way. With the fast fair-D4 search at seven strata, the bit-exact one-entry leaf memo, cache 60,000, work bound worstCaseWork(4,7)+1, terminal utility -1,000,000, policy seed 0xd7075eed, 2,000-move cap, four arms play the same 256 ordered seeds 0xa52d0200-0xa52d02ff: 'frozen' (zero extra weights, gated bit-identical to FastSearch); 'A300' (aligned_double_hit +300, the preregistered primary); 'A900' (aligned_double_hit +900, a dose arm added because CHECK-gate coverage at +300 was 0.3-1.9% of decisions on probe seeds, near the rarity bar); 'B' (aligned_double_hit +300 ungated + chain_to_crack_cracked_gated +150 + chain_to_crack_solid_gated +300, where the gate is 1/0.5/0 at max height <=4/5/>=6). Term definitions are frozen in approaches/lifetime-objective/chain-reveal-leaf/extra-terms.hpp (sha256 recorded in expectedArtifacts at freeze). A shadow unchanged search runs at every decision of the non-frozen arms to measure coverage. Primary contrast: A300 minus frozen. Secondary, declared underpowered: A900 minus frozen (dose), B minus A300 (chain-to-crack bundle).
Candidatefast-d4s7-memo-reveal-construction
approaches/lifetime-objective/chain-reveal-leaf/run.cpp Comparatorfair-d4
approaches/fair-expectimax/reference/fair-only-depth4.cpp outcome: failrun: validpublic-developmentRS-20260823T131226Z-16564ed9
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.
| Gate criterion | Verdict | Observed |
|---|
| CHECK gates at the frozen term source | pass | 0 mismatches (gates.log, gates-phase3.log) |
| Artifacts carry the lease and role; 0 incomplete and 0 illegal decisions | pass | SL-20260823T110000Z-a52d0200 / public-development; 0 / 0 |
| A300 coverage >= 2% (else inconclusive by rarity, A900 read as primary) | fail | 0.69% at the 32-game rarity check; arm stopped; A900 read as primary at 2.08% |
| Primary minus frozen: bootstrap and Student-t one-sided 95% lower bounds > 0 | fail | A900: +3,204; LB -26,860 / -27,863 |
| Primary: Q25 non-regression AND both halves > 0 | fail | Q25 +18,534 (met); halves +48,762 / -42,354 (opposite signs) |
| Mechanism (reported): reveals per move above frozen | fail | 1.1520 vs 1.1536 |
Raw metrics (6)
A900_minus_frozen
- games
- 256
- meanScoreCandidate
- 389,749
- meanScoreReference
- 386,545
- pairedDelta
- 3,204
- bootstrapLB95
- -26,860
- studentTLB95
- -27,863
- detectionFloor
- 30,957
- pairedSd
- 301,098
- winTieLoss
- 99-53-104
- medianCandidate
- 326,048
- medianReference
- 313,466
- q25Candidate
- 215,187
- q25Reference
- 196,653
- q25Delta
- 18,534
- minCandidate
- 102,610
- minReference
- 102,894
- maxCandidate
- 1,976,127
- maxReference
- 1,656,350
- movesCandidate
- 112.5500
- movesReference
- 111.5900
- movesDelta
- 0.9700
- movesBootstrapLB95
- -7.1700
flow
- A900
- numberedClearsPerMove
- 2.0541
- coverRevealsPerMove
- 1.1520
- meanOccupiedCells
- 23.3200
- maxChainDepth
- 14
- frozen
- numberedClearsPerMove
- 2.0551
- coverRevealsPerMove
- 1.1536
- meanOccupiedCells
- 23.2200
- maxChainDepth
- 12
coverage
- A900
- divergentDecisions
- 598
- shadowDecisions
- 28,814
- rate
- 0.0208
- A300_at_stop
- divergentDecisions
- 27
- shadowDecisions
- 4,052
- rate
- 0.0067
- completedGames
- 39
- B_at_stop
- divergentDecisions
- 26
- shadowDecisions
- 3,745
- rate
- 0.0069
- completedGames
- 36
stoppedArms
- A300
- games
- 39
- pairedDelta
- -4,298
- bootstrapLB95
- -41,726
- B
- games
- 36
- pairedDelta
- 18,213
- bootstrapLB95
- -35,413
integrity
- incompleteDecisions
- 0
- illegalDecisions
- 0
- censoredGames
- 0
- memoHitRate
- frozen
- 0.6483
- A900
- 0.6484
- maxWork
- 11,892,399
- wallSecondsStage2
- 5,299
frozenArmFreshBaseline
- games
- 256
- meanScore
- 386,545
- meanMoves
- 111.5900
- numberedClearsPerMove
- 2.0551
- coverRevealsPerMove
- 1.1536
- gamesAtOrAboveMillion
supersededtier CHECKalgorithmicno-gameplayEX-20260823-sol-corpus-and-offline-gate-4d3d86e4
Full protocol: runs/RUN-20260823T191900Z-b9f8f80d/kimi-k3-main-design.md sections 3-7 and 10 (P-SOL-v1), fixed as written; this record freezes its decision structure. Stages: (G0) extend the sibling-corpus generator with a panel2 mode (PanelRecordV2 as specified; v1 output byte-identical, gated) and run the continuation-engine fidelity ladder on 256 D3-N7M6 behaviour games (seeds 0xa5216000-0xa52160ff), K=6, H=48, all three engines on identical roots with identical CRN tapes; mini-ladder of 64 roots (D1 vs D3 arms) runs first. Proceed with the cheapest engine whose within-root Kendall-tau vs D3 N7M6 has 95% LB >= 0.85 (cluster bootstrap by origin, 10,000 resamples, seed 0xb0071eaf); if none, stop (F1). (C) Main corpus 2,048 games on 0xa5217000-0xa52177ff (70% D3 N7M6, 15% D3 N7M6 eps=0.10, 15% D2 behaviour), ~48,000 roots at panel stride, K=16, H=48 continuations with the G0-selected engine; D2 fallback branch preregistered (6,000 roots, K=8, H=40) if the D1 branch is unaffordable. Whole-origin split origin mod 10 -> train 0-7 / val 8 / test 9. (T) Train the unchanged 572k NNUE with L = 1.0 pairwise-logistic ranking on delta KM expected lifetime (pair weight min(1,|delta|/(2*SE_CRN))) + 0.5 censor-aware log-lifetime + 0.25 masked-BCE hazard + 0.25 flow; AdamW 3e-3, wd 1e-4, cosine, batch 512 roots, 30 epochs, early stop and model selection on val within-root tau; 5 init seeds. (G1/G2) Gate set: 512 fresh D3-N7M6 games on 0xa5219000-0xa52191ff, 4,096 roots with exact D4 sibling values (d4-rank.cpp adaptation), exact D1/D2, incumbent LeafNet and student on identical roots.
Candidatepanel2-km-label-nnue-leaf
approaches/lifetime-objective/sibling-corpus/generate.cpp Comparatorincumbent played-action LeafNet (finding-08) and exact D1/D2/D4 orderings
approaches/lifetime-objective/learned-leaf/train_leaf.py completedtier CHECKalgorithmicno-gameplayEX-20260823-sol-corpus-and-offline-gate-v2-f95f56e4
Successor to EX-20260823-sol-corpus-and-offline-gate-4d3d86e4, whose G0 budget arithmetic was wrong by 20-77x for every native D3 N7M6 stage (S1 halted before any leased seed was read; erratum and corrected design: runs/RUN-20260823T191900Z-b9f8f80d/kimi-k3-psol-v2-correction.md, Kimi K3). All engineering from v1 is retained: the panel2 generator, byte-identity/CRN/mirror/legality gates (all passed at HEAD 49b4631), the training recipe, the G1/G2 offline gate and the incumbent comparison. Changes, per the v2 correction: (G0 rung 1, powered) D1 and D2 continuation engines are certified against a fast-engine depth-3 seven-stratum M=1 reference (fast-d3s7, ~0.004 CPU-s/move) on 1,200 seed-free synthetic roots, 7 siblings x K=8 x H=50, CRN-paired tapes; proceed per candidate iff mean per-root Kendall-tau LB95 >= 0.75 AND top-1 agreement LB95 >= 0.80. (G0 rung 2, guardrail) fast-d3s7 is spot-checked against native D3 N7M6 on 6 roots harvested from retained C0 traces (already-read data), 7 x K=4 x H=40 (equivalent-cost alternative K=6 H=26), CRN-matched; kill iff top-1 agreement <= 4/6 OR mean tau < 0.5 OR any root tau < 0; this is a guardrail, not an equivalence claim, and every downstream conclusion is worded 'M1-continuation evaluation; M6 transfer assumed and guardrailed'. (Corpus) main-corpus continuations switch from D3 N7M6 to fast-d3s7; a 500-root fast-d3s7 pilot (2.5 CPU-h) precedes the full corpus; behaviour mix, seed arithmetic (0xa5217000-0xa52177ff), training and G1/G2 are unchanged from v1. Budget to the offline gate: rung 1 5.2 CPU-h + rung 2 12.8 (priced at 6.83 s/move) + regates 0.5 + pilot 2.5 + preregistered reserve 14.0 = 35.0 CPU-h cap; reserve uses only (i) rung-2 extension to 12 roots if realised rate <= 2.5 s/move, (ii) rung-1 top-up if a CI straddles a threshold, (iii) returned.
Candidatepanel2-km-label-nnue-leaf-fastd3s7
approaches/lifetime-objective/sibling-corpus/generate.cpp Comparatorincumbent played-action LeafNet (finding-08) and exact D1/D2/D4 orderings
approaches/lifetime-objective/learned-leaf/train_leaf.py outcome: failrun: validpilotRS-20260823T225753Z-0fbd48c3
P-SOL-2 stage G0 fails per the frozen failureAction, with no leased seed opened. Re-gates 7/7 pass, including fast-vs-native d3s7 parity (240 decisions, 0 action/work mismatches). Rung 1 S1-halted on measured cost: fast-d3s7 continuations run at 54.6 ms/move, ~13x the design's 4 ms estimate, projecting 47.9 CPU-h against the 6.76 ceiling; no tau was computed and the 1,200-root seed-free pool is retained. Rung 2 executed within envelope and the guardrail KILLED the proxy: on 6 CRN-matched C0 roots (exact replay verified), fast-d3s7 vs native D3 N7M6 within-root KM-lifetime orderings agree at mean tau 0.370 (LB95 0.283, min 0.053), top-1 4/6 - both kill conditions trigger, worst at late-game roots. Scientific consequence: the M=6 reveal quadrature genuinely changes within-root orderings, so an M=1 continuation corpus cannot carry D3 N7M6 label semantics; the fast-engine M=6 port (E-FAST-M6) is the required reopening route for any cheap-continuation label programme. Total ~7.5 CPU-h of the 35 cap; training lease still reserved and unopened.
| Gate criterion | Verdict | Observed |
|---|
| Re-gates: v1 byte-identity, fast-vs-native d3s7 decision parity, CRN tape parity, mirror invariance, thread/run determinism, legality | pass | 7/7 pass; parity 240 decisions, 0 action/work mismatches (work 38,179,907 both sides); CRN 2,016 comparisons 0 mismatches |
| Rung 1: at least one of D1/D2 with tau LB95 >= 0.75 and top-1 LB95 >= 0.80 vs fast-d3s7 on 1,200 roots | fail | not run: S1 halt - measured fast-d3s7 54.6 ms/move (design assumed 4), projection 47.9 CPU-h vs 6.76 ceiling; root pool retained |
| Rung 2 guardrail: top-1 > 4/6 AND mean tau >= 0.5 AND no root tau < 0 (fast-d3s7 vs native D3 N7M6, 6 CRN-matched C0 roots) | fail | mean tau 0.370 (LB95 0.283, median 0.304, min 0.053), top-1 4/6 - kill conditions 'mean tau < 0.5' and 'top-1 <= 4/6' both trigger; native 3.40 s/move realised |
Raw metrics (4)
regates
7/7 pass; fast-vs-native parity 240 decisions 0 mismatches, work 38,179,907 both sides
rung1
- halted
- S1 on projection
- ratesMsPerMove
- d1
- 0.0740
- d2
- 1.9900
- fastD3s7
- 54.6000
- projectionCpuH
- 47.9000
- ceilingCpuH
- 6.7600
rung2
- roots
- 6
- K
- 4
- H
- 40
- meanTau
- 0.3700
- tauLB95
- 0.2830
- medianTau
- 0.3040
- minTau
- 0.0530
- top1Agreement
- 4/6
- kill
- mean tau < 0.5
- top-1 <= 4/6
- nativeSecondsPerMove
- 3.4000
- cpuHours
- 4.6000
preregisteredtier CHECKalgorithmicno-gameplayEX-20260824-psol3-m6-ladder-corpus-gate-2d0167ad
Full protocol: runs/RUN-20260823T191900Z-b9f8f80d/kimi-k3-psol3-design.md (P-SOL-3, Kimi K3), frozen as written; this record fixes its decision structure. Stages: (T0, ~1 CPU-h, seed-free) measure continuation-duty rates for fast d1-M6, d2-M6, d3-N7M6 on 20 seed-free roots x 7 x K8 x H40 under an exclusive resource lease; re-price every stage; S0 halt with a no-run record if fewer than 6,000 corpus roots fit 18 CPU-h at the measured d1-M6 rate; if d3-M6 exceeds 1.5x 0.177 s/move the ladder drops R 64->48 with an amended power note before any ladder root is drawn. (S1 ladder) certify fast d1-M6 and d2-M6 against fast d3-N7M6 (no native arm - parity is exact per E-FAST-M6; no M<6 arm - M=1 is dead per the v2 guardrail) at the corpus operating point K8 H40 with CRN shared across siblings and engines; R=64 in cohorts 16 then 48, reusing the retained v2 1,200-root seed-free pool iff its manifest shows no M=1-conditioned selection (else regenerate ~0.2 CPU-h); certification = mean within-root Kendall tau LB95 >= 0.75 AND top-1 LB95 >= 0.80 (root bootstrap, 10,000 resamples, seed 0xb0071eaf); early stop drops an arm with tau LB95 < 0.5 after cohort 1. (Corpus) uniform labels from the cheapest certified engine on 2,048 whole origin games (lease sub-range 0xa5217000-0xa52177ff) x 7 harvested roots = 14,336 roots x 7 siblings x K8 x H40 (~17.8 CPU-h at the 2 ms/move d1-M6 estimate, re-priced at T0; ~1 GB disk, full continuations not retained); fallback if only d2 certifies: uniform d2-M6, K4 H32, ~1,300 roots, explicitly a pilot. (Training) as P-SOL v2 with two changes: SE-weighted pairs w_ij=|mu_i-mu_j|/sqrt(se_i^2+se_j^2) clipped to [0,2], and near-tie oversampling x2 for roots with label top-two gap <= 500 points capped at 50% of total loss weight; labels are KM restricted mean lifetime at H=40 with censor rates recorded. (Gate) G1/G2 unchanged from v2 on the 512-game / 4,096-root gate set (lease sub-range 0xa5219000-0xa52191ff) with exact D4 sibling values - the comparator is independent of the corpus engine.
Candidatepsol3-m6-cheap-engine-corpus-nnue
approaches/lifetime-objective/fast-reveal-sampling/fast-factored-search.hpp Comparatorincumbent played-action LeafNet and exact D1/D2/D4 orderings
approaches/lifetime-objective/learned-leaf/train_leaf.py completedtier CHECKengineeringno-gameplayEX-20260824-rust-engine-parity-throughput-4036a91f
Engineering port, no new science: a column-major nibble-packed Rust reimplementation of the Drop7 engine (7 x u32, 4 bits per cell; gravity as PEXT compaction; whole-board cover-hit counting with a bitboard adder) plus a packed-key transposition-table expectimax search is trace-equivalent to the frozen C++ reference (src/core/native/engine.hpp), the proven C++ fast engine (approaches/lifetime-objective/fast-engine, finding-13/audit-06), and the TypeScript engine (src/core/typescript/engine.ts): identical boards, scores, wave lists, reveal streams, leaf value bit patterns, per-column search values and chosen actions at fixed depth/strata. Expected speedup: at least the C++ fast engine's decisions/second at identical fixed work, with bounded per-searcher memory and near-linear game-level thread scaling; the realised figures are measured and reported with the machine profile. Per docs/benchmarks.md, any deviation in actions, random events, or work semantics reclassifies the port as a new algorithmic candidate and it is then not accepted under this record.
Candidaterust-engine (drop7-rs cargo crate, std-only)
approaches/fair-expectimax/rust-engine/src/lib.rs ComparatorC++ fast engine + frozen native reference + TypeScript engine
approaches/lifetime-objective/fast-engine/fast-search.hpp outcome: passrun: validmechanics-onlyRS-20260824T075451Z-e89ea128
The Rust bitboard engine is trace-equivalent to the frozen C++ reference, the proven C++ fast engine, and the TypeScript engine on every observable, and is the fastest of the three. Board representation is seven u32 column words at 4 bits per cell (28 bytes): gravity is a single PEXT bit-gather per column, a row rise is (word << 4) | SOLID, and cover hits are counted board-wide with a 4-way bitboard parallel counter. All parity gates pass with zero mismatches: 3 trajectory arms (512 center + 256 search-policy games vs C++ playHeadlessMove; 256 games vs the TypeScript seededRandom driver) totalling 36,427 moves and 40,286 waves; 150,854 leaf states bit-identical as uint64 patterns; 105 d4s7 and 10 d5s7 roots with bit-identical per-column values and identical actions; the values gate re-run with the transposition table enabled proves cache-independence. Measured on the shared AMD Ryzen AI MAX+ 395 workstation (best-of-N, load 1.1-1.7): single-core engine throughput 12.8M moves/s vs C++ fast 6.5M (1.97x) and TypeScript 0.65M (19.8x); leaf 155.6 ns vs C++ fast 187.5 ns (1.20x); fair search at d4s7 908 ms/decision vs C++ fast 1,071 ms (1.18x) with a 3.1 MB direct-mapped table vs the C++ 16.2 MB LRU; d5s7 7,047 ms at 1M entries vs 7,817 ms (1.11x). Game-level scaling is shared-nothing and near-linear (10.3x on 16 physical cores on the shared machine; 14.1x in a clean run), with identical results at every worker count. A key recorded finding: the transposition table's 1.3% node hit rate is misleading — each hit prunes a whole subtree, so the table eliminates ~47% of work at d4s7 and ~90% at d5s7, and a cheap direct-mapped depth-preferred table captures nearly all of the strict-LRU table's payoff at a fifth of the memory. No strength claim; no new seeds opened.
| Gate criterion | Verdict | Observed |
|---|
| Trajectory parity vs C++ reference and TypeScript engine across center, search-policy, and TS-driver arms | pass | 3 arms, 36,427 moves, 40,286 waves, 0 mismatches on board, next disc, score, score delta, wave list, level, moves remaining, terminal/clear/advance flags |
| Leaf bit-exactness vs C++ fastFairLeaf as uint64 bit patterns | pass | 150,854 states, 0 mismatches |
| Search value/action parity at fixed depth/strata | pass | 105 d4s7 roots (no-table and depth-gated arms) + 10 d5s7 roots, per-column f64 bit patterns and chosen actions identical, 0 mismatches |
| Cache independence of the transposition table | pass | values gate re-run with the direct-mapped table enabled: 105 roots, 0 mismatches |
| Worker-count independence and determinism | pass | identical move counts, wave counts and mean scores at 1/2/4/8/16/32 game-level workers; each game computed by exactly one worker |
| npm test and make test pass; no existing file modified | pass | npm test 137/137 pass; make research-validate OK; all Rust/C++/TS additions live under approaches/fair-expectimax/rust-engine/ and build/rust-engine/ |
Raw metrics (7)
engineMovesPerSecond
- typescript
- 649,471
- cppReference
- 6,799,180
- cppFast
- 6,511,760
- rust
- 12,838,933
leafNsPerEval
- cppFast
- 187.5000
- rust
- 155.6000
searchD4S7MsPerDecision
- cppBaseline
- 3247.8000
- cppFast
- 1071.5000
- rustNoTable
- 1633.4000
- rustDepthGated64k
- 907.6000
searchD5S7MsPerDecision
- cppBaseline
- 23992.6000
- cppFast
- 7817.3000
- rustNoTable
- 63325.4000
- rustDepthGated256k
- 7787.9000
- rustDepthGated1M
- 7047.1000
- rustDepthGated4M
- 6748.4000
transpositionWorkReduction
- nodeHitRateD4S7
- 0.0130
- nodeHitRateD5S7
- 0.0136
- workEliminatedD4S7
- 11.9M -> 6.3M (47%)
- workEliminatedD5S7
- 582.7M -> 59.5M (90%)
scalingMovesPerSecond16Threads
- rust
- 129,483,860
- cppFast
- 82,364,000
memoryBytes
- rustSearcher
- 2,496
- rustBoard
- 28
- rustTable64k
- 3,145,728
- cppFastTable
- 16,194,304