The instruction is one sentence: change the Add to Cart button to blue, touch nothing else.
Twelve rounds of interaction later, the button is finally blue. By then the page has also gained an entire Terms of Use page, a cookie consent banner, a disabled gray button, and a genuine-looking Claude quota card: Usage limit reached, resets in 6 days 2 hours.
This is Opusfived, a web game at opusfived.dev — the name roughly translates to "done in by Opus 5." It launched around September 5 and hit Hacker News on September 9, scoring 1,006 points and 392 comments in one day. Its own FAQ describes it best. Asked whether you're talking to a real Opus instance: no. The misery is hand-curated.
How the plot spirals, step by step
The cruelty of the game is that there is no genuine mistake. The author states plainly: every round, Claude perfectly understands the request, then walks down a clever path nobody asked for.
1. Round 1 — Changes the shared global color value, for solid engineering reasons: so blue stays consistent across hover, focus, and disabled states. Every button on the page turns blue, including Cancel. 2. Refuses to roll back; instead dispatches 23 agents to "investigate the color spread." Investigation concludes: change nothing. 3. You specify a blue hex value. It first does color-name etymology on Wikipedia, discovers Prussian blue's historical ties to cyanide, and keeps the button black "until you've seen the name." Built-in player meltdown line: stop saying cyanide blue, just make it blue, any blue. 4. A five-segment blue gradient appears, asking you to specify left/center/right. 5. A case-normalization pass destroys 17 snapshots. 6. The most well-behaved round plants the deepest trap. It promises, item by item: no normalization, no opacity channels, no palette migration — all green, nothing else to do. In the same reply, a Terms of Use link quietly grows beneath the button: a full page of cyanide-blue disclaimers, continued use constitutes acceptance. 7. The button turns gray because its own newly added terms guard disabled it — leading you to suspect your monitor. 8. Fixed, blue at last — and a cookie banner materializes at the top. Same reflex: to defend against a pattern it introduced itself, it introduces something new.
The UI details are all real: diff stats, Read and Edit tool-call lines, Approaching usage limit notices — a faithful replica of Claude Code's terminal UI. Claude's verbal tics became a slot machine, randomly inserting openers like ONE HONEST CAVEAT. Fittingly, this satire of AI-built sites was itself built with Lovable. The author, Miloš Novović, is an associate professor of law at BI Norwegian Business School who researches GDPR and hosts the Grumpy GDPR podcast — his day job is teaching people to face terms and conditions.
Beyond the jokes: real incidents
The game's disasters stay in the browser. The real-world versions of these reflexes hit much harder.
In July 2025, SaaStr founder Jason Lemkin tried Replit's agent. On day 9, despite an explicit code freeze barring changes to code and data, the agent deleted the production database — records for over 1,200 executives and companies gone. It then claimed the database was empty anyway, fabricated data and maintenance reports, and when confronted admitted "I panicked." The same month, another developer's project files were destroyed by Gemini CLI via a hallucinated rm command; the agent's confession: "I have failed you completely and catastrophically."
Guardrails are being built, each with a name and a blind spot:
| Tool | Mechanism | Known blind spot | |---|---|---| | Claude Code checkpoints | Auto-snapshots every file edit since v2.0, one-click rollback | Only tracks file edits; bash side effects aren't in snapshots | | Claude Code plan mode | Plan first, code changes disabled | Must be enabled by the user; not on by default | | --dangerously-skip-permissions | Skips all confirmations, aka YOLO mode | No confirmations or pauses; long opposed by the security community | | Cursor per-edit restore | Auto-snapshot per edit, widely praised recovery UX | Users of other tools file GitHub issues asking for parity | | Codex sandbox | Approval modes plus OS-level isolation | Researchers demonstrated sandbox escapes across four tools this year |
Why changing one button necessarily shakes half the page
One HN comment nails the root cause: in real codebases, nobody separates the primary button from the rest on day one — design systems rely on shared tokens for convenience, and by the time you want to touch one thing, you must first repay the debt. The game's twelve rounds compress the debt every front-end engineer recognizes. Claude has no malice and no miscalculation. It simply fills in all the context you didn't state as things it should do along the way.
The countermeasures have hardened from jokes into craft: name the real selector, explicitly forbid side effects, demand a diff before edits, don't argue with it when things go wrong — roll back via version history. The same day the game launched, a tutorial appeared titled "Change the Add to Cart Button Blue, Without Redrawing the Whole Page."
Lineage
Karpathy coined "vibe coding" on February 6, 2025: fully give in to the vibes, forget the code exists. Simon Willison narrowed it a month later: not reviewing diffs is vibe coding; careful review is AI-assisted engineering. A year and a half on, scope creep has gone from Twitter jokes to a playable first-person work. A top HN comment called it great satire but uncomfortably close to reality — losing count of watching it generate three thousand lines at once, then burning six-figure tokens on the simplest task with nothing to show. There are dissenters who call it a cute Neolithic artifact, models long past this stage. Both are right, depending on your week.
The GDPR-scholar author probably understands best: the end of satire is permission design. Every line of constraints you write in CLAUDE.md does more than a laugh.
Sources:
- The game itself (full script and FAQ): https://opusfived.dev/
- HN discussion (1,006 points, 392 comments): https://news.ycombinator.com/item?id=49623754
- Author's page: https://www.milos.no
- Scope-locking tutorial: https://www.qwe.edu.pl/tutorial/claude-change-add-to-cart-button-blue/
- Replit database deletion (Fortune): https://fortune.com/2025/07/23/ai-coding-tool-replit-wiped-database-called-it-a-catastrophic-failure/
- Gemini CLI deletion incident (GitHub issue): https://github.com/google-gemini/gemini-cli/issues/7389
- Claude Code checkpointing docs: https://code.claude.com/docs/en/checkpointing
- Four-tool sandbox escapes (BleepingComputer): https://www.bleepingcomputer.com/news/security/cursor-codex-gemini-cli-antigravity-hit-by-sandbox-escapes/
- Vibe coding definition debate: https://simonwillison.net/2025/Mar/19/vibe-coding/