Repo Context
The treedocs.yaml repo map, `jaunt tree`, optional colgrep retrieval, and the project overview.
A spec rarely lives alone. It calls helpers, imports siblings, and fits into a shape the rest of the repo already defines. Jaunt keeps a lightweight map of that surrounding code and feeds it to the generator, so the model writing one module knows what exists around it. The map is on by default and works offline.
The repo map
treedocs.yaml at the project root holds a one-line description of every
directory and supported source file (.py, .ts, or .tsx; generated output and
declaration files are excluded). Descriptions start from an offline static baseline:
Python module docstrings and public symbols, or TypeScript documentation and exported
surface. They can be enriched by the model if you opt in.
jaunt tree # sync the tree incrementally (AST-only by default)
jaunt tree --check # CI gate: exit 4 if the tree is stalejaunt build keeps the tree in sync on its own and renders a capped repo-map
block into every build prompt. Source digests are cached in
.jaunt/tree-cache.json, so a sync only touches what changed. You can turn the
map off for a single build with jaunt build --no-repo-map or for the project
with the [context] config; see the
configuration reference for those keys.
Semantic retrieval (opt-in)
The repo map tells the model what exists. For Python generation, semantic retrieval
goes one step further and shows it the actual neighboring code. Turn it on, put the
colgrep binary (LightOn next-plaid) on your PATH, and Jaunt queries colgrep for
code relevant to each Python spec, then seeds the top hits into the workspace as
_context/relevant_*.py. If colgrep is missing, the build still runs — retrieval
just sits out that round.
The TypeScript alpha receives the shared repo map and optional project overview, but
does not yet add colgrep hits to its generation context.
The trade-off is real neighboring implementations against an extra tool dependency and a bit of build time, which is why it stays off until you ask for it.
Project overview (opt-in)
The repo map is a list of one-liners; a project overview is prose. Switch it on
and Jaunt asks the model to write an architecture summary of the whole codebase
and adds it to build prompts. That call runs once, keyed to a digest of the spec
sources, the repo map, your project docs (README/AGENTS/CLAUDE), and the
overview prompt. The result is cached to .jaunt/PROJECT_OVERVIEW.md and reused
until one of those inputs changes, so you pay for the prose once, not per build.
The call counts against your build cost budget and shows up in the cost summary.
Target prompt preambles
Python build prompts open with src/jaunt/prompts/codex_preamble.md. TypeScript uses
its own strict system and module templates under src/jaunt/typescript/prompts/ so
the model writes only reserved internal bindings while Jaunt owns the public boundary.
Both targets ask for straightforward, maintainable source that remains useful after
ejection. These templates add no model call, and their content participates in the
target's generation fingerprint. Override them through [prompts.py] or
[prompts.ts] in a version-2 config.
Next: Change Detection.