assess-impact
Assess Impact
Section titled “Assess Impact”HARD GATE — Run this skill before
plan-workwhenever 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.
- 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
Section titled “Process”1. Identify the target
Section titled “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
Section titled “2. Find dependents”grep -rn "[symbol-name]" . --include="*.ts" | grep -v node_modulesgit log --oneline -10 -- [file-path]→ verify: grep -rn "[target]" . | wc -l
3. Map to release plan stories
Section titled “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: grep -c "Story" specs/release-plan.yaml + epic capsule directories 2>/dev/null || echo "no release plan"
4. List test coverage
Section titled “4. List test coverage”Find tests that exercise the target:
grep -rn "[symbol-name]" . --include="*.test.*" --include="*.spec.*"→ verify: grep -rn "[target]" . --include="*.test.*" | wc -l
5. Classify risk
Section titled “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
Section titled “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
Section titled “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.