From Project Memory to Project Intelligence
AI coding agents are becoming increasingly capable. But there is an architectural problem that becomes more obvious as projects get longer-lived: Where does the projectβs evolving state actually live? Today, we have m
AI coding agents are becoming increasingly capable.
But there is an architectural problem that becomes more obvious as projects get longer-lived:
Where does the projectβs evolving state actually live?
Today, we have many ways to provide agents with context:
- AGENTS.md
- CLAUDE.md
- IDE rules
- MCP servers
- vector databases
- RAG
- session memory
- repository indexing
These approaches are useful, but they mostly answer different versions of the same question:
How can I give the agent enough context to complete the current task?
Iβm interested in a slightly different question:
How can the project maintain its own evolving intelligence across agents, sessions, and tools?
Static context isnβt enough
A file like AGENTS.md is excellent for relatively stable information:
Use TypeScript.
Run tests before committing.
Don't modify the generated directory.
Use PostgreSQL for persistence.
But real projects continuously change.
A decision made yesterday can be invalid tomorrow.
A failed implementation can be extremely important even though it doesnβt exist in the final codebase.
A workaround can remain in the repository long after the reason for it has been forgotten.
This creates a gap between:
what exists in the repository
and
why the repository looks this way.
That gap becomes increasingly important when multiple AI agents participate in development.
The project needs a state layer
This is the idea Iβm exploring with Contorium.
Instead of treating context as something that belongs to a particular AI tool, Iβm experimenting with treating project knowledge as a separate layer.
Conceptually:
AI Agents
ββββββββββ¬βββββββββ¬βββββββββ
Cursor Claude Codex Other
β β β
ββββββββββΌββββββββββ
β
Project Intelligence
β
ββββββββββΌββββββββββ
Decisions History Constraints
β β β
Reasoning Outcomes Evolution
β
Project State
The important part is the middle layer.
The coding agent should be replaceable.
The projectβs accumulated intelligence shouldnβt be.
Memory is not the same as intelligence
A memory system might tell an agent:
βWe tried implementation A last week.β
Project Intelligence should eventually be able to represent something closer to:
βImplementation A was rejected because of constraint B.
Constraint B is still active.
Therefore, donβt reintroduce A unless B has changed.β
That requires more than retrieval.
It requires tracking relationships between:
decisions β reasons β outcomes β current validity
This is one of the areas Iβm currently exploring with Contorium.
Why Iβm building this
The more I use AI coding tools, the more I notice that switching models isnβt really the problem.
The deeper problem is switching understanding.
I might use one model for architecture, another for implementation, another for debugging, and another for review.
I donβt want each one to reconstruct the project from scratch.
The project should carry its own history.
Thatβs the basic idea behind Contorium:
A Project Intelligence Layer for AI-assisted development.
Itβs still being built, and Iβm intentionally developing it in public.
Iβm less interested in claiming that this is already solved than in figuring out what the correct abstraction actually is.
If AI agents are becoming increasingly autonomous, perhaps the next important infrastructure isnβt another smarter agent.
Maybe itβs the layer that allows all of those agents to understand the same project.
https://www.contorium.dev/
https://github.com/ContoriumLabs/contorium
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes β full credit and traffic to the original publisher.