Source profileQuality 96/100Review permissions

event4u-app/agent-config/src/skills/blast-radius-analyzer/SKILL.md

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.

Source repository stars
9
Declared platforms
0
Static risk flags
1
Last source update
2026-08-28
Source checked
2026-08-28

Decision brief

What it does: where it fits

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 wit…

Best for

  • 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

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/blast-radius-analyzer"
Safe inspection promptEditorial

Inspect the Agent Skill "blast-radius-analyzer" from https://github.com/event4u-app/agent-config/blob/6a5670b7881a676c0da90d2afb950298087c4ccb/src/skills/blast-radius-analyzer/SKILL.md at commit 6a5670b7881a676c0da90d2afb950298087c4ccb. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Procedure

    Name the exact symbol, column, or contract under change — e.g. "rename Order::grandTotal() to Order::totalCents()" or "drop column users.legacyref". If the change is unclear, stop and ask. Do not map an imagined refactor.

    Events emitted by the changed code → listeners and queued jobsJobs dispatched → workers, failed-job handlers, schedulersAPI responses → OpenAPI spec, resource classes, external clients
  2. 02

    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…

    Before editing a method, class, or DB column used by more than one callerBefore changing an event payload, queue job shape, or scheduled commandBefore renaming, deleting, or changing the signature of any public API
  3. 03

    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.legacyref". If the change is unclear, stop and ask. Do not map an imagined refactor.

    Name the exact symbol, column, or contract under change — e.g. "rename Order::grandTotal() to Order::totalCents()" or "drop column users.legacyref". If the change is unclear, stop and ask. Do not map an imagined refacto…
  4. 04

    2. Identify direct dependencies

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

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

    3. Inspect indirect dependencies

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

    Events emitted by the changed code → listeners and queued jobsJobs dispatched → workers, failed-job handlers, schedulersAPI responses → OpenAPI spec, resource classes, external clients

Permission review

Static risk signals and limitations

Runs scripts

medium · line 185

The documentation asks the agent to run terminal commands or scripts.

npx turbo run test --filter=...[HEAD^1]

Runs scripts

medium · line 188

The documentation asks the agent to run terminal commands or scripts.

npx nx affected -t test

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score96/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars9SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
event4u-app/agent-config
Skill path
src/skills/blast-radius-analyzer/SKILL.md
Commit
6a5670b7881a676c0da90d2afb950298087c4ccb
License
MIT
Collected
2026-08-28
Default branch
main
View the original SKILL.md

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

Monorepo

In a workspace repository the reach of an edit does not stop at the workspace that contains it. A file under packages/ui that three apps import has a blast radius of four workspaces, and the grep sweep above will not find the edge — the importing code says @org/ui, not a path.

Before editing a file in a workspace other workspaces depend on, name the affected set. Ask the task runner, which computes it from the real graph:

# Turborepo — everything affected by the working tree vs the previous commit
npx turbo run test --filter=...[HEAD^1]

# Nx
npx nx affected -t test

...[HEAD^1] is the dependents form: ... ahead of the selector means "and everything that depends on it". Without it you get the changed package alone, which is the answer that looks right and misses the point.

With no runner installed, walk it in reverse from the manifests: find the edited file's owning workspace name, then grep every other workspace's package.json for that name. Those are the first-order dependents; repeat once for second order, and stop there per the 2nd-order rule above. monorepo-workspace § 4 prints that graph.

Report the affected set as workspace names with the manifest that declares each edge, exactly as the reach table above reports file:line — an affected set without its citing edge is the same unverifiable claim in coarser units.

References

Frequently asked questions

What to verify before installation and use

What does the blast-radius-analyzer source document cover?

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 wit…

How do I install blast-radius-analyzer?

The source record exposes this install command: npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/blast-radius-analyzer". Inspect the command and pinned source before running it.

Which permission-related actions were detected?

Static rules flagged exec-script in the source; the page lists the matching lines and excerpts.

Alternatives

Compare before choosing

Computed 10045,960

coreyhaines31/marketingskills

ab-testing

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

Computed 10025,136

alirezarezvani/claude-skills

app-store-optimization

App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

Computed 100147

equinor/neqsim

neqsim-professional-reporting

Engineering deliverable quality — the nine analytical-depth moves (contributor ranking, adjudicating the source document, quantitative rule-outs, robustness crossover, conservatism direction, discriminating test), results.json schema, figure→discussion→linked_results traceability, evidence matrices, assumptions/gaps registers, citation conventions, KaTeX math formatting, units consistency, executive-summary structure, AACE class declaration. USE WHEN: producing a task report, a PEPR/M1/root-caus

Computed 100133

JasonColapietro/suede-creator-skills

suede-ab-testing

Suede-owned experimentation discipline for hypotheses, sample sizing, test duration, significance, and repeatable experiment programs. Use when comparing variants, deciding whether a result is reliable, or building an experiment backlog and cadence. NOT FOR: analytics instrumentation (use suede-analytics), post-click conversion diagnosis (use suede-site-alchemy), or writing the variant copy itself (use suede-copy).