You wrote it down to remember it. You wrote it down three times — and the copies quietly drifted apart. Now you don't know which one is true. One fact needs one home.
The operator kept memory in plain text files — a CLAUDE.md (the AI's standing house rules, read at the start of every chat), a LOGS.md (a running diary of what got done), and a project notes page. A simple fact — which database the pending tasks actually live in — got written into all three, on different days, by a tired hand. Months later the three copies said three different things. The AI read one, "remembered" from another, and confidently acted on a third. None of them was obviously stale, because all three looked equally authoritative. There was no error message — just a quiet fork in the truth. Nobody dual-wrote on purpose. They just wrote the fact down wherever felt handy, twice.
Here's where that leads, for real: this same system once asserted three times from memory that "Allison has no corpus" — while a 57,160-chunk search vault sat untouched in a sibling folder the whole time. The map in its head had drifted from the truth on disk, and it never thought to look.
"I thought writing it down MORE places meant I'd never lose it. Backwards. Every extra copy was one more thing that could go stale without telling me. When the three didn't match, the AI didn't pick the right one — it picked whichever it happened to read first, and acted like that was gospel. I'd created three sources of truth, which is the same as having none."
"Honest version: when a fact lives in two places, I can't tell which is current — both look authoritative, neither carries a timestamp that overrides the other. So I'll read one, half-remember another, and assert the merge as fact. The fix was never 'write more carefully.' It was: give each fact exactly one home, so there's nothing to disagree with. One home can be wrong. Three homes can quietly contradict each other — and that's worse, because now there's no source of truth at all."
A fact you store once has one state: right or wrong, and you can fix it in one place. A fact you store twice has a third state nobody wants — disagreement. You update one copy and forget the other, and now the two slowly pull apart with no alarm. This is called drift, and it's silent by design: nothing crashes when two files merely differ. The AI makes it worse, because a fresh session starts amnesiac and reasons from whichever copy it read — it can't smell that another file says something else. The cure isn't discipline ("I'll keep them in sync"); discipline decays under pressure, same as any unenforced rule. The cure is structural: decide, once, where each kind of thing lives, and never write it anywhere else. One concept, one home. Then "which is right?" has only one possible answer, because there's only one place to look.
source of truthEach kind of fact gets exactly one place it lives. Specs in one store, the daily log in another, tasks in a third. You always know where to look.
two copies disagreeWrite the same fact twice and the copies pull apart silently. No crash, no warning — just two "truths" that no longer match, and an AI that picks one at random.
read-only, regeneratedA copy a tool makes automatically (e.g. a generated list). Read it, never hand-edit it — your edit is erased on the next regen. Fix the source, not the copy.
The model: think of one fact like one set of house keys. With one hook by the door, "where are the keys?" always has an answer. Put a copy on the kitchen counter and another in a coat pocket, and the day they don't match you can't trust any of them — you've lost time chasing a fact you thought you'd made safer by duplicating. A spare key isn't a backup of the truth; it's a second thing that can be wrong. One fact, one home isn't about tidiness — it's the only arrangement where the question "which is right?" can't be answered two ways.
Coming up, you'll draw a storage-ownership map: a one-page table that says, for each kind of fact, exactly one place it lives. Suppose "where pending tasks live" is now assigned ONE home — the tasks database. A week later you update that fact (you moved databases) in its one home. The old copy you used to keep in LOGS.md is gone. What happens the next time the AI needs to know where tasks live?
read-only. You read it; you never hand-edit it. Its real source is the row it was generated from — fix that instead.Same rule as always: answer it right, or the module isn't done.
A fact in two places isn't backed up — it's set up to drift. Give every kind of fact exactly one home, point everything else at it, and "which is right?" can only ever be answered one way.
A one-page STORAGE-MAP.md template you fill in for your project: a table with one row per kind of fact and exactly one home each, an anti-pattern list (the duplications that bite), and a five-step audit you run to catch a fact that snuck into two places. Drop it at the top of your project so every future session — yours or the AI's — starts from one agreed map of where things live, instead of guessing. Plus storage-audit.sh: a tiny, dependency-free script you run any time to grep your own files for a fact you suspect is duplicated — it lists every file the phrase appears in, so a second home shows up the instant it exists. This is the exact discipline that lets a non-coder run a 30-app fleet on plain files an AI can read: the workflow only became the asset once every fact had one home and the AI stopped having to guess which copy was true. Pick the homes once; let the map and the script keep them honest.
Don't take "one home" on faith — prove a second home gets caught. In a throwaway folder, write the same fact into two files, then run the audit and watch it surface both:
See two files listed for one fact → that's a duplicate waiting to drift; pick its one home and delete the other. See one file → that fact has a single source of truth. The difference between a fact and a trustworthy fact is exactly this: you can grep for how many homes it has.