Safety analysis before refactoring -- dependency graph, test coverage, public API exposure, blast radius verdict.
npx claudepluginhub n24q02m/claude-plugins --plugin better-code-review-graphThis skill uses the workspace's default tool permissions.
Analyze whether a refactoring is safe BEFORE making changes. Produces a verdict with specific risks and mitigation steps.
Analyzes impact of changes to files, APIs, components, or models. Provides dependency analysis, risk assessment, breaking changes, migration checklist, and test coverage gaps before modifications.
Analyzes impact of changing a function by listing direct callers, affected files, dependencies, and risk assessment. Useful when refactoring or assessing code changes.
Verifies TypeScript refactor safety by tracing call chains, checking import cycles, assessing module boundaries, and listing references before renaming, moving modules, or changing interfaces.
Share bugs, ideas, or general feedback.
Analyze whether a refactoring is safe BEFORE making changes. Produces a verdict with specific risks and mitigation steps.
Get the full dependency graph for the target:
graph(action="update") to ensure graph is currentquery(action="query", pattern="callers_of", target="<name>") -- who calls thisquery(action="query", pattern="callees_of", target="<name>") -- what this callsquery(action="query", pattern="imports_of", target="<name>") -- what this importsquery(action="query", pattern="inheritors_of", target="<name>") and query(action="query", pattern="children_of", target="<name>")Identify test coverage:
query(action="query", pattern="tests_for", target="<name>") -- direct teststests_for to see if callers have integration tests covering this function indirectlyFlag public API exposure:
__init__.py, index.ts, or similarEstimate blast radius:
query(action="impact", target="<name>") -- full impact analysisProduce verdict:
## Refactor Safety: <name>
### Target
- **Location**: <file_path>:<line>
- **Type**: function / class / method
- **Public API**: Yes / No
### Dependency Summary
- **Callers**: N functions depend on this
- **Callees**: Calls M other functions
- **Inheritance**: N subclasses (if class)
### Test Coverage
- **Direct tests**: N tests
- **Caller tests**: M/K callers have tests covering this path
- **Coverage gaps**: <list uncovered callers>
### Blast Radius
- **Impacted files**: N
- **Impacted functions**: M
- **Max depth**: K hops
### Verdict: SAFE / NEEDS MIGRATION / DANGEROUS
**SAFE** -- Low blast radius (<5 files), good test coverage, no public API exposure.
Make the change, run tests, done.
**NEEDS MIGRATION** -- Public API or moderate blast radius (5-15 files).
Recommended approach:
1. Create new version alongside old
2. Migrate callers incrementally
3. Deprecate old version
4. Remove after all callers migrated
**DANGEROUS** -- High blast radius (>15 files), poor test coverage, or public API with external consumers.
Specific risks:
- <risk 1 with affected files>
- <risk 2 with affected files>
Mitigation: <steps to reduce risk before proceeding>
| Condition | Verdict |
|---|---|
| <5 impacted files, not public API, >80% caller test coverage | SAFE |
| 5-15 impacted files OR public API with known consumers | NEEDS MIGRATION |
| >15 impacted files OR public API with unknown consumers OR <50% test coverage | DANGEROUS |
| Any external package/library depends on it | DANGEROUS |