Stop Stuffing Rules into AI Memory: Index in Memory, Rules in Skills
Agents that load unrelated rules on every task burn context, drop late rules, and lock into conflicting instructions. Splitting rules into on-demand Skills keeps context lean and workflow-specific rules independent, so agents execute reliably in production instead of silently skipping steps.
Memory in Claude Code has hard limits: CLAUDE.md should stay under 200 lines, and the auto-memory index MEMORY.md loads only the first 200 lines or 25KB per session. On a 200K context window that's about 40,000 characters of resident space. Rules written past those limits aren't deleted, just unread by the model, and every unrelated rule that does load steals attention and can conflict with the ones that matter.
The proposed division of labor is clear-cut. Memory becomes a lean index, holding only "which Skill to read for this task" and other every-round conventions. Skills carry the actual rules, SOPs, and checklists, loading only their name and description (~100 tokens) at startup and pulling in the full SKILL.md (<5k tokens) only when triggered. That keeps resident context small and workflows isolated from each other.
A runnable Python function in the source formalizes the choice: multi-step workflows always go to Skill, every-round must-knows go to Memory, task-specific rules go to Skill, and anything ambiguous defaults to Skill. The article also provides a symptom-cause-solution table for common failures like missed rules, high token burn, and contradictory instructions.
The real cost of Memory overuse isn't just token waste; it's rule dilution. Reading unrelated rules on every task drains attention from the rules that matter, and contradictions between rules make agents oscillate instead of committing to an action.
The article's decision function treats 'always needed' and 'multi-step workflow' as mutually exclusive, but a rule like a release checklist is both a workflow and a per-round requirement in some teams. Defaulting workflows to Skill assumes the Skill's description can reliably trigger at the right moment, which may not hold for tasks that don't clearly match a skill name.
Memory as a rule dumping ground wastes context tokens and increases the chance that rules are skipped during execution. A deeper concern is that rules read every round can appear complete while silently contradicting one another. The core open question is whether to keep rules in CLAUDE.md or split them into separate Skills, with the two approaches treated as real alternatives.
Stuffing all rules into Memory just takes up more context and makes it even easier to miss execution.
When I review AI code, what I fear most isn't syntax errors, but logic that is very 'correct' but isn't what the business actually needs—rule configuration is the same. Rules stuffed into Memory get read every round, appear to all be there but actually conflict with each other. Do you usually write rules into CLAUDE.md or a separate Skill? A: stuff all into Memory, B: strictly separate into Skill—share your configuration in the comments.