Skip to content

Token-efficient local analysis

GraveTrail resolves names and computes lineage with the local stored graph, rather than asking an agent to load scripts and rebuild dependencies. Hash-based parsing cache and persisted evidence are reused. Queries never reparse or call an LLM.

Summary responses expose stable asset IDs/names/kinds, temporary status, freshness, unresolved counts and aggregate extraction status/confidence. Standard adds relationship references and positions. Detailed explicitly adds original statement text or column expressions. Metadata/code search returns file references only. Use a dedicated evidence request for a relevant statement or small line range.

Successful MCP responses contain structured data once, without duplicating it in a text content block. Defaults: 50 rows, 12,000 serialized Unicode characters, 15 traversal hops and 2,000 dependencies. Hard maxima: 500 rows, 100,000 characters, 30 hops and 20,000 dependencies, further restricted by workspace settings. These are character budgets, not byte or guaranteed model-token counts. SDK framing/tool schemas are outside application page budgets. Network requests also cap at 64 KB.

Continuation cursors pin query scope and the analyzed/input revision. A page that hits a budget returns next_cursor and complete=false. Depth/item caps and stale metadata also produce incomplete state. A single oversized record produces an explicit budget error. Batches enforce aggregate item/character budgets and list unprocessed assets. Graph computation rejects more than 20,000 assets/100,000 evidence edges; simplification preserves evidence and intermediate names.

Representative measurements

Measured on the supplied archives with static analysis, 2026-10-16. Comparison uses the same selected asset and 10-row page limit at a 100,000-character workspace cap. Both fixtures use the final published asset after PROC SQL modifier support.

Fixture / asset Summary characters Detailed characters Approx. summary tokens Approx. detailed tokens
SQL / pub.all_kpis 1,509 64,841 378 16,211
SAS / pub.all_kpis 1,509 45,454 378 11,364

Approximate tokens are ceil(characters / 4), not a model-specific tokenizer or billing claim. Summary reduced these payloads by about 97.7% and 96.7% respectively. These intentionally evidence-heavy examples do not imply universal savings. IDs/cursors contribute to output size, so future measurements may differ slightly.

scripts/verify_agents.py reproduces the measurement and compares logical edge sets with each bundled manifest. Both match all 128 expected logical edges and reach all 16 sources. Both warm analyses reuse all 86 script caches. See AGENT_WORKFLOWS.md for fixture interpretation and limits.