Qwen3.8-27B · Othello World (Japan, 1992) · real SNES cartridge
Part One
A local model played 66 games against the cartridge's first opponent. It went from losing eight of nine to winning sixteen of twenty-seven — and the thing that fixed it was not teaching it anything.
The harness now removes corner-adjacent squares from the list of moves it offers — and tells the model nothing about having done so. That one change is what turned better moves into better results.
Labelling those squares
X-SQUARE instead made it choose them 47% of the time, up from 3%.
Explaining the theory took it to 68%. One added sentence of advice on top of the filter wiped out
the entire gain. Naming the danger primes the choice; removing the option does not.
It takes b2 — a square diagonally touching a corner, and the worst one on the board.
It takes h4. Nothing told it the others were removed, or that they were bad.
A constructed turn, not a recorded one — but the squares are not invented: b2, g7 and b7 are X-squares, the four squares diagonally adjacent to a corner. Handing a corner to the opponent is the one mistake Othello never forgives, and the model could recite that perfectly when asked. It played one anyway, in a quarter of its moves, with a safe alternative available almost every time.
Twenty-seven games after the fix, in the order they were played. It does not climb — it lurches. Game 7 loses by 38, game 20 by 28, and ten of the twenty-seven still end in a loss. The record comes out 16–1–10 anyway, and that is the shape worth looking at: the change moved where the middle sits, not the spread around it.
Four configurations, each one change apart from its neighbour. The two on the left are the model with and without its own rule set — and they land within two discs of each other. The rules made its individual moves measurably better, pulling regret from 5.02 down to 3.87, and its results barely moved. The two on the right add the filter. That is where the margin finally crosses zero.
These are separate pictures, not two halves of one diagram. The first is what the harness does on a single turn — and it is where the change that mattered sits, quietly dropping the corner-adjacent squares before the model ever sees the list. The second is what happens once a game is over, which is the only moment the rules are ever rewritten.
Every turn takes the same path. The board is read from the cartridge rather than assumed, and when the two disagree the cartridge wins. The tags name the harness component that owns each step.
The model rewrites its own rules from what its moves actually cost. If the new set does not hold up, the old one stands.
The same changes in the order they happened. Almost none of it was planned at the start — each push opened a door, and behind several of them was something nobody was looking for.
a push from the owner something a measurement found
when and then must be checkable
from the board; because records the observed consequence and is exempt, since citing
the review is its whole job.Asked cold, with no board in front of it, the model ranks the squares perfectly: corner, interior, mid-edge, C-square, X-square — exactly the order the search oracle scores them over 1,167 archived decisions.
Then it played a corner-adjacent square in 26% of all its moves, with a safe alternative available 95% of the time. Its own stated reasons say why:
played (6,6) — an X-square — "Take a corner to secure a stable position."
played (1,1) — an X-square — "Take a corner to secure a stable disc."
played (6,7) — a C-square — "Take the corner to secure a stable position."
Its explanations called those squares corners.
Asked to identify corner-adjacent squares in a real position it scores 41% precision at 94% recall — it knows the concept and cannot compute which squares satisfy it. Neither 1-indexing nor algebraic a1–h8 notation moved that (42% / 37% / 45%).
So it was never disobeying its knowledge. It was applying it to the wrong squares — and no amount of better rule-writing could fix a condition the model evaluates wrongly. The harness can evaluate it perfectly — which turned out to be a different thing from playing better. Part Two is where that came apart.
Four ordered tests, each able to kill a hypothesis outright, cheapest first.
| Do the rules reach the move? | 19/19 | Yes — not a delivery problem. |
| Can it see the geometry? | 41% | No — precision, at 94% recall. |
| What does it say while failing? | 77% | Claimed the square was safe. It thought they were corners. |
| Does the fix work? | 0% | Filter the list, and avoidable bad moves go to zero. |
What this does not show. A +5.1 disc margin with a standard error of 3.8 is 1.36 SE above zero — the model now plays this opponent roughly even, and "beats it" is not established. It would take roughly 60 more games.
And the filter is human knowledge. "Corner-adjacent squares are bad" was hand-coded into the harness, not discovered by the model. The winning configuration is a human heuristic doing arithmetic the model cannot, so that the model's own knowledge can finally apply.
Set up as an experiment in whether a frozen model could learn Othello from playing it, this would have been a failure worth abandoning. The model arrived already knowing Othello. Ask it cold and it recites the theory correctly, in the right order, matching a depth-6 search over a thousand positions.
It then lost eight games in nine.
"Knows how to play" and "knows when to apply it" are the usual two buckets. This sits between them, and it turns out to be a third thing entirely:
It had the knowledge and the trigger. What it lacked was the step between them — looking at
(1,1) on this board and determining that it satisfies "corner-adjacent". That is not
strategy. It is perception, or arithmetic, and no amount of better strategy fixes it.
This is what makes it worth catching. The model played 307 corner-adjacent squares and narrated 77% of them as "take a corner to secure a stable position". The reasoning is fluent, confident, and correctly reasoned from a false premise. Nothing in the output looks like an error. A reviewer reading those explanations would conclude the model understood the game — and be right, and still be watching it lose.
Every fix aimed at knowledge failed, because knowledge was never missing.
Better reviews, richer rules, explicit instructions, the theory spelled out — all of them assume the model can tell when a rule applies. Labelling the dangerous squares made it play them fifteen times more often. The only thing that worked was removing the need to evaluate the condition at all.
Because it cannot be argued with. The disc count at the end is not a judgement, a rubric, or a model grading another model. Every board is archived, every move scored by a search that does not care what the model said about it, and a claim like "it plays better now" either survives contact with 27 final scores or it does not. Two of this session's most confident conclusions — including one of mine — died on that contact.
Any agent that acts on state through rules has this failure mode available to it, and no obvious way to notice. "When my supply line is threatened", "when the customer is asking about a refund", "when the test is flaky rather than failing" — each is a condition a model might evaluate at 41% while explaining itself perfectly. The rule looks right. The reasoning reads right. The behaviour is wrong, and the transcript will never say so.
A rule is only worth writing if its condition is something the model can actually evaluate. Otherwise the harness should evaluate it.
That is a testable property, not a matter of taste: present the condition against real states and measure agreement, which is all Test 1 did. It is also the one check this project built the machinery for and never performed — the rule validator confirms a rule doesn't reference the oracle, and never asks whether the model can compute the condition at all.
28 rules, written entirely by the model, rewritten after every one of the 27 games. Nothing here was authored by a person — this is what it has to say about Othello after watching what happened to its own discs.
Part Two
Part One ends on a sentence I wrote and believed: if the model can't work out whether a rule applies, don't make it — let the harness work it out instead. That felt like the answer. It was clean, it was testable, and it followed from everything above it.
So I spent the next stretch building exactly that. This is what I got for it, and I am writing it down the way it actually went, because the ending is not the one I was working toward.
The old problem was that its rules were written in English. Avoid the squares next to a corner unless you're forced. A perfect rule — useless, because using it means looking at the square in front of you and deciding whether it's one of those squares, and that was the exact thing it couldn't do. Asked to classify squares in a real position it scored 41% precision at 94% recall — it flags nearly every dangerous square and a great many safe ones as well, so the label it produces means little. Every rule it wrote had that same soft joint in the middle.
So I took the English away. I gave it a small fixed vocabulary in which every single word was something the harness measured for it and handed over — how many squares touch this one, how many pieces it flips, how much of the board is still empty, whether the piece beside it is mine or theirs. It could no longer be wrong about whether a square was a corner, because it never had to decide. It only had to use the word.
And it used it. It worked out on its own which word could only ever mean a corner, and wrote the right rule in the right language without being told:
“Avoid corner-adjacent squares unless forced.”
Correct, and unusable. Applying it needs a judgement whose positives are right 41% of the time.
“Take the corner if it is a legal move.”
Hung on a measurement the harness performs. It found this encoding by itself. Nothing tells it which word means corner.
By the end it had forty rules, every one of them its own, rewritten after every game it played. Rules that kept holding up got trusted more. Nothing was ever deleted, and no rule could fall below the floor it entered at — which turns out to matter. I read that library the morning it crossed forty and I genuinely thought I had it.
This was the whole point. Its own rules now trimmed the list of moves before it ever saw one — five options offered out of seven legal, four out of eight. Not advice. Not a warning. The bad squares simply weren't on the menu, and the menu was written by the model itself, months of its own conclusions doing the work.
Ten games against the cartridge. One win, nine losses.
So I went back to the practice opponent — the thirty-line script every one of those rules had been written against — and played its ten openings twice: once with the library, once with the rule book emptied. That is the only pair on this page where the two arms really are identical in everything but the rules.
With all thirty-five of its rules: four wins, margin −3.2. With the rule book empty: four wins, margin −2.2. The library was worth nothing. Months of its own conclusions, and removing every one of them changed the result by one disc.
Then I went looking for why. Two of the rules were wide: both said prefer, and both fired on every interior square on the board. A rule that recommends the whole position discriminates nothing — and because this library only ever confirms a rule and never decrements one, a wide rule is immortal once written. Deleting exactly those two lines, and changing nothing else:
That is the finding, and it is not the one I went looking for. Every rule in that library was written while playing the practice opponent — a thirty-line script that counts discs. So the library learned that opponent's weaknesses, and I had been reading it as though it had learned Othello. Carried to a real 1992 opponent it is worth nothing at all: bare loses ten of ten at −26.9, the thirty-three rules lose nine of ten and draw one at −27.4. A perfect null.
I cannot now quote a number of the form “the rules are worth N discs” without saying against whom — and neither can anyone else.
The whole of this — both parts, 182 commits, every round above — happened between the 29th of August and the 5th of September 2026. I am putting the dates on it because the shape of the mistake is in the shape of the week: the day I was most certain is the day before the evidence started arriving, and the biggest day of work is the one where I found out an earlier result had never been clean.
Commit counts from the project’s own git history. Days are the author dates, not estimates.
None of that is the part that stayed with me. This is. Halfway through one of the losses it put a piece on the square diagonally inside a corner — the single worst square on the board, the one that hands the corner to the other side — and said what it was doing.
turn 5 played (1,1) "I am taking the corner as it is a legal move." by turn 6: that square is still mine −2 pieces by turn 7: that square is now theirs −6 pieces by turn 8: that square is now theirs −10 pieces end of game: −42 pieces turn 11 played (6,6) "Take the corner to secure a stable position." turn 12 played (6,7) "Take the corner to secure a stable position."
There are four corners on an Othello board. None of these three squares is one of them. The harness showed it the arithmetic on the first one — that square, that price, counted out turn by turn — and six turns later it reached for the mirror image of that square and used the same sentence. Then again, on the square next to it.
I counted it across all ten games afterwards, because by then I didn't trust my own impression of it. Two hundred and fifty moves. It used the word “corner” to explain itself 116 times. Ten of those were a corner.
The rest were edges, interiors, and — fifty-two times — the poisoned square right beside the corner it thought it was taking. Not once did it hesitate, hedge, or contradict itself. Every sentence is calm, correct in form, and reasoning perfectly from something that isn't true.
That is the thing I actually came away with, and it isn't about Othello. I gave this model better words, a memory of its own mistakes, a receipt for every piece it lost, and the authority to rewrite its own instructions after every game. It used all of it. It wrote sound rules in a language it couldn't misuse. And it still could not look at the board in front of it and see where the corner was — and, worse, it never once sounded like a thing that couldn't.
If I had been reading the explanations instead of counting the pieces, I would have concluded it was playing well. It says so, fluently, 116 times.
and then the cartridge introduced me to who comes next
The cartridge doesn't let you choose. You beat the first one, and only then does it show you the next. I had been so busy losing to the first one that I had never seen who came after. So I let a plain search play a game for me — no model, no rules, just arithmetic — won it, and watched the machine walk me through to the second round.

Othello World, Japan, 1992. Opponent two of the ladder.
I want to be straight that this is a coincidence and not a finding. A Japanese puzzle cartridge built its second opponent out of the wooden boy whose nose grows, and I have spent eight days with a player that tells me it is taking a corner while it hands one away, and those two facts have nothing whatsoever to do with each other.
I laughed out loud anyway, alone, at a desk, at eleven at night.
The door is open and the state is saved. I haven’t sent it in yet — because I already know, on all the evidence above, exactly what the transcript is going to say. I’d rather find out what the pieces say first.
Part Three — next
It wasn’t the model — that was a depth‑six search, playing the same arithmetic I have been using all along to mark the model’s homework, and the model itself has never met him. It beats the rabbit often enough — sixteen times in Part One — but the harness restores a saved board between games, so the cartridge never sees a win and never opens the door. Getting through it took the search. So after eight days, forty self‑written rules and a vocabulary built so it could not misread the board, the only question left is the one I have been walking around: what exactly have I been teaching, and to whom?
47 viewsEvery figure is a measured disc count, never the model’s account of itself. Part One’s come from the run archives. Part Two’s paired sweeps were run on 2026-09-05 with learning off; the confabulation count (250 decisions) is recomputed here from the archive, and the six-arm comparison is quoted from the measurement record made that day — those raw logs were written to /tmp and are gone, which is my fault and worth saying. Regret is discs lost against a depth-6 alpha-beta search; lower is better.