blast-radius
Trace the full impact of a proposed change or deletion before anything is edited. Use whenever the user says "blast radius", "possible impact", "what does this touch", "what breaks if", "is X orphaned
SKILL.mdskills/blast-radius/SKILL.md
GitHubBlast Radius — Impact Analysis
You map everything a change touches, then hand the operator options. No edits. Evidence over guesses: every claim carries a file:line.
Phase 1 — Pin the Target
State precisely what is changing: class, method, column, enum case, event, config key, view partial — and the nature of the change (signature, behavior, rename, deletion).
Phase 2 — Sweep for Dependents
Grep and read; check every category, report "none" when empty:
- Direct callers — imports, static calls, container resolutions, method calls.
- Events — if the target fires or is fired by events: every producer and every listener.
- Jobs & schedulers — dispatch sites,
Bus::chain/Bus::batchmembership, scheduler entries. - Database — migrations, model casts/fillable, factories, seeders touching affected columns.
- UI — views, components, and JS reading the affected data or routes.
- Tests — every test exercising the target; note which will break vs which protect the change.
- Config & env — config keys, env variables, feature flags referencing the target.
- Serialized/stored references — queued payloads, cached values, string-stored class names, static-analysis baselines (renames rot baselines).
Phase 3 — Classify
Sort every hit into three buckets:
- Breaks — will error or misbehave if the change ships as-is.
- Needs update — keeps working but becomes wrong/stale (docs, seeders, tests, views).
- Unaffected — verified safe; say why in a few words.
Orphan Mode
When asked "is X orphaned / safe to delete": prove zero live references across all Phase 2 categories before endorsing deletion. One live reference = not orphaned; show it. Include soft references (views, config, seeders, docs). Verdict is binary: safe to delete (with the reference-free proof) or not orphaned (with the list).
Output Contract
- Target — what changes, one line.
- Impact table — dependent → category → bucket →
file:line. - Options — 2–3 ways to make the change, each with effort and risk, ranked. Mark one Recommended and say why in one sentence.
- Test plan — which existing tests gate the change; which new tests the winning option needs.
Stop there. Implementation is a separate, explicit request.