| name | blast-radius-analysis |
| description | Analyze the impact of code changes by mapping call graphs and identifying all direct and indirect dependencies. Use when users ask about blast radius analysis, code change impact, who calls a function, downstream dependencies, or risk assessment before refactoring. Traces call chains, identifies high-risk modules, and provides ranked impact analysis. |
Blast Radius Analysis
Analyze the potential impact of code changes before making them. Map out call graphs, identify dependencies, and assess risk.
Core Workflow
When triggered by questions about code change impact, follow this systematic approach:
1. Locate the Target
First, find the target function/class in the codebase:
# Search for the function definition
grep -rn "def function_name" --include="*.py" --include="*.js" --include="*.ts"
# Or use Glob to find the file
2. Map the Call Graph
Use LSP tools to trace the complete call chain:
# Get all incoming calls (who calls this function)
LSP(operation="incomingCalls", filePath="path/to/file", line=N, character=M)
# For each caller, recursively trace their incoming calls
# Build a complete tree of indirect dependencies
3. Categorize Impact Levels
Classify each affected module by risk:
HIGH RISK (Critical):
- Public API functions
- Functions called by multiple unrelated modules
- Functions in hot paths or critical business logic
- Functions with complex state dependencies
MEDIUM RISK:
- Internal functions with moderate call chains
- Functions called by 2-3 other modules
- Functions with clear, isolated logic
LOW RISK:
- Leaf functions (no incoming calls beyond immediate parent)
- Private/internal methods with single caller
- Pure functions with no side effects
4. Output Format
Present results in this structure:
## Blast Radius Analysis: [Function Name]
**Location**: `file_path:line_number`
### Direct Callers (N)
1. `module/function` - Risk: [HIGH/MEDIUM/LOW]
- Impact: [what breaks]
### Indirect Callers (N)
1. `module/A -> module/B -> target` - Risk: [HIGH/MEDIUM/LOW]
- Impact: [cascading effect]
### Risk Ranking
🔴 Critical: [modules]
🟡 Moderate: [modules]
🟢 Safe: [modules]
### Recommendations
- [Specific guidance based on analysis]
Advanced Patterns
For complex scenarios, see ANALYSIS_PATTERNS.md for:
- Multi-file refactoring impact
- Breaking circular dependencies
- API contract changes
Tool Selection Guide
- LSP (preferred): For languages with LSP support (TS/JS, Python, Java, Go). Use
incomingCallsandoutgoingCalls. - Grep: For languages without LSP or when LSP is unavailable. Search for function name patterns.
- Grep + manual analysis: For dynamic languages or when call sites are generated at runtime.
Risk Assessment Methodology
See METHODOLOGY.md for detailed criteria on:
- How to quantify risk levels
- Dependency depth vs. breadth tradeoffs
- Module coupling analysis