Borrowing it
Nothing to install: this file belongs to cognitx-leyton/codegraph. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/cognitx-leyton/codegraph/main/.claude/commands/blast-radius.mdgit clone --depth 1 https://github.com/cognitx-leyton/codegraphWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/cognitx-leyton/codegraph/blast-radius)<a href="https://agentmods.dev/commands/cognitx-leyton/codegraph/blast-radius"><img src="https://agentmods.dev/badge/commands/cognitx-leyton/codegraph/blast-radius/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/cognitx-leyton/codegraph/blast-radius"><img src="https://agentmods.dev/badge/commands/cognitx-leyton/codegraph/blast-radius.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00024 | $0.00839 |
| Opus 5.5 | $0.00010 | $0.00336 |
| Sonnet 5.5 | $0.00005 | $0.00168 |
| Haiku 4.5 | $0.00002 | $0.00084 |
Grade A, and why
blast-radius scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 67 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Usage
/blast-radius <SymbolName>
Returns every site that would break (or need updating) if you changed the named symbol. Unions five edge kinds in a single query:
| Edge | Captures |
|---|---|
IMPORTS_SYMBOL |
Files that explicitly import the symbol by name |
CALLS |
Methods that call a method of that name (typed or name-based resolution) |
EXTENDS |
Subclasses that'd break if the base changes |
INJECTS |
NestJS DI consumers |
RENDERS |
React components that render the symbol |
Run it before any rename / move / delete. If nothing comes back, the symbol is safe to touch. If many callers come back, you're probably looking at a staged migration.
What this does
codegraph query "
MATCH (caller:File)-[r:IMPORTS_SYMBOL]->(source:File)
WHERE r.symbol = '$ARGUMENTS'
RETURN 'IMPORTS_SYMBOL' AS edge, caller.path AS caller, '' AS caller_sym, source.path AS defined_in, r.symbol AS symbol
UNION ALL
MATCH (caller:Method)-[c:CALLS]->(target:Method)
WHERE target.name = '$ARGUMENTS'
RETURN 'CALLS' AS edge, caller.file AS caller, caller.name AS caller_sym, target.file AS defined_in, target.name AS symbol
UNION ALL
MATCH (sub:Class)-[:EXTENDS]->(parent:Class)
WHERE parent.name = '$ARGUMENTS'
RETURN 'EXTENDS' AS edge, sub.file AS caller, sub.name AS caller_sym, parent.file AS defined_in, parent.name AS symbol
UNION ALL
MATCH (consumer:Class)-[:INJECTS]->(injected:Class)
WHERE injected.name = '$ARGUMENTS'
RETURN 'INJECTS' AS edge, consumer.file AS caller, consumer.name AS caller_sym, injected.file AS defined_in, injected.name AS symbol
UNION ALL
MATCH (parent:Function)-[:RENDERS]->(child:Function)
WHERE child.name = '$ARGUMENTS'
RETURN 'RENDERS' AS edge, parent.file AS caller, parent.name AS caller_sym, child.file AS defined_in, child.name AS symbol
LIMIT 200
"
The --json flag is optional; add it for machine-parseable output. The default-rendered Rich table is easier to eyeball.
Caveats
- Name collisions are a feature. If two classes share a name in different packages, both show up. That's usually what you want when assessing blast radius.
- Python CALLS is method-only. The resolver wires Python
CALLSedges from method bodies; module-level function → method calls aren't tracked (Stage 1 limitation). Callers that live in a top-level function may be missed. - Aliased re-exports. If
pkg/__init__.pyre-exportsFooand another file doesfrom pkg import Foo, theIMPORTS_SYMBOLedge points at the re-export, not the original definition — you'll see both in the blast-radius output. - 200-row limit. Raise the
LIMIT 200at the bottom of the query if you hit it on a very-central symbol.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago First seen · 67 lines · 24 tokens per session scan A 6a8e085fe38f
blast-radius is a command published in the GitHub repository cognitx-leyton/codegraph (12 stars, last pushed 3mo ago), licensed Apache-2.0. It adds 24 tokens to every session and 839 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
grasp-build-graph
Run graspanalyze + graspminimalcontext for the current repo, store the sessionid, and report a 100-token orientation.
feedback
A design-stage security review for product requirement documents and other planning documents; a PRD is a document describing what a product should do.
va
A read-only security review of a codebase across eight architecture areas, with findings checked against file-and-line evidence.
compliance
A follow-up security check that verifies whether earlier findings were fixed and, depending on the selected mode, looks for new problems.
pentest
A read-only penetration-testing command for examining source code from an attacker’s perspective and producing proof-of-concept checks. Penetration testing is authorized security testing that tries to verify exploitable weaknesses.
run
A security-workflow coordinator that turns a natural-language request into a plan involving code review, verification, attack testing, or reporting.