ARC-AGI-3 is a skill issue

How one skill took Claude Code with Opus 5 to 100% RHAE on ARC-AGI-3.

By Poobesh Gowtham · @pbshgthm

RHAE, the top score
100.00of 100
games finished
25of 25
levels finished
183of 183

The mechanic is one rule. Every act has to arrive with a written prediction of the next frame, and the tool refuses to send an act that has none. It then grades the prediction against the frame the game actually returned.

That turns each act into an experiment. A miss costs no extra action and names the belief that was wrong, so a game nobody explained gets learned by being wrong on the record, 11,344 claims deep.

It also tells Claude when to stop testing. A single test act misses 37.1% of the time, an act inside a plan 2.9%. So it probes until a mechanic holds, then commits to long sequences that halt at the first miss. Only 642 of 7,627 graded acts went on finding things out, which is why 7,645 actions did what a median human player needs 17,135 for.

What is ARC-AGI-3?

25 games from the ARC Prize Foundation. Each one is a grid of coloured cells with seven buttons under it, and nothing else.

Nothing says what the colours mean, what a button does, what winning looks like, or how many levels there are. The meanings change between games. A colour that is a wall in one game is a cursor in the next.

You learn by acting and watching what changes. Every act costs one action, and the score is how few you spend.

lp85, action 1 of 0

This is the game lp85, played back at speed from the grids the run recorded. Claude started from the first frame with no rules, no goal and no legend.

A real run, replayed from the grids it recorded.

Nothing tells you what the game is, so you spend actions finding out.

What Claude gets

arc-skill is a short instruction file and a command line tool. The file adds one rule and the tool enforces it. Around that rule Claude gets five kinds of instrument, and none of them knows anything about any game.

See
The board as an image, the exact grid, any crop, what changed, and the animation of any past act.
Act
One button, with a prediction attached. An act without one is refused, and the refusal is free.
Plan
A sequence where every step carries its own prediction. It stops at the first miss.
Compute
Offline Python over the grids already recorded, with shape finding, lattice and line detection, motion tracing, and pathfinding ready to use. It costs no actions.
Model
Optional. Write an executable model of the game, replay it against every recorded act, and search it for a plan.

Claude gets basic tools for seeing the board and acting on it, and one skill that says how to use them.

Predict, then act

Before Claude may act, it writes down what the act will do to the grid. Which cells change, and to what. The tool refuses an act that arrives without one, then grades the prediction against the grid that comes back.

Act 1 of the lp85 run, copied from its log. Both parts missed.

arc act ACTION6 58 32 \
  --predict "cell 22,17=b; cell 10,17=4" \
  --because "right arrow: test if cursor moves one tile clockwise"

Before every action, Claude writes down what it thinks will happen. The tool refuses the action without it.

A prediction that holds means the model of the game is still standing. A miss is worth more. It dates the exact act where what Claude believed and what the game did came apart, and hands over the grid that broke it.

Claude wrote 7,627 predictions. 443 missed. Every one of the 25 games contained at least one.

The grid before the action.

Game
ar25, 8 levels
Level
0, action 0 of 261
Button
Why
Prediction
Drawn at random, weighted toward the ones that missed.

One miss turned an impossible level into an easy one

Level 9 of tu93 mixes two static guards, three patrollers and a chaser. Claude built the map, rolled the patrol forward 250 ticks, and proved there was no safe path. Every node of the one corridor was a cut vertex. On the board as it understood it, the level could not be finished.

So it spent an action on the one thing it had never tested. It walked into a patroller, and said in advance that the patroller would still be there afterwards.

Act 193 of the tu93 run. The reason it gave for the act.

UNTESTED: entering a node a patroller occupies as it
vacates (B (6,1)->(5,1), non-swap). Strict passage
proven impossible at T=250; every corridor node is a
cut vertex.
cell 46,17=9
cell 46,11=0
cell 46,18=4
cell 22,17=c
cell 40,11=d
cell 40,17=c
observed: cell (40,17) is 0
cell 46,29=c

Six of the seven held. The seventh said the patroller was still at 40,17. The grid came back with that cell empty. Walking onto a patroller kills it, the same way it works for the static guards, and the level Claude had just proved impossible was now the intended solution.

What it wrote in its notes, and then played the rest of the level on:

From the tu93 notes, written after that act.

ENTERING A PATROLLER'S OWN NODE DESTROYS IT, exactly
like a blue guard (e193). So the kill rule is UNIFORM
across agent types: walk onto it = it dies; let it
walk onto you = you die.

The game explains nothing, so a wrong prediction is how Claude finds out what the real rule is.

How a claim is written

A prediction joins these with semicolons, and each part is graded on its own, so one wrong part is a miss.

cell X,Y=V
this cell will hold this colour
move X,Y DX,DY
this shape will shift by this much
level+1
this act will finish the level
win
this act will finish the game

8 forms in all. The grammar is deliberately small: every form describes something the next frame can contradict.

  1. 1

    Look

    Read the grid, and what changed since the last one.

  2. 2

    Predict

    Write down what the next act will do.

  3. 3

    Act

    The tool refuses the act if no prediction came with it.

  4. 4

    Compare

    The tool checks the prediction against the real grid and grades it.

Then back to the start, once for each of the 7,645 actions the campaign spent.

One page of notes

A long game does not fit in a context window. Claude Code compacts its own context when the window fills, and it did that 115 times over this campaign.

So each game keeps one short page: what is verified, what is still assumed, what to test next. Claude rewrites it as it plays. It is the only thing a compaction cannot take away.

Claude Code forgets when its context fills up, so each game keeps a notes file that Claude rewrites as it plays.

Everything important has to earn a place on one page, so observations compete for space and raw sightings have to be compressed into rules that hold next time. The pages stayed at a median of 60 lines.

Nobody specified the headings below. The runs grew them.

ls20 · REFUTED
Eight beliefs Claude once held, kept next to the evidence that killed each one.
su15 · DANGER, the mistake that lost L9
The exact belief that made a level unwinnable, written down so it stays made once.

Tight rules, free thinking

Two rules pull against each other and both hold at once. That pairing is the whole idea.

The gate is hard. An act without a falsifiable claim never reaches the game. Not a suggestion in a prompt. The tool refuses it.

The thinking is free. Claude uses whatever representation is right for the game in front of it, and moves up a rung when the one it has stops answering.

Every strong system on this benchmark makes a bet about representation. Tycho writes an executable world model and decides when to build, repair, use or bypass it. VISTA renders each frame and reasons over the picture in language, without program synthesis. Retrodict replays each hypothesis over its own logged history in Python before it acts.

Here no representation is required. The same unedited arc-skill produced a run that never wrote a line of Python and a run that built a physics simulator.

  1. 1

    Sentences

    sb26

    Eight levels, one missed prediction, and not a single line of Python. The game was legible, so it stayed in prose.

  2. 2

    Python

    24 of 25 games

    Working out which cells form one object, or the shortest path between two of them, is arithmetic. It runs on grids already recorded, so it costs nothing.

  3. 3

    A tool

    sp80

    It wrote a fluid simulator and searched 16 versions of the physics until one reproduced every pour it had on record, cell for cell. Then it placed 30 blocks in one plan and poured.

  4. 4

    A model of the world

    bp35

    The heaviest rung, taken once. An executable model of the whole game, fitted against every recorded act. It never fitted, both searches ran out of time, and no plan from that tier was ever sent. The game was won on the rung above.

Claude decides for itself how to think about each game. The one fixed rule is that it has to predict before it acts.

Claude reached for Python 1,727 times across 24 of the 25 games. None of it costs an action, because it runs on grids already recorded.

It learned when to probe and when to commit

The instruction file says to batch a mechanic once it is verified, and never to batch exploration. It does not say when a mechanic counts as verified. Claude drew that line for itself, and the two modes came out far apart. A single test act missed 37.1% of the time. A planned sequence missed 2.9%, about 13 times fewer, and Claude put 92% of its acts into plans.

37.1%of predictions missed

642 acts, 8% of the campaign

Single test act. One act, spent to find something out.

2.9%of predictions missed

6,985 acts, 91% of the campaign

Planned sequence. Every step carries its own prediction, and the sequence stops at the first miss.

The guessing sits at the start. On the first level of a game 29% of acts were single tests, and after that the rate falls away and stays down.

1
2
3
4
5
6
7
8
9
10
acts that were single tests
predictions that missed
by level number, all 25 games
Every level of the campaign, grouped by level number.

Claude spends actions testing a rule until it holds, then stops testing and plays long sequences instead.

The field

RHAE is the benchmark's own score. It compares your actions against a median human player, level by level, and it stops at 100.00.

Everything else here is a system built for ARC-AGI-3 (except the last two rows, which are people, not systems). The second line of each row is how that system plays, taken from its own write-up.

Every name is a link to where its numbers can be read back. Six go to an official scorecard on arcprize.org. VISTA and Schema have no scorecard, so those two link to the write-ups their authors published, and both of those scores are self-reported.

arc-skill is a 129 line instruction file and a command line tool. Neither one mentions any of these 25 games, and the agent that runs them is Claude Code as shipped.

systemmodelRHAEactions
arc-skilla skill file and a command line tool, inside Claude CodeClaude Code, Opus 5100.007,645
Tychodecides when to build, repair, use or bypass an executable world modelOpus 5100.006,641
VISTArenders every frame and reasons over the picture, no program synthesisOpus 5.0, Claude Code100.007,542
Retrodictreplays each hypothesis over its logged history in Python before actinggpt-5.6-sol, ThinHarness99.867,703
Schemafrontier models in a purpose-built harness, best run per game keptOpus 4.8, Fable 598.9810,303
ewma_sv_v1.6builds an executable world model, simplifies it, and checks it by exact replaygpt-5.6-sol, Codex98.978,347
Human Intelligence Harnesspeople playing as hard as they can, one run per gamereal humans95.3514,798
Human median baselinewhat an ordinary player spends, and the number RHAE divides bymedian playern/a17,135

The score caps at 100.00, so the action count is the part of a run the score stops showing. Tycho spends the fewest.

All 25 runs together cost $728.17 in tokens at list price, for 7,645 paid actions.

Every other system here was built for these games. This is one skill on ordinary Claude Code.

Every run

Pick a board and step through it. The boards are decoded from the grids that run recorded, and the log is the one the tool wrote at the time.

25 games. Pick a board.

Loading tu93, 2,362 recorded frames.

The same skill played all 25 games, with nothing added or changed for any of them.

session
wa30980244%95.9%read
lf521078759%94.9%read
re86860148%98.3%read
dc22652042%89.2%read
sk48849146%95.7%read
bp35948274%95.4%read
g50t748255%95.4%read
ls20748162%97.3%read
ka59733546%95.2%read
s5i5828144%90.0%read
ar25826035%97.3%read
cn04622729%93.0%read
m0r0622420%93.3%read
sp80621141%91.0%read
tu93920544%93.6%read
vc33719343%94.8%read
sc25616647%87.3%read
tn36716050%90.6%read
tr87615337%96.7%read
sb26812458%99.2%read
su15911732%80.9%read
lp8589324%87.1%read
cd8269254%85.9%read
r11l68336%89.2%read
ft0967536%94.7%read
25 games1837,64545%94.2%all

Run it yourself

One command installs it. Then set an ARC key, ask for a game by name, and leave it alone.

npx skills add pbshgthm/arc-skill

export ARC_API_KEY=...
claude "solve ARC-AGI-3 game lp85"

The installer asks which agents to target and links arc-skill into each one. It works with Claude Code and Codex. Everything else it needs, it installs on first use.

Everything the claim rests on.

The sessions
Every Claude Code session, one per game, readable in the browser. 2,520 messages from Claude, 4,378 tool calls with the output they returned, and 191 of the board images it was looking at.
Run logs3.1 MB
What the tool recorded at the time. Each act, the prediction it carried, and the grade that came back, for all 25 runs.
The skill56 KB
SKILL.md, the 4,343 lines of command line tool behind it, and the 900 lines of tests.
The replay12 KB
The script that put these runs on the official scorecard. It reads the acts back out of the run logs and sends all 7,645 of them to the live API on a competition card, one attempt per game. Every step is checked against the local run: game state, levels completed, frame count, and a sha256 over every frame.
SKILL.md6 KB
The 129 lines on their own. This is the whole of what Claude was told.

The sessions are the files Claude Code wrote, as it wrote them, stated again on the page that shows them. Thinking is not carried, because Claude Code stores an opaque signature next to each thinking block and all 3,857 blocks in this archive are empty of text. Working directory names are normalised. The run logs and the skill are untouched.

By Poobesh Gowtham · @pbshgthm

August 2026. All 25 public games, Claude Code on Claude Opus 5. Every act was replayed through the ARC API on a competition card, producing scorecard 24ddb219. 25 of 25 games reproduced, none diverged, in 66 minutes. The numbers on this page are generated at build time from the recorded runs, that scorecard, and the session accounting.

© 2026 Poobesh Gowtham