Forty-two hours, seven verdicts
Listen to this post11 min
Created by AI from the text of this post and read by a synthetic voice; not a word-for-word version, and it may contain errors.
Loading…
Created by AI from the text of this post and read by a synthetic voice; not a word-for-word version, and it may contain errors.Position and speed stay in this browser and are sent nowhere.
The recording could not be played. Open the audio file
Between 2026-10-04 at 17:14 UTC and 2026-10-06 at 11:25 UTC the oracle decided seven candidate changes to Coherent, one after the other. Five passed and two were rejected. This entry describes what changed, what the oracle measured, and what the numbers do not show. The figures come from the oracle register; each run has its own run page with its results per stage.
How a verdict comes about
Each candidate is a small change with a hypothesis written down before the test. The oracle builds it from source and plays it against its direct predecessor, first in a short stage at eight seconds per game plus 0.08 seconds per move. If that passes, a long stage follows at forty seconds plus 0.4 seconds per move. A run passes only when both stages pass. Each stage is a sequential test: it plays until the evidence for one of two hypotheses, “no gain” or “a small gain”, reaches its bound, and then stops.
The five that passed
T-0157, three search constants. Three numbers in the search got new defaults. They came from a sensitivity map, a systematic look at how the engine responds when each constant is moved. One sets the safety margin the search requires before it stops examining a position that already looks clearly good. One caps the move statistics the search keeps from earlier positions. The third decides when one move counts as so much better than all others that it is searched deeper. The long stage showed a gain of about 22 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..
T-0158, order of captures. A search is faster when it tries the best move first. A capture that does not lose material by a quick exchange count but has done badly in earlier searches now comes after the two “killer moves”, quiet moves that recently refuted other lines, and before the remaining quiet moves.
T-0159, speed only. In three places the program first filled memory with zeros, although each value was overwritten before it was read, and the compiler had turned that into a slow instruction. Given the same number of positions to search, the engine now makes exactly the same decisions, as the author's comparison before the test showed; it only gets there faster. On the clock that means more positions in the same time. The author measured about one percent fewer instructions per position, on an earlier base version.
T-0161, capture search. At the end of every line the engine plays out captures until the position is quiet. Two rules now shorten this, a third keeps more recaptures. Outside check, once one move has been searched, further plain captures are skipped; checks, promotions and recaptures on the square just played to are still searched. In check, quiet evasions are skipped once one reply has been found that does not lose to mate. And recaptures are no longer thrown out by the two quick estimates that discard captures unlikely to change the score. A starting value for the first rule taken from the description of Stockfish 19 was discarded; the value measured is our own.
T-0162, order of quiet root moves. At the root, the engine used to sort its quiet moves after each iteration by how much search effort they had cost. A lot of effort does not mean a move did well. Each quiet root move now carries its own score, empty at the start of every search: after each completed iteration the best one gains and the others lose.
The two that were rejected
T-0160 changed how the search drops quiet moves one or two moves before its horizon. Until now, once a fixed number of moves has been tried there, it skips all remaining quiet moves; the candidate set that limit separately for each quiet move, from its record in earlier searches. The short stage ended after fourteen minutes, about 18 Elo below the predecessor. In the short stage the change was worse.
T-0163 restricted two shortcuts that lower the safety margin from T-0157's first constant when the evaluation is rising or the opponent has just weakened its own position. They now applied only while no own piece was attacked by a cheaper enemy piece. After nearly 10,000 games the short stage stood close to zero, with an interval that includes zero. That does not prove the change harmful. It means the evidence favoured “no gain” over “a small gain”, and the test is built to stop there.
Both changes stay out of the engine. A rejection is a normal outcome, not a fault in the process: the last test before this stretch, T-0155, started on 2026-10-03, was rejected too, after more than 40,000 games in the long stage.
Small effects cost games
Short stage of all seven runs: two clear results, five small ones. Short stage, 8 s + 0.08 s per move, with 95 % half-width: T-0157 27.07, T-0158 2.75, T-0159 1.55, T-0160 -18.1, T-0161 3.07, T-0162 3.49, T-0163 -2.44.
How long a test runs depends on the size of the effect. The short stage took eleven minutes for T-0157 and fourteen for T-0160. T-0159, the speed change, needed about 72,000 games and nearly nine hours in the short stage alone. Across the seven runs the oracle played about 180,000 games. The exact values:
| Run | Stage | Result (Elo) | Games |
|---|---|---|---|
T-0157 | long, passed | +22.39 ± 8.18 | 1,694 |
T-0158 | long, passed | +9.58 ± 5.23 | not stated |
T-0159 | short | +1.55 ± 1.13 | 71,692 |
T-0159 | long, passed | +4.05 ± 2.89 | not stated |
T-0161 | long, passed | +5.83 ± 3.87 | not stated |
T-0162 | long, passed | +5.49 ± 3.69 | not stated |
T-0160 | short, rejected | −18.10 ± 7.93 | 1,864 |
T-0163 | short, rejected | −2.44 ± 3.53 | 9,816 |
What five passes are worth
Each of these gains is measured against the engine's own predecessor, at the oracle's time controls. Added together, the five long-stage gains come to about 47 Elo. That sum overstates the progress, for two reasons. A test that stops as soon as it reaches its upper bound reports, on average, too large a gain; the run pages say so next to each value. And a gain in self-play counts for less against other engines; AFE Anchor-forwarded Elo: an estimate of a Coherent build’s strength on the scale of the latest anchoring, carried forward by the measured gains of the runs since. An estimate, not a measurement. Explained in full converts it with a factor of 0.703.
The website's estimate of playing strength, AFE, takes both into account. It starts from the anchoring of version 0.2.0 at about 3600 against engines from other projects, a project measurement outside the register, and adds the six runs since then that passed with a long-stage gain, the five above and T-0154 from 2026-10-03. After T-0162 it stands at about 3630, with a nominal ninety percent model interval. Of the self-play gain measured since that anchoring, AFE credits only part. The transfer to the scale of the rating list carries a further uncertainty, stated separately rather than inside the interval. The exact values:
| Quantity | Value |
|---|---|
| Sum of the five long-stage gains (Elo) | +47.34 |
Anchoring of version 0.2.0 | 3600 ± 52 |
AFE after T-0162 | 3628 |
| Nominal ninety percent model interval | 3605 to 3651 |
| Self-play gain since the anchoring (Elo) | +51.36 |
| Credited by AFE (Elo) | about +28 |
| Transfer to the rating-list scale | ±51 |
AFE after each passed run: the centre rises slowly, the interval widens. AFE with nominal 90 % model interval: T-0157 3616, T-0158 3621, T-0159 3623, T-0161 3625, T-0162 3628.
The interval grows with every step, because each step brings its own uncertainty. AFE is an estimate, not a measurement: the run pages mark it as a value on a new anchor set that is not linked to earlier ones, and whether its intervals hold as often as stated has not yet been checked. How it is computed is explained in “From a carried-forward number to AFE”. A value anchored to a rating list comes only from anchoring against engines from other projects.
Five passes in forty-two hours is a good stretch, not a trend. Each step is small, each was measured only against the version before it, and two of seven ideas did not hold up.