impact-analysislisted
Install: claude install-skill ddevilz/loom
# Impact Analysis
Map the blast radius of a proposed change before touching any code.
## Steps
### 1. Find the target node
```
search_code("<function name or user argument>")
```
Pick the most relevant result and copy its `node_id`.
### 2. Get full context
```
get_context("<node_id>")
```
Read: summary, signature, direct callers, direct callees. Note if `summary_stale: true`.
### 3. Blast radius (transitive callers)
```
get_blast_radius("<node_id>", depth=3)
```
Depth 3 covers most real-world chains. If result is large (>50 nodes), note which modules appear most.
### 4. Direct callers (one-hop)
```
get_context("<node_id>", callees_limit=0)
```
Returns the immediate dependents — the minimum surface area affected.
### 5. Surprising connections
```
get_surprising_connections(limit=10)
```
Look for entries that involve the target node or its module. These are the hidden risks engineers miss.
### 6. Community cohesion
```
graph_stats(include_cohesion=True)
```
Find the target's community. If cohesion < 0.2, the cluster is poorly bounded and changes propagate unexpectedly.
### 7. God node check
```
god_nodes(limit=20)
```
If the target appears in top 20, it has many callers — high risk, needs extra care.
### 8. Synthesize risk report
Report to the user:
**Target:** `node_id`, what it does (summary), signature
**Direct impact:**
- N direct callers (list them)
- N direct callees (what it depends on)
**Transitive impact:**
- Total blast radius: N nodes acro