Code Quality Analysis via Knowledge Graph
Use graph degree filtering to find dead code, high-complexity functions, and refactor candidates — all in single tool calls.
Workflow
Dead Code Detection
Find functions with zero inbound CALLS edges, excluding entry points:
search_graph(
label="Function",
relationship="CALLS",
direction="inbound",
max_degree=0,
exclude_entry_points=true
)
exclude_entry_points=true removes route handlers, main(), and framework-registered functions that have zero callers by design.
Verify Dead Code Candidates
Before deleting, verify each candidate truly has no callers:
trace_call_path(function_name="SuspectFunction", direction="inbound", depth=1)
Also check for read references (callbacks, stored in variables):
query_graph(query="MATCH (a)-[r:USAGE]->(b) WHERE b.name = 'SuspectFunction' RETURN a.name, a.file_path LIMIT 10")
High Fan-Out Functions (calling 10+ others)
These are often doing too much and are refactor candidates:
search_graph(
label="Function",
relationship="CALLS",
direction="outbound",
min_degree=10
)
High Fan-In Functions (called by 10+ others)
These are critical functions — changes have wide impact:
search_graph(
label="Function",
relationship="CALLS",
direction="inbound",
min_degree=10
)
Files That Change Together (Hidden Coupling)
Find files with high git change coupling:
query_graph(query="MATCH (a)-[r:FILE_CHANGES_WITH]->(b) WHERE r.coupling_score >= 0.5 RETURN a.name, b.name, r.coupling_score, r.co_change_count ORDER BY r.coupling_score DESC LIMIT 20")
High coupling between unrelated files suggests hidden dependencies.
Unused Imports
search_graph(
relationship="IMPORTS",
direction="outbound",
max_degree=0,
label="Module"
)
Key Tips
search_graphwith degree filters has no row cap (unlikequery_graphwhich caps at 200).- Use
file_patternto scope analysis to specific directories:file_pattern="**/services/**". - Dead code detection works best after a full index — run
index_repositoryif the project was recently set up. - Paginate results with
limitandoffset— checkhas_morein the response.