Epochs 1 to 7: how the oracle's rules took shape
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
Every change to Coherent's engine goes to the oracle, which records a verdict in its register. Usually it plays the candidate against its predecessor; some changes are checked by separate procedures without games. The rules under which the oracle measures are grouped into epochs. This entry catches up on the first seven, from the first register entry on 28 August 2026 to 9 October 2026; epoch 8 gets an entry of its own.
What an epoch is
A result of the oracle is not a property of the engine alone. The project's constitution says that 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. belongs to the pair of engine and conditions: opening book, time control, hash size, threads and the rules for ending games early. So the oracle compares only within an epoch, a stretch of time in which the toolchain and the measuring conditions stay the same. Results from different epochs are not compared without checking.
The project's agents cannot change these conditions on their own. Today a change goes only through an epoch change: approval by the project's owner or a documented mandate, an independent review, a new fingerprint of the measuring conditions confirmed by two model families, two builds of the engine with identical bytes, and an anchor entry appended to the register. The anchor plays no games. It rebuilds the last engine that passed and makes it the predecessor that the new epoch measures against. Since epoch 2 the oracle compares the current conditions with the anchor before every measurement and stops if they differ.
Some things stayed the same in all 156 runs with games: the short stage always used 8+0.08 seconds with opening book A, and the 92 runs that reached the long stage used 40+0.4 with book B there. Both stages used a hash of 16 MiB, games in pairs with swapped colours, and nominal error rates of 5 per cent each way for the sequential test. What changed is shown in the overview.
The test band sets two hypotheses in normalized Elo (nElo Normalised Elo: the Elo difference divided by the spread of the game results, so that the SPRT bounds mean the same at different time controls.), a scale that relates the score advantage to the spread of the paired results: no gain, and a gain at the upper value. The sequential test compares how likely the results are under each and stops at a decision bound or, without a decision, at the game cap, the most games a stage may play.
The first epoch: before there were epochs
Epoch 1 was named afterwards: entries from before the first anchor count as epoch 1. The first entry was a negative control. It tested the unchanged source of the reference engine against itself, expected no difference, and failed as expected, after about 18,000 games.
At that time, conditions were still changed without an anchor. Shortly after the start, the short stage switched from measuring against the original reference to measuring against the predecessor. The long stage kept the original reference, and it filtered nothing: all 35 candidates that passed the short stage also passed the long one. All 19 rejections happened in the short stage; two of them were control runs that tested an engine against itself.
The second epoch: a faster build
The anchor on 3 September 2026 brought three things. The engine was now compiled with -O3 instead of -O2; the source stayed the same, the binary changed. The long stage now measured against the predecessor. And the oracle recorded a fingerprint of the measuring conditions for the first time.
In two fixed-depth search benchmarks on the oracle machine, the new build was 6.5 and 7.2 per cent faster, with identical node counts. An earlier move-generation benchmark on another machine had shown 35.7 per cent; as a stand-in for the search it overstated the effect about fivefold.
A rule to end clear draws early was planned for the same step and dropped. Calibrated on the recorded games of the second control run, it would have ended roughly 4,200 games as draws; White had actually won 35 of them and Black 54, each above the limit of 0.5 per cent. The oracle still plays every game to the end, as it has since the first entry.
Epoch 2 itself recorded no games, only the anchor, 1 entry for a change that left the binary identical, and 4 corrections checked without games: they had to behave like the predecessor, apart from declared positions.
The third epoch: room for the long stage
On the same day, a second anchor changed the stages. A simulation had shown that the long stage, now measuring against the predecessor, would have passed a candidate with a true gain of 3 nElo only about 30 per cent of the time; about 68 per cent of such runs would have ended at the game cap. Both caps were doubled, to 160,000 and 80,000 games, and the band of the long stage was widened from 0…3 to 0…5.
The fourth epoch: the machine itself
The anchor on 5 September 2026 pinned down the operating system settings: the processor runs at its performance setting, and the games are pinned to fixed physical cores, spread evenly across the processor, with 4 cores held in reserve. The fingerprint now also covered frequency settings, firmware, the kernel and its command line, microcode, simultaneous multithreading and memory page settings.
That paid off on 13 September 2026. After a system update the kernel had a new version, and the oracle stopped at once: the measuring conditions no longer matched the epoch. Instead of opening a new epoch, the machine went back to the anchor's kernel, and kernel and microcode packages were held at their version. The fingerprint matched again, and the oracle measured on under epoch 4.
Epoch 4 also saw a run of about 52 hours: one entry passed the short stage and was rejected in the long stage after 76,396 games.
The fifth epoch: a wider band, short caps
The anchor on 16 September 2026 widened the band of both stages to 0…10 nElo and cut the caps to 24,000 and 12,000 games. A run that reaches the cap without a decision now counts explicitly as undecided. A wider band decides sooner, but smaller gains pass it less often. Of the six epochs with games, epoch 5 had the lowest share of passes: 14 of 36.
The sixth epoch: back to the narrow band
The anchor on 23 September 2026 went back to 0…5 nElo and raised the caps fourfold, to 96,000 and 48,000 games. Fourfold follows from the band: in the usual approximation, halving the band needs about four times as many games for an effect at the same place within the band. The change applied to new candidates only; no earlier binary was submitted again. The owner decided it for the case that the oracle stood idle too often.
In epoch 6 one run reached the cap: it played all 48,000 games of the long stage without reaching a bound and ended as undecided.
The seventh epoch: a route for fixes
The anchor on 4 October 2026 brought a separate route for documented fixes, or improvements in rare, clearly delimited classes of positions, without requiring a gain in strength. Such a change must pass a machine-checked proof on the positions it concerns, and a non-inferiority test in each stage, with the hypotheses −5 and 0 nElo. Passing is statistical evidence within that margin, not a guarantee about the actual loss. The number of such runs is capped. For all other candidates, stages, bands and caps stayed as they were. No run in epoch 7 used the new route.
The window waited until the run in progress had finished regularly. Writing the anchor into the register cannot be undone; when the permission check refused the agent that was to carry it out, the owner did it in person. The refusal was not worked around.
What the seven epochs show
The table shows how the rules took shape, not how strong the engine became. A share of passes says something about the candidates and the test band of its epoch, not about progress. Every change into epochs 2 to 7 has an anchor with a new fingerprint, and every run with games in these epochs carries the fingerprint of its anchor. When a covered condition changed unplanned on 13 September 2026, the oracle stopped instead of measuring on.