Personal pre-indexed code knowledge graph for Java, Ruby, TypeScript and JavaScript
Provenlens exposes 10 code-analysis tools with consistent naming (verb_noun pattern: searchSymbols, getSymbol, callersOf, etc.) and reasonable descriptions (80 - 150 chars). All tools are READ_ONLY and well-scoped. However, input schemas lack critical details: parameter types are present but descriptions are minimal or missing for several params (e.g., 'limit' in searchSymbols has a description but 'kind' is vague). Output schemas are not documented, LLMs cannot predict what fields to expect from responses. Error handling is absent from visible code. No enum constraints on 'kind' parameter despite it accepting a known set of values (class, method, function, etc.). Parameter descriptions do not explain ranges, formats, or dependencies.
Get all symbols that a given symbol calls
Get all symbols that call a given symbol
Get detailed information about a specific symbol including its definition, callers, callees, and related symbols
Get the call graph around a symbol showing callers and callees
Get the blast radius of a symbol - all symbols affected by changes to it
Determine if a file path is a test file
Get statistics about an indexed project including file count, symbol count, and language breakdown
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting). Forces agents to guess what data is available and risks failed downstream tool calls.
'kind' parameter in searchSymbols accepts a known set of values (class, method, function, etc.) but is not declared as an enum. Free-form strings invite hallucinated values.
Parameter descriptions lack format/range constraints. E.g., 'limit' in searchSymbols has no min/max bounds; 'depth' in graphAround has no guidance on reasonable values. Unbounded numbers let LLMs pass absurd values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Search for symbols by name, kind, or other criteria across indexed repositories
Get the source code for a symbol with optional line limit
Get the most connected symbols in a repository (hubs in the call graph)
No error handling guidance visible. Tools return READ_ONLY but no documentation of failure modes (symbol not found, invalid repo ID, malformed composite ID). LLMs cannot recover from errors.
Composite ID format ('repo:id') is documented in parameter descriptions but not validated or explained in error context. If an LLM passes an invalid composite ID, no guidance on what went wrong.