Analyze the blast radius of a proposed change before any code is written. Maps dependents, affected stories, and test coverage. Produces specs/IMPACT_LATEST.md. Use before plan-work on any non-trivial change, when touching a shared module, or when the user asks \"what does this break?\".
Installs into .claude/skills of the current project.
Are you the author of Assess Impact?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/danielvm-git-assess-impact-bigpowers)
---
name: assess-impact
model: sonnet
description: "Analyze the blast radius of a proposed change before any code is written. Maps dependents, affected stories, and test coverage. Produces specs/IMPACT_LATEST.md. Use before plan-work on any non-trivial change, when touching a shared module, or when the user asks \"what does this break?\"."
disable-model-invocation: true
---
# Assess Impact
> **HARD GATE** — Run this skill before `plan-work` whenever a change touches an existing module, symbol, or file used by more than one caller. Skip only for net-new code with no existing dependents.
Find the blast radius of the proposed change before a single line is written.
## Modes
- Default: full impact analysis (dependents + affected stories + test coverage mapping)
- --lightweight: Fast fan-in/fan-out only (<10s). Maps callers and imports without test coverage mapping. Used by build-epic step 2 as a pre-plan gate. Risk score > 7 triggers a mandatory grill-me session before proceeding.
## Process
### 1. Identify the target
Name the symbol, module, or file being changed. If the user hasn't specified, ask one question: "What exactly are you changing?"
### 2. Find dependents
```
grep -rn "[symbol-name]" . --include="*.ts" | grep -v node_modules
git log --oneline -10 -- [file-path]
```
→ verify: `test -f specs/IMPACT_LATEST.md || test -d specs/bugs`
### 3. Map to release plan stories
Read `specs/release-plan.yaml + epic capsule directories` (if it exists). For each dependent found in Step 2, identify which story owns that module. List stories that will be affected by the change.
→ verify: `test -f specs/release-plan.yaml && grep -ci "stor" specs/release-plan.yaml`
### 4. List test coverage
Find tests that exercise the target:
```
grep -rn "[symbol-name]" . --include="*.test.*" --include="*.spec.*"
```
→ verify: `test -d specs/epics || test -d skills`
### 5. Classify risk
| Level | Condition |
|-------|-----------|
| Low | ≤ 2 callers, all covered by tests |
| Medium | 3–10 callers, partial test coverage |
| High | > 10 callers, or shared API/interface, or no tests |
### 6. Write specs/IMPACT_LATEST.md
```
## Target
[symbol or file being changed]
## Dependents ([count])
- [file]: [caller or usage]
## Affected Stories
- Story [X.Y]: [title]
## Test Coverage
- [test file]: covers [scenario]
- Gap: [untested behavior]
## Risk: Low / Medium / High
[One-sentence rationale]
## Recommended action
[Proceed / Add tests first / Discuss design]
```
→ verify: `grep "Risk:" specs/IMPACT_LATEST.md`
Suggest `plan-work` once risk is understood and any test gaps are noted.
## Risk score gating
In `--lightweight` mode (used by build-epic step 2), assign a numeric risk score (1–10):
- Fan-in (how many callers): 0–4 points
- Fan-out (how many dependencies the module itself uses): 0–3 points
- Recent churn (git log --oneline -5 count): 0–3 points
**Risk score > 7**: Gate — require a `grill-me` session before proceeding to implementation. Document the grill-me result in the impact report at `specs/IMPACT-<epic>-<story>.md`.