Dependency graph, blast-radius analysis, and lightweight gate checks for local TypeScript and JavaScript repositories.
Six tools with clear, action-oriented names (analyze_impact, get_dependencies, refresh_graph, gate_check, detect_cycles, find_hot_files) and well-written descriptions (150 - 250 chars each). All tools are READ_ONLY and properly scoped. Input schemas are present with type definitions and parameter descriptions. However, output schemas are not documented in the provided source, only inferred from demo usage. Tool annotations (readOnlyHint) are present, which is current-spec compliant. Parameter descriptions are solid but could be more prescriptive about constraints (e.g., tsconfig path format, file path format). No error handling guidance visible in tool definitions.
Analyze the blast radius of changing specific files. Returns which files would be directly and transitively affected, with a risk score (0-1). Use BEFORE committing multi-file changes to understand what might break. Does NOT modify any files.
Detect and list all circular dependencies in the project graph. Circular dependencies are a code smell and can cause issues during refactoring. Returns a list of cycles and summary statistics.
Identify the most coupled files in the project (highest fan-in and fan-out). These are high-risk refactoring targets and often good candidates for breaking up. Returns ranked list with coupling metrics.
Run a pre-commit safety gate: PASS/WARN/BLOCK verdict based on risk score and circular dependencies. Use this as a final check before committing. Threshold is configurable (default 0.5).
Get the import and importedBy relationships for a specific file. Shows what this file depends on and what depends on it. Use to understand coupling before refactoring a file.
Output schemas not documented. Tool descriptions mention return values (e.g., 'Returns which files would be directly and transitively affected, with a risk score') but formal output schema definitions are absent from tool registration. LLMs cannot reliably parse unstructured responses.
No error handling guidance in tool descriptions. Tools do not document what happens on failure (e.g., invalid projectRoot, missing tsconfig, circular dependency detection timeout). Descriptions lack recovery hints like 'If tsconfig is not found, try refresh_graph first.'
Parameter constraints under-specified. 'projectRoot' and 'file' accept strings but lack format guidance (absolute vs. relative, path separators, symlink handling). 'threshold' in gate_check accepts 0-1 but no validation hint. 'limit' in find_hot_files has no min/max bounds.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Rebuild the dependency graph from scratch. Use if you suspect the cached graph is stale or after making significant file changes. Returns graph statistics and any circular dependencies detected.
Pagination and result limits not addressed. Tools like find_hot_files return 'ranked list' but no pagination parameters (limit, offset, cursor) or total count. Large projects could return unbounded results, exhausting context.
Tool composition assumes sequential calls. Analyzing impact requires projectRoot + files, but no tool returns a pre-built graph object for reuse. Agents must rebuild the graph on every call, wasting computation.