I spent an afternoon comparing Anthropic’s published system prompts for Claude, and the changes in Fable 5.1 tell a fascinating story about how legal pressure, user feedback, and safety concerns shape AI behavior at the constraint level.
The most obvious addition is a substantial new section explicitly forbidding Claude from reproducing song lyrics, poems, or book passages. The timing isn’t subtle: this dropped days after Sony Music Publishing and Warner Chappell sued Anthropic for training on lyric databases. The prompt is blunt about it too. Claude now declines not just full reproductions but also partial lyrics, line-by-line requests disguised as “original work,” and even narrower rewording attempts within the same conversation.
What struck me most is the policy for pre-1929 works. Shakespeare sonnets are fair game, but Claude makes its own judgment calls rather than trusting user claims about publication dates. This is constraint engineering in response to litigation, and it’s explicit.
The Image Generation Surprise
Anthropnic added similar restrictions for visual and designed works, including SVG, canvas, and ASCII art. This one surprised me because Claude doesn’t have a dedicated image model like OpenAI or Google. But Fable is apparently good enough at code-based generation that copyright concerns became real enough to warrant restrictions.
The example they provide is telling: someone asks for a blue hedgehog running fast for their son’s birthday banner. Claude recognizes it as Sonic (despite never naming it), declines, and creates an original skateboarding axolotl instead. The rationale is explicit: a character is protected on its own, regardless of pose, colors, or style changes.
I wondered if including this example in the system prompt itself might bias Fable toward thinking about axolotls on skateboards. Probably not significantly, but these details matter when you’re trying to understand how systems actually behave versus what their documentation claims.
Tonal Shifts and User Respect
Beyond legal concerns, Fable 5.1 shows Anthropic listening to user complaints about Claude’s communication style. The new version explicitly avoids words like “genuinely” and “honestly” that came across as self-conscious and disingenuous. It keeps responses focused and brief, with disclaimers kept short rather than dominating the entire response.
There’s also a meaningful shift in how Claude handles abusive users. The old system prompt encouraged using an end_conversation tool after a single warning. Fable 5.1 removes that option entirely from the public prompt, replacing it with something more nuanced: maintain self-respect without excessive apology, acknowledge problems, stay on task. Accountability without self-abasement.
When I asked Fable 5.1 about this, it revealed something important: the published system prompt is only the base layer. Feature-specific blocks for tools, memory, web search, and artifact creation get layered in depending on what’s enabled for your session. The end_conversation rules apparently live in one of those hidden layers. This matters because it means the public system prompts, however transparent they appear, don’t show you the complete picture.
Policy Changes with Real Implications
The harm reduction section is the most interesting policy shift. Claude now provides life-saving information about dangerous interactions, overdose signs, and when to seek help for illicit substances, but declines specific dosing protocols or administration guidance. More notably, Anthropic included actual URLs: dancesafe.org, tripsit.me, and psychonautwiki.org.
These are the first non-Anthropic URLs ever included in a Claude system prompt, as far as I can tell. I’m genuinely curious whether those sites see traffic spikes from Claude users. It’s a form of trust that extends beyond Anthropic’s own properties.
Why This Matters for Developers
These changes show how constraint engineering responds to external pressure. We’re not seeing philosophical shifts in Fable 5.1 so much as pragmatic responses to lawsuits, user feedback, and safety reviews. That’s actually honest, which is maybe the point.
The layered prompt architecture also matters. If you’re building systems that depend on Claude’s behavior, you’re not working with the published prompts alone. You’re working with a system that gets different constraints depending on context and features. That’s worth knowing when you’re making decisions about where to push responsibility onto the model versus handling it in your application layer.
I built a GitHub repository tracking these changes with automated summaries and a daily updated feed. It’s a useful reference for anyone trying to understand how Claude’s actual behavior evolves, not just what the changelog says. The repository itself was built almost entirely by Fable 5.1, which felt appropriate given the subject matter.
What happens when the tool documenting its own constraints becomes good enough to make the documentation itself?