EasyPlatform graph-build
[Code Intelligence] Build or update the code review knowledge graph. Parses codebase with Tree-sitter into a structural graph (functions, classes, imports, calls, tests) stored in SQLite. Enables blast-radius analysis and graph-powered code review.
git clone https://github.com/duc01226/EasyPlatform
T=$(mktemp -d) && git clone --depth=1 https://github.com/duc01226/EasyPlatform "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/graph-build" ~/.claude/skills/duc01226-easyplatform-graph-build && rm -rf "$T"
.claude/skills/graph-build/SKILL.md<!-- /SYNC:critical-thinking-mindset --> <!-- SYNC:ai-mistake-prevention -->Critical Thinking Mindset — Apply critical thinking, sequential thinking. Every claim needs traced proof, confidence >80% to act. Anti-hallucination: Never present guess as fact — cite sources for every claim, admit uncertainty freely, self-check output for errors, cross-reference independently, stay skeptical of own confidence — certainty without evidence root of all hallucination.
<!-- /SYNC:ai-mistake-prevention -->AI Mistake Prevention — Failure modes to avoid on every task:
- Check downstream references before deleting. Deleting components causes documentation and code staleness cascades. Map all referencing files before removal.
- Verify AI-generated content against actual code. AI hallucinates APIs, class names, and method signatures. Always grep to confirm existence before documenting or referencing.
- Trace full dependency chain after edits. Changing a definition misses downstream variables and consumers derived from it. Always trace the full chain.
- Trace ALL code paths when verifying correctness. Confirming code exists is not confirming it executes. Always trace early exits, error branches, and conditional skips — not just happy path.
- When debugging, ask "whose responsibility?" before fixing. Trace whether bug is in caller (wrong data) or callee (wrong handling). Fix at responsible layer — never patch symptom site.
- Assume existing values are intentional — ask WHY before changing. Before changing any constant, limit, flag, or pattern: read comments, check git blame, examine surrounding code.
- Verify ALL affected outputs, not just the first. Changes touching multiple stacks require verifying EVERY output. One green check is not all green checks.
- Holistic-first debugging — resist nearest-attention trap. When investigating any failure, list EVERY precondition first (config, env vars, DB names, endpoints, DI registrations, data preconditions), then verify each against evidence before forming any code-layer hypothesis.
- Surgical changes — apply the diff test. Bug fix: every changed line must trace directly to the bug. Don't restyle or improve adjacent code. Enhancement task: implement improvements AND announce them explicitly.
- Surface ambiguity before coding — don't pick silently. If request has multiple interpretations, present each with effort estimate and ask. Never assume all-records, file-based, or more complex path.
Build Graph
Build or incrementally update the persistent code knowledge graph for this repository.
Prerequisites
Requires Python 3.10+ with:
pip install tree-sitter tree-sitter-language-pack networkx
Steps
-
Check availability — Run via Bash:
python .claude/scripts/code_graph status --json- If error (Python/deps missing): show install instructions and stop
- If
is null: graph never built → proceed with full buildlast_updated - If
exists: graph exists → proceed with incremental updatelast_updated
-
Build or update — Run via Bash:
- Full build:
python .claude/scripts/code_graph build --json - Incremental:
python .claude/scripts/code_graph update --json
- Full build:
-
Report results from JSON output:
- Files parsed, nodes created, edges created
- Languages detected
- Any errors encountered
- Build type (full vs incremental)
When to Use
- First time setting up graph for a project
- After major refactoring or branch switches
- If graph seems stale or out of sync
- Graph auto-updates via PostToolUse hook, so manual builds are rarely needed
Notes
- Graph stored at
(SQLite, auto-gitignored).code-graph/graph.db - Supported: Python, TypeScript, JavaScript, Vue, Go, Rust, Java, C#, Ruby, Kotlin, Swift, PHP, Solidity, C/C++
- Initial build: ~10s for 500 files. Incremental: <2s
Connectors (Auto-Run)
After build/update, graph connectors run automatically if configured in
project-config.json:
- API Endpoints: Frontend HTTP calls matched to backend routes (
)graphConnectors.apiEndpoints - Implicit Connections: Entity events, message bus, command events (
)graphConnectors.implicitConnections
See
/graph-connect-api and .claude/docs/code-graph-mechanism.md for details.
DB Performance Indexes
The graph database includes optimized indexes created automatically on first build:
— fast node name lookups for searchidx_nodes_name
— composite index for filtered edge queries (kind + source)idx_edges_kind_source
— composite index for filtered edge queries (kind + target)idx_edges_kind_target
These indexes are defined in the init schema and auto-create in any new project on first
graph build.
Auto-Connect After Build
After building, the CLI automatically runs:
- API connector — detects frontend HTTP calls matching backend route definitions
- Implicit connector — detects behavioral relationships (entity events, bus messages, command events) based on rules in
project-config.json → graphConnectors.implicitConnections[]
This creates edges for MESSAGE_BUS, TRIGGERS_EVENT, PRODUCES_EVENT, TRIGGERS_COMMAND_EVENT, and API_ENDPOINT — enabling full system flow tracing via the
trace command.
Describe (AI-Friendly Command Reference)
Run
python .claude/scripts/code_graph describe --json to get MCP-style structured descriptions of all available CLI commands, their parameters, and usage. Useful for AI agents to discover graph capabilities programmatically.
Valid CLI Subcommands
build, update, status, blast-radius, query, connections, trace, search, find-path, batch-query, sync, export, export-mermaid, connect-api, connect-implicit, review-context, describe
Common Mistakes (DO NOT USE)
| Invalid Command | Correct Alternative |
|---|---|
| (incremental is the default behavior of ) |
| (auto-detects changed files via git diff) |
| (always does full rebuild) |
| (auto-detects from git) |
| |
Closing Reminders
- MANDATORY IMPORTANT MUST ATTENTION break work into small todo tasks using
BEFORE startingTaskCreate - MANDATORY IMPORTANT MUST ATTENTION search codebase for 3+ similar patterns before creating new code
- MANDATORY IMPORTANT MUST ATTENTION cite
evidence for every claim (confidence >80% to act)file:line - MANDATORY IMPORTANT MUST ATTENTION add a final review todo task to verify work quality <!-- SYNC:critical-thinking-mindset:reminder -->
- MUST ATTENTION apply critical thinking — every claim needs traced proof, confidence >80% to act. Anti-hallucination: never present guess as fact. <!-- /SYNC:critical-thinking-mindset:reminder --> <!-- SYNC:ai-mistake-prevention:reminder -->
- MUST ATTENTION apply AI mistake prevention — holistic-first debugging, fix at responsible layer, surface ambiguity before coding, re-read files after compaction. <!-- /SYNC:ai-mistake-prevention:reminder -->