We built a “code atlas” that provides the LLM with a semantically queryable map of how things connect and relate in a very large and sprawling codebase that evolved over 15 years. It tends to dramatically reduce the length of time models have to spend reading code while also making sure they are aware (within their context window) of nuances that are important that might be missed were they forced to just rely on reading the code in hundreds of repositories.

I strongly recommend trying this approach out yourself. The recipe is not rocket science. Get your coding agent to take a first cut at building the atlas itself, and then manually correct it. Once you’re happy that it got things right, put an MCP on it or a CLI or whatever. And your LLMs will know what to do from there.

How did you organize the atlas? I've tried a few things including embeddings and clustering files based on how often they change in the same commits, haven't yet found anything I want to bake into my tooling.

A bunch of things. First off, I got Astra to build a semantic map itself. So, not using embeddings. Just Astra looking at our Helm charts and then the underlying repositories to see how the different parts of the system talk to each other and rely on each other.

It also had access to our internal docs (Confluence), JIRAs, Slack conversation history… All via MCPs. So it could dig around to its heart’s content as would a human developer trying to figure out the same problem.

I did also add a Vectorize database (the whole thing is Cloudflare hosted behind zero trust OAuth) as a second step and that can be helpful in surfacing concepts via the atlas’ MCP interface.

is this like Aider's repo map?

I think it’s more than what Aider gives you, because this is a semantic atlas as well as just a symbol lookup.