Claude: System Prompts
TL;DR Highlight
Anthropic publishes claude.ai and mobile app system prompts per model, and users debate their growing length.
Who Should Read
An LLM app developer looking for real-world system prompt examples to inform their own prompt design.
Core Mechanics
- Anthropic publishes the claude.ai app system prompts
- The claude.ai web and Claude iOS/Android apps inject info like the current date via a system prompt at the start of each conversation.
- The prompt also encourages behaviors such as always giving code snippets in Markdown.
- It does not apply to the Claude API
- These system prompt updates do not apply to the Claude API.
- API developers should treat them as reference, not as what their calls receive.
- Pages are split per model
- There are pages from Haiku 5.5 back to Claude 3 Haiku.
- Some models have multiple dated entries.
- The prompt is updated periodically
- The doc says the prompt is updated periodically to improve Claude's responses.
Community Reactions
- Change history is viewable as git commits
- One commenter (Simon Willison) said he rebuilds these prompts as a git commit history.
- He said you can see the diff between Opus 4.8 and Opus 5.
- Complaints that prompts grew past 3000 words
- A commenter observed early prompts were a bit over 300 words while the latest are 3000+.
- Others criticized them as too long, with most of it rarely applying.
- Brevity instructions reportedly don't stick
- A commenter said responses, PR descriptions and code comments from new models are verbose.
- They add extra prompting or claude.md rules to limit length.
- Tool definitions and Claude Code prompts are missing
- Commenters noted the published prompts omit tool definitions and Claude Code prompts.
- A link to extracted Claude Code prompts in the Piebald-AI repo was shared.
How to Apply
- Audit your system prompt length
- Find generic instructions the model already follows by default and delete them.
- Run the same 10 questions before and after to compare quality.
- Borrow the structure of public prompts
- Pick only what you need, such as date injection, output format and refusal rules, and port it briefly.
- Leave out behaviors the model already does and keep only the ones that caused real problems.
- Run a contradiction check on your prompt
- Give the model your system prompt and ask it to list conflicting instructions.
- Resolve each conflict by keeping one side.
Try It
# Paste into Claude or ChatGPT as-is (simplified version of the idea, as a prompt)
Below is my service's system prompt.
<system_prompt>
{{system prompt}}
</system_prompt>
Do the following.
1. List all instructions that contradict or conflict with each other.
2. Pick out generic content that current LLMs do by default without being told.
3. Propose a shorter version without those two kinds.
Next step: run the same {{10 questions}} on the original and shorter versions and compare answers.Terminology
Related Papers
AI is a tool and using it well takes skill
A rebuttal to Hickey: LLMs are tools, and skill in directing and checking them decides the outcome
Reflective Prompt Optimization of a Deep-Research Agent: A Topic-Disjoint, Multi-Seed Protocol for Measuring Transferable Gains and Prompt-Level Overfitting
Reflective prompt optimization raised held-out citation reward from 0.702 to 0.781 on a deep-research agent.
GPT‑6 and Intelligent UI for everyone
GPT-6 reportedly adds generated UI to chat; with no article text, only comment reactions are available.
Base Models Can Reason By Taking a Cue From Training Data
Prefilling just two opening tokens lifted Olmo-3-7B's MATH-500 accuracy from 42% to 78%.
Labels Override Definitions in Jev-Style Typed Decision Models
Renaming options to A/B raised routing accuracy by +0.1511 over meaningful labels.
How Much Prompt Is Enough? A Blackbox Minimization of Few-Shots in LLMs
Delta debugging trimmed few-shot prompts by 65.3% on average with unchanged propositional output