Essay · Published · 6 min read

Why Every AI Agent Should Read the Same Project Memory

Claude, Codex, Gemini, Cursor — each one builds its own private understanding of a project unless something makes them read from the same source. What that costs, and what a shared, tool-neutral memory actually requires.

  • Spine
  • AI Tools
  • Project Memory
  • Interoperability

At some point in the last two years, using more than one AI coding tool on the same project stopped being unusual and started being normal. One tool for quick edits, another for deeper architectural reasoning, maybe a third that a specific team member happens to prefer. That's a reasonable way to work — different tools are genuinely better at different things. But it surfaces a problem I didn't fully appreciate until I was living inside it: each of those tools, left to its own devices, builds its own private understanding of the project, from scratch, every time, with no awareness that a different tool reached different conclusions yesterday.

The quiet cost of fragmented context

The failure mode here is rarely dramatic. It's not that one tool actively contradicts another in an obvious way. It's quieter and more corrosive than that: one tool spends time re-deriving a decision that was already settled last week, because it has no way to know that. Another proceeds on an assumption about the codebase's structure that a different tool already learned was wrong, because that correction lived only in the first tool's session and never reached the second. A third repeats a question the human has already answered twice this week, in two different tools, because from its perspective this is the first time anyone's asked.

None of this shows up as an error message. It shows up as friction — a growing sense that working across tools means constantly re-establishing context that should already be settled, and a nagging uncertainty about whether the different tools actually agree on what's true about the project, or just haven't been asked the same question yet to find out they don't.

What a shared source of truth actually requires

The instinct this problem points toward is obvious once you've felt the friction: there should be one place that holds the project's actual state — decisions, requirements, current status — and every tool should read from it rather than each maintaining its own private model. Getting there in practice requires a few things that are each individually reasonable and collectively harder than they sound.

Tool neutrality. The shared memory can't be built around any one vendor's format or API, or it stops being shared the moment someone reasonably wants to use a different tool next month. It has to be readable in a way that doesn't privilege one assistant over another.

Read-first behaviour. This is less a technical requirement than a habit requirement, and it's the harder of the two. A tool — and the person directing it — has to actually check the shared memory before acting, not just have access to it in principle. Access without the habit of using it produces the same fragmentation as no shared memory at all.

Permissions that mean something across tools. If one tool is allowed to write decisions into the shared memory and another isn't, or if the boundaries of what each tool can touch aren't consistent, you've just moved the coordination problem rather than solved it.

A human still holding the pen on anything that matters. Shared memory that multiple AI agents can all read and act from raises the stakes on who's actually allowed to change it, and I don't think the answer should ever be "whichever tool gets there first."

Why "just pick one tool" isn't a real answer

The obvious objection to all of this is that the fragmentation problem disappears if you simply standardise on one AI tool for the whole project. I don't think that's a realistic answer, for a few reasons that have nothing to do with brand loyalty. Different tools genuinely have different strengths — one might reason better about architecture, another might be faster for routine edits, another might integrate better with a specific part of the toolchain. Forcing every task through one tool because it's the one with shared memory access means giving up real capability to solve a coordination problem that should be solvable without that sacrifice.

There's also a practical reality: the tools themselves are evolving quickly, and a project that locks itself to one vendor's ecosystem for the sake of shared context is making a bet on that vendor remaining the best choice indefinitely, which is not a bet I'd want to make on behalf of a project that might run for years. Tool-neutral shared memory is more work to build than picking a favourite and standardising on it. It's also the only version of the answer that doesn't quietly trade away flexibility to solve a problem that shouldn't have required that trade in the first place.

The honest state of this

I want to be careful not to overclaim here. Getting every popular AI coding tool to genuinely read from and write to one shared, governed project memory, consistently, is an ongoing effort, not a solved integration problem with every tool on the market wired up cleanly today. Different tools have different levels of support for reading external context, and habits — both a person's and, in effect, a tool's default behaviour — are slower to change than code is. What I can say confidently is the direction: the fragmentation cost is real, I've felt it directly, and the fix is a shared, tool-neutral source of project truth rather than better individual tools each getting slightly smarter in isolation.

What I'm still not sure about

The open question I don't have a settled answer to is how much of this problem is genuinely solvable through better tooling, and how much of it is really a discipline problem wearing a technical costume — meaning, even with perfect shared-memory infrastructure, does it actually get used consistently, by a person in a hurry, choosing the fast tool-native path over the slightly slower shared-memory-checking path? Infrastructure can make the right behaviour easy. It can't force it. I suspect the honest answer is that this stays a partially unsolved discipline problem for as long as speed and thoroughness pull against each other — which is to say, indefinitely — and the best a shared memory system can do is keep tilting the balance toward thoroughness being the easier default, not the harder one.

View the full Spine series

Mohammed Umair builds businesses and the systems they run on — across smart infrastructure, international trade and enterprise software. More about him.