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

LayerHow it driftsCheck withFix
CLAUDE.md and rulesInstructions go stale, conflict or grow long/memory, /contextKeep each file under about 200 lines. Delete outdated rules and move file-specific ones into .claude/rules/
Auto memoryOld notes describe how you used to work/memoryDelete stale entries. Only the first 200 lines or 25KB of MEMORY.md load each session
SkillsDuplicates pile up and descriptions get cut short/skill-doctor, /skillsTurn off unused skills and sharpen descriptions
MCP servers and pluginsServers you no longer need stay connected/mcp, /pluginDisable or remove what a project doesn't use
Permissions and hooksRules pile up or no longer match your tools/permissions, /hooksRemove old rules. Enforce must-never-happen limits with hooks, not instructions
ModelsSaved settings pin an older model/model, /statusUse aliases like opus unless you need a fixed version
Sessions and worktreesOld transcripts and worktrees take up disk spacecleanupPeriodDays settingTranscripts 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

  1. Update. Run claude update, then /release-notes to see what changed.
  2. Run /doctor. It checks your installation and settings, flags unused extensions, estimates what your skill list costs, and proposes fixes before applying them.
  3. Check /context. See what loads before you type anything: memory files, skills, MCP tools and subagents.
  4. Run /skill-doctor. Turn off skills that cost context but rarely run.
  5. Run /mcp. Disable servers you haven't used this month.
  6. Review /permissions. Remove rules you no longer need. /fewer-permission-prompts finds safe, read-only commands you keep approving.
  7. Open /memory. Skim CLAUDE.md and auto memory for anything outdated or contradictory.
  8. 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:

PROMPT / COPY-PASTE
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

TriggerWhat to check
You change a tool, workflow or folder structureCLAUDE.md, skills and rules that reference the old way
A new model or major Claude Code release landsPinned models, and whether a skill now duplicates a built-in feature
Claude repeats the same mistakeWhether the rule exists, loads, and doesn't conflict with another
You add a skill or serverWhether it overlaps with something you already have
You set up another AI agent on the same projectWhether 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 with CLAUDE.md, skills, plugins, hooks and MCP servers turned off. If the problem disappears, one of those is the cause.
  • Run /status to see which settings sources are active.
  • Check these common causes:
    • A skill saved as .claude/skills/name.md instead of .claude/skills/name/SKILL.md.
    • A value in settings.local.json overriding settings.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.json at the repository root.

Go deeper: Debug your configuration · Claude Code Commands I Use on Repeat · MCP vs CLI · How to Give AI Taste