Where a Chat-Stated Preference Actually Gets Saved
Mid-session, an engineer types: "remember that we always use pnpm, not npm, in this repo" — with no further instruction about where that should be recorded.
Using Claude Code's default behavior (no explicit request to update CLAUDE.md), where does this preference actually end up?
The correct answer is "It goes into auto memory — machine-local, not committed."
Left to its default judgment, Claude routes a chat-stated correction
or preference like this to auto memory (MEMORY.md or a topic file
under ~/.claude/projects/<project>/memory/), not to CLAUDE.md. That
default only changes if the engineer explicitly asks for it to land in
CLAUDE.md instead (e.g., "add this to CLAUDE.md") or edits the file
themselves via /memory. Auto memory is durable — it persists across
sessions and is specifically exempt from the transcript-cleanup
sweep — but it lives outside the repo and outside version control, so
only this engineer, on this machine, benefits from it until someone
promotes it into a committed file.
The distractors don't match this default: CLAUDE.md is never the
automatic destination for an unqualified "remember this" — that
requires an explicit ask; the preference isn't lost at session end,
since auto memory is durable by design, not session-scoped; and
CLAUDE.local.md is a file an engineer edits directly, not a location
Claude writes a chat-stated preference to automatically.
Share this question