返回 Skill 列表
extension
分类: 开发与工程无需 API Key

blast-radius-analysis

通过绘制调用图并识别所有直接和间接依赖项来分析代码更改的影响。当用户询问爆炸半径分析、代码更改影响、谁调用了某个函数、下游依赖项或重构前的风险评估时使用。跟踪调用链,识别高风险模块,并提供排名影响分析。

person作者: jakexiaohubgithub

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 incomingCalls and outgoingCalls.
  • 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