Build Code Knowledge Graph
Build or update the .gauntlet/graph.db knowledge graph
for the current codebase.
Steps
Detect target: Use the current working directory or a user-specified path.
Check for existing graph: If
.gauntlet/graph.dbexists, run an incremental update. Otherwise, run a full build.Run the build script:
For full build:
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/graph_build.py <dir>For incremental update:
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/graph_build.py <dir> --incrementalReport results: Show the JSON output including files parsed, nodes created, edges created, and duration.
Suggest next steps: Recommend searching the graph or running blast radius analysis.
When To Use
- At the start of a session to build structural awareness
- After significant code changes to update the graph
- Before running blast radius analysis or flow tracing
- When the user asks about codebase structure
When NOT To Use
- Querying a graph that already exists (use
gauntlet:graph-search) - Building the challenge knowledge base (use
gauntlet:extract)
What Gets Parsed
The graph extracts nodes (File, Class, Function, Type, Test) and edges (CALLS, IMPORTS_FROM, INHERITS, CONTAINS, IMPLEMENTS, TESTED_BY) from 20+ languages including Python, JavaScript, TypeScript, Go, Rust, Java, C/C++, Ruby, and PHP.
Storage
- Database:
.gauntlet/graph.db(SQLite with WAL mode) - Auto-creates
.gauntlet/.gitignoreto prevent commits - Incremental updates use SHA-256 hashing to skip unchanged files
Exit Criteria
-
.gauntlet/graph.dbexists and is a valid SQLite file after the skill completes;.gauntlet/.gitignoreexists to prevent the database from being committed - Build report JSON includes all four keys:
files_parsed,nodes_created,edges_created,duration; values are non-zero for non-empty codebases - Incremental update path used when
.gauntlet/graph.dbalready exists (script invoked with--incremental); full build only on first run - Next-step suggestions presented to the user: search the graph or run blast-radius analysis