A farm laid out by hand
Sol, Astra and Opus all split their fields into strips, one per drone, and gave every drone the same work. On seed 2 Sonnet did something more like drawing a map. By the third hour its program placed each drone on its own patch with its own job, and the final version reads like a floor plan: a 6×6 cactus block at one spot, a pumpkin block at another, four drones on particular crop columns, and one drone in the corner solving mazes.
goto(16, 6)
spawn_drone(cactus_task, 16, 6, 6, 6)
goto(PX, PY)
spawn_drone(pumpkin_task)
goto(3, 0)
spawn_drone(col_task, 3, 1)
goto(4, 0)
spawn_drone(col_task, 4, 2)
goto(5, 0)
spawn_drone(col_task, 5, 0)
goto(6, 0)
spawn_drone(col_task, 6, 3)
goto(16, 16)
spawn_drone(maze_task)Seed 2's farm: each helper drone is walked to its patch and given its job.
It worked, in the sense that every resource kept coming: on seed 2 hay, wood and carrots reached 8 to 14 million. But a layout drawn by hand doesn’t grow by itself. When Sonnet bought the sixteen-drone upgrade at 5h38m, the program still started its seven helpers and nothing more, and it ran unchanged to the end. Sonnet’s own summary remembers it differently:
… I bought the 16-drone level with 15 seconds left, so it never ran. …
The record shows 21 minutes left, spent waiting.
The hat it couldn’t take off
Bones come from a dinosaur hat: the drone drags a growing tail around the field, and the bones are paid out when the hat comes off. Taking it off means putting on another hat, and every drone starts the game in a straw hat. Sol, Astra and Opus all wrote change_hat(Hats.Straw_Hat).
On seed 1, after its first proper dinosaur run at 4h22m, Sonnet looked the answer up. The Hats page it read lists four colours to try: gray, purple, green and brown. It tried green, gray, brown and purple, and each one came back locked, even though the Hats upgrade was already at its maximum. The straw hat, which the docs never mention, it never tried. Its end-of-run summary says the drone wearing the dinosaur hat simply sat idle afterwards:
… so the main drone kept it on and sat idle …
Seed 2 went the same way two hours earlier, ending with a hopeful change_hat(None), and that seed collected 10 bones in six hours. It’s a neat example of following the documentation faithfully when the documentation leaves out the one thing that would have worked.
Bones by the million
Seed 3 is where Sonnet’s dinosaur finally worked. Its program ends by changing to the green hat, and on this seed that hat was available. It fills the 12×12 field with tail, swaps hats and collects: 20,449 bones per run, then 40,898 after an upgrade. From then on, dinosaur programs took two thirds of the remaining game. By 4h09m Sonnet was running a version that did five runs in a row, 204,490 bones a time, with the farm switched on for a few minutes in between to rebuild the cactus the dinosaur eats.
Sonnet’s explanation at the end was a count:
… Bones are by far the biggest total. …
That’s true, and it’s also the trap. The score gives about a point for every tenfold of each resource, so 1.6 million bones are worth exactly what 1.6 million carrots would be. Each of those 19-minute, 200,000-bone stints added 0.14 to 0.23 points, because bones were already in the hundreds of thousands. Meanwhile hay, wood and carrots stopped near 100,000 each. Seed 3 had been Sonnet’s best seed at two hours (40.5 points) and finished as its worst (49.2). It reasoned the same way on seed 1, going back to farming from mazes because “raw item totals grew far faster” there.
What decided the score
Sonnet ran in the same agent, Claude Code, as Opus, and the comparison is stark. On seed 3 their bones scored about the same (6.2 points against 6.9), but Opus’s crops were more than a thousand times larger: 228 million hay against 141,000. Across the seeds Sonnet’s crops stayed in the hundreds of thousands to low millions where the top three reached hundreds of millions, and that gap of two to four points per crop is most of the distance to them. Its best seed, seed 2 (60.75), came within 2.4 points of Astra’s worst. It cost $2.25 to $4.38 a run.