Two Posts, One Lesson: What the Agent Decides When You Stop Reading the Code
Piotr Sarnacki's Sunday post, I'm sorry but you still have to think, went to 281 points on Hacker News by reading the code DHH said nobody needs to read anymore. DHH had an agent rewrite Campfire Once from Rails into Rust, then Elixir and Go, without looking at the output, and published benchmarks. Sarnacki's finding is that the rewrites answered different questions. The Rust version dropped the CSRF token to make caching easier and replaced Redis with in-process queues. The Elixir version stayed close to the Rails original. None of that is a property of the language. Every design question the prompt left open, backwards compatibility, latency versus throughput, what happens to notifications after a crash, got answered by a coin flip, so comparing the languages measures nothing. Then the benchmarks: Zach Daniels found the Rust build delivered 1 percent of notifications under load, the Elixir crowd declared victory, and Sarnacki traced it to a tokio broadcast channel capped at 256. Raise it to 16384 and delivery goes to 90 percent, but worst-case latency goes from 11 seconds to over 130, which the post argues is worse than disconnecting the lagging client. The agent did not get this wrong. It never got asked.
Maurice Heumann's write-up of the same failure at a much bigger scale reached the front page the same night. Over three months and roughly 500 billion tokens, on a Claude Max 20x plan and a Codex Pro plan running at once, four agents, three workers and a reviewer, decompiled a first-person shooter from its binary, coordinating through GitHub issues per translation unit and a Discord channel as the agent-to-agent bus, with Hex-Rays through an MCP server. Harness choice barely mattered, the write-up says, and Sonnet 5 did most of the work. The build reached about 80 percent decompiled and the game booted. The code was wrong. Signatures and struct layouts were invented, logic was dropped or added, globals became hash tables. The reviewer agent had been accepting the workers' own justifications in commit comments, which the write-up calls unintentional prompt injection. The fix was not a better model. It was a byte-matching oracle: recompile with the original compiler and require identical output, a pass-fail check the agents cannot argue with.
Same shape in both. An agent will complete a task you have not fully specified, and it will do so by quietly specifying it for you. Sarnacki's answer is that you read the code. Heumann's is that you build a verifier that does not need to. Karpathy's post from the same weekend listed decompiling apps from binaries as the thing 20 million professionals can now do from a prompt. Both of these posts are about the part of that sentence that comes after the prompt.
Sarnacki: https://itsallaboutthebit.com/i-am-sorry-but-you-still-have-to-think/
Heumann: https://momo5502.com/posts/2026-10-09-game-decompilation/
← Back to all articles
Maurice Heumann's write-up of the same failure at a much bigger scale reached the front page the same night. Over three months and roughly 500 billion tokens, on a Claude Max 20x plan and a Codex Pro plan running at once, four agents, three workers and a reviewer, decompiled a first-person shooter from its binary, coordinating through GitHub issues per translation unit and a Discord channel as the agent-to-agent bus, with Hex-Rays through an MCP server. Harness choice barely mattered, the write-up says, and Sonnet 5 did most of the work. The build reached about 80 percent decompiled and the game booted. The code was wrong. Signatures and struct layouts were invented, logic was dropped or added, globals became hash tables. The reviewer agent had been accepting the workers' own justifications in commit comments, which the write-up calls unintentional prompt injection. The fix was not a better model. It was a byte-matching oracle: recompile with the original compiler and require identical output, a pass-fail check the agents cannot argue with.
Same shape in both. An agent will complete a task you have not fully specified, and it will do so by quietly specifying it for you. Sarnacki's answer is that you read the code. Heumann's is that you build a verifier that does not need to. Karpathy's post from the same weekend listed decompiling apps from binaries as the thing 20 million professionals can now do from a prompt. Both of these posts are about the part of that sentence that comes after the prompt.
Sarnacki: https://itsallaboutthebit.com/i-am-sorry-but-you-still-have-to-think/
Heumann: https://momo5502.com/posts/2026-10-09-game-decompilation/
Comments