How Claude Project Instructions Are Injected — And Why Changing Them Mid-Conversation Breaks History

A Reddit user (OHOLshoukanjuu) dug into how Claude's Project Instructions actually work by asking Claude to print its full system prompt verbatim in both a project and non-project conversation, then diffing the two dumps. Here's what they found.
Key Finding: Single Injection at Start
Project Instructions (and User Preferences) are not re-injected every turn. They get loaded into the system prompt at conversation start and stay in context from there. This means Claude only sees them once, at the beginning.
The Mid-Conversation Change Bug
If you change the project instructions mid-conversation, Claude does not know you changed them. It reads the updated version as if that was the original instruction from the very first message. This leads to two weird behaviors:
- Immediate obedience: If your instructions say "start every response with HELP I'M A BUG" and you get one response following that, then you change to "start every response with HELLO WORLD," the next response says HELLO WORLD.
- False memory: If you ask Claude what the project instructions were for the first turn, it says HELLO WORLD. It will actually conclude it made an error on the first response by not following the instructions it now sees.
No Explicit Label
Project instructions aren't labeled as "project instructions" anywhere in the prompt. Claude follows them, but if you ask "what are the project instructions?" it may tell you there aren't any — because nothing in its context is tagged that way.
How It Was Discovered
The user (on iOS, Max subscriber since 2023, self-described non-developer) asked Claude to print its full system prompt verbatim in both a project conversation and a non-project conversation. By diffing the two dumps and watching Claude's thought process while testing changes, they confirmed the single-injection behavior.
This means: if you rely on project instructions evolving over the course of a long conversation, Claude will rewrite its past understanding to match the latest version of the instructions. The original context is lost.
📖 Read the full source: r/ClaudeAI
👀 See Also

Cron Jobs with AI Fallback Can Incur Unexpected API Costs When Tools Hang
A user reported that a cron job in OpenClaw checking an email inbox every 10 minutes using himalaya burned through ~$60 in API credits when the IMAP connection started hanging, triggering Claude agents on each timed-out run despite instructions to only engage AI for inbound emails.

How a /loop Command Burned $6,000 in Claude API Overnight
A developer's unattended /loop command running every 30 minutes on claude-opus-4-7 consumed $6,000 in one night due to prompt caching expiration and growing context — a cautionary tale for AI agent automation.

Reddit User Warns: When Using Claude for Complex Projects, Tackle the Hardest Part First
A developer on r/ClaudeAI reports that letting the AI plan incrementally for a complex document editor led to 'complexity soup' and failures. The user advises forcing the model to solve the most complicated use case first, as its performance degrades with more context.

Maximize Savings: Running OpenClaw Bots on a Budget
Explore ways to run OpenClaw/ClawdBot/MoltBot for free or on a budget, leveraging community tips and resourceful strategies shared on r/openclaw.