aj@blog

Fable 5 is back: finishing the game it left behind

body

Last month I wrote about the strangest failure mode I have hit as an engineer: the model I was building with (Anthropic’s Fable 5) disappeared mid-session on a Friday evening because the US government ordered it suspended. Not rate limited. Gone. This is the follow-up, because the story now has a second half.

The restoration

On July 1, Anthropic redeployed Fable 5. The export controls were lifted by June 30, and the model came back globally across the API, Claude.ai, and Claude Code, with a new safety classifier in front of it.

  • The original trigger was a bypass technique found by Amazon researchers that got Fable 5 to identify software vulnerabilities. Anthropic’s testing showed that less capable models — Opus 4.8, GPT-5.5, Kimi K2.7 — could produce identical results, and characterized the output as routine defensive cybersecurity work.
  • The fix is a classifier that blocks the technique “in over 99% of cases” and routes flagged Fable 5 requests to Opus 4.8 instead of failing them.
  • There is now a cross-industry jailbreak severity framework (Anthropic, Amazon, Microsoft, Google) scoring things on capability gain, breadth, ease of weaponization, and discoverability — which is the part most likely to matter five years from now.

The technical postmortem reads a lot like what Anthropic said on day one, that this was a minor vulnerability other public models could surface too. It took eighteen days and an act of government to establish that. I am glad the outcome was “ship a classifier and a severity rubric” and not a precedent for models disappearing every time someone finds a jailbreak. We will see the consequences of this event play out over time.

When we were able to use the Fable 5 model at work again all it took was the word “vulnerability” and the session was instantly routed off of Fable. We tried a prompt as simple as “Help me fix all vulnerabilities in this service” and that was not allowed on Fable 5. I’m not really sure why the solution here was to make it harder for someone to make their code more secure but that is where we are at.

I was able to use prompts with words like “dependencies” and “latest stable releases” to update an old codebase with reported vulnerabilities but my goal was not to bypass restrictions, I just want help keeping my code up to date and secure.

Where the project stood

When the plug got pulled I was a couple of hours into a Myst-inspired exploration game in Claude Code: a wizard’s island in a lake, a tower that is bigger inside than out, and an infinite procedurally generated library. What the last post’s screenshot didn’t show is that the same evening’s work still became two tagged releases; the island and library (v0.1.0-alpha), then a readable-book interface, a paper guide bird that leads you out of the infinite stacks, and menus (v0.2.0-alpha). Then the repo sat untouched for eighteen days. The rowboat at the dock had a prompt that said “A voyage for another day.”

What we built when it came back

The constraint that makes this project fun: the repository is 100% text. Every mesh, material, and book page is generated by GDScript at runtime. There are no binary assets, every change is a reviewable diff. Fable 5 works through pull requests on my homelab Gitea, one feature per PR, merge is the release point, and it tags the release after I merge.

The project is also public now: development stays on my Gitea, which auto-mirrors to github.com/acaylor/isle-of-babel, and there’s a small project site with a gallery of screenshots. Every one of them was rendered by the game’s own capture harness. Clone it, run two commands, and you’re standing on the dock.

v0.3.0-alpha — the voyage

The rowboat sails now. Press E and the player sits down, the mooring knot unties itself, and the enchanted boat rows you across the lake. Mid-water a fade hands off to the far shore’s own arrival leg, which glides you up to a jetty. The return trip is the best moment in the game: the island rising out of the haze, tower first. That’s the hero image on this post.

The far shore is an old-growth forest about twice the island’s footprint, with a winding stream, a cairn-marked trail, an arched footbridge, and the ruin of the First Tower: the wizard’s failed first library, with his journal still open on the lectern explaining why the island exists. The journal is written by Fable 5, not generated at run-time, and it’s genuinely good.

the ruin of the First Tower, journal open on the lectern

This release also ate my playtest feedback for breakfast. I reported that the bridge hovered and needed a jump, and the slope in front of the tower door forced an awkward walk-around. The fixes were real terrain work (the bridge now raises earthen abutments in the height function itself so the deck meets the banks), but the part that impressed me was the testing: the smoke suite now literally walks those routes with held forward input, and every fix came with a quoted negative reproduction. If there is an issue with the terrain, the test fails with could not walk up to the tower door, stopped at z=-2.1.

v0.4.0-alpha — the secrets

The forest got its secrets, and the world got real edges.

Five books from the fallen First Tower are grown into living trees off the trail, each glowing faintly, each with its own written text. Return all five and something very old in the ruin clears its throat: the cold portal ring wakes.

a kept book, grown into a living tree

Follow the stream the wrong way and it ends at a hidden spring.

the spring glade at the stream's secret source

And someone else is living in the forest. Their fire is cold, their note is unsigned, and they did not come by boat.

The boundaries were my other ask: the old map edge was a gentle rise you could stroll over into the void. Now the forest cove is walled by meandering rock cliffs too steep to climb, running into the lake as headlands, with a bare scree treeline at their feet. No invisible walls anywhere and there’s a smoke test that marches into the cliffs for eight seconds and fails if it ever gets over (walked up and over the boundary cliffs, x=152.9 on the old terrain).

the jetty on the far shore, island on the horizon

Working with Fable 5, three weeks later

A few observations from the other side of the suspension, for whatever one engineer’s sample size is worth:

  • It asks before it builds. Every feature started with a short list of actual decisions — scripted voyage or pilotable? ruin, wilderness, or hermit camp? I picked, it built. No requirements archaeology afterwards.
  • It distrusts itself productively. Every bug fix came with a test that provably fails on the old code, and visual changes came with rendered screenshots, because it built itself a camera harness to look at its own work.
  • It writes. The wizard’s journal, the forest’s marginalia in the kept books, the stranger’s note — I did not touch a word of the lore, and the lore is the best part of the game.

The last release shipped four days after redeployment. There is a certain irony I can’t leave unremarked: the game we ended up making is about a library that got taken away, and about getting the words back so a door would open again. Nobody planned that. Sometimes the project writes itself a moral.

If you want to poke at it yourself: the source is on GitHub under MIT, and the project site has the gallery and release notes.


I used Fable 5 to help write this post about itself.

share