Two questions from yesterday

Yesterday's screen put the lookup tables 170,139 points ahead of the fair leaf inside the same depth-3 search on 256 held-out games (RS-20260905T215332Z-95d18a5a). Two things it could not say: whether the margin survives a block of seeds that nothing has read, and whether the evaluator was still improving when its four-billion-move budget ran out. The twenty validation margins of that run bounced between 116,000 and 270,000 on 64 games without settling, which is what a noisy read of a still-rising curve looks like, and also what a noisy read of a plateau looks like. The owner asked for a fresh-block replication with a longer and wider training run that stops when the margins plateau.

The design

Experiment EX-20260906-ntuple-scale-replication-wide-plateau-f627f07a, run RUN-20260906T013222Z-ba0ee34f, branch claude/n-tuple-scale-replication. Three never-read seed blocks: a training block at 0xa5500000, a 256-game validation block at 0xa52f2280, and a 512-game screen block at 0xa52f2380, all disjoint from everything the first experiment touched.

The evaluator is yesterday's selected layout (full rows, full columns, 2-by-3 and 3-by-2 windows, every family split by the rise clock) plus two new families that see more of the board at once: the 24 placements of a 2-by-4 window and the 24 placements of a 4-by-2 window, a hundred million patterns each. That is 5.8 billion table entries against yesterday's one billion, and 122 numbers summed per board against 74. The eight-cell windows are not split by the rise clock; five copies of them would not fit in memory.

There is no move budget. Every five hundred million training moves the tables are dropped into the depth-3 search and played on the 256 validation games against the fair leaf. From the eighth validation point on, the run stops as soon as the mean margin of the last four points is not above the mean of the four points before them. The candidate is the point with the largest margin. It then plays the 512 held-out games as the depth-3 leaf beside five other arms on the identical seeds: the same tables played directly, yesterday's frozen tables as the same leaf and played directly, the fair leaf in the same search, and the fair leaf at depth 4. The protocol fixes three readings: the candidate gate (the wide tables against the fair leaf, the same criteria as yesterday), the replication (yesterday's tables against the fair leaf on these fresh seeds, the same criteria) and a scale verdict (the wide tables against yesterday's tables: supported, refuted or inconclusive by the bootstrap bounds).

neutral

Five point eight billion entries need 64-bit indices and lazily zeroed accumulators

1.27 million moves per second on 32 threads, 42.7 GB resident after 40 million moves

The wide layout has more entries than a 32-bit index can address, so the feature indices are now 64-bit. The two coherence accumulator arrays are allocated zeroed rather than filled, so their pages become resident only when an entry is first updated. The smoke run on the already-open probe block measured 1.27 million training moves per second, about two thirds of yesterday's rate, with 42.7 GB resident after 40 million moves; the accumulators keep filling in as training touches more entries, up to the 69.6 GB the three arrays would occupy if every page were touched.

neutral

A terminal state has no rise phase, and the gate found out

one gate panic, fixed before any leased seed was read

The first invocation of the CHECK gates crashed. The information-boundary gate values every sampled state, including terminal ones, and a state whose rise ended the game carries zero moves until the next rise. The feature function turned that into a rise phase of minus one, and with 64-bit indices the entry landed outside the table. The phase is now clamped. Nothing recorded is affected: the fair search returns its terminal utility before it would ever value a terminal board, and training and the direct policy guard the same way. In yesterday's run the same gate, with 32-bit indices, read a wrong but in-range entry of the column tables for those terminal states, the same wrong entry under every perturbation, so its pass was sound. The second invocation passed all 19 gates.

The main run

The run started at 01:44 UTC from commit 16e7c99 and trained at about 1.18 million moves per second.

neutral

The plateau rule fired at 4.5 billion moves

nine validation points; last four +165,666, previous four +173,783

All nine validation points had the wide tables ahead of the fair leaf inside the same depth-3 search on the 256 fresh validation games, from +154,572 at half a billion moves to +187,500 at two billion. After that the margin wandered between 142,514 and 186,631 and the rule stopped the run at the ninth point, 74 minutes in. The candidate is the fourth point, two billion moves, SHA-256 824b0a39.... About 231 million of the 5.8 billion entries had been touched by then.

The screen

512 never-read public-development games at 0xa52f2380, six arms on identical seeds, opened once after both candidates' hashes were on disk. Result record RS-20260906T040113Z-6ba93171, run valid, outcome pass, screen tier.

armmean scoremovespaired vs fair-d3s7bootstrap lower bound
first run's tables as the depth-3 leaf487,066140.83+160,349+129,753
wide tables as the depth-3 leaf481,869139.39+155,153+126,819
fair leaf, depth 4 (reference)397,154114.55+70,437+46,917
wide tables played directly, one ply328,03997.27+1,323-17,545
fair leaf, depth 3 (comparator)326,71795.87
first run's tables played directly, one ply294,32387.91-32,394-51,190
The six arms on the 512 fresh games, from the screen artifact and the compare.py reports of RUN-20260906T013222Z-ba0ee34f.
positive

Yesterday's result replicates on fresh seeds

+160,349 paired on 512 games, lower bound +129,753, 330-0-182

The first run's frozen tables, unchanged and hash-verified, averaged 487,066 as the depth-3 leaf against 326,717 for the fair leaf in the same search on the 512 fresh games: paired +160,349, bootstrap 95% lower bound +129,753, both halves positive (+133,349 and +187,349), lower quartile 232,825 against 192,040. Every replication criterion passes. Yesterday's screen on a different block read +170,139; the two blocks agree within their bounds.

positive

The wide tables pass the same gate

+155,153 paired, lower bound +126,819, 333-0-179

The wide candidate averaged 481,869 on the same 512 games, +155,153 against the fair leaf with a lower bound of +126,819, both halves positive, lower quartile 241,610, no illegal or incomplete decision in any arm. Against the fair leaf at depth 4 (397,154 on these games) it is +84,716 with a lower bound of +54,794; the first tables are +89,912 against the same arm.

negative

Six times the entries did not beat the first tables

-5,196 paired, bounds -40,535 to +29,158, 267-1-244: inconclusive

The wide candidate against the first run's tables, both as the depth-3 leaf on the same seeds, is 5,196 behind, with a bootstrap interval from minus 40,535 to plus 29,158 and a detection floor of 34,803. The preregistered scale verdict is inconclusive: a difference of more than about 35,000 in either direction would have shown, and none did. What this rules out is a large gain from the 2-by-4 and 4-by-2 windows and from training past two billion moves under this recipe; a gain smaller than the floor is not ruled out.

neutral

The wide tables play much better without any search

one-ply 328,039 against 294,323 for the first tables; level with the fair leaf's depth-3 search

Played directly, one move ahead with the seven reveal samples and no search, the wide tables averaged 328,039, +1,323 against the fair leaf's depth-3 search with bounds either side of zero. The first run's tables played the same way lost to that search by 32,394. So the extra windows learned a better policy and the search extracted nothing more from it: the search over the wide tables is worth +153,830 on these games, against +203,137 for the first tables on yesterday's block. The leaf the depth-3 search needs and the policy one-ply play needs are not the same object, and this recipe improved the second.

The frozen tables on the global game

The first run's frozen tables were also played through gauntlet-01, the scripted round behind the public global game, as a playground demonstration. A scripted round fixes every disc and every hidden value in advance, consumes no seed lease, and is never tier evidence: one fixed future says nothing about a mean score, and the two screens above are the evidence. To play it, the crate gained a one-shot query binary (query_move) that loads the tables and answers a single public position, and the playground registry gained the policy ntuple-scale-d3s7 on top of it, so the game is archived in the same record shape as every other engine game and could be imported into the competition ledger the way the depth-6 game was on 1 September. The game was played twice, once through the external bridge and once through the registry, and both runs produced the same trajectory checksum.

neutral

The tables inside the depth-3 search on gauntlet-01

554,510 points in 160 moves, one scripted round

On gauntlet-01 the tables as the leaf of the depth-3 search with seven chance strata scored 554,510 in 160 moves, game over rather than censored, no illegal decision, 346 discs cleared and 200 covered discs revealed (runs/BENCH-20260906T063447Z-ntuple-scale-d3s7--gauntlet-01/, trajectory checksum 920e8da07e447939). Through the same bridge on the same round (external-arms/ in that directory), the fair leaf inside the same depth-3 search scored 211,474 in 65 moves, the fair leaf at depth 4 scored 393,277 in 112 moves, and the tables played one ply with no search scored 452,130 in 125 moves. The recorded depth-6 fair search game on this round, imported on 1 September, scored 428,292 in 120 moves. The record was then imported into the production and dev competition ledgers under global#2026-08-v1 with submission id 613234a674237617997a96c7faa232bd6b002f125fbd4343f65cf1959555c8a9, source revision bfae0a6 declared rather than observed, and both items were read back and matched the dry-run preview. It enters the public leaderboard above the top human entry and the depth-6 game. All of this is one scripted future.

The same tables one ply deeper

The owner asked what the fourth ply is worth to this leaf. Nothing was trained. The first run's frozen tables, hash-verified, played as the leaf of the reference depth-4 search (seven chance strata, the standing fair-d4s7 configuration) and as the depth-3 leaf on 512 games from a fourth block nothing had read, beside the fair leaf in both searches on the same games. Experiment EX-20260906-ntuple-scale-depth4-frozen-tables-54aed6a3, run RUN-20260906T081306Z-e62d9837, branch claude/n-tuple-continuation-4-ply, lease 0xa52f2580. The crate gained the depth-4 arm, a depth-4 determinism gate that runs on the frozen tables, and a screen-only stage driver; all 20 CHECK gates passed before the block opened. The gate reads the tables' own depth step. Two readings were fixed beside it: whether the tables still beat the fair leaf at depth 4, and whether the fourth ply is worth more, less or the same on the tables as on the fair leaf, from the per-game difference of the two depth steps.

armmean scoremoveslogical work per game
first run's tables as the depth-4 leaf516,155148.757.96e8
first run's tables as the depth-3 leaf465,675134.822.22e7
fair leaf, depth 4382,567110.455.59e8
fair leaf, depth 3332,96897.721.56e7
The four arms on the 512 fresh games, from the screen artifact and the compare.py reports of RUN-20260906T081306Z-e62d9837.
positive

The fourth ply is worth 50,479 points to the tables

+50,479 paired on 512 games, lower bound +14,707, 284-0-228

The tables at depth 4 averaged 516,155 points and 148.75 moves against 465,675 and 134.82 for the same tables at depth 3 on the same games: paired +50,479, bootstrap 95% lower bound +14,707, Student-t lower bound +14,086, both halves positive (+67,335 and +33,623), lower quartile 233,182 against 212,969. Every criterion of the preregistered gate passes (RS-20260906T171746Z-1623f833, run valid, outcome pass, screen tier). The fourth ply costs about 36 times the depth-3 search's logical work per game, 152 wall seconds per game against 4 on the 32-thread workstation.

neutral

The learned leaf pays for depth the way the hand-written one does

fair leaf's fourth ply +49,599; difference of the two steps +881, bounds -40,932 to +42,867

On the same 512 games the fair leaf gained 49,599 from its fourth ply (382,567 against 332,968, lower bound 25,751). The per-game difference between the tables' depth step and the fair leaf's is 881 points with bootstrap bounds from minus 40,932 to plus 42,867 and a detection floor of 42,550, 250 wins to 262: the preregistered verdict is inconclusive. What this rules out is a large difference either way; the theory's first leg (the tables gain from depth) is supported, its second leg (at least as much as the fair leaf) is neither refuted nor measurable at this cohort size.

positive

The margin over the fair leaf survives the fourth ply

+133,588 at depth 4, lower bound +102,051; +132,707 at depth 3 on the same block

At depth 4 the tables beat the fair leaf in the same search by 133,588 paired (lower bound 102,051, 314 wins to 198); at depth 3 on this block the margin was 132,707 (lower bound 102,193), a third disjoint block on which the tables' depth-3 margin lands where the first two screens put it. The tables at depth 4 also beat the fair leaf at depth 3 by 183,187. The first tables at depth 4 are now the candidate to carry forward.

neutral

The depth-4 policy on gauntlet-01

549,050 points in 160 moves, one scripted round

As a playground demonstration the same tables at depth 4 played the public global game's round through the new registry policy ntuple-scale-d4s7 (runs/BENCH-20260906T172752Z-ntuple-scale-d4s7--gauntlet-01/, trajectory checksum 5119ef1a32121f78, 195 seconds): 549,050 in 160 moves, 5,460 below the depth-3 policy's 554,510 in the same 160 moves on the same fixed future. The record was imported into the production and dev competition ledgers under global#2026-08-v1 with source revision ea385e8, so the two depths sit side by side on the public board. One scripted future says nothing about a mean; the 512-game screen above is the evidence.

The tables and the screens in the public archive

The owner asked that the n-tuple data reach the research archive so agents on other machines can reproduce the screens and continue training. The publisher gained a directory mode with exclude globs, a manifest of references, and a dry run. What is published, each under its run id with the digest in the reference: the first run's frozen tables (zstd, 378 MB, the decompressed file's SHA-256 recorded beside it), the wide tables (zstd, 910 MB), and the three screens' per-game rows and analyses, with dataset records DS-20260906-ntuple-scale-frozen-tables-ff977178 and DS-20260906-ntuple-scale-wide-frozen-tables-c5eb52a6 naming the file format, the leases the tables have read, and the download and verification steps. The result record cites the depth-4 screen's per-game rows by their archive reference, so a checkout without runs/ can still verify it. The first run's end-of-training checkpoint with its coherence accumulators (1.5 GB compressed) and every validation line-up, pilot arm, progress log, gate log and compare report of the three runs followed once the owner allowed the directory publisher; each run's published.jsonl lists every object with its digest, and the run records cite the references.

proposed

What the record supports next

owner: claude-fable-5-1 (Claude Code)

The first tables at depth 4 have one passing screen and the same tables at depth 3 have three; the wide tables are retained, hashed and published but add nothing the screens can see. Next: a STANDARD-tier evaluation of the unchanged depth-4 candidate on fresh development seeds; a study of a leaf tuned for the search's use rather than one-ply play, for instance training on the boards the search evaluates or removing the optimistic starting value from the nine tenths of the entries that training never touched; and the published tables as the teacher or warm start of a search-guided self-play loop. The approach page carries all three runs' figures and the full tables.

Tables that know how full the board is

The owner's next question was whether the leaf should change its mind as the board fills: play for throughput while there is room, play for survival when there is not. The frozen tables cannot, for a reason that is visible in their own training record. A seed-free pass over the first run's saved accumulators (main/touched-by-fill.txt of this run) counts, for every row and column table and every rise phase, how many patterns of each fill were ever updated.

neutral

The frozen leaf is least trained on the fullest boards

0.98% of legal seven-high column patterns and 1.06% of five-or-more-disc top-row patterns ever updated

Legal column patterns of height 0 to 7 were touched 100%, 89%, 78%, 68%, 50%, 26%, 6.6% and 0.98% of the time; row patterns with seven discs 13.5%; top-row patterns with five or more discs 1.06%. The touched entries of full lines average 0.24 to 0.27 rise units, which is the optimistic starting value of 20/74. In the frozen candidate file 901,259,321 of the billion entries still hold that starting value bit for bit (main/edits.json). A depth-3 search from a crowded board reads many of them, each worth a fresh board's share, so the leaf is most optimistic where the decision is about staying alive. And a sum of 74 lookups cannot give one pattern two values depending on the board around it.

Experiment EX-20260906-ntuple-fill-conditioned-continuation-a9e5cbd3, run RUN-20260906T201104Z-a96ea6c8, branch claude/n-tuple-fill-conditioned, tests two repairs against the frozen tables on one fresh 512-game block (0xa52f2880). The first trains nothing: every never-updated entry of the frozen file is replaced, by zero (an unfamiliar board is priced below a familiar one) or by the mean of the touched entries of the same table, rise phase and pattern occupancy (an unfamiliar board is priced like a typical familiar board of its shape). The second gives every table five copies keyed to a global fill measure, occupied cells (0 to 13, 14 to 20, 21 to 27, 28 to 34, 35 to 49) or the tallest column (up to 3, 4, 5, 6, 7), copies the frozen tables into every one of them so the conditioned leaf starts bit-identical to the frozen one, and continues temporal-difference training from there with fresh step sizes on a training block nothing had read (0xa5800000), validated every two hundred million moves on a fresh 256-game block (0xa52f2780) with a window-of-three plateau rule from the sixth point. A third arm continues the frozen tables the same way without copies, so the screen can tell continued training from conditioning. The crate gained the two fill layouts, the promotion, a warm-start option for the trainer, and two gates: the fill bucket against an accessor reference on every sampled state and its mirror, and promotion preserving every value bit for bit while separating the buckets under one update. All gates passed for both layouts before any lease opened.

The edits took 25 seconds: the zeroed file changed 901,259,321 entries and the class-mean file 877,344,474, and neither moved a touched entry. Seven occupancy classes had no touched entry to average and kept the starting value.

The three arms and the screen

Each arm warm-started from the frozen tables and ran until its plateau rule fired or its budget ran out, validated every two hundred million moves on the 256 fresh games.

neutral

Continued training with fresh step sizes did not fall apart, and the buckets learned nothing the validation could see

best margins: control +210,990, occupied-cells buckets +203,193, tallest-column buckets +179,760

The control arm, the frozen tables reloaded with fresh accumulators, stopped by the plateau rule at 1.2 billion moves after six points; its best point, +210,990 over the fair leaf at 600 million moves, is above every point the fill arms reached. The occupied-cells arm stopped at 1.6 billion moves after eight points with its best at 1.4 billion (+203,193); the tallest-column arm ran to the two-billion cap with its best at 1.6 billion (+179,760). By the fixed rule the occupied-cells arm is the candidate, and the pilot-tier training-signal check reads not passed: neither fill arm's best validation margin exceeded the control arm's. All three arms trained at about two million moves per second; the five-billion-entry tables were no slower than the one-billion-entry control.

The screen opened the 512-game block at 21:25 UTC with eleven arms on identical seeds, after the CHECK gates had passed again on each of the four new table files.

armmean scoremovespaired vs frozen tablesbootstrap lower boundupper bound
zeroed edit as the depth-3 leaf514,897148.50+29,442+5,813+54,179
fill candidate (occupied-cells buckets) as the depth-3 leaf506,494146.33+21,039-16,864+59,230
control continuation as the depth-3 leaf491,401141.92+5,946-29,891+41,989
class-mean edit as the depth-3 leaf486,386140.64+931-530+2,954
frozen tables as the depth-3 leaf (comparator)485,455140.38
The depth-3 arms on the 512 fresh games, from the screen artifact of RUN-20260906T201104Z-a96ea6c8; paired readings against the frozen tables in the same search.
negative

The fill candidate did not measurably beat the frozen tables

+21,039 paired on 512 games, bounds -16,864 to +59,230, 271-0-241

The occupied-cells candidate as the depth-3 leaf averaged 506,494 against 485,455 for the frozen tables on the same games: paired +21,039 with a bootstrap 95% lower bound of minus 16,864, an upper bound of plus 59,230 and a detection floor of 37,956; halves +6,466 and +35,613, lower quartile 229,450 against 230,374. The preregistered gate fails, and the reading is a non-measurement: a gain or loss larger than about 38,000 would have shown, and neither did. Against the control continuation the candidate is +15,093 (bounds minus 22,431 to plus 52,817), and the control against the frozen tables is +5,946 (bounds minus 29,891 to plus 41,989): both inconclusive. Continued training and five fill buckets together moved the depth-3 leaf by less than this screen can see.

positive

Zeroing the never-updated entries helped, and it changed only 194 of the 512 games

+29,442 paired, lower bound +5,813, 102 wins, 318 ties, 92 losses

The zeroed edit, the frozen tables with every never-updated entry set to zero and nothing trained, averaged 514,897 as the depth-3 leaf: paired +29,442 over the frozen tables with a bootstrap lower bound of +5,813, an upper bound of +54,179 and a floor of 24,154, halves +12,168 and +46,716. The verdict fixed for this reading is supported. In 318 of the 512 games the two leaves chose the same column at every move and the games are identical; the edit only matters when the search reads a never-updated entry at a decision that is close, and across the 194 games where it did the mean gain was about 77,700 points. The lower quartile is 229,884 against 230,374, 490 points lower, so under the gate's four criteria this reading would fail on the lower quartile alone; the verdict reads the bounds. The class-mean edit, which replaces the same entries with the mean of the touched entries of the same shape, is a near no-op: 506 identical games and +931 paired.

armmean scoremovespaired vs the frozen tables at the same depthbootstrap lower boundupper bound
frozen tables as the depth-4 leaf521,956150.20
zeroed edit as the depth-4 leaf511,364147.36-10,592-32,045+11,133
fill candidate as the depth-4 leaf499,324144.08-22,631-57,779+12,806
fill candidate played directly, one ply298,19988.90+4,809-13,189+22,386
frozen tables played directly, one ply293,39087.53
fair leaf, depth 3329,89596.85
The depth-4 arms and the direct-play arms on the same 512 games, from the screen artifact of RUN-20260906T201104Z-a96ea6c8.
negative

One ply deeper, both repairs gave their gains back

fill candidate -22,631 at depth 4 (bounds -57,779 to +12,806); zeroed edit -10,592 (bounds -32,045 to +11,133)

As the depth-4 leaf the fill candidate averaged 499,324 against 521,956 for the frozen tables on the same games, 22,631 behind with bootstrap bounds from minus 57,779 to plus 12,806, and 7,170 below its own depth-3 score. The zeroed edit at depth 4 averaged 511,364, 10,592 behind the frozen tables (bounds minus 32,045 to plus 11,133; 320 of the 512 games identical) and 3,534 below its own depth-3 score. Both preregistered depth-4 verdicts are inconclusive, and the sign is the same for both repairs and for both depth steps, while the frozen tables' own fourth ply on these games was worth 36,500 (bounds minus 249 to plus 72,651). The deeper search reads far more boards that training never visited, and a pessimistic price for them served it worse than the fresh-board value did. The frozen tables at depth 4 stay the candidate to carry forward. The frozen tables' depth-3 margin over the fair leaf on this fourth fresh block was 155,561 (lower bound 123,422), and the fill candidate played directly was 4,809 ahead of the frozen tables played directly, with a lower quartile of 190,084 against 157,932.

proposed

What the record supports next

owner: claude-fable-5-1 (Claude Code)

The theory is assessed mixed: the frozen leaf does price unfamiliar boards at a fresh board's value, and removing that price helped at depth 3, but neither the removal nor the fill buckets survived the fourth ply, and the buckets could not be told from continued training at depth 3. Two things follow. A leaf tuned for the search's own use, trained on the boards the depth-3 or depth-4 search evaluates rather than the ones one-ply play visits, is now the better-supported half of the replication's open question. And a depth-aware edit, pricing a never-updated entry between zero and the fresh-board value, or scaling it by how many such entries the board reads, would test the one mechanism that did move the depth-3 leaf without training. Seven buckets, or buckets keyed to the rise clock and fill together, remain untested; nothing here rules them out, and nothing here recommends them before the search-distribution question is answered. The approach page carries the run's figures, the eleven-arm table and the verdicts.

A log entry is a narrative written by the contributors listed above. Run validity, scientific outcome and evidence tier live with the experiment and result records the entry refers to.