PluginBench
Skill
Pass
Audit score 90

blast-radius

cursor/plugins

Analyze what a code change could break elsewhere before shipping, then prove safety with real code.

What is blast-radius?

Blast radius identifies potential breakage from a change beyond what the diff shows, then proves the key safety fact by running actual code rather than just writing it up. Use this when reviewing risky-looking diffs, assessing impact of changes, or validating that a modification is truly safe.

  • Identifies what a change could break in other parts of the codebase
  • Finds the single critical fact the change's safety depends on
  • Proves safety facts by running real code instead of relying on writeups
  • Traces impact through library source, APIs, feature flags, and runtime behavior that grep won't catch
  • Distinguishes confirmed risks from cleared ones with evidence
  • Provides concrete file:line citations and reproducible test scripts

How to install blast-radius

npx skills add https://github.com/cursor/plugins --skill blast-radius
Claude Code
Cursor
Windsurf
Cline

How to use blast-radius

  1. 1.Read the diff and understand what symbols are added, changed, or deleted
  2. 2.Identify the single critical fact the change's safety depends on
  3. 3.Search the library source and trace execution paths that symbol search misses (APIs, JSON responses, feature flags, teardown order)
  4. 4.Write a small script that imports the real library and calls the exact function you're worried about
  5. 5.Run the script and paste the output as proof of the safety fact
  6. 6.Document what changed, the proven safety fact, confirmed risks with file:line, and cleared concerns

Use cases

Good for
  • Reviewing a small diff you don't fully trust before merging
  • Assessing blast radius of a refactor or API change across the codebase
  • Validating that a cache-clearing or state-mutation change won't break dependent code
  • Proving a risky-looking modification is actually safe by running the exact scenario
  • Checking impact of dependency updates or version pins on downstream behavior
Who it's for
  • Code reviewers evaluating risky or wide-reaching changes
  • Developers shipping refactors or API modifications
  • Teams reviewing pull requests with unclear side effects
  • Engineers validating safety claims with evidence rather than intuition

blast-radius FAQ

What's the difference between blast-radius and just grepping for callers?

Grepping finds where a function is called, but not what breaks. Blast radius finds the actual breakage—the JSON an API returns, a feature flag, timing of teardown, or a DB column—that grep won't show you.

How do I prove a safety fact if I can't run the code?

Get as far down the certainty ladder as is cheap: point at the exact file:line, walk through the failure case step-by-step to show it can't happen, or write a minimal script. Mark it unproven if you can't reach step 4.

Should I list every possible caller of a changed function?

No. The agent can grep those in seconds. Focus on the one or two facts the change's safety depends on, then prove those facts with code.

What if the change looks risky but I can't find a real risk?

That's valuable. List what you checked, why it's fine, and cite the search or code that confirms it. A cleared concern is as useful as a confirmed one.

When should I use arena mode with multiple models?

For big or wide changes where different models might catch different real bugs. Run the same question against several models and merge the answers.

Full instructions (SKILL.md)

Source of truth, from cursor/plugins.


name: blast-radius description: "Find what a change could break somewhere else before it ships, beyond the diff, and prove the one fact it's safe because of by running real code instead of writing it up. Use for 'blast radius of X', 'what could this break', or reviewing a small diff you don't trust." disable-model-invocation: true

Blast radius

Find what a change breaks somewhere else, before it ships. Use for "blast radius of X", "what could this break", or reviewing a small diff you don't trust yet.

Companion to how and why. how tells you what the code does. why tells you why it's shaped that way. Blast radius tells you what it breaks somewhere else.

Listing the callers is not the job. The agent can grep those in a second. The job is the breakage grep won't show you.

Don't trust your own writeup

A blast-radius writeup that sounds right is worthless. It reads as convincing whether or not it's true. So don't hand back the writeup. Find the one or two facts the whole thing depends on and prove them by running code.

How sure are you

For each fact the change's safety depends on, get it as far down this list as is cheap, and say where it stopped.

  1. You said so. Worthless on its own.
  2. You pointed at the line. A real file:line, or the library's own source.
  3. You showed the bad case can't happen. You walked the failure step by step and it doesn't reach.
  4. You ran it. A script or test that calls the real code and fails loud if you're wrong.
  5. You reproduced it in the running app.

Step 4 is usually one small script that imports the same library the app ships and calls the exact function you're worried about.

Steps

  1. Read the change. The diff, the symbols it adds, changes, and deletes, and what it now does differently, including the part the diff doesn't spell out. Use why step 2 to pull the PR and commits.
  2. Find the one fact it's safe because of. Most changes that look risky are safe because of a single fact, like "this call only drops already-dead cache entries and does nothing else". Find that fact. If it holds, most risky cases are cleared at once. Spend your time here, not on a long list of maybes.
  3. Look where grep stops. Read the source of the library you call, and check its pinned version and any local patch. Work out when things run: microtasks, unmount and teardown, Solid versus React. Follow what a symbol search misses: the JSON an API returns, a DB column, a wire format, another language reading the same bytes, a feature flag, code three hops downstream.
  4. Be honest about each risk. Give it a real chance of happening and a real cost if it does. Keep the risks you confirmed. List the ones you checked and cleared separately. Same rules as why. Cite a real file:line, a search that finds nothing is still an answer, and never make up a caller or an API.
  5. Prove the one fact. Write a script or test that runs the real code, run it, and paste what happened.
  6. For a big or wide change, run it as an arena. Ask several models the same question and merge the answers. Different models catch different real bugs.

What to hand back

  • What it does. What changed, including the part that isn't obvious.
  • The one fact it's safe because of. State it, say which step you got it to, and show the proof. If you couldn't prove it, write unproven.
  • Risks. Each names how it breaks, the file:line, how likely and how bad, and how to check. Paste the proof for the ones that matter.
  • Cleared. What you checked and why it's fine.
  • Before you merge. The cheapest test or repro that catches the real bug, including the script you wrote.

Write it through unslop, cite real code, and strip anything private before it goes anywhere public.

Reply: the writeup above, with the one safety fact either proven or marked unproven.