Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
日本語の概要は準備中です。原文の説明を表示しています。
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.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
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 clearlyIn 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.
data-flow-mapper,
threat-modeling,
systematic-debugging — sibling analysis skills.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.
日本語の概要は準備中です。原文の説明を表示しています。
Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.
日本語の概要は準備中です。原文の説明を表示しています。
Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.
日本語の概要は準備中です。原文の説明を表示しています。
Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.
日本語の概要は準備中です。原文の説明を表示しています。