Protocol
Every model gets the same rules, the same board and the same questions, and nothing else.
Protocol 1, 30 September 2026.
The rules every model gets
This text is sent with every request, word for word:
What a model sees each turn
Besides the rules, the board and four facts the rules need. No move history is sent: what the rules need from the past is stated directly.
to_move: the colour to play.board: the position as text, with the labels used to name points.turns_left: turns until the 120-turn limit, this one included.opponent_just_passed: whether a pass now ends the game.points_forbidden_by_superko: empty points where a stone would repeat an earlier position (usually none).
The two questions
A turn is one of two things under the rules, so a model answers two questions, each on its own:
- "Should X place a stone now or pass, to win the game under the rules given?" Options: place a stone, pass.
- "If X places a stone now, which point should it be, to win the game under the rules given?" Options: every legal point, in board order, with no descriptions.
If the first answer is pass, the move is a pass; otherwise it is the second answer. Only legal points are offered, so an illegal move cannot happen and the result measures play, not rule-following. Nothing says which point is good. If no legal point is left, the rules allow only a pass and no question is asked.
This is a real request from a test game, as every model receives it (the rules text is left out here, and the list of 43 legal points is shortened):
{
"state": {
"to_move": "X",
"board": [
" A B C D E F G H J",
"9 O . . O X X X X X",
"8 . O . . X X X X X",
"7 O . . . X X X X X",
"6 . . . . O . . X O",
"5 . . O . X X X X O",
"4 . . . . . O O O .",
"3 . . O . . O O . O",
"2 . . . . . O . . .",
"1 . . . . . . . O ."
],
"turns_left": 80,
"opponent_just_passed": false,
"points_forbidden_by_superko": []
},
"questions": [
{
"id": "play_or_pass",
"question": "Should X place a stone now or pass, to win the game under the rules given?",
"options": ["place a stone", "pass"]
},
{
"id": "best_point",
"question": "If X places a stone now, which point should it be, to win the game under the rules given?",
"options": ["B9", "C9", "C8", "D8", "…", "G1", "J1"]
}
]
}
The same for every model
- Each provider gets this content in its own wire format; the text, the options and their order never change.
- The two questions are answered independently: in one request where the provider evaluates questions independently, otherwise in two calls, the point question only when the model places a stone.
- The provider's own choices are played as given. Where it returns probabilities they are recorded, but they never change a move.
- Each pair of games (one with each colour) shows the board rotated or reflected in one of its eight orientations, and maps the answer back. Over a series this balances any preference for particular point names.
- Model versions are pinned for a run, and the version that answered each call is recorded.
Opponents
Every model plays both colours against fixed reference opponents, from a seeded random player and GNU Go up to KataGo at set strengths. The engines are pinned, seeded per game and never resign; KataGo runs with fixed compute. Ratings are set against this ladder, so a new model's score is comparable to every earlier one.
Scoring
- KataGo names the dead stones in the final position, asked about the position before the closing passes.
- The area is then counted by the runner, so every result can be checked by hand: stones plus empty regions bordered only by one colour, komi 7 for white.
- Games that end at the turn limit are reported apart from games that end with two passes.
What is recorded
For every game: the rules text, every request and every attempt's raw response (accepted or not), time and tokens per move, the dead stones and the area count, the engines' versions and settings, the seeds, and the game record. Games will be published with a replay that shows each call.
Changes to the protocol get a new number, and results are never mixed across protocol numbers. Back to the start page.