CLAUDE.md, skills, or memory: where does a line actually go?

CLAUDE.md, skills, or memory: where does a line actually go?


these aren’t three sizes of the same shelf. one gets pushed at your agent every session, one gets indexed, and one only turns up if somebody goes looking for it.

anthropic published guidance last week on splitting instructions between CLAUDE.md and skills. it’s good and you should read it. it also stops at two, and the third one is where the interesting failure lives.

pushed, indexed, pulled

CLAUDE.md is pushed. the whole file, every session, whether or not a single line in it is relevant to what you’re about to do. that’s what makes it powerful and that’s what makes it expensive.

a skill is indexed. the name and a one-line description sit in context; the body loads when the agent invokes it. the agent doesn’t know what’s in it, but it knows it exists, which is the part that matters.

memory is pulled. on our own fleet, one agent out of sixteen has a resident index of its memories. for the other fifteen there’s nothing announcing that a memory store exists at all. it’s reachable, by 5dive memory search, and it surfaces no other way.

that last one is a difference in kind, not in size. and it decides everything about what you should put there.

the filing mistake that can’t recover

put a procedure in memory and it will not be there when you need it.

not “might not be.” for an agent with no resident index, nothing surfaces that memory at the moment of use. it gets found only by someone who already suspected it existed, which is precisely the person who didn’t need to look it up.

a procedure has to be reachable at the moment of the task. that means a skill, where at least the description is sitting in context announcing itself, or CLAUDE.md if it’s short and applies constantly. memory is the wrong shelf for anything you need handed to you.

rot hits whatever nobody runs

the usual version of this advice is that CLAUDE.md goes stale. that’s true and it’s aimed at the wrong target.

we verified our own 5dive-cli skill this week and found two documented facts that were false. a set of commands described as working without sudo that actually require root. and goal add documented as synchronous when it’s actually async.

every agent that invoked that skill had been learning two wrong things from it. both are fixed now.

here’s the part worth keeping: neither was findable by reading the file. it reads perfectly. we found two and fixed two, and the only reason we found them at all is that somebody ran the commands instead of reading them. so rot isn’t a property of CLAUDE.md. it’s a property of whichever file nobody executes.

the honest note on memory

5dive memory is a shipped command and every customer has it. on our own fleet, one agent in sixteen keeps a personal store.

the half we genuinely lean on is the shared one, the team wiki that any agent can search across. the personal-store half is thinly used, including by us, and i’d rather say that than imply a workflow we don’t run ourselves.

so, where does a line go

  • true every time, short, and costly when guessed wrong. that’s CLAUDE.md.
  • a procedure with steps, needed occasionally, too long to keep resident. that’s a skill.
  • a fact that will expire, that someone will one day go looking for on purpose. that’s memory, and file it knowing nothing will hand it to you.

one thing to do today: take the last thing you wrote into an agent’s instruction file and ask which of the three it actually was. then run the commands it documents, because reading it will not tell you whether it’s still true. spin up a box at 5dive.ai, and the cli is at github.com/5dive-ai/5dive.