Codebase indexing
Understand how Kerno builds a deterministic index of your codebase, keeps it up to date, and why it matters for accurate validation.
Last updated
Understand how Kerno builds a deterministic index of your codebase, keeps it up to date, and why it matters for accurate validation.
Most code tools that use LLMs rely on vector embeddings. Embeddings are an approximate way to find relevant code by similarity. They're useful but imprecise, and they don't reflect actual code structure.
Kerno indexes deterministically using SCIP (Source Code Intelligence Protocol). SCIP resolves symbols and cross-references in your codebase, so every function call, import, and variable reference gets a precise location that's reproducible across runs.
The result is a graph that's exact, not approximate. When Kerno asks "what calls this function?" or "which endpoint uses this model?", the answer is precise.
The index stays local. Relevant code excerpts are sent to LLM providers only when Kerno needs them to reason about a specific task. See Security & Privacy.
A deterministic graph means three things.
Reliable blast-radius detection. When you change code, Kerno knows exactly which endpoints, scenarios, and dependencies are affected. No false negatives.
No hallucinated context. When Kerno asks an LLM to plan a scenario or update a baseline, it sends real code references, not similarity matches.
Faster updates. Re-indexing on a code change takes a few seconds even on a large codebase because the graph updates incrementally.
Kerno indexes the git-tracked source files in your project, including application code, configuration, and build files. Files that are not tracked by git (dependency directories, build outputs, anything in .gitignore) are skipped automatically.
Kerno indexes your codebase on first use. After that, your AI coding agent syncs the workspace after code changes, so Kerno always runs against the latest version of your code.
Last updated