EasyPlatform graph-blast-radius
[Code Intelligence] Analyze the blast radius of current code changes using the structural knowledge graph. Shows impacted files, functions, test coverage gaps, and risk level. Requires graph to be built first via /graph-build.
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-blast-radius" ~/.claude/skills/duc01226-easyplatform-graph-blast-radius && rm -rf "$T"
.claude/skills/graph-blast-radius/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.
Blast Radius
Analyze the structural impact of current code changes using the knowledge graph.
Prerequisites
- Graph must be built first: run
if/graph-build
doesn't exist.code-graph/graph.db - Requires Python 3.10+ with tree-sitter, tree-sitter-language-pack, networkx
Steps
-
Check graph exists — Verify
exists. If not, suggest.code-graph/graph.db
./graph-build -
Run blast-radius analysis via Bash:
python .claude/scripts/code_graph blast-radius --json -
Parse JSON output and present:
- Changed files: List of modified files (auto-detected from git)
- Changed nodes: Functions/classes directly modified
- Impacted nodes: Functions/classes affected within 2 hops (callers, dependents, tests)
- Impacted files: Additional files that may need attention
- Truncation: If results were truncated, note total vs shown
-
Risk assessment based on blast radius size:
- Low risk: <5 impacted nodes, changes well-contained
- Medium risk: 5-20 impacted nodes, review callers carefully
- High risk: >20 impacted nodes, consider splitting PR
-
Recommendations:
- Flag untested changed functions
- Suggest files to prioritize in review
- Warn about inheritance/implementation relationship changes
Trace for Deep Impact Analysis
For impact beyond direct callers/importers, use the
trace command to follow the full chain through implicit connections:
python .claude/scripts/code_graph trace <changed-file> --direction downstream --depth 3 --json # File-level overview first (10-30x less noise), then drill into functions: python .claude/scripts/code_graph trace <changed-file> --direction downstream --node-mode file --json
This reveals downstream impact through MESSAGE_BUS edges (cross-service event consumers), TRIGGERS_EVENT (entity event handlers), and other implicit relationships that blast-radius may not surface directly.
Additional Queries
For deeper investigation, run via Bash:
— who calls this function?python ... query callers_of <function> --json
— what tests cover this?python ... query tests_for <function> --json
— what inherits from this?python ... query inheritors_of <class> --json
— who imports this file?python ... query importers_of <file> --json
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 -->