The navigation layer · how it works

Finding the right file shouldn't cost a model call.

coldstart keeps a small, exact map of your repository — what exists, what it's called, and what points at what — and answers "where does this live?" straight from that map. No embeddings, no network, no waiting for a reply.

← how it works

Two kinds of question. Only one is worth answering in advance.

Everything coldstart does follows from where it draws this line — and the line is the whole design.

Kept exact

Facts with one right answer

These don't depend on what you're working on, so they're cheap to store and instant to look up. coldstart keeps them, and keeps them current.

what files exist
what they're named
what each one declares
what imports what
what calls what
Left to the model

Answers that depend on the task

These need judgement about the job in hand — and the thing asking is already a frontier model. Deciding meaning ahead of time just makes a worse, staler copy of it.

what this code means
whether it's the right approach
which of these actually matters here
what to change
That's why there's no vector database, no generated summaries, and no API key to paste. The semantic layer is the agent. coldstart's job is to put the right files in front of it, exactly and instantly, and then stay out of the way.

Two lookups instead of a search party.

The usual failure mode isn't that an agent can't read code — it's that it opens three wrong files first. The map turns that into one narrowing question, then one confirming one.

The map
Everything, by name
every file path
every symbol it declares
every export
every import edge
every call edge
Built once when you install, then patched in the background as you type. There's no index command in your workflow.
Lookup one
find — which files is this about?
▸ src/auth/session.ts [3/3]
  defines signCookie, verify
▸ src/routes/login.ts [2/3]
  imports signCookie
▸ src/middleware/auth.ts [2/3]
  imports verify
You throw in every identifier you half-remember. It ranks files by how many of them are really there — and says whether each file defines the term or only imports it, so the top result is usually the answer.
Lookup two
gs — what is this file, and who uses it?
src/auth/session.ts
  signCookie    12–38
  verify        40–71
  rotateSecret  73–96
imported by
  routes/login.ts
  middleware/auth.ts
One file's shape: its symbols with line ranges, who imports it, who calls each one. This is the real answer to "who uses this?" — not a grep for a name you might be spelling differently.

Current without being thought about.

A background process watches the repository and patches the map as you edit, so an agent querying it sees the code you have right now, not the code you had at install time. Switching branches reconciles in a few seconds. You never re-run anything, and there's nothing to keep in sync by hand.