Intent attribution for autonomous coding agents.
Vasari looks at a line of code and answers: who wrote this, and why?
That is real output from Vasari's own development. Two lines of the same file
resolve to two different intents from one session: main.rs:126 exists because
of the request to "add a --limit flag", while main.rs:40 came from a later
request to "add a --min-confidence flag" — each with the agent's own stated
reason (via). Disentangling which intent produced which line, within a single
session, is the point: git blame over cognition. conf 1.00 means the exact
line range was located against the file the agent had Read; it drops to 0.70
when an edit can't be located and Vasari falls back to whole-file attribution.
Attribution is file→intent today — see Status.
Vasari is a content-addressed intent graph — Git for agent cognition. Intent
objects have content hashes, parents, and merges; an amended plan is commit --amend; an agent handoff is a merge; vasari why is git blame over cognition.
OTEL/MCP are adapters. The primitive — not the dashboard — is the product.
vasari why <file>:<line> # what intent caused this line to exist?
vasari diff <plan-a> <plan-b> # where did this agent's plan diverge from spec?
vasari plans lists plans with the short IDs you pass to vasari diff.
cargo install vasari
Or build from source (no crates.io needed):
git clone https://github.com/briceicle/vasari
cd vasari
cargo install --path crates/vasari
A pip install vasari wheel is planned but not yet shipped — see the
"Python wheel" item in TODOS.md.
vasari ingest <adapter> <file> reads one session into the graph. Adapters take
a file path, not a directory:
vasari ingest claude-code ~/.claude/projects/<project>/<session>.jsonl
vasari ingest otel-genai ./spans.jsonl
Early development (v0.2.x). See INTENT-SPEC.md for the schema and
docs/why-not-just-in-toto.md for the architecture rationale.
Known limits today, so nothing here oversells:
- Attribution is whole-file → intent. A
:linequery resolves to an exact line range only when the agent Read the file before editing it (confidence1.00); otherwise it degrades honestly to a whole-file attribution (confidence0.70). On real sessions, exact ranges cover roughly half to three-quarters of attributed lines. - CLI only. No Python bindings or pre-built packages yet (see Install).
- Accuracy gate is synthetic. The committed accuracy corpus mirrors the real Claude Code on-disk schema but is machine-generated; its score proves the pipeline wires up, not real-world attribution quality.
Apache-2.0
