Drop7 Research
← Research

Experiments

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

Pilot: action-complete H40 afterstate corpus and distributional ranker offline gate

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.

Candidate
distributional-afterstate-ranker
approaches/afterstate-learning/distributional-afterstate/common.hpp
Comparator
fair-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 criterionVerdictObserved
Successor-closed corpus: every non-trivial root labeled for every legal sibling under all 8 scenariospass616,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 rootsfail0.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-foldfailhalf1 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-foldfailhalf1 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-foldfailhalf1 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]fail0.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 inspectedpassbuild/afterstate/self-test prints SELFTEST OK (9 checks); make test (TypeScript, native, parity) also passes
Raw metrics (15)
corpusRoots
11,379
corpusRows
616,048
actionCompleteness
1
heldoutRoots
2,470
labelStabilityMeanSpearman
0.2457
quantileIntervalCoverage
0.6310
modelTop1Pooled
0.2470
d4Top1Pooled
0.3300
d1Top1Pooled
0.2540
modelPairwisePooled
0.5710
d4PairwisePooled
0.6370
modelRegretPooled
0.4130
d4RegretPooled
0.3370
withinActionScenarioStdMedian
20,922
betweenActionMedianGap
7,096
completedtier PILOTalgorithmicpublic-developmentEX-20260820-afterstate-pilot-h40-k256-65a05477

Pilot iteration 3: K=256-scenario corpus, fresh held-out origins, full training

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.

Candidate
distributional-afterstate-ranker
approaches/afterstate-learning/distributional-afterstate/common.hpp
Comparator
fair-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 criterionVerdictObserved
Successor-closed corpus (all legal siblings x 256 scenarios)pass24,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.5pass0.8181 on 411 decisive roots; unconditioned 0.6379 on 2,523 roots
Model top-1 >= D4 top-1 - 0.02 on each half-foldfailhalf1 0.3981 vs 0.4776; half2 0.4439 vs 0.5141
Model pairwise >= D4 pairwise - 0.02 on each half-foldfailhalf1 0.6828 vs 0.7280; half2 0.6868 vs 0.7429
Model regret <= D4 regret + 0.02 on each half-foldfailhalf1 0.2496 vs 0.1870; half2 0.2344 vs 0.1720
Nominal 76.5% quantile interval coverage within [0.66, 0.87]pass0.8635
All CHECK-tier tests pass before any label is inspectedpassSELFTEST OK (9 checks)
Raw metrics (19)
corpusARows
19,713,536
corpusCRows
4,557,056
heldoutRoots
2,523
decisiveRoots
411
labelStabilityMeanSpearman
0.6379
labelStabilityDecisiveSpearman
0.8181
quantileIntervalCoverage
0.8635
modelTop1Pooled
0.4245
d4Top1Pooled
0.4986
d1Top1Pooled
0.3191
modelPairwisePooled
0.6851
d4PairwisePooled
0.7366
modelRegretPooled
0.2408
d4RegretPooled
0.1784
modelTop1Decisive
0.5255
d4Top1Decisive
0.5839
modelRegretDecisive
0.0820
d4RegretDecisive
0.0643
epochsCompleted
11
completedtier PILOTalgorithmicpublic-developmentEX-20260820-afterstate-pilot-h40-k64-d7a9faf5

Pilot iteration 2: K=64-scenario action-complete H40 corpus with fresh held-out origins

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.

Candidate
distributional-afterstate-ranker
approaches/afterstate-learning/distributional-afterstate/common.hpp
Comparator
fair-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 criterionVerdictObserved
Successor-closed corpus (all legal siblings x 64 scenarios)pass6,167,936 rows over 14,228 roots across both corpora; completeness 1.0
Label stability floor: mean scenario-half (32 vs 32) Spearman >= 0.5fail0.4462 on 2,750 fresh held-out roots; inconclusive per the frozen rule
Model top-1 >= D4 top-1 - 0.02 on each half-foldfailhalf1 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-foldfailhalf1 0.6341 vs 0.6970; half2 0.6391 vs 0.6974 (moot)
Model regret <= D4 regret + 0.02 on each half-foldfailhalf1 0.3031 vs 0.2388; half2 0.3028 vs 0.2247 (moot)
Nominal 76.5% quantile interval coverage within [0.66, 0.87]pass0.8069
All CHECK-tier tests pass before any label is inspectedpassSELFTEST OK (9 checks) after the K-parameterization change
Raw metrics (13)
corpusARows
4,928,384
corpusBRows
1,239,552
heldoutRoots
2,750
labelStabilityMeanSpearman
0.4462
quantileIntervalCoverage
0.8069
modelTop1Pooled
0.3422
d4Top1Pooled
0.4331
d1Top1Pooled
0.2985
modelPairwisePooled
0.6367
d4PairwisePooled
0.6972
modelRegretPooled
0.3029
d4RegretPooled
0.2315
epochsCompleted
15
completedtier PILOTalgorithmicpublic-developmentEX-20260820-d4-toptwo-override-gate-0bdb39a1

Offline gate: calibrated top-two near-tie override of fair D4 by the frozen afterstate model

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.

Candidate
d4-toptwo-override
approaches/afterstate-learning/distributional-afterstate/override-gate.py
Comparator
fair-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 criterionVerdictObserved
Successor-closed corpus (all legal siblings x 256 scenarios)pass4,858,880 rows over 2,793 roots; completeness 1.0
Label stability floor: decisive-root scenario-half Spearman >= 0.5pass0.8144
Eligible-root override regret <= D4 regret - 0.01 in EACH half-foldfailhalf1 +0.0351 (passes); half2 +0.0075 (below the frozen 0.01 margin); pooled +0.0214
Override rate >= 5% of eligible rootspass37.0%
Quantile interval coverage within [0.66, 0.87]pass0.8606
Gate script deterministic (byte-identical repeated reports)passtwo runs byte-identical after moving wall time out of the report
All existing CHECK-tier self-tests pass before any label is inspectedpassSELFTEST OK (9 checks)
Raw metrics (13)
roots
2,689
eligibleRoots
1,030
nearTieRate
0.3830
overrideRateEligible
0.3699
d4RegretEligiblePooled
0.2629
overrideRegretEligiblePooled
0.2414
regretGainHalf1
0.0351
regretGainHalf2
0.0075
regretGainDecisive
0.0426
d4RegretWholeSet
0.1932
overrideRegretWholeSet
0.1850
labelStabilityDecisiveSpearman
0.8144
quantileIntervalCoverage
0.8606
completedtier CHECKalgorithmicpublic-developmentEX-20260821-afterstate-d2-teacher-58772f17

Stronger-teacher (D2 continuation) afterstate corpus: ranking gate and frozen override rule

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.

Candidate
distributional-afterstate-ranker-d2
approaches/afterstate-learning/distributional-afterstate/common.hpp
Comparator
fair-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 criterionVerdictObserved
Corpus successor-closed at K=64 with the D2 teacher, completeness 1.0passper-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-foldfailhalf1 0.3418, half2 0.3314
Override gate: eligible-root override regret <= D4 regret - 0.01 in EACH half-fold, rate >= 5%failhalf1 -0.0089, half2 +0.0110, pooled +0.0012; override rate 35.9%
Decisive-root label stability >= 0.5 for both evaluation corporapass0.8058 (override corpus), 0.8010 (ranking corpus)
Quantile coverage within [0.66, 0.87]pass0.7244
Raw metrics (18)
corpusD2Rows
2,884,224
corpusD2Roots
6,535
corpusD2Complete
false
epochsCompleted
30
rankingTop1Pooled
0.3365
rankingTop1Half1
0.3418
rankingTop1Half2
0.3314
d4Top1Pooled
0.5020
d1Top1Pooled
0.3339
iteration3D1TeacherTop1
0.4245
rankingPairwisePooled
0.6310
rankingRegretPooled
0.3120
overrideRegretGainHalf1
-0.0089
overrideRegretGainHalf2
0.0110
overrideRegretGainPooled
0.0012
overrideRate
0.3592
labelStabilityDecisiveSpearman
0.8058
quantileIntervalCoverage
0.7244
completedtier CHECKalgorithmicpublic-developmentEX-20260821-afterstate-d4q-stage1-40136e9e

Scale-out stage 1: successor-closed fair-D4 search-value labels; held-out D4-ranking agreement

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.

Candidate
afterstate-d4q-student
approaches/afterstate-learning/distributional-afterstate/train.py
Comparator
fair-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 criterionVerdictObserved
Successor-closed D4-value labels on >= 8,000 training roots, completeness 1.0pass8,639 roots, 291,890 afterstate labels, every legal sibling x 5 strata
Held-out top-1 agreement >= 0.60 on each half-foldfailhalf1 0.3628, half2 0.3864
Held-out pairwise agreement >= 0.78 on each half-foldfailhalf1 0.6375, half2 0.6473
Normalized regret <= 0.13 on each half-foldfailhalf1 0.3055, half2 0.2778
All CHECK-tier self-tests pass before any label is inspectedpassSELFTEST OK (10 checks including D2-continuation determinism)
Raw metrics (10)
trainRoots
8,639
trainAfterstateLabels
291,890
heldoutRoots
3,030
top1Pooled
0.3752
top1Half1
0.3628
top1Half2
0.3864
pairwisePooled
0.6426
regretPooled
0.2909
referenceD1Top1
0.4860
referenceD2Top1
0.5680
completedtier CHECKalgorithmicpublic-developmentEX-20260821-afterstate-full-train-override-ec7f28f4

Full training of the K=256 afterstate model, then the frozen top-two override rule on fresh origins

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.

Candidate
distributional-afterstate-ranker
approaches/afterstate-learning/distributional-afterstate/train.py
Comparator
fair-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 criterionVerdictObserved
Training completes 22 epochs on the 2M-row subsample within budget (44M row-updates, 2x iteration 3)pass22 epochs, cosine schedule completed, ~5.5h GPU
Eligible-root override regret <= D4 regret - 0.01 in EACH half-foldfailhalf1 +0.0228 (passes); half2 -0.0297 (override harmful); pooled +0.0018
Override rate >= 5% of eligible rootspass41.1%
Decisive-root label stability >= 0.5pass0.8244
Quantile coverage within [0.66, 0.87]pass0.7997
Gate report byte-identical across two runspassbyte-identical
Raw metrics (12)
epochsCompleted
22
rowUpdates
44,000,000
finalRankLoss
0.5838
diagnosticTop1VsIter3
0.3611 vs 0.4245 (same roots)
diagnosticRegretVsIter3
0.2807 vs 0.2408 (same roots)
overrideEligibleRoots
1,106
overrideRate
0.4114
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

Depth x chance-exactness factorial: the fifth ply at five and at seven strata, with an end-to-end reproduction control

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.

Candidate
fast-engine-parameterized-fair-search, depth 5 (arms d5s7 and d5s5)
approaches/lifetime-objective/fast-engine/cohort.cpp
Comparator
the 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 criterionVerdictObserved
Control: the fast engine's depth-4 seven-stratum arm reproduces the recorded unoptimised arm on all 11 per-game fieldspass64 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 armpassd4s7 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 gamesn/aundecidable 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 gamesfail-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 countfailat 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 armpass0 and 0 in all three arms
Raw metrics (30)
cohort
0xa51d1000-0xa51d103f, 2,000-move cap, corrected 17,000-point Hardcore scoring
d4s7ControlGames
64
d4s7ControlMeanScore
398498.2344
d4s7ControlMeanMoves
114.6563
d4s7ControlWorkPerMove
4956614.2652
d5s5Games
64
d5s5MeanScore
288703.6719
d5s5MeanMoves
84.6875
d5s5WorkPerMove
30,183,227
d5s5ClearsPerMove
1.9387
d5s5RevealsPerMove
1.0651
d5s7Games
16
d5s7GamesPlanned
64
d5s7MeanScoreOn16
383691.1875
d5s7MeanMovesOn16
110
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
censoredGamesAllArms
0
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 criterionVerdictObserved
Control: the fast engine's depth-4 seven-stratum arm reproduces the recorded unoptimised arm on all 11 per-game fieldspass704 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 armpassd4s7 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 gamesn/aNOT 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 gamesfail-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 countfailat 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 armpass0 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.
d5s7Games
32
d5s7GamesPlanned
64
d5s7StopKind
deliberate resource decision at a clean chunk boundary; not resumed
d5s7MeanScore
411873.6563
d5s7MedianScore
344436.5000
d5s7ScoreSd
282631.6400
d5s7MeanMoves
117.9688
d5s7ClearsPerMove
2.0575
d5s7RevealsPerMove
1.1481
d5s7Occupied
23.6169
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
  1. contrast
    d4s7 - d4s5
    n
    64
    mean
    101,171
    pairedSd
    268,413
    standardError
    33,552
    detectionFloor
    55,192
    aboveFloor
    true
  2. contrast
    d4s7 - d3s7
    n
    64
    mean
    86,172
    pairedSd
    298,877
    standardError
    37,360
    detectionFloor
    61,457
    aboveFloor
    true
  3. contrast
    d5s7 - d5s5
    n
    32
    mean
    123,613
    pairedSd
    327,399
    standardError
    57,876
    detectionFloor
    95,207
    aboveFloor
    true
  4. contrast
    d5s7 - d3s7
    n
    32
    mean
    86,397
    pairedSd
    334,291
    standardError
    59,095
    detectionFloor
    97,211
    aboveFloor
    false
  5. contrast
    d5s5 - d4s5
    n
    64
    mean
    -8,624
    pairedSd
    228,827
    standardError
    28,603
    detectionFloor
    47,052
    aboveFloor
    false
  6. 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. -1,002,862
  2. 958,985
  3. -678,455
  4. 592,546
  5. -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
censoredGamesAllArms
0
scoreIdentityFailuresAllArms
0
runningtier STANDARDalgorithmicpreviously-evaluated-developmentEX-20260821-reveal-sampling-unfinished-arms-470677b5

The two arms finding-09 left unfinished: reveal sampling on top of the fourth ply, and the depth-3 ladder at full joint coverage

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%).

Candidate
factored-chance-fair-search, arms d4 N=7 M=2 and d3 N=7 M=12
approaches/lifetime-objective/reveal-sampling/search.cpp
Comparator
the 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 criterionVerdictObserved
Pooling validity: four pooled 16-game chunks reproduce a single 64-game run on all 13 per-game fields with identical summed logical workpass64 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 armpassd4 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 gamesfail-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 sixn/aundecidable 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 armpass0 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
d4N7M2Games
64
d4N7M2MeanScore
356,548
d4N7M2MedianScore
305,167
d4N7M2MeanMoves
103.6400
d4N7M2WorkPerMove
20,178,327
d4N7M2ClearsPerMove
2.0306
d4N7M2RevealsPerMove
1.1358
d4N7M2Occupied
23.3500
d3N7M12Games
32
d3N7M12GamesPlanned
64
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
censoredGamesAllArms
0
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 criterionVerdictObserved
Pooling validity: four pooled 16-game chunks reproduce a single 64-game run on all per-game fields with identical summed logical workpassdepth 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 armpassd4 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 gamesfail-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 gamesfail-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 armpass0 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
d4N7M2Games
64
d4N7M2MeanScore
356,548
d4N7M2MeanMoves
103.6400
d4N7M2WorkPerMove
20,178,327
d3N7M12Games
64
d3N7M12MeanScore
349345.2188
d3N7M12MedianScore
258,855
d3N7M12MeanMoves
101.9219
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)
censoredGamesAllArms
0
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

Prevalence, lead time and incremental lifetime signal of entombed numbered discs in the existing training corpus

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.

Candidate
entombed-disc-features
approaches/lifetime-objective/entombed-discs/analyze.py
Comparator
fair-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 criterionVerdictObserved
analysis completes on all non-explored records with finite leaf valuespass4863627 records analysed, 393554 explored records excluded, 0 invalid leaf rows
depth-4 fracAtDeath >= 0.5pass0.7539
depth-4 lead-time median >= 10 movespassmedian 11.0, q25 5.5, q75 15.0
held-out partial correlation <= -0.05 AND incremental R^2 >= 0.005failpartial -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

CMA-ES over the eighteen fair-leaf weights inside the fast depth-4 five-stratum search, fresh training seeds per generation, one held-out paired screen

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.

Candidate
fast-d4s5-evolved-leaf
approaches/lifetime-objective/leaf-evolution/evolve.py
Comparator
fair-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 criterionVerdictObserved
CHECK gates passed before the first training seed (runs/RUN-20260822T013756Z-0f7ab038/gates.log)pass6 of 6 gates passed, 0 mismatches; recorded in RUN-20260822T013756Z-0f7ab038
incompleteDecisionsTotal 0, illegalDecisionsTotal 0, no score-identity failures across all generation and screen artifactspassincomplete 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 > 0failmean delta -30300.4, bootstrap LB -70928.5, t LB -71499.9, floor 40597.3
held-out d4s5: candidate Q25 >= frozen Q25passQ25 candidate 188540.2 vs frozen 179948.5
held-out d4s5: paired mean delta > 0 in both halvesfailhalves -53933.4 / -6667.4
the screened vector is the CMA distribution mean frozen before the held-out lease was openedpasscandidate-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
moves
mean
93.5469
q25
55
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
  1. -593,033
  2. -533,691
  3. -514,095
  4. 438,358
  5. 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
  1. -160
  2. -145
  3. -137
  4. 115
  5. 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
moves
mean
101.1563
q25
55
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
moves
mean
113.7344
q25
60
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
  1. -937,256
  2. 827,839
  3. -822,882
  4. -820,654
  5. 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
  1. -255
  2. 230
  3. -225
  4. -225
  5. 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
  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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
  38. 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
  39. 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
  40. 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

CHECK gates for the one-entry leaf memo: bit identity, search parity, determinism, interleaved timing on real probe seeds

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.

Candidate
fast-engine-memo MemoSearch
approaches/lifetime-objective/fast-engine-memo/gate.cpp
Comparator
fair-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 criterionVerdictObserved
0 leaf bit mismatches at d4s5 and d4s7pass0/4,260 and 0/2,500
0 parity mismatches vs FastSearchpass0 over 160 and 50 moves
0 determinism mismatchespass0 over 4 games
timing ratio >= 1.5 at both strata (indicative)pass1.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
determinism
games
4
threads
  1. 1
  2. 4
mismatches
0
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

Offline capacity and training sweep of the NNUE-shaped survival leaf on the existing corpus

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).

Candidate
leafnet-capacity-grid
approaches/lifetime-objective/leaf-capacity-sweep/sweep.sh
Comparator
fair-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 criterionVerdictObserved
All 13 runs complete with finite metrics on the same splitpass13 rows, 0 FAILED lines in sweep.log
Gate verdict from summarize.pypassdelta +0.0022 vs threshold max(0.005, 2 x 0.0023) -> supported-as-tested
Every number copied from the trainer's own <tag>.json outputpasssummarize.py reads heldOut/heldOutMirrored/history fields verbatim
Raw metrics (8)
basePearson
0.8546
seedSpread
0.0023
bestTag
h64-m64-e10-lr3e3-s0
bestPearson
0.8568
deltaBestMinusBase
0.0022
gateVerdict
supported-as-tested
runs
  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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

Paired SCREEN of fair D4 with the survival-instinct root filter (strict and literal) against unchanged fair D4 on 128 fresh development games

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.

Candidate
fast-d4s5-survival-instinct-strict
approaches/lifetime-objective/survival-instinct/run.cpp
Comparator
fair-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 criterionVerdictObserved
CHECK gates passed before the lease was openedpassRUN-20260822T063817Z-a5d4c143: 7 of 7 (mask units re-run after a corrected test expectation)
incompleteDecisionsTotal 0 and illegalDecisionsTotal 0pass0 / 0
strict minus none: bootstrap and Student-t 95% lower bounds > 0fail-27738 / -27150
strict minus none: Q25 >= and both halves > 0failQ25 delta -13513; halves +1721 / -5661
strict arm overrides >= 2% of decisions (else inconclusive)fail254 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
moves
mean
100.9531
q25
55
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
moves
mean
101.3203
q25
55
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
  1. -844,875
  2. -805,407
  3. -548,601
  4. 505,964
  5. 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
  1. -227
  2. -220
  3. -150
  4. 135
  5. 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
moves
mean
75.6719
q25
50
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
moves
mean
101.3203
q25
55
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. -1,577,399
  2. -823,508
  3. -787,758
  4. -774,508
  5. -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
  1. -425
  2. -225
  3. -212
  4. -210
  5. -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

C0: paired D3 N7M6 minus D4 s5 contrast from retained per-game records

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.

Candidate
D3 N7M6: factored-chance-fair-search, depth 3, discSamples 7, revealSamples 6, terminalUtility -1000000, maximumWork 51084852, 2000-move cap, corrected 17,000-point Hardcore scoring (finding-16 arm, RUN-20260821T035407Z-00483c6c)
runs/RUN-20260823T191900Z-b9f8f80d/c0/c0_compare.py
Comparator
D4 s5: parameterized-fair-search, depth 4, chanceSamples 5 (N5 M1), terminalUtility -1000000, maximumWork 3200000, 2000-move cap, corrected 17,000-point Hardcore scoring (finding-05 fresh-s5 arm, runs/RUN-A51D-s7confirm/fresh-s5.json; byte-identical games to runs/RUN-A52-LEAF/eval/s5-w000.json)
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 criterionVerdictObserved
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-A51Dpassseed 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 > 0passbootstrap 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

E-FAST-M6: port M=6 reveal sampling into the fast memo engine, trace-equivalent to the native factored search

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.

Candidate
fast-engine factored reveal sampling
Comparator
native 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 criterionVerdictObserved
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 searchpass525 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 searchpass2,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 decisionspasssubset 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)passnpm 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)
gridDecisions
6,300
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

Stage D0: fair relabelling of oracle-visited vs matched fair-D4 public states

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.

Candidate
oracle-curriculum state pool relabelled under public randomness
Comparator
fair-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 criterionVerdictObserved
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_fairpassALL 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 pooledfailtau = -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 halvespasshalf 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 rootsfailoracle 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)
tauPooled
-0.9590
tau95ClusterBootstrap
  1. -3.0691
  2. -0.3897
tauByHalves
half0
-0.8357
half1
-1.1761
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
fairDifference
0.2626
fairDifference95ClusterBootstrap
  1. 0.1561
  2. 0.3670
fairDifferenceByHalves
half0
0.2319
half1
0.3146
realisedDifference
-0.2738
horizon
25
scenariosPerState
32
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
  1. -0.0691
  2. -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
  1. -9.3496
  2. 5.1228
wallSecondsMain
3,132
oracleGameScoresMeanMoves
495
completedtier CHECKdiagnosticno-gameplayEX-20260823-nnue-d4q-ordering-probe-0ca09bb1

NNUE-class student on existing successor-closed D4 labels: within-root ordering probe

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.

Candidate
LeafNet h64/m32 listwise student on d4q labels
Comparator
exact 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 criterionVerdictObserved
Label file is the preregistered artifact: 291,890 rows / 8,639 rootspass291890 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-secondspass5 of 5 seeds valid; 166.08 wall-seconds total
Selected seed (best validation top-1, 0xA52E02) held-out top1 >= 0.6 in each half-foldfailhalf1 0.2960, half2 0.3011
Selected seed (best validation top-1, 0xA52E02) held-out pairwise >= 0.78 in each half-foldfailhalf1 0.6266, half2 0.6259
Selected seed (best validation top-1, 0xA52E02) held-out regret <= 0.13 in each half-foldfailhalf1 0.3354, half2 0.3379
Raw metrics (28)
labelRows
291,890
labelRoots
8,639
trainRoots
6,551
validationRoots
2,088
heldoutRoots
3,030
modelParameters
571,905
seedsRun
5
selectedSeed
0xA52E02
selectedValidationTop1
0.3281
top1Pooled
0.2987
top1Half1
0.2960
top1Half2
0.3011
top2Pooled
0.5099
pairwisePooled
0.6262
pairwiseHalf1
0.6266
pairwiseHalf2
0.6259
regretPooled
0.3367
regretHalf1
0.3354
regretHalf2
0.3379
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
  1. 0.2987
  2. 0.3135
inferenceMicrosecondsPerState
1.2721
trainWallSeconds
166.0800
comparatorAfterstateCnnTop1Pooled
0.3752
referenceD1Top1
0.4860
referenceD2Top1
0.5680
completedtier SCREENalgorithmicpublic-developmentEX-20260823-reveal-construction-screen-371fd638

Seed-free corpus gate, then a paired 256-game SCREEN of fair D4 (seven strata, memo engine) with reveal-construction leaf terms against the unchanged leaf

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.

Candidate
fast-d4s7-memo-reveal-construction
approaches/lifetime-objective/chain-reveal-leaf/run.cpp
Comparator
fair-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 criterionVerdictObserved
aligned_double_hit held-out partial r >= +0.05fail-0.0443
aligned_double_hit incremental held-out R^2 >= 0.005fail0.00047
aligned_double_hit prevalence >= 5% of depth-4 positionspass19.75%
aligned_double_hit uncollected-setup rate >= 30%pass60.47% (excluding ambiguous 56.51%)
CHECK gates (bit parity, search parity, mirror, determinism, metadata blindness, memo identity) at d4s5 and d4s7pass0 mismatches in every gate; runs/RUN-20260823T091530Z-cbe65468/gates.log
Screen gate (A minus frozen lower bounds, Q25, halves, coverage)n/anot 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 SCREEN: paired 256-game test of the reveal-construction leaf terms (two doses and a chain-to-crack bundle) against the unchanged fair D4 at seven strata with the memo engine, after the corpus value gate failed

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).

Candidate
fast-d4s7-memo-reveal-construction
approaches/lifetime-objective/chain-reveal-leaf/run.cpp
Comparator
fair-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 criterionVerdictObserved
CHECK gates at the frozen term sourcepass0 mismatches (gates.log, gates-phase3.log)
Artifacts carry the lease and role; 0 incomplete and 0 illegal decisionspassSL-20260823T110000Z-a52d0200 / public-development; 0 / 0
A300 coverage >= 2% (else inconclusive by rarity, A900 read as primary)fail0.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 > 0failA900: +3,204; LB -26,860 / -27,863
Primary: Q25 non-regression AND both halves > 0failQ25 +18,534 (met); halves +48,762 / -42,354 (opposite signs)
Mechanism (reported): reveals per move above frozenfail1.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
halves
  1. 48,762
  2. -42,354
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

P-SOL-1: panel2 sibling corpus with CRN Kaplan-Meier outcome labels, NNUE retraining, and the G0/G1/G2 offline gates

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.

Candidate
panel2-km-label-nnue-leaf
approaches/lifetime-objective/sibling-corpus/generate.cpp
Comparator
incumbent 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

P-SOL-2: corrected two-rung G0 fidelity ladder (fast-d3s7 proxy + native D3 N7M6 guardrail), fast-engine corpus continuations, and the G1/G2 offline gates

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.

Candidate
panel2-km-label-nnue-leaf-fastd3s7
approaches/lifetime-objective/sibling-corpus/generate.cpp
Comparator
incumbent 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 criterionVerdictObserved
Re-gates: v1 byte-identity, fast-vs-native d3s7 decision parity, CRN tape parity, mirror invariance, thread/run determinism, legalitypass7/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 rootsfailnot 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)failmean 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
  1. mean tau < 0.5
  2. top-1 <= 4/6
nativeSecondsPerMove
3.4000
cpuHours
4.6000
totalCpuHours
7.5000
preregisteredtier CHECKalgorithmicno-gameplayEX-20260824-psol3-m6-ladder-corpus-gate-2d0167ad

P-SOL-3: T0 timing, all-M=6 fidelity ladder, uniform certified-cheap-engine M=6 corpus, and the G1/G2 offline gates

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.

Candidate
psol3-m6-cheap-engine-corpus-nnue
approaches/lifetime-objective/fast-reveal-sampling/fast-factored-search.hpp
Comparator
incumbent 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

Rust bitboard engine: parity gates and throughput benchmark vs TypeScript and C++ engines

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.

Candidate
rust-engine (drop7-rs cargo crate, std-only)
approaches/fair-expectimax/rust-engine/src/lib.rs
Comparator
C++ 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 criterionVerdictObserved
Trajectory parity vs C++ reference and TypeScript engine across center, search-policy, and TS-driver armspass3 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 patternspass150,854 states, 0 mismatches
Search value/action parity at fixed depth/stratapass105 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 tablepassvalues gate re-run with the direct-mapped table enabled: 105 roots, 0 mismatches
Worker-count independence and determinismpassidentical 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 modifiedpassnpm 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