What text does a model router read in a Claude Code turn?
AutoRouter5 min read
Key facts
- Claude Code delivers CLAUDE.md content as a user message placed after the system prompt (Anthropic, read November 4, 2026).
- Claude Code adds system reminders to the conversation, including CLAUDE.md files, hook output, the list of skills and notes about changed files, and a logged API request shows them inside user messages in
<system-reminder>tags (Anthropic, read November 4, 2026). - AutoRouter judges how hard a Claude Code turn is from the text the person typed, leaving out the memory files and reminders Claude Code adds.
AutoRouter, the Mac app for Codex and Claude Code, judges how hard each Claude Code turn is from the text the person typed, and leaves out the memory files and reminders Claude Code adds. When a message holds only that added text, it uses the last request the person typed. The pick then follows what you asked: the length of your CLAUDE.md doesn't change how hard AutoRouter thinks a one-line request is. AutoRouter wrote this post, and the Claude Code behavior in it comes from Anthropic's docs as read on November 4, 2026.
What text does Claude Code add to a conversation?
Claude Code adds its own context to the conversation alongside your messages, as system reminders: your CLAUDE.md files, your output style's instructions, text a hook returns as additionalContext, the list of available skills, a note when a file Claude read earlier changes on disk, and the commit and pull request attribution lines (Claude Code glossary). You never send these yourself. In a logged API request, each reminder shows up inside a user message wrapped in <system-reminder> tags, or on some models as its own message with the system role.
CLAUDE.md is the largest of these in most projects. Claude Code loads CLAUDE.md and CLAUDE.local.md from the working directory and every directory above it at launch, joins them all instead of letting one override another, and delivers that content as a user message after the system prompt (Claude Code docs). Auto memory adds the first 200 lines or 25 KB of MEMORY.md, whichever comes first.
Some of this text arrives in the middle of a session. A CLAUDE.md in a subdirectory loads once Claude reads, writes or edits a file in that subdirectory, and a path-scoped rule loads when Claude works on a matching file (Claude Code docs). Hook text lands where the hook fired: a UserPromptSubmit hook's additionalContext sits alongside the prompt you just sent, and a Stop hook's arrives at the end of the turn so Claude can act on it (Claude Code hooks).
Which text should set a turn's difficulty?
The request the person typed should set the difficulty of the turn, because it is the only text that says what this turn asks for. Memory files and reminders describe the project, the tools and the session, so they make a request longer without making it harder. The table sorts the text a Claude Code request can carry.
| Text in the request | Where it comes from | Sets difficulty? |
|---|---|---|
| The request you typed | You, in this turn | Yes |
| CLAUDE.md and CLAUDE.local.md | Loaded at launch from the working directory and the directories above it | No |
| Auto memory (MEMORY.md) | Loaded at launch, first 200 lines or 25 KB | No |
| Subdirectory CLAUDE.md and path-scoped rules | Loaded mid-session when Claude works on a matching file | No |
| Hook output, the skills list, changed-file notes | Added by Claude Code as system reminders | No |
How can a router find the request the person typed?
A router can find the typed request in four steps:
- Remove system reminders and memory blocks from each user message, since the person didn't type them.
- Take the newest text the person typed in this turn.
- If the newest user message holds only added text, use the last request the person typed.
- Check the result on real transcripts from projects with long and short CLAUDE.md files, and from sessions where hooks add context.
Step 3 matters in long sessions. When a Stop hook returns text, the conversation continues with a message that carries Claude Code's text and no new words from you, and a router that scored that message alone would be judging the hook.
What does AutoRouter read in a Claude Code turn?
AutoRouter reads the text the person typed when it judges how hard a Claude Code turn is, and leaves out the memory files and reminders Claude Code adds. When a message holds only that added text, AutoRouter uses the last request the person typed.
For you, that means the pick follows what you asked. A one-line request is judged on that line, so quick work can go to the cheapest capable model even in a project with a long CLAUDE.md, and hard work still goes to the strongest model your plans cover. Your rules still come first, and models still have to clear the quality bar before price counts. How AutoRouter picks a model for each turn walks through that order, and What is an LLM router? covers the kinds of routers and where AutoRouter fits among them.
AutoRouter sometimes misjudges how hard a task is. Every turn shows its model, what it cost and why, so when a pick falls short you can rate it or choose a model yourself.
Questions
Is CLAUDE.md part of the system prompt?
No. Claude Code delivers CLAUDE.md content as a user message after the system prompt, and Claude reads it and tries to follow it, with no guarantee of strict compliance when instructions are vague or conflict (Claude Code docs).
How do you see which memory files loaded?
Run /context all in a session and read the list under Memory files; in fullscreen mode, /context alone collapses that list. /memory lists your CLAUDE.md, CLAUDE.local.md and auto memory locations and opens any of them in your editor (Claude Code docs).
How long should a CLAUDE.md file be?
Anthropic suggests keeping each CLAUDE.md under 200 lines, because longer files take more context and Claude follows them less closely. Instructions that matter for only part of a codebase can move to path-scoped rules, which load only when Claude works with matching files (Claude Code docs).
What does AutoRouter keep from each turn?
AutoRouter keeps the message that opens each turn, up to 4,000 characters, to review routing, along with records of the model chosen, tokens and cost. Requests pass through AutoRouter's servers on their way to each provider, and AutoRouter doesn't store transcripts (AutoRouter privacy policy).
Sources
- Claude Code docs: How Claude remembers your project, read November 4, 2026
- Claude Code docs: Glossary, system reminder, read November 4, 2026
- Claude Code docs: Hooks reference, read November 4, 2026
- AutoRouter privacy policy