Skip to main content

Impact Analysis & Blast Radius

Estimating change impact through dependency analysis and combining multiple analytical passes.

Blast Radius Estimation

Using imports as a proxy

The impactAnalysis preset uses import count as a fan-out measure — files imported by many others have higher blast radius.

Find shared utility modules ranked by import count, metadata only

Tool parameters
{
"query": "shared utility module",
"rerank": "impactAnalysis",
"metaOnly": true,
"limit": 20
}

Combining blast radius with risk

High blast radius is only dangerous if the code is also unstable:

Find database connection code ranked by import count, churn, and bug-fix rate

Tool parameters
{
"query": "database connection configuration",
"rerank": {
"custom": {
"similarity": 0.2,
"imports": 0.3,
"chunkChurn": 0.25,
"bugFix": 0.25
}
},
"metaOnly": true
}

Risk matrix:

Blast Radius (imports)StabilityRiskAction
High (10+ importers)Stable (commitCount < 5)LowChange carefully, but code is proven
High (10+ importers)Unstable (commitCount > 15, bugFixRate > 30%)CriticalStabilize before adding features
Low (1-3 importers)UnstableMediumFix quality, blast radius is contained
Low (1-3 importers)StableMinimalSafe to modify

Combining Analyses: Multi-Step Workflows

Real analysis often combines multiple searches. Here's a full workflow for assessing a subsystem:

Step 1: Broad discovery

Find hotspot areas in payment processing, metadata only

Goal: identify the riskiest files. Look at commitCount, relativeChurn, bugFixRate.

Step 2: Drill into top hotspots

Find the highest-churn functions in the payment module, ranked by chunk churn and bug-fix rate

Goal: find the specific functions causing the churn. Look at chunkChurnRatio, chunkBugFixRate.

Step 3: Assess ownership and risk

Show ownership distribution for the payment module, metadata only

Goal: identify knowledge silos. Look at dominantAuthorPct, contributorCount.

Step 4: Measure blast radius

Find payment module exports ranked by import count, metadata only

Goal: understand what breaks if you change the hotspot. Look at imports count.

Synthesizing results

Combine findings into a risk assessment:

Payment Subsystem Analysis:

CRITICAL: src/payment/processor.ts
- processPayment() — chunkChurnRatio: 0.79, bugFixRate: 55%
- Owner: alice (92% of commits) — knowledge silo
- 15 downstream importers — high blast radius
- Recommendation: pair programming + incremental refactoring

WATCH: src/payment/validator.ts
- relativeChurn: 3.2, bugFixRate: 25%
- 3 contributors — healthy ownership
- 4 importers — moderate blast radius
- Recommendation: monitor, low priority

STABLE: src/payment/receipt.ts
- commitCount: 2, bugFixRate: 0%
- Good template for new payment features

See Also