Blast radius
Find what a change breaks somewhere else, before it ships. Listing the callers is not the job. The job is the breakage grep will not show you.
Use repo evidence first. Codebase Memory if a project exists for cwd. Do not invoke /why, /arena, or /unslop. Optional multi-candidate compare follows ~/.config/opencode/bestfriend/rules/arena-protocol.md inline and only for a wide change.
Don't trust your own 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.
- You said so. Worthless on its own.
- You pointed at the line. A real
file:line.
- You showed the bad case cannot happen. You walked the failure and it does not reach.
- You ran it. A script or test that calls the real code and fails loud if you are wrong.
- You reproduced it in the running app.
Any safety fact you cannot get to step 4, say so out loud. Do not write it up as settled.
Steps
- Read the change. The diff, the symbols it adds, changes, and deletes, and what it now does differently. Use git /
gh if authenticated. Do not invoke /why.
- Find the one fact it is safe because of. Spend time here, not on a long list of maybes.
- Look where grep stops. Read the library you call, pinned version, local patch. Follow JSON, DB columns, wire formats, feature flags, code three hops downstream.
- Be honest about each risk. Real chance, real cost. Cite a real
file:line. Never invent a caller or an API.
- Prove the one fact. Write a script or test that runs the real code, run it, and paste what happened. If you cannot prove it cheaply, mark it unproven.
- For a big or wide change, optionally follow the arena protocol inline (same prompt, isolated candidates, one judge). Do not invoke
/arena. Missing model-pool → inherit-parent + MODEL_DIVERSITY=false.
What to hand back
- What it does. What changed, including the part that is not obvious.
- The one fact it is safe because of. State it, say which step you got it to, and show the proof. If you could not prove it, write unproven.
- Risks. Only the real ones. Each names how it breaks, the
file:line, how likely and how bad, and how to check.
- Cleared. What you checked and why it is fine.
- Before you merge. The cheapest test or repro that catches the real bug.
Cite real code. Strip anything private before it goes anywhere public.
1---2name: blast-radius3description: Find what a change could break somewhere else before it ships, and prove the one safety fact by running real code. Use for /blast-radius, 'what could this break', or reviewing a small diff you do not trust. Manual only.4---56# Blast radius78Find what a change breaks somewhere else, before it ships. Listing the callers is not the job. The job is the breakage grep will not show you.910Use repo evidence first. Codebase Memory if a project exists for cwd. Do not invoke `/why`, `/arena`, or `/unslop`. Optional multi-candidate compare follows `~/.config/opencode/bestfriend/rules/arena-protocol.md` **inline** and only for a wide change.1112## Don't trust your own writeup1314Find the one or two facts the whole thing depends on and prove them by running code.1516### How sure are you1718For each fact the change's safety depends on, get it as far down this list as is cheap, and say where it stopped.19201. You said so. Worthless on its own.212. You pointed at the line. A real `file:line`.223. You showed the bad case cannot happen. You walked the failure and it does not reach.234. You ran it. A script or test that calls the real code and fails loud if you are wrong.245. You reproduced it in the running app.2526Any safety fact you cannot get to step 4, say so out loud. Do not write it up as settled.2728## Steps29301. Read the change. The diff, the symbols it adds, changes, and deletes, and what it now does differently. Use git / `gh` if authenticated. Do not invoke `/why`.312. Find the one fact it is safe because of. Spend time here, not on a long list of maybes.323. Look where grep stops. Read the library you call, pinned version, local patch. Follow JSON, DB columns, wire formats, feature flags, code three hops downstream.334. Be honest about each risk. Real chance, real cost. Cite a real `file:line`. Never invent a caller or an API.345. Prove the one fact. Write a script or test that runs the real code, run it, and paste what happened. If you cannot prove it cheaply, mark it unproven.356. For a big or wide change, optionally follow the arena protocol inline (same prompt, isolated candidates, one judge). Do not invoke `/arena`. Missing model-pool → inherit-parent + `MODEL_DIVERSITY=false`.3637## What to hand back3839- **What it does.** What changed, including the part that is not obvious.40- **The one fact it is safe because of.** State it, say which step you got it to, and show the proof. If you could not prove it, write unproven.41- **Risks.** Only the real ones. Each names how it breaks, the `file:line`, how likely and how bad, and how to check.42- **Cleared.** What you checked and why it is fine.43- **Before you merge.** The cheapest test or repro that catches the real bug.4445Cite real code. Strip anything private before it goes anywhere public.