What is blast-radius-analyzer?
Use BEFORE editing shared code — enumerates every call site, event consumer, queue worker, API client, migration, and test that a planned change will touch, with a file:line citation per dependency.
event4u-app/agent-config
Use BEFORE editing shared code — enumerates every call site, event consumer, queue worker, API client, migration, and test that a planned change will touch, with a file:line citation per dependency.
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/blast-radius-analyzer"Quick start
Install it or open the source, trigger it with a clear task, then follow the source workflow.
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/blast-radius-analyzer"Use blast-radius-analyzer to help me with: [describe your task]. Before you begin, tell me what input you need, the steps you will follow, and the expected output.
No structured workflow was detected; follow the original SKILL.md below.
Continue to the workflowDirect answers
Use BEFORE editing shared code — enumerates every call site, event consumer, queue worker, API client, migration, and test that a planned change will touch, with a file:line citation per dependency.
It is relevant to workflows involving Testing, Engineering, Research.
SkillSignal detected this source-specific command: npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/blast-radius-analyzer". Inspect the repository and command before running it.
The upstream source does not declare a dedicated Agent platform.
No obvious permission action was detected by the static rules. This is not proof that the Skill is safe.
This page combines upstream documentation with deterministic repository, quality, and static-risk signals. It is not described as a manual test or security review.
SkillSignal brief
Use BEFORE editing shared code — enumerates every call site, event consumer, queue worker, API client, migration, and test that a planned change will touch, with a file:line citation per dependency.
Useful in these contexts
Core capabilities
Distilled from the source
About 5 min · 8 sections
Before editing a method, class, or DB column used by more than one caller
Before changing an event payload, queue job shape, or scheduled command
Before renaming, deleting, or changing the signature of any public API
Before altering a migration, seeder, or shared factory/fixture
Skill and Change — one-line edit summary
Direct dependencies — grouped by class, each with file:line citations and exact counts
Indirect dependencies — 2nd-order only, bounded
Quality breakdown
Based on traceable docs and repository signals; stars are not treated as quality.
Compare before choosing
These links are selected from shared tasks, functions, stacks, platforms, and same-name variants. Compare the source owner, documentation, permissions, and maintenance signals.
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
Use when the user says "review the design", "check the UI", or wants a comprehensive UI/UX review. Uses a 7-phase methodology covering interaction, responsiveness, accessibility, and more.
Use when the user shares a Sentry error, Jira bug ticket, or error description and wants root cause analysis. Also for proactive bug hunting and code audits for hidden bugs.
Build, inspect, test, and analyze bounded process-based discrete-event simulations with SimPy, including events, resources, interrupts, monitoring, replications, warm-up, and reproducible output analysis.
Use when PHPStan, Rector, or ECS output appears — "phpstan says mixed", type errors, "fix code style", "run rector" — even when Eloquent/Laravel/model code is also mentioned.
You are an analyst specialized in change-impact analysis. Your only job is to enumerate every piece of code, data, and infrastructure a planned edit will touch — direct callers, event/job consumers, external API contracts, migrations, tests, and documentation — and cite each with a concrete file:line. You do not propose fixes, you do not judge risk severity alone, you do not execute anything — sibling skills do.
Do NOT use when:
data-flow-mapperthreat-modelingjudge-bug-hunter and siblingssystematic-debuggingName the exact symbol, column, or contract under change — e.g. "rename
Order::grandTotal() to Order::totalCents()" or "drop column
users.legacy_ref". If the change is unclear, stop and ask. Do not map
an imagined refactor.
Run grep/search for the exact symbol, column, or event name. Enumerate:
| Dependency class | What to collect |
|---|---|
| Call sites | Every invocation: file:line + containing function/class |
| Overrides | Subclasses, trait users, interface implementations |
| Tests | Tests that exercise the symbol directly |
| Factories / seeders | Code that constructs or populates the target |
| DB references | Foreign keys, indexes, views, triggers on the column |
| Config / docs | YAML, JSON, Markdown that name the symbol |
For each direct dependency, identify second-order fan-out:
Stop at second order unless a caller is itself heavily fanned-out (call it out explicitly — don't silently chase cascades).
For every dependency, mark:
local (≤3 sites) · module (one module/bounded context) ·
cross-module (multiple bounded contexts) · external (public API, queue
consumer, other service, persisted data)Via memory-access call
retrieve(types=["ownership"], keys=<changed paths + changed symbol>, limit=5). Surface:
docs/decisions/INDEX.md and
cite the ADR number + the decision verbatim so the report is self-auditing.owner hint candidates when
the direct grep had no result.Memory entries are supplementary, never authoritative: a grep miss is still a grep miss. Do not infer dependencies from memory alone.
Before finalizing the report, confirm:
7 call sites, not severalexternal reach has at least one named owner hint or an explicit
"owner unknown — ask"Skill: blast-radius-analyzer
Change: <one-line description of the planned edit>
Direct dependencies (N total):
- Call sites (N):
<file:line> <containing function/class> reach: <local|module|cross-module|external>
...
- Overrides (N):
<file:line> <subclass/trait/impl>
- Tests (N): <file:line list>
- Factories / seeders (N): <file:line list>
- DB refs (N): <file:line or schema object>
- Config / docs (N): <file:line list>
Indirect dependencies (2nd order, bounded):
- Events → listeners: <event name> → <listener file:line>
- Jobs → workers: <job name> → <worker file:line>
- API → clients: <endpoint> → <resource/spec file:line>
Reach summary:
local: N · module: N · cross-module: N · external: N
Risk surfaces:
- Signature break: <list>
- Behavior change: <list>
- Data migration: <list>
- Contract change: <list>
Open questions:
- <anything grep could not resolve or owners unknown>
Required fields (ordered):
Runtime confirmation (e.g. "actually run the test suite to see what breaks", "diff the OpenAPI spec") is a follow-up for the implementer — this skill does not execute code, run tests, or touch the network.
call_user_func, event names as
strings, DI-container string lookups (Laravel resolve($classString), NestJS moduleRef.get()). Grep the string too, not just the symbol.$model->{$field} or query builder ->get([...])
with variable arrays. A column rename can leak through these."about 10 callers" is not a blast radius. Count exact.safe out of politeness when external reach exists — mark it clearlydata-flow-mapper,
threat-modeling,
systematic-debugging — sibling analysis skills.