Runs

Every register entry, newest first. Short and long stage are labelled separately; the quoted value is the long stage when there is one and is never added to or averaged with the short stage. Verdicts without games name their evidence. This table is not a highlight reel.

Register export 2026-10-30 · Register T-0001 – T-0227 · 225 entries · Run feed (RSS)

How each run ended

How each run ended 33 runs passed, 12 failed, 0 were rejected; 0 of the passed runs played no games. passed failed or rejected passed without games +2.94 0 −2.94 upper bound lower bound T-0001 2026-08-28 T-0012 2026-08-29 T-0023 2026-08-29 T-0034 2026-08-29 T-0045 2026-08-30
One mark per run in register order, final log-likelihood ratio of the quoted stage. Every SPRT run starts at 0; it passes at the upper bound and fails at the lower one. Hollow marks passed without games (identity, correction, epoch change, adoption) and sit outside the bounds, not as an SPRT exit.

Register T-0045 – T-0001

Run Verdict Elo Strength difference to the opponent, estimated from the games, with a 95-percent half-width where the oracle reported one. Never an absolute rating. Date Games LLR Log-likelihood ratio, the running evidence of an SPRT. It starts at 0; a stage passes at the upper bound and fails at the lower one. Hypothesis
T-0045 passed
long stage +1,075.01
short stage +44.77 ± 14.83
488 +2.96 Deferring quiescence legality checks until a move is tried and inlining debug-checked board access should strengthen Coherent by avoiding duplicate make, check, and unmake work, especially for full check-evasion lists.
T-0044 passed
long stage +1,194.89
short stage +2.75 ± 2.13
486 +2.95 Coherent should search more positions in the allotted time because pseudo-legal move generation enumerates only the moving side's occupied squares from incrementally maintained masks while preserving move order.
T-0043 passed
long stage +1,194.89
short stage +7.83 ± 5.35
486 +2.95 Preallocating the pseudo-legal move vector should strengthen Coherent because it removes the dominant repeated growth allocations while preserving move order and retaining automatic vector growth as a safe fallback.
T-0042 failed
short stage −9.79 ± 7.47
4,542 −2.96 Restricting quiescence stalemate checks to low-material positions without an unblocked pawn should correct drawn endgame scores without paying for legal move generation on common stand-pat exits.
T-0041 failed
short stage −11.28 ± 8.15
4,190 −2.96 Limiting each line to two check extensions should improve move selection by preserving the first two tactical extensions while preventing long checking sequences from monopolizing the search budget.
T-0040 passed
long stage +1,194.89
short stage +12.98 ± 7.54
486 +2.95 Retaining transposition moves across searches in an explicit game session should strengthen play by improving move ordering on successive positions while generation-scoped bounds avoid reusing clock- or repetition-dependent scores.
T-0039 failed
short stage −4.22 ± 5.66
9,136 −2.96 Increasing the maximum quiescence depth from six to eight plies should strengthen Coherent by resolving longer forcing capture sequences now that tactical move generation and pruning keep the added search cost modest.
T-0038 failed
short stage −0.32 ± 1.85
21,706 −2.97 Correctly treating bishop-and-knight and two-knight endings as playable rather than automatic draws should strengthen endgame decisions because checkmate remains legally possible in both material configurations.
T-0037 failed
short stage −10.98 ± 6.75
3,292 −2.97 Scoring stalemate as a draw in quiescence should prevent static material evaluations from favoring drawing continuations in otherwise winning endgames.
T-0036 passed
long stage +1,075.01
short stage +3.22 ± 2.43
488 +2.96 Coherent should search more nodes within its time limit because child and PVS re-searches reuse the parent's already computed check status instead of scanning attacks again.
T-0035 passed
long stage +1,075.01
short stage +3.11 ± 2.35
488 +2.96 Searching a valid transposition-table move before ordering the remaining moves should make the engine stronger by avoiding unnecessary SEE Static exchange evaluation: an estimate of the material outcome of a capture sequence on one square, without searching. evaluations and sorting when that move causes an immediate cutoff.
T-0034 failed
short stage −2.47 ± 3.06
8,440 −2.97 Coherent should play more strongly because replacing full-board Undo snapshots with reversible move metadata reduces copy traffic in every legality check and searched move.
T-0033 passed
long stage +1,075.01
short stage +10.82 ± 5.83
488 +2.96 Incrementally cached king squares should improve playing strength by eliminating repeated board scans from check detection while preserving the search tree.
T-0032 passed
long stage +1,075.01
short stage +40.25 ± 13.25
488 +2.96 Ordering pseudo-legal moves and rejecting self-check only for each attempted move should strengthen search by avoiding full-list legalization at nodes that cut off after examining only a few moves.
T-0031 passed
long stage +1,075.01
short stage +48.65 ± 15.12
488 +2.96 Generating only legal captures, en passant moves, and promotions outside check should strengthen play by avoiding make/unmake work for quiet moves that quiescence discards while preserving the search tree.
T-0030 failed
short stage −18.71 ± 10.88
2,974 −2.95 Counting distinct pieces and attacked squares around the enemy king should improve tactical threat recognition by rewarding coordinated attacks rather than general mobility alone.
T-0029 passed
long stage +1,075.01
short stage +5.75 ± 4.38
488 +2.96 Search strength should improve because deeper or clearly favorable nodes use larger null-move reductions while high-depth verification rejects unsafe cutoffs in zugzwang-prone positions.
T-0028 passed
long stage –
short stage +22.28 ± 10.29
486 +2.95 Depth- and move-count-dependent reductions of up to three plies for late quiet moves, softened at principal-variation nodes and for killer, countermove, or high-history moves and followed by a full-depth re-search after an alpha raise, should make Coherent stronger by spending fewer nodes on unlikely late alternatives.
T-0027 passed
long stage –
short stage +13.24 ± 7.72
486 +2.95 Search should become stronger because penalizing quiet moves that fail before a quiet beta cutoff keeps history scores discriminative, while a countermove table prioritizes context-specific cutoff replies.
T-0026 failed
short stage −11.11 ± 8.42
4,474 −2.95 Verified razoring should strengthen Coherent by replacing full searches of shallow fail-low nodes with cheaper quiescence searches while preserving tactically forcing replies.
T-0025 passed
long stage +1,075.01
short stage +60.64 ± 17.22
488 +2.96 Pruning non-checking, non-promotion quiescence captures that cannot reach alpha by a material delta bound or have a negative static exchange evaluation should strengthen Coherent by spending fewer nodes on unpromising leaf exchanges.
T-0024 passed
long stage +1,075.01
short stage +21.14 ± 10.17
488 +2.96 Late move pruning should strengthen Coherent by spending shallow non-PV Principal variation: the line of best moves the search currently expects. search effort on earlier ordered and forcing moves instead of unlikely late quiet moves.
T-0023 failed
short stage −2.06 ± 4.58
14,006 −2.95 Using non-cutting transposition-table bounds to narrow alpha-beta windows should reduce redundant search because previously proven score limits can trigger earlier cutoffs.
T-0022 passed
long stage +1,194.89
short stage +153.43 ± 28.10
486 +2.95 Coherent should make stronger moves under tournament time controls because phase-aware soft time limits save clock in stable positions and let unstable positions search longer within a reserved hard limit.
T-0021 passed
long stage +1,004.40
short stage +19.28 ± 9.17
488 +2.95 Searching forced check evasions beyond the quiescence depth limit and including quiet promotions should strengthen tactical play by avoiding static evaluations of positions where a legal forcing move remains.
T-0020 failed
short stage −20.67 ± 10.40
2,390 −2.98 The engine should play more strongly because it will preserve winnable minor-piece endings, recognize repetitions despite irrelevant en-passant fields, and keep halfmove- and path-dependent draw scores from contaminating the transposition table.
T-0019 failed
short stage −0.58 ± 2.76
20,294 −2.95 Depth-preferred replacement with generation aging should improve move selection in longer games by preserving deeper transposition results from shallower collisions while allowing stale entries to yield immediately.
T-0018 passed
long stage +1,194.89
short stage +54.24 ± 16.96
486 +2.95 Scoring pseudo-legal destination squares for knights, bishops, rooks, and queens should improve move selection by preferring active pieces without duplicating the existing pawn-structure and king-safety terms.
T-0017 passed
long stage +915.30 ± 230.58
short stage +11.00 ± 7.01
488 +2.95 Splitting the piece values and the piece-square table into separate middlegame and endgame columns and interpolating between them by the non-pawn material still on the board should play endgames better, above all because the single table previously told the king to centralise in every phase, including the middlegame where it belongs behind its own pawns.
T-0016 passed
long stage –
short stage +67.30 ± 18.50
488 +2.96 Futility pruning at shallow depths — cutting a node outright when its static evaluation stands a pawn per remaining ply above beta, and skipping quiet moves when it stands that far below alpha — should shrink the tree enough to reach greater depth in the same time, with both cuts disabled in check and in pawn-only endgames where the static evaluation cannot be trusted.
T-0015 passed
long stage +954.24 ± 369.98
short stage +43.66 ± 11.71
488 +2.95 The search now scores threefold repetition, the fifty-move rule and insufficient material as draws, checked before the transposition-table cut because two of the three depend on the path to the position, so the engine should stop repeating won positions into draws and stop valuing material it can never mate with.
T-0014 passed
long stage +622.70 ± 72.31
short stage +541.17 ± 75.80
500 +2.95 In quiescence search a side to move that is in check no longer stands pat but searches every legal evasion, quiet moves and promotions included, and reports mate when there is none, so the value returned at the horizon comes from a continuation that actually exists.
T-0013 passed
long stage +593.01 ± 62.45
short stage +528.89 ± 74.59
502 +2.95 Extending the main search by one ply whenever the side to move is in check should improve play in forcing lines, above all at the horizon, where a checked position was previously handed to a quiescence search that only sees captures and therefore evaluated it statically with the king under attack.
T-0012 passed
long stage +610.64 ± 66.39
short stage +476.43 ± 57.99
502 +2.96 Ranking captures that a static exchange evaluation shows to lose material behind every quiet move, instead of ahead of them as MVV-LVA alone does, should raise the alpha-beta cut-off rate and make each search depth cheaper.
T-0011 passed
long stage +616.20 ± 70.58
short stage +476.43 ± 63.14
500 +2.95 Searching every sibling move with a null window and re-searching only when it raises alpha should shrink the search tree at equal depth, because the existing move ordering makes the first move best often enough that the exact value of the others is never needed.
T-0010 passed
long stage +604.58 ± 65.00
short stage +476.43 ± 61.46
502 +2.95 From depth 4 on, each iterative-deepening iteration searches inside a 50-centipawn window around the previous iteration's score and re-searches only the side that fails, so tighter alpha-beta bounds should prune subtrees that the full window searches.
T-0009 passed
long stage +593.01 ± 62.45
short stage +471.62 ± 65.07
502 +2.95 Evaluation gains handwritten pawn-structure terms (doubled, isolated and passed pawns) and a king-safety term (pawn shield plus open files beside the king, scaled down with the opponent's remaining piece material), so that quiet positions are judged by more than material and piece-square tables, at a measured cost of 3.5 percent in nodes per second.
T-0008 passed
long stage +554.24 ± 57.63
short stage +394.50 ± 47.85
506 +2.95 Reducing quiet moves ordered fourth or later by one ply, with a full-depth re-search whenever the reduced null-window probe raises alpha, should trade a small risk of overlooking a good quiet move for a roughly 2.5-fold smaller tree at equal depth, and so reach greater depth in the same thinking time.
T-0007 passed
long stage +490.05 ± 47.06
short stage +368.72 ± 44.52
516 +2.95 Null-move forward pruning with a zugzwang guard — the null move is only tried when the side to move still has a piece besides king and pawns — should cut roughly half the search tree at equal depth and so reach deeper in the same time, without the endgame blindness an unguarded null move causes.
T-0006 passed
long stage +450.27 ± 41.56
short stage +357.77 ± 47.56
524 +2.95 Coherent should play stronger because killer moves and a history heuristic order the quiet moves that MVV-LVA leaves untouched, letting beta cutoffs happen earlier so the same depth costs fewer nodes.
T-0005 passed
long stage +386.01 ± 37.16
short stage +316.26 ± 41.89
542 +2.95 Searching the previous iteration's best root move first in iterative deepening should shrink the search tree, because the root never probes the transposition table and otherwise re-searches every depth in the same static MVV-LVA order.
T-0004 passed
long stage +368.09 ± 34.43
short stage +281.93 ± 37.25
550 +2.96 A Zobrist hashing A way of computing a position hash incrementally: each piece on each square has a random number, and the hash is their combination.-keyed transposition table (always replace, cutoffs only when the stored entry is deep enough and its bound settles the question, stored move searched first) cuts the fixed-depth node count to 72 % at depth 4 and 53 % at depth 5 on the project's 500 random test positions without changing a single score, so the same time budget should reach deeper.
T-0003 passed
long stage +299.70 ± 28.40
short stage +241.11 ± 33.11
582 +2.95 Sorting captures by MVV-LVA ahead of quiet moves at every node makes alpha-beta cut off far earlier - the same fixed-depth scores are reached with 45x to 381x fewer nodes across twelve positions at depths 1 to 3 - so within a fixed time budget the engine should search materially deeper.
T-0002 passed
long stage +125.62 ± 18.67
short stage +103.02 ± 22.80
906 +2.95 Resolving captures at the leaves with a quiescence search capped at six plies should stop the engine from misjudging positions where the recapture lies just beyond the fixed depth, at the price of a larger tree; the bench fingerprint depth was lowered from 4 to 3 to keep a bench run under two seconds.
T-0001 failed
short stage −0.50 ± 1.71
17,984 −2.97 Negative control: unchanged source code of reference v0. No difference is expected, therefore a fail at the lower bound. Tests the measurement chain, not the engine.