event4u-app/agent-config

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.

96Collecting
See how to use itView GitHub source
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/blast-radius-analyzer"

Quick start

Start using it in three steps

Install it or open the source, trigger it with a clear task, then follow the source workflow.

1

Install the Skill

npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/blast-radius-analyzer"
2

Describe the task

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.

3

Follow the workflow

No structured workflow was detected; follow the original SKILL.md below.

Continue to the workflow

Direct answers

Answers to review before you install

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.

Who should use blast-radius-analyzer?

It is relevant to workflows involving Testing, Engineering, Research.

How do you install blast-radius-analyzer?

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.

Which Agent platforms does it support?

The upstream source does not declare a dedicated Agent platform.

What permissions or risks should you review?

No obvious permission action was detected by the static rules. This is not proof that the Skill is safe.

What are the current evidence limits?

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

Decide whether it fits your work first

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

Not yet included in a workflow collection

Core capabilities

TestingEngineeringResearch

Distilled from the source

Understand this Skill in one minute

About 5 min · 8 sections

When it is worth using

  1. Before editing a method, class, or DB column used by more than one caller

  2. Before changing an event payload, queue job shape, or scheduled command

  3. Before renaming, deleting, or changing the signature of any public API

  4. Before altering a migration, seeder, or shared factory/fixture

Examples and typical usage

  1. Skill and Change — one-line edit summary

  2. Direct dependencies — grouped by class, each with file:line citations and exact counts

  3. Indirect dependencies — 2nd-order only, bounded

Repository stars
7
Repository forks
1
Quality
96/100
Source repository last pushed

Quality breakdown

Based on traceable docs and repository signals; stars are not treated as quality.

96/100
Documentation26/30
Specificity25/25
Maintenance20/20
Trust signals25/25

Compare before choosing

Related Agent Skills and source variants

These links are selected from shared tasks, functions, stacks, platforms, and same-name variants. Compare the source owner, documentation, permissions, and maintenance signals.

View original Skill.mdThis page is parsed directly from the repository SKILL.md without editorial rewriting. Collected: Jul 28, 2026 · about 5 min

blast-radius-analyzer

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.

When to use

  • 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
  • When the implementer says "just a quick rename" of something non-local

Do NOT use when:

  • The target is a truly local symbol (private method called in one file) — skip, it has no blast radius
  • You need to trace how one data element flows — route to data-flow-mapper
  • You need abuse-case modelling — route to threat-modeling
  • You need a diff-level review — route to judge-bug-hunter and siblings
  • You need to root-cause an existing bug — route to systematic-debugging

Procedure

1. Pin the change under analysis

Name 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.

2. Identify direct dependencies

Run grep/search for the exact symbol, column, or event name. Enumerate:

Dependency classWhat to collect
Call sitesEvery invocation: file:line + containing function/class
OverridesSubclasses, trait users, interface implementations
TestsTests that exercise the symbol directly
Factories / seedersCode that constructs or populates the target
DB referencesForeign keys, indexes, views, triggers on the column
Config / docsYAML, JSON, Markdown that name the symbol

3. Inspect indirect dependencies

For each direct dependency, identify second-order fan-out:

  • Events emitted by the changed code → listeners and queued jobs
  • Jobs dispatched → workers, failed-job handlers, schedulers
  • API responses → OpenAPI spec, resource classes, external clients
  • DB schema → migrations that assume the column exists, seeders, reports

Stop at second order unless a caller is itself heavily fanned-out (call it out explicitly — don't silently chase cascades).

4. Score reach and surface risks

For every dependency, mark:

  • Reach: local (≤3 sites) · module (one module/bounded context) · cross-module (multiple bounded contexts) · external (public API, queue consumer, other service, persisted data)
  • Risk type: signature break · behavior change · data migration · contract change · flaky test surface · none
  • Owner hint: module path, codeowner, or team if discoverable

5. Consult engineering memory

Via memory-access call retrieve(types=["ownership"], keys=<changed paths + changed symbol>, limit=5). Surface:

  • Architecture decisions that constrain the planned change — check the ADR index docs/decisions/INDEX.md and cite the ADR number + the decision verbatim so the report is self-auditing.
  • Ownership matches — add these as 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.

Validation

Before finalizing the report, confirm:

  1. Every listed dependency has a file:line citation — no bare filenames
  2. Call-site count is exact — the output says 7 call sites, not several
  3. Second-order fan-out is bounded — any runaway chain is flagged, not expanded
  4. Every external reach has at least one named owner hint or an explicit "owner unknown — ask"
  5. You have NOT invented dependencies that grep did not find
  6. You have NOT merged direct and indirect dependencies — they are listed separately

Output format

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):

  1. Skill and Change — one-line edit summary
  2. Direct dependencies — grouped by class, each with file:line citations and exact counts
  3. Indirect dependencies — 2nd-order only, bounded
  4. Reach summary — counts per reach level
  5. Risk surfaces — dependencies grouped by risk type
  6. Open questions — unresolved items with grep evidence

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.

Gotcha

  • Reflection / string-based dispatchcall_user_func, event names as strings, DI-container string lookups (Laravel resolve($classString), NestJS moduleRef.get()). Grep the string too, not just the symbol.
  • Dynamic column access$model->{$field} or query builder ->get([...]) with variable arrays. A column rename can leak through these.
  • Trait / mixin fan-out — overriding a method pulled in via trait affects every class using the trait. Enumerate trait users.
  • Migration ordering — the column exists in migration X; migration Y later renames it. Both must change together.
  • Stopping at first order — renaming an event without updating the queued job class-name serializer silently drops jobs. Always check event/job fan-out.
  • Counting fuzzily"about 10 callers" is not a blast radius. Count exact.

Do NOT

  • NEVER return safe out of politeness when external reach exists — mark it clearly
  • NEVER silently fall back to "module-level impact" when grep shows cross-module callers
  • NEVER claim a dependency without a file:line citation from grep output
  • NEVER chase dependencies past 2nd order without explicit scope approval — flag and stop

References

Skill path
src/skills/blast-radius-analyzer/SKILL.md
Commit SHA
0adf49a8ae84
Repository license
MIT
Data collected