Drop7 Research
← Docs

Experiment index

docs/research/experiment-index.md

Experiment index

This index maps the current research source tree to the question each program asks and to the strongest evidence presently available for it. It covers all 139 approach sources and all 41 shared core and test sources in the repository. It is an inventory, not a claim that every executable has a durable result.

How to read the evidence

  • Repository-verified means the implementation or test is present and its purpose can be established from the current source. It does not prove that a complete experimental run occurred.
  • Ledger-recorded means history.md records a protocol and result. These are the most durable experiment claims available here.
  • Task-record only means the referenced research conversation reports a result that has not yet been promoted into history.md. Treat the number as provisional until an artifact or ledger entry is added.

Status labels are deliberately narrow:

  • Completed: the run or diagnostic finished and produced usable evidence.
  • Rejected: the tested candidate failed its frozen gate or was explicitly retired. This rejects that configuration, not every future method in its family.
  • Runtime-paused: cost or resource limits stopped the experiment before a decisive policy comparison.
  • Preregistered: a bounded implementation or protocol exists, but no result is established.
  • Support-only: infrastructure, a benchmark, or a data-producing diagnostic; it is not itself a candidate policy.
  • Unknown: the source exists, but neither the ledger nor the task record establishes a trustworthy outcome.

Buildability is a separate property. Several Sequence-scored sources retain a kLevelBonus == 7'000 assertion so they cannot be run accidentally with the corrected 17,000-point Hardcore engine. The optional PyTorch environment also requires pybind11 include flags. These intentional boundaries are described in the reproducibility guide.

The current strongest public-information reference remains completed full-width fair depth 4. The ledger reports about 308,000 points over a broad 64-game already-used cohort and about 401,000 over a smaller eight-game corrected-score confirmation. Those are development results, not protected validation, and the one-million-point average remains open.

Shared core

These files implement reusable mechanics and policy components. Their status is about software support, not playing strength.

Component and sourcesPurposeStatus and evidence
Native engine: engine.hppExact headless Hardcore transitions, scoring, rises, reveals, and seeded play.Support-only — repository-verified; current parity reproduced 6,852 matching transitions.
Native public policy support: public-behavior.hppShared public-state phase evaluator and behavior-policy primitives used by many native experiments.Support-only — repository-verified.
Native n-tuple support: ntuple.hpp, ntuple-search.hppReflection-safe n-tuple storage, training, and bounded learned-value search.Support-only — repository-verified; self-test results are ledger-recorded.
Native PPO support: ppo.hppCommon policy/value-network and PPO training utilities.Support-only — repository-verified.
TypeScript engine: engine.ts, engine.test.tsRuntime-neutral game rules and deterministic transition tests.Support-only — repository-verified; 122 current tests pass and native parity is exact.
Baseline expectimax: solver.ts, solver.test.tsIterative-deepening max/chance search with bounded, mirror-canonical caching.Support-only — repository-verified.
Hand evaluator: heuristic.ts, heuristic.test.tsImmediate score, chain readiness, cover access, height risk, and low-number congestion features.Support-only — repository-verified.
Headless tournaments: headless.ts, headless.test.tsReproducible complete games, paired seeds, censoring, and summary statistics.Support-only — repository-verified.
Phase-horizon evaluator: phase-horizon-evaluator.ts, phase-horizon-evaluator.test.tsPhase-aware leaf terms keyed to the five-move rise clock.Support-only — repository-verified.
Tunneling evaluator: tunneling-heuristic.ts, tunneling-heuristic.test.tsRewards moves that create reachable damage paths through covered discs.Support-only — repository-verified.
Recursive potential: recursive-potential.ts, recursive-potential.test.tsRecursively values delayed trigger chains and excludes already-overshot clogs.Support-only — repository-verified.
Virtual ignition: virtual-ignition.ts, virtual-ignition.test.tsSimulates hypothetical trigger placements to estimate stored chain energy.Support-only — repository-verified.
Rollout solver: rollout-solver.ts, rollout-solver.test.tsBounded Monte Carlo continuation search over public information.Support-only — repository-verified.
MCTS solver: mcts-solver.ts, mcts-solver.test.tsObservable-state Monte Carlo tree search component.Support-only — repository-verified.
Sparse expectimax: sparse-expectimax.ts, sparse-expectimax.test.tsFull-width root search with sampled chance branches and reduced internal action width.Support-only — repository-verified.
Risk-sensitive planning: risk-sensitive-planner.ts, risk-sensitive-planner.test.tsMean/lower-tail aggregation for public stochastic rollouts.Support-only — repository-verified.
Open-loop beam: robust-open-loop-beam.ts, robust-open-loop-beam.test.tsCommon-root open-loop planning across synthetic future scenarios.Support-only — repository-verified.
Sampled beam solver: sampled-beam-solver.ts, sampled-beam-solver.test.tsFixed-width, fixed-memory beam search over sampled public outcomes.Support-only — repository-verified.
Learned evaluator: learned-evaluator.ts, learned-evaluator.test.tsSparse NNUE-style board and policy inference used by TypeScript training labs.Support-only — repository-verified.
Monte Carlo return policy: mc-return-policy.ts, mc-return-policy.test.tsAction features and network inference for episode-return learning.Support-only — repository-verified.
Gray-throughput policy: gray-throughput-policy.ts, gray-throughput-policy.test.tsRule policy emphasizing cracks, reveals, cover altitude, and occupancy.Support-only — repository-verified.
Gray-throughput rollout: gray-throughput-rollout.ts, gray-throughput-rollout.test.tsMonte Carlo continuation around the gray-throughput rule policy.Support-only — repository-verified.

Baselines and diagnostics

Approach and sourcesPurposeStatus and evidence
Heuristic benchmark: main.tsRuns paired complete-game comparisons among named TypeScript heuristic profiles.Support-only — repository-verified.
Native parity: main.tsCompares native and TypeScript traces byte for byte.Completed — reproduced; 256 seeds and 6,852 transitions matched in this checkout.
Tie-breaking: main.tsMeasures sensitivity to fixed legal-column ordering.Support-only — repository-verified.
Phase benchmark: phase-benchmark.cppReports score, survival, clear/reveal flow, height, work, and censoring for the shared phase policy.Support-only — repository-verified; no durable standalone result was located.
D4 flow audit: d4-flow-audit.cppEmits per-move D4 geometry, flow, and root-value traces on already-consumed seeds.Support-only — repository-verified.
Trajectory throughput: main.tsCompares matched windows from public policies and a privileged ceiling to locate regenerative clear/reveal regimes.Completed — task-record only; this analysis motivated the approximate 2.4-clear and 1.4-reveal sustainability targets.
Cover-throughput probe: throughput-probe.cppTests large immediate crack/reveal weights on historical seeds.Rejected — task-record only; the strongest profile was nearly flat, so larger local cover weights were not promoted.

Heuristic and rollout search

Approach and sourcesPurposeStatus and evidence
Sparse expectimax lab: main.tsBenchmarks the sampled, reduced-width expectimax component over complete games.Completed — task-record only; it established a useful bounded-search baseline, still well below the target.
Open-loop lab: main.tsEvaluates public open-loop synthetic-future planning.Support-only — repository-verified; it primarily serves as a comparator.
Phase-horizon policy: main.tsTests phase-conditioned safety and rise-readiness weights.Rejected — task-record only; the frozen policy improved some games but failed its 400,000-point gate.
Tunneling policy: main.tsAdds transition credit for damaging high or edge covered discs through reachable paths.Completed — task-record only; a 64-game comparison improved the open-loop baseline, but did not approach qualification.
Virtual ignition lab: main.tsTests explicit stored-chain energy under hypothetical triggers.Rejected — task-record only; the small gain did not justify its substantial search cost.
Risk-sensitive lab: main.tsApplies lower-tail/CVaR weighting to sampled rollouts.Rejected — task-record only; the best mild-risk pilot trailed the phase baseline.
Policy comparison: main.tsCommon harness for comparing heuristic and planning policies.Support-only — repository-verified.
Gray-throughput tuning: tune.ts, benchmark.tsTunes and evaluates policies that prioritize covered-disc damage and removal flow.Rejected — task-record only; stronger gray weights improved exposure but not sustainable cracks/reveals or score.
Native rollout planner: rollout.cppEvaluates root actions with bounded public continuations and configurable horizons/scenarios.Rejected — task-record only; the tested 25-move control reproduced the weak continuation policy's mistakes.
Native rollout teacher: teacher.cppProduces higher-cost common-tape action labels for rollout and distillation studies.Completed — task-record only; useful as a teacher/benchmark, not a deployable policy.
Five-move cycle abstraction: cycle-abstraction.cppTests whether 41 cycle-level features can rank five-move options.Rejected — task-record only; survival prediction was strong but option ranking was weak.
Edge-cover priority: edge-priority-lab.cppScreens nonlinear cover-altitude and edge multipliers with paired confirmation gates.Unknown — repository-verified; no ledger or task-record outcome was located.
Critical-state risk: critical-risk-lab.cppApplies lower-tail aggregation only at high-load critical states.Unknown — repository-verified; no durable outcome was located.
Engineered-feature evolution: evolution.cpp, nonlinear-evolution.cpp, phase-weight-evolution.cppEvolves linear, small nonlinear, and grouped phase-aware one-step action scorers.Rejected — ledger-recorded; each family failed its whole-game gate despite inexpensive fitting or plausible feature directions.
Evolved public policy: evo-public-policy.cppEvolves a larger public phase evaluator used inside selective expectimax.Rejected — ledger-recorded; it failed before the protected probe.
Exact root quadrature and historical D4: exact-root-ensemble.cpp, exact-depth4.cppTests independent root quadratures and a fully completed extra ply with the older leaf.Rejected — ledger-recorded; both were slower and worse, showing that depth alone cannot repair a biased leaf.
Three-member exact policy ensemble: policy-ensemble.cppVotes or aggregates independent complete root searches, falling back when they split.Completed — task-record only; a small replicated gain was reported against its comparator, but it was not qualified against the strongest D3/D4 reference.

Fair expectimax

Approach and sourcesPurposeStatus and evidence
Fair policy tuning: tune.ts, weight-sweep.tsFits the public fair leaf and performs bounded coefficient sweeps.Completed — ledger-recorded; these runs produced the fair reference weights.
Phase/fair combination: main.tsCombines the fair leaf with frozen phase overrides.Completed — ledger-recorded; it is part of the recovered D3 baseline lineage.
Fair D3 reference: fair-only-horizon.cppFull-width depth-3, five-stratum public expectimax with the fair leaf.Completed — ledger-recorded; it passed its mean-improvement screen and confirmation.
Fair D4 reference: fair-only-depth4.cppHolds the fair evaluator fixed and completes all four search plies.Completed — ledger-recorded; this is the strongest retained public baseline, although still only development evidence.
Root CVaR: fair-root-risk.cppReplaces mean root utility with a fixed mean/lower-tail mixture.Rejected — ledger-recorded; score, survival, and flow all regressed.
Full action terms: full-fair-horizon.cpp, transition-reward-horizon.cppRestores historical placement terms, then isolates reveal/chain transition rewards.Rejected — ledger-recorded; neither transfer survived its fresh screen.
D2 reward landscape: d2-reward-probe.cppTraining-range-only sweep of clear and reveal transition rewards at depth 2.Completed — task-record only diagnostic; it generated hypotheses but cannot qualify a policy.
Phase-energy release: fair-phase-energy-release.cppTests phase-dependent stored-energy release terms inside fair D4.Runtime-paused — ledger-recorded; useful diagnostics were retained after the resource cap.
Clear reward confirmation: fair-clear-reward-confirmation.cppRe-tests the fitting winner that pays a fixed reward per numbered clear.Rejected — ledger-recorded; the held-out cohort reversed the fitting gain.
Reveal reward: fair-reveal-reward.cppIsolates direct reward for newly exposed covered numbers.Rejected — ledger-recorded; the held-out comparison failed.
Fair-leaf CEM: fair-cem-optimizer.cpp, fair-cem-depth4-interaction.cppOptimizes eight fair-leaf/action coefficients on complete games and transfers the frozen vector to D4.Rejected — ledger-recorded; the D3 screen and D4 heldout/tail gates failed.
Seven-stratum D4: fair-depth4-s7.cppCovers all seven next-disc values at each D4 chance node.Rejected — ledger-recorded; it was score-neutral to worse, reduced flow, and cost about 3.8 times more work.
Selective D5: fair-selective-depth.cppExtends only selected roots beyond D4.Rejected — ledger-recorded; the screen lost score, survival, and flow.
Cycle-boundary D5: fair-cycle-boundary-depth5.cppSearches one extra ply only where D4 cannot see through the next rise.Rejected — ledger-recorded; the pilot was adverse and also missed its runtime gate.
Full-width D5/s3: fair-depth5-s3.cppTrades chance quality for a completed fifth ply.Runtime-paused — ledger-recorded; the runtime gate stopped the full study and the available pilot was unfavorable.
Vertical-ladder probe: d2-vertical-ladder-probe.cppScreens a literal 7/6/5 vertical-reservoir energy term cheaply at D2.Completed — ledger-recorded diagnostic; the shallow signal motivated a D4 transfer.
Vertical-ladder D4: fair-vertical-ladder-depth4.cppApplies the frozen ladder feature to fair D4.Rejected — ledger-recorded; the shallow benefit did not transfer.
Fair-D1 rollout improvement: fair-d1-rollout-improvement.cppUses public continuations to improve fair D1 one root at a time.Rejected — ledger-recorded; it failed the fitting gate.

Tree search

Approach and sourcesPurposeStatus and evidence
TypeScript MCTS lab: typescript.tsBenchmarks the reusable observable-state MCTS solver.Rejected — task-record only; ordinary MCTS did not establish a whole-game improvement.
Observable stochastic UCT: observable-mcts-lab.cppSamples chance at observable-state edges, avoiding determinization and strategy fusion.Rejected — ledger-recorded; it missed the frozen held-out top-action gate by one root.
Confidence-gated MCTS: fair-mcts-confidence.cppAllows MCTS to override fair D3 only with Q and visit-share confidence.Rejected — ledger-recorded; held-out pairwise accuracy and regret worsened.
Scaled observable MCTS: observable-mcts-scaled-audit.cppRe-runs observable MCTS at larger simulation/horizon scale on locked root artifacts.Rejected — ledger-recorded; larger search worsened long-outcome ranking.
PUCT: puct.cppBounded public PUCT with phase-policy priors and screen/confirmation lanes.Unknown — repository-verified; no durable result was located.
NNUE-guided deeper search: nnue-guided-search.cppCompletes D3 first, then permits fully completed learned-guided deeper iterations.Rejected — ledger-recorded; the safeguarded screen still regressed.
Root quadrature: nnue-root-quadrature.cppExpands a larger first-reveal/next-disc product quadrature.Rejected — ledger-recorded; extra chance coverage did not beat full-width D3.
Selective NNUE search: nnue-selective-search.cppRe-searches only model-ranked promising actions while retaining the frozen exact fallback.Rejected — task-record only; the learned selective extension failed its screen.

Value and policy learning

Approach and sourcesPurposeStatus and evidence
Direct public policy: main.tsEvolves a seed-blind policy directly on complete games.Rejected — task-record only; learned-policy roll-ins drifted away from their teacher and did not clear the whole-game gate.
General TypeScript value model: train.tsTrains sparse board/policy models from shape, oracle, fitted, or contrastive teachers with disjoint seed lanes.Rejected — task-record only for the tested configurations; early learned leaves helped one ply but hurt the stronger rollout policy.
Double-DQN and continuation: train.ts, continuation-benchmark.tsTrains a public Double-DQN and evaluates it with bounded six-move continuations.Completed — task-record only; continuation improved the frozen DQN over 64 games, but remained far below the research target.
DQN v2: train-v2.tsAdds five-step credit, prioritized trajectory replay, and optional privileged demonstrations.Rejected — task-record only; the first fixed five-step/prioritized ablation regressed.
Monte Carlo return: train.ts, benchmark.tsLearns action values from complete realized returns and benchmarks a frozen artifact.Rejected — task-record only; the independent audit trailed the existing DQN.
Chance-state NNUE: nnue-value.cppLearns U(board, rise phase) without splitting future value by the next disc.Rejected — task-record only; the learner plateaued well below fair search.
Policy distillation: phase-student.cppClones the exact phase D3/s5 action policy from public board tokens.Rejected — task-record only; held-out top-action agreement and whole-game play were poor.
Q distillation: phase-q-student.cppRegresses scalar teacher Q from phase features and common one-ply successor summaries.Rejected — task-record only; training fit did not translate to a viable standalone policy.
Conservative fitted policy iteration: cfpi.cppFits an ensemble distribution over remaining lifetime and permits only confidence-supported deviations from phase safety.Rejected — ledger-recorded; aggressive switching regressed and the conservative setting made no change.
Direct Monte Carlo state value: mc-value-policy.cppLabels public states with terminal behavior returns, then compares sibling successors conservatively.Rejected — ledger-recorded; the first held-out stage collapsed.
Scaled survival value: survival-value-scale.cppTests more terminal behavior data with whole-game holdouts and strict AUC/rank gates.Rejected — ledger-recorded; held-out lifetime ranking missed its gate.
Structured NNUE: structured-value-nnue.cppUses position-specific token embeddings and phase metrics for lifetime/survival prediction.Rejected — ledger-recorded; held-out 50-move AUC and ranking failed.
Counterfactual-successor NNUE: counterfactual-successor-nnue.cppLabels all legal sibling successors with independent continuations.Rejected — ledger-recorded; good global prediction coexisted with poor sibling ranking and worse games.
Sibling-advantage ranker: sibling-advantage-ranker.cppLearns relative returns for every legal sibling under aligned continuation tapes.Rejected — task-record only; the learned ordering did not beat exact search on unseen roots.
Scaled sibling-advantage study: scaled-sibling-advantage-lab.cppIncreases data and capacity while retaining grouped, whole-origin splits.Rejected — task-record only; more data still increased regret relative to exact search.
D4 root-Q clone: d4-q-clone.cppCompresses normalized within-root D4 action ordering into a small public model.Rejected — ledger-recorded; the label/ranking gate failed.
Denoised public value: denoised-stochastic-value.cppLabels each public state with many independent futures before fitting lifetime and survival heads.Completed — ledger-recorded; prediction gates passed and a small confirmation improved means, but confidence remained weak and no protected cohort was opened.
Denoised guided veto: denoised-guided-veto.cppLets the denoised model veto a guided ensemble only in favor of an exact fallback.Rejected — ledger-recorded; a positive screen failed to replicate.
Phase-5 D4 value veto: d4-phase5-value-veto.cppAllows a calibrated value model to act only where D4 cannot see through the next rise.Runtime-paused — ledger-recorded; the first pair made no switches and exceeded the runtime projection.

N-tuple and reinforcement learning

Approach and sourcesPurposeStatus and evidence
Native suite and hierarchical n-tuples: native.cppHouses the native engine benchmark, n-tuple training, sparse learned-value search, and self-tests.Completed — ledger-recorded; depth-2 sparse search improved the learned greedy baseline, but it was not selected over later fair D4.
Hand/learned phase blend: main.tsCalibrates and combines the hierarchical n-tuple value with the phase heuristic.Rejected — ledger-recorded; the frozen blend trailed learned-value search alone.
Bellman n-tuple: bellman-ntuple.cppPerforms off-policy fitted Bellman updates over all legal actions with common chance samples.Rejected — task-record only; the run plateaued below fair search.
Temporal-coherence n-tuples: ntuple-tc.cpp, ntuple-phase-conditioned.cppCorrects shared-parameter TD updates and then adds separate rise-phase residuals.Rejected — ledger-recorded; the update bug was fixed, but neither policy gate passed.
Optimistic phase n-tuple: optimistic-phase-ntuple.cppTrains pooled then phase-specific chance-state tuples and searches across two rise boundaries.Rejected — ledger-recorded; after 50 million transitions the representative-outcome search was worse than direct n-tuple play.
Rainbow-lite n-tuple Q: rainbow-ntuple-q.cppUses replay, multi-step off-policy targets, and a compact n-tuple Q function under corrected scoring.Rejected — ledger-recorded; it passed random play but failed the fair-D1 gate at one million transitions.
Flow-curriculum Rainbow: flow-curriculum-rainbow.cppContinues the frozen Q checkpoint with balanced initial and sustainable-oracle restart states.Rejected — task-record only; the fixed 16-million-transition Stage A failed all absolute floors.
Native PPO v2: ppo-v2.cppPublic actor/critic with behavior cloning and PPO fine-tuning in the native environment.Rejected — ledger-recorded; the corrected PPO policy remained far below fair search.
PyTorch PPO: torch-env.cpp, train.pyBatched native environment plus PyTorch behavior cloning and PPO.Rejected — ledger-recorded; the warm-start gate failed; a separately authorized direct run later aborted at its resource limit.
Oracle-manifold discriminator: oracle-manifold-ppo.cppLearns a public classifier for states resembling privileged long-lived trajectories.Rejected — ledger-recorded; the original coverage gate stopped the policy experiment.
Manifold root prior: manifold-root-prior.cppUses the frozen manifold scalar only as a near-tied D3 root prior.Rejected — ledger-recorded; it reduced score, survival, and flow.
Manifold GAIL development: manifold-gail-development.cppShapes a fixed PPO run with the already-matched public oracle-manifold discriminator.Rejected — task-record only; modest training improvement still missed every Stage-A floor.
Scaled manifold GAIL: manifold-gail-scaled.cppIncreases only the frozen manifold shaping coefficients on a disjoint lane.Rejected — task-record only; stronger shaping materially regressed Stage A.
Curriculum option PPO: curriculum-option-ppo.cppAdds a reflection-equivariant residual to exact fair-D1 logits and trains on initial plus mature restart states.Rejected — task-record only; it modestly improved D1 but remained far below sustainable flow and D4.
Primal-dual actor-critic: primal-dual-actor-critic.cppConstrains five-move occupancy drift, cover drift, and terminal risk while learning a policy residual.Rejected — ledger-recorded; final calibration failed and Stage A stayed closed.
Regenerative expert iteration: regenerative-expert-iteration.cppReanalyses D4-initialized roll-ins with lifetime, regeneration, and flow heads over eight fixed rounds.Rejected — ledger-recorded; all rounds remained far below the D4 bootstrap and exported no deployable checkpoint.

Oracle and curriculum research

Oracle programs are analysis tools or teachers unless explicitly converted to a public-state policy. Their scores must not be compared directly with deployable public-information policies.

Approach and sourcesPurposeStatus and evidence
Perfect-information oracle: main.tsUses a realized future tape to estimate a mechanical performance ceiling.Completed — ledger-recorded diagnostic; it demonstrates feasibility but is not deployable.
Oracle DAgger: main.tsIteratively labels public student states with a privileged oracle.Rejected — task-record only; the student drifted and oracle choices were not recoverable from public state.
Native oracle distillation: oracle-distill.cppAggregates privileged actions over whole-game splits and gates a public policy hybrid.Rejected — ledger-recorded; held-out labels overfit and the apparent screen gain reversed in confirmation.
TypeScript restart generator: generate.tsExtracts public restart states from long oracle trajectories for curriculum use.Support-only — repository-verified.
Native restart curriculum: oracle-curriculum.cppConverts privileged trajectories into canonical public-only restart artifacts with independent future streams.Completed — task-record only support; 4,096 restart states were generated and privilege-isolation checks passed.
Oracle topology audit: oracle-topology-audit.cppMatches public and privileged states to identify split-stable observable geometry and flow signals.Completed — ledger-recorded diagnostic.
Oracle topology residual: oracle-topology-residual.cppFits a compact public classifier to matched oracle/fair board topology.Rejected — ledger-recorded; favorable metrics were underpowered and did not open a policy screen.
Topology residual extension: oracle-topology-residual-extension.cppRebuilds the frozen topology labels at larger scale and tests the scalar as a policy residual.Rejected — ledger-recorded; prediction replicated, but policy confirmation regressed.
Accessible-energy residual: accessible-energy-lab.cppEncodes stored high numbers, trigger reachability, cover access, and low-number debt.Rejected — ledger-recorded; local prediction improved, but complete-game search worsened.
Accessible-energy root prior: accessible-energy-root-prior.cppRestricts the learned signal to a confidence-admissible root action set.Rejected — ledger-recorded; the confidence set switched too often and reduced flow.
Hindsight planner: hindsight-planner.cppAverages clairvoyant beam values over synthetic future tapes.Rejected — ledger-recorded; strategy fusion made the public root ranking worse.

D4 and long-outcome research

Approach and sourcesPurposeStatus and evidence
Scaled D4 distillation: scaled-d4-distill.cppCompresses normalized D4 root-Q labels and compares the model with an exact D2 primitive.Rejected — ledger-recorded for the clone; exact D2 itself completed a strong ranking diagnostic and remains useful support.
H200 sibling NNUE: d4-h200-sibling-nnue.cppFits an offline residual over the locked 477-root, 200-move sibling corpus with whole-origin folds.Rejected — task-record only; it regressed D4 top-1, pairwise ranking, and regret in every origin fold.
D2 long-outcome ranker: d2-long-outcome-ranker.cppLearns 25-move public-D2 sibling returns from grouped root panels.Rejected — ledger-recorded; held-out ranking and regret did not beat exact D2/D4 comparators.
Long-outcome feature audit: d2-long-outcome-feature-audit.cppMeasures survival, flow, downside, and ladder features against the same long-outcome panels.Rejected — ledger-recorded; the feature conjunction did not pass.
Curriculum long-outcome NNUE: curriculum-long-outcome-nnue.cppArtifact-only H100 multi-head model over frozen public curriculum states.Rejected — task-record only; survival prediction was useful, but action ordering regressed versus exact search.
Scaled long-outcome NNUE: scaled-long-outcome-nnue.cppTests whether more labels and capacity fix the earlier long-outcome sample bottleneck.Rejected — ledger-recorded; no whole-origin fold fully non-regressed.
D4 veto classifier: d4-long-outcome-veto-classifier.cppUses long-outcome heads only to veto fragile D4 actions.Rejected — ledger-recorded; override precision and downside gates failed.
Relaxed chain-potential audit: relaxed-chain-potential-audit.cppBroadens the literal ladder feature into relaxed reachable chain potential.Rejected — ledger-recorded; every material transfer gate failed.
Exact D4 + 25-move D2 rollout veto: d4-d2-rollout-veto.cppLets a costly common-tape H25/D2 comparison veto fair D4.Runtime-paused — ledger-recorded; one promising pilot passed quality gates but missed the runtime limit by a wide margin.
Exact compression variants: d4-d2-rollout-veto-exact-compressed.cpp, d4-d2-rollout-veto-cache-free.cppPreserve decisions while deduplicating suffixes or removing low-value D2 caches.Runtime-paused — ledger-recorded; parity held, but wall-time savings were immaterial.
Rollout quality extension: d4-d2-rollout-veto-quality-extension.cppRuns more complete games to test whether the original 404,000-point pilot replicates.Rejected — ledger-recorded; the frozen replication and robustness gates failed.
Teacher compression: d2-rollout-teacher-compression.cppTests cheaper continuation teachers against the exact rollout's beneficial interventions.Rejected — ledger-recorded; none recovered enough good vetoes.

Constructive and reservoir policies

Approach and sourcesPurposeStatus and evidence
Vertical reservoir: vertical-reservoir-policy.cppFits nonlinear vertical release, escape, cover-access, and low-cap features by complete-game CEM.Rejected — ledger-recorded; the 128-game tournament trailed fair D1.
Viability controller: viability-reservoir-controller.cppSelects charge, dig, release, repair, and emergency options from exact public certificates.Rejected — ledger-recorded; Stage A reduced score, survival, and flow.
Constructive spectrum: constructive-spectrum.cppPlans across a rise cycle toward reachable high-number reservoirs and overlapping trigger keys.Completed — ledger-recorded; it materially beat fair D1 and is a useful fast continuation, but did not beat D4.
Constructive D4 shield: constructive-spectrum-depth4.cppApplies the frozen constructive rollout only to D4's top near-tied actions.Rejected — ledger-recorded in the grouped constructive result; frequent overrides reduced score, survival, and flow.
Constructive horizon scale: constructive-horizon-scale.cppCompares frozen H7, H12, H17, and H27 continuation horizons.Rejected — ledger-recorded; H12 improved means but missed the robustness gate, and longer horizons were not monotonic.
H12 risk gate: constructive-h12-risk-gate.cppAccepts H12 over H7 only when two actions satisfy a common 21-scenario Pareto panel.Rejected — ledger-recorded in the grouped constructive result; it improved means but missed the paired-win gate.
Panel-value NNUE: panel-value-nnue.cppLearns public state value from every legal sibling's common H100 continuations.Rejected — task-record only; the untouched holdout had weak top-action accuracy and worse regret, so gameplay stayed sealed.
Direct sibling ranker: direct-sibling-ranker.cppTrains directly on complete within-root action panels rather than a successor state-value reservoir.Rejected — task-record only; it slightly beat D1 but remained materially behind D4.
Structural terminal veto: d4-structural-terminal-veto.cppCompares D4's top two actions on two independent 127-stream constructive terminal panels.Rejected — task-record only; the aggregate fitting result trailed plain D4 and could not reach its gate.
Rise-boundary option QD: rise-option-qd.cppSeed-free prototype of persistent rise-cycle options and a deterministic MAP-Elites archive.Support-only — repository-verified; the source intentionally has no gameplay or production-training lane.
Tail-survival CEM: tail-survival-cem.cppOptimizes complete-game 75/100/150/225/300-move survival milestones around a fixed selective policy.Rejected — ledger-recorded; 50,432 candidate-games produced only a small gain and missed every admission floor.

Terminal policy iteration and deployment panels

Approach and sourcesPurposeStatus and evidence
Terminal-rollout feasibility: terminal-rollout.cppScreens faithful full-terminal comparisons around the shared phase behavior.Runtime-paused — task-record only; a faithful design projected roughly hundreds of seconds per move.
Public survival rollout: public-survival-rollout.cppEvaluates each root action with 31 aligned H100 public fair-D1 continuations.Rejected — task-record only; the longer rollout was worse than fair D1 on fitting games.
Terminal policy iteration: terminal-policy-iteration.cppUses 255 aligned H200 continuations and strict confidence bounds to override fair D1.Rejected — task-record only; the gain was real but missed the frozen score/survival and whole-origin gates.
Public rollout policy iteration: public-rollout-policy-iteration.cppRuns lower-cost complete-sibling public rollout improvement with conservative fallbacks.Rejected — ledger-recorded; it failed at the fitting gate.
H200 D1/D4 signal audit: terminal-panel-d4-signal-audit.cppRecomputes exact D1 and D4 rankings on the locked 477-root H200 corpus.Completed — task-record only diagnostic; D4 materially beat D1 on top-action, pairwise ranking, regret, and every origin.
Full-panel conservative preflight: full-panel-cpi-preflight.cppTests nested 7/21/35/63-scenario sibling labels with whole-origin cross-validation before any gameplay.Rejected — ledger-recorded; stability, precision, recall, ranking, regret, and origin gates all failed.
Martingale-dual ranker: martingale-dual-b0.cppCharges a bounded hindsight beam for future-information advantage on the locked H200 panel.Rejected — ledger-recorded; it ranked siblings materially worse than fair D4.
Public regenerative B0: public-regenerative-policy-iteration-b0.cppEvaluates every sibling through staged H25/H50/H75 panels with exact D4 fallback.Rejected — ledger-recorded; it was effectively tied in mean proxy return but lacked coverage, precision, and stability.

Afterstate learning

Approach and sourcesPurposeStatus and evidence
Distributional afterstate ranker: common.hpp, generate-corpus.cpp, label-d4.cpp, self-test.cpp, train.pyTrains one action-free distributional evaluator of the public afterstate on a successor-closed corpus (every legal sibling, K aligned chance scenarios, H40 phase-greedy-D1 continuation), then gates held-out whole-origin sibling ranking against exact fair D4.Rejected — machine-readable records; three preregistered pilots on lease SL-20260820T083000Z-5da70000: K=8 and K=64 were inconclusive on label stability (split-half Spearman 0.246/0.446 vs the 0.5 floor); K=256 passed stability (0.818 decisive) and produced a valid negative — the calibrated model (0.86 quantile coverage) beat its D1 teacher (top-1 0.424 vs 0.319) but trailed D4 (top-1 0.424 vs 0.499, regret 0.241 vs 0.178) in both fresh held-out half-folds. See theory and results K=8, K=64, K=256.
Top-two near-tie override gate: override-gate.pyLets the frozen K=256 model swap fair D4's action only at near-tied top-two roots (Q gap <= 500) and only when the model's paired 256-scenario advantage has a positive 95% bootstrap lower bound.Rejected — machine-readable records; the frozen gate failed narrowly: eligible-root regret improved in both fresh half-folds (+0.0351, +0.0075) but half2 missed the frozen +0.01 margin; decisive eligible roots improved +0.0426; override fired on 37% of eligible roots; stability (0.814) and calibration (0.861) passed. First preregistered held-out test where a learned model's intervention improved on fair D4 at all; the checkpoint's ranking quality is the bottleneck. See result and experiment.
Overnight follow-ups (full training, D2 teacher, D4-value stage 1): d4q.py, label-d4q.cppThree preregistered tests of whether the ranking deficit is fixable: (A) full training (22 epochs, 2x row-updates), (B) a stronger fair-D2 continuation teacher, (C) successor-closed exact D4 search-value distillation (the registered self-play loop's stage 1).All rejected — machine-readable records. A: full training OVERFIT (held-out top-1 fell 0.424 to 0.361 on the same roots) and the frozen override gate failed (half2 gain -0.0297). B: the D2-teacher model ranked at exact-D1's level (top-1 0.337 vs D4's 0.502; confounded by a D2-train/D1-eval target mismatch, disclosed) and its override failed. C: the successor-closed D4-value student agreed with D4 at top-1 0.375 (threshold 0.60), WORSE than exact D1's 0.486 - the compact model cannot represent the 4-ply search-value function, blocking the self-play loop's stage-1 prerequisite at this model scale. Results: A, B, C.

Search-budget factorials (exploratory, 2026-08-21)

Approach and sourcesPurposeStatus and evidence
Depth x chance-resolution factorial: search.cpp, cohort driver, finish.shVaries search depth (2-5) against chance strata (5, 7) on identical seeds with a bit-exact accelerated engine, to separate depth value from chance-estimator bias.Valid-partial / fail — machine-readable records; the fourth ply is worth +86,172 [+26,605] at seven strata and −7,723 at five: chance resolution changes the sign of the depth gradient. The stratum contrast replicates at two depths, +101,171 [+47,447] at depth 4 and +123,613 [+32,575] at depth 5, both significant. The fifth ply is not measurable by this design: −8,624 at five strata (n=64) and +23,367 at seven (n=32), both inside detection floors of 47,052 and 107,988, with the seven-stratum estimate changing sign between n=16 and n=32. Two earlier readings are withdrawn — an interim "depth 5 reverses" (completion-order bias) and a subsequent "depth 5 is worth nothing" (a non-measurement reported as a null). See result, experiment and finding-15.
Factored reveal sampling: search.cpp, run-arms.sh, finish.shSeparates the reveal-value chance node from the next-disc chance node so each can be refined independently, testing whether chance resolution compounds with depth or substitutes for it.Valid / fail — machine-readable records; refining reveals pays at depth 3 (M=6, +64,116 [+7,475], 36-0-28) and saturates before full joint coverage: the completed 64-game M=12 arm is −27,097 [−83,807, +31,209], 28-0-36 against M=6, which is inside noise and so is saturation rather than regression. Score, moves, clears/move and reveals/move all peak at M=6. Stacking it on ply 4 buys nothing measurable: −41,950 [−100,137, upper +17,541] at 4.07x the work, at a 28.6%-coverage dose the depth-3 ladder also found inconclusive. Depth and chance resolution substitute rather than compound; the budget frontier is flat on top near fair D4. See result (which supersedes the interim record written while arm 2 held 32 of 64 games), experiment and finding-16.

Both rows are public-development tier on the exploratory SEEDLEASE-A51D lease. Both reveal-sampling arms have since completed at 64 of 64 games, and RS-20260821T181918Z-ea7076a3 — written while one of them was still at 32 — is superseded by RS-20260821T192140Z-189fe392; the figures quoted above are the completed ones.

Supersession convention, decided here. The superseded record is left byte-unchanged, including its assessment field. No result record in this repository has ever been edited after the commit that created it, and the two existing superseded results were written that way at creation rather than amended later. Preserving that invariant is worth more than making the old record self-describing, so the relationship is carried forward-only: the new record names what it supersedes in its summary, in metrics.supersedes, and in a field listing every changed number old-to-new. A reader who reaches the old record first sees runValidity: partial and a summary that states its game counts, which is enough to identify it as interim. The depth-5 seven-stratum leg was stopped by decision at a 32-game chunk boundary rather than run to 64. The stated reason at the time — that the depth axis was already closed — did not survive the extra 16 games, which flipped the estimate from −1,581 to +23,367. The decision stands on a better reason: at a paired standard deviation of 371,351 the planned 64 games would still have carried a standard error of about 46,419 against a point estimate of 23,367, and resolving that effect would take roughly 684 games — about 13 wall-days at the arm's measured 1,647 s per game on 14 threads. The contrast is not answerable at any cohort size this project can afford, so completing it would have bought no conclusion.

The superseding result is recorded as inconclusive / mixed rather than fail. That is deliberate: this theory's falsification criteria can be satisfied by an underpowered run, which is precisely the trap that produced the first wrong reading, and leaving fail in the record's most-quoted field would have re-committed it. The five-stratum leg is still recorded as a failed gate criterion, because that one is a complete 64-game bounded null — the only depth statement in the family with adequate power.

What remains genuinely open

The source inventory shows that the research has already tested more depth, more chance samples, static potential bonuses, learned global state values, action cloning, n-tuple TD/Q learning, PPO-style policies, public MCTS, determinized hindsight, long rollouts, conservative vetoes, and explicit reservoir controllers. The recurring failure is not a lack of code paths. It is reliable within-root action ranking over long stochastic horizons.

The most defensible unclosed directions are therefore:

  1. A successor-closed, action-free public afterstate evaluator in which every legal sibling receives supported labels and no learned maximization occurs outside that support.
  2. A stronger full-sibling teacher that preserves D4 as the fallback while learning only rare, independently confirmed overrides.
  3. A computationally cheaper version of the exact H25/D2 veto that preserves the original intervention decisions; the tested exact cache changes were not enough, so this requires a different representation rather than more bookkeeping.
  4. A persistent option policy only after a one-step evaluator demonstrates robust score, survival, and clear/reveal signal. The current seed-free option prototype is infrastructure, not evidence that commitment helps.
  5. Porting the corrected fair-D4 native reference into a TypeScript benchmark entry point so both implementations expose the same research policy. This is an engineering comparison step, not a new strategy claim.

Any new candidate should keep whole-game origin splits, common random futures for sibling comparisons, explicit censoring, bounded work and memory, exact D4 fallback, and the still-unopened protected/final cohorts.

These documents are written for researchers. For the same ideas in plain language, with animations, start at how the game works and the concepts primer; every term is defined in the glossary.