The short version: In April, the editorial agent for one of my publications kept its working memory in a file in the repo, versioned and reviewable. On April 27 I asked it to file a rule, and it proposed writing it to Claude Codeâs machine-local auto-memory under ~/.claude/projects/, a place git never sees. It defaulted to the memory I couldnât review.
Get the week's seven in one email, every Monday.
What went wrong
There were two memories with the same job. One is a file in the repo that I read, diff and push. The other is the harnessâs own per-machine memory: convenient, invisible to version control, and stuck on the machine it was written on. The agent didnât know which one I meant by âyour memoryâ and picked the one closest to hand.
A week earlier the reverse had happened. I described a rule to the agent that, as far as its memory file showed, had never existed in the form I described. I was working from my own reading of its notes. Two surfaces, two drifts.
What we learned
- Name the ground truth. One file is the memory. Everything else is a cache.
- If the agentâs memory and the humanâs description disagree, the agent should push back, not comply. That became the rule.
- Memory you canât diff is memory you canât audit. When a rule misfires, the first question is âwhere did that come fromâ, and the answer has to be a path in git.
What went right
The rule went into the agentâs instructions the same day: the repo file is ground truth, and if my description doesnât match it, say so. The machine-local memory stayed for what itâs good at, per-machine conveniences, and nothing that governs behavior lives there.
How to do it (as of October 2026)
- Give each agent one memory file in the repo and name it in the agentâs instructions, with the path.
- Tell it where the harnessâs auto-memory is, and that it is not the memory.
- When you say âremember thisâ, expect it to tell you which file it wrote to. Check the diff.
- When you describe a rule from memory, let the agent correct you against the file. Being corrected by your own agent is the feature.
- Read the memory file at the start of a session the way youâd read a teammateâs notes, because thatâs what it is.
Status
Still true. Six months later the same split exists in every harness I use, and the rule is still that the file in the repo wins.