Blast radius
Skill athola/claude-night-market/plugins/pensive/skills/blast-radius
23 Claude Code plugins: TDD enforcement hooks, git/PR workflows, spec-driven development, code review, project lifecycle, fix-from-error, maintenance automation, context optimization, research, and multi-LLM delegation. 186 skills, 128 commands, 54 agents.
npx -y skills add athola/claude-night-market --skill blast-radiusAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Analyzes code change impact with risk scoring and affected-node mapping. Use before merging to understand what a change touches and what lacks test coverage.
SKILL.md
4.9 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
Blast Radius Analysis
Analyze the impact of current code changes using the code knowledge graph.
When NOT To Use
- Reading the changed code for defects (use
pensive:bug-review) - The code graph is missing or stale (use
gauntlet:graph-build)
Prerequisites
This skill requires the gauntlet plugin for graph data. Check if it's available:
GRAPH_QUERY=$(find ~/.claude/plugins -name "graph_query.py" -path "*/gauntlet/*" 2>/dev/null | head -1)
If gauntlet is not installed (GRAPH_QUERY is empty):
Fall back to a manual impact analysis using git diff
and grep to trace imports and call sites. Skip graph
steps and go directly to step 3 (manual mode).
If gauntlet is installed but no graph.db exists:
Tell the user: "Run /gauntlet-graph build first."
Steps
-
Show current changes: Run
git diff --statto show the user what files changed. -
Run impact analysis (requires gauntlet):
python3 "$GRAPH_QUERY" \ --action impact --base-ref HEAD --depth 2Fallback tier 1 (sem available, no gauntlet): Use sem for cross-file dependency tracing:
if command -v sem &>/dev/null; then sem impact --json <changed-file> fiThis traces real function-level dependencies instead of filename matching. See
leyline:sem-integrationfor detection patterns.Fallback tier 2 (no sem, no gauntlet): Trace callers of changed functions with rg (or grep):
# Prefer rg for speed; fall back to grep if command -v rg &>/dev/null; then git diff --name-only HEAD | while read f; do stem="${f%.*}"; stem="${stem##*/}" [ -z "$stem" ] && continue # skip dotfiles (.gitignore etc.) rg -l "$stem" . 2>/dev/null done | sort -u else git diff --name-only HEAD | while read f; do stem="${f%.*}"; stem="${stem##*/}" [ -z "$stem" ] && continue # skip dotfiles (.gitignore etc.) grep -rl "$stem" . 2>/dev/null done | sort -u fiNote: this searches all file types. For Python-only projects, add
--type pytorgor--include="*.py"togrepto reduce false positives. -
Display results in priority order:
Format the output as a table:
Risk | Node | File | Anchor | Reason 0.85 | auth.py::verify_token | auth.py:45 | `def verify_token(token):` | untested, security 0.62 | db.py::execute_query | db.py:112 | `cursor.execute(query, params)` | high fan-in 0.41 | api.py::handle_request | api.py:78 | `def handle_request(req):` | flow participantThe
Anchorcolumn is the verbatim source text at the cited line. It lets a reviewer confirm the finding without re-running the tool. -
Highlight untested functions: List any affected functions that lack test coverage (no TESTED_BY edge).
-
Show overall risk: Display the overall risk level (low/medium/high) based on the maximum risk score.
-
Suggest actions:
- For high-risk nodes: "Consider adding tests before merging"
- For security-sensitive nodes: "Review authentication and authorization logic carefully"
- For high-fan-in nodes: "Changes here affect many callers; verify backward compatibility"
Verify Findings Are Grounded (blast-radius:findings-verified)
Every finding must cite a real location and a verbatim anchor. Write
findings to .review/findings.json and confirm each citation resolves:
python plugins/imbue/scripts/citation_verifier.py \
--findings .review/findings.json --repo-root .
Drop or label UNVERIFIED any finding the verifier fails (exit 1); only
verified findings enter the report. See Skill(imbue:review-core) Step 5
and Skill(imbue:structured-output) for the schema.
Exit Criteria
- Results table lists every affected node with a
File(file:line) and verbatimAnchorcolumn. - Overall risk level (low/medium/high) is displayed based on the maximum risk score.
- Every reported finding carries a
Location+ verbatimAnchorconfirmed bycitation_verifier.py(exit0), or unverified findings were dropped or labeledUNVERIFIED.
Risk Scoring Model
Five weighted factors (sum capped at 1.0):
| Factor | Weight | Meaning |
|---|---|---|
| Test gap | 0.30 | No test coverage |
| Security | 0.20 | Auth/crypto/SQL keywords |
| Flow participation | 0.25 | Part of execution flows |
| Cross-community | 0.15 | Called from other modules |
| Caller count | 0.10 | High fan-in function |