with one click
check-impact
// Analyze what existing code and specs a proposed change will affect. Use before implementing a spec to understand blast radius, identify risks, and find specs that need updating.
// Analyze what existing code and specs a proposed change will affect. Use before implementing a spec to understand blast radius, identify risks, and find specs that need updating.
Break down a spec into child specs — either design specs (non-leaf, need further iteration) or implementation tasks (leaf, ready to dispatch). Automatically determines breakdown mode from spec lifecycle state, or accepts an explicit override. Use when a spec needs decomposition.
Dispatch a validated spec to the task board. Validates prerequisites, resolves dependency wiring, creates the task, and updates the spec's dispatched_task_id atomically. Also supports undispatching (cancel + clear link). Use when a spec is ready for execution.
Implement a design spec from specs/ — reads the spec, plans the work, implements each item with tests and docs, then commits. Use when the user says "implement spec", "build spec", or references a spec file to implement.
Report current status across all specs — what's done, in progress, blocked, and what's next. Reads reality (spec files, task files, git history) instead of relying on manually maintained status tables.
Validate all specs against the document model rules — check required frontmatter fields, valid status/track/effort values, DAG acyclicity, dispatch consistency, orphan detection, and status consistency. Use to catch structural issues across the spec tree.
Compare a completed task's implementation against its source spec. Produces a structured divergence report — which acceptance criteria were satisfied, which diverged, and what was implemented but unspecified. Appends an Outcome section to the spec. Use after a dispatched task completes.
| name | check-impact |
| description | Analyze what existing code and specs a proposed change will affect. Use before implementing a spec to understand blast radius, identify risks, and find specs that need updating. |
| argument-hint | <spec-file.md> |
| allowed-tools | Read, Grep, Glob, Agent, Bash(git log *), Bash(ls *) |
Analyze the blast radius of a spec before implementation. Identify what existing code, tests, specs, and documentation will be affected.
Extract the spec file path from the first token.
title,
status, track, depends_on, affects, effort.affects list from frontmatter as the primary set of code files and
directories this spec touches.For each file, type, or function the spec plans to modify:
Use Agent subagents (Explore type) for parallel searches across independent packages. Launch up to 3 concurrently.
For each interface or exported type the spec modifies:
Use two complementary approaches:
depends_on scanGrep all spec files for depends_on entries that reference this spec's path.
These are specs that directly depend on this one. For each:
status — if validated or later, it may be affected by changes.complete, flag it as potentially needing a
stale review.affects overlap scanGrep all spec files for affects entries that reference the same code paths
as this spec. Specs with overlapping affects may conflict even without an
explicit depends_on edge.
Follow the reverse depends_on graph transitively: if spec A depends on this
spec, and spec B depends on A, then B is transitively affected. Report both
direct and transitive dependents.
Grep all other spec files for references to:
Scan documentation files for references to things being changed:
CLAUDE.md — API routes, env vars, CLI flags, key files list.docs/guide/*.md — user-facing documentation.docs/internals/*.md — technical documentation.README.md at project root if it exists.Flag any doc sections that reference modified APIs, types, or behaviors.
## Impact Analysis: <spec-name>
### Direct Changes
Files the spec explicitly modifies:
- <file> — <what changes>
### Ripple Effects
Files not in the spec but affected by the changes:
- <file> — uses <thing being changed>, may need: <what>
- <file> — imports <package being changed>, may need: <what>
### Interface Changes
- <interface/type> — <N> implementations, <N> callers
Breaking: <yes/no>, affected files: <list>
### Cross-Spec Impact
- <other-spec> — references <thing>, needs: <update/no action>
### Documentation Updates Needed
- <doc-file> — mentions <thing being changed>
### Test Impact
- <N> test files in affected packages
- <N> test functions reference modified code
- Packages with no tests in affected area: <list>
### Risk Assessment
- **Blast radius:** <Small (1-3 files) | Medium (4-10) | Large (10+)>
- **Breaking changes:** <None | <list>>
- **Highest risk area:** <description of what's most likely to break>
### Recommendations
- <actions to take before or during implementation>