A Claude Code setup starts to drift the day you finish it. You change how you work, Claude Code and its models update, and new skills and servers pile on top of old ones. A little regular maintenance keeps the setup matched to how you actually work now.
Signs your setup has drifted
- Claude repeats a mistake you already wrote a rule about.
- A skill stops triggering, or the wrong one runs.
- Sessions start with a context window that's already noticeably full.
- You approve the same safe command over and over.
- Two files give different instructions for the same thing.
- You can't remember why a server, hook or plugin is installed.
What drifts and how to check it
| Layer | How it drifts | Check with | Fix |
|---|---|---|---|
CLAUDE.md and rules | Instructions go stale, conflict or grow long | /memory, /context | Keep each file under about 200 lines. Delete outdated rules and move file-specific ones into .claude/rules/ |
| Auto memory | Old notes describe how you used to work | /memory | Delete stale entries. Only the first 200 lines or 25KB of MEMORY.md load each session |
| Skills | Duplicates pile up and descriptions get cut short | /skill-doctor, /skills | Turn off unused skills and sharpen descriptions |
| MCP servers and plugins | Servers you no longer need stay connected | /mcp, /plugin | Disable or remove what a project doesn't use |
| Permissions and hooks | Rules pile up or no longer match your tools | /permissions, /hooks | Remove old rules. Enforce must-never-happen limits with hooks, not instructions |
| Models | Saved settings pin an older model | /model, /status | Use aliases like opus unless you need a fixed version |
| Sessions and worktrees | Old transcripts and worktrees take up disk space | cleanupPeriodDays setting | Transcripts are deleted after 30 days by default. Adjust if you need them longer |
Why skills need attention: every skill adds its name and description to context on every turn, whether Claude uses it or not. When you have many skills, Claude Code shortens their descriptions to fit, which makes the right skill harder to pick.
Why conflicts matter: Anthropic's docs note that when two instructions contradict each other, Claude may pick one arbitrarily.
The 15-minute monthly pass
- Update. Run
claude update, then/release-notesto see what changed. - Run
/doctor. It checks your installation and settings, flags unused extensions, estimates what your skill list costs, and proposes fixes before applying them. - Check
/context. See what loads before you type anything: memory files, skills, MCP tools and subagents. - Run
/skill-doctor. Turn off skills that cost context but rarely run. - Run
/mcp. Disable servers you haven't used this month. - Review
/permissions. Remove rules you no longer need./fewer-permission-promptsfinds safe, read-only commands you keep approving. - Open
/memory. SkimCLAUDE.mdand auto memory for anything outdated or contradictory. - Glance at
/insights. Its report shows how you've been using Claude Code and where sessions go wrong.
Ask Claude to do the reading for you, then approve changes yourself:
Audit my Claude Code setup without changing anything.
Check CLAUDE.md files and .claude/rules for outdated, duplicated or conflicting instructions.
List skills, MCP servers, plugins and hooks that overlap or look unused.
Flag any setting that pins a specific model version.
Report a table with: item, problem, evidence, suggested fix.
Wait for my approval before editing anything.
When to check right away
| Trigger | What to check |
|---|---|
| You change a tool, workflow or folder structure | CLAUDE.md, skills and rules that reference the old way |
| A new model or major Claude Code release lands | Pinned models, and whether a skill now duplicates a built-in feature |
| Claude repeats the same mistake | Whether the rule exists, loads, and doesn't conflict with another |
| You add a skill or server | Whether it overlaps with something you already have |
| You set up another AI agent on the same project | Whether you're about to copy config that will drift |
Three rules that prevent drift
1. One source, with pointers instead of copies. In my AI with Ecem workspace, I kept a second copy of my Claude skills for another agent. The two versions drifted apart, so I deleted the copy on September 12. Now each platform gets a thin pointer to the original, never a duplicate.
2. Replace, don't stack. I had two overlapping skills for writing and checking the opening lines of my content. I merged them into one skill with a single rubric and deleted the old versions, including archived copies. Keeping old versions around invites Claude to load the wrong one.
3. Put guarantees in hooks and permissions. CLAUDE.md tells Claude how your project works, but it's guidance, not enforcement. If something must never happen, like editing .env, block it with a permission rule or hook.
When something breaks
- Start with
claude --safe-mode. It launches withCLAUDE.md, skills, plugins, hooks and MCP servers turned off. If the problem disappears, one of those is the cause. - Run
/statusto see which settings sources are active. - Check these common causes:
- A skill saved as
.claude/skills/name.mdinstead of.claude/skills/name/SKILL.md. - A value in
settings.local.jsonoverridingsettings.json. - Permissions or hooks added to
~/.claude.json, which Claude Code doesn't read for those settings. - Project MCP servers placed inside
.claude/instead of in.mcp.jsonat the repository root.
- A skill saved as
Go deeper: Debug your configuration · Claude Code Commands I Use on Repeat · MCP vs CLI · How to Give AI Taste