Safety analysis before refactoring -- dependency graph, test coverage, public API exposure, blast radius verdict.
How this skill is triggered — by the user, by Claude, or both
Slash command
/better-code-review-graph:refactor-checkThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Analyze whether a refactoring is safe BEFORE making changes. Produces a verdict with specific risks and mitigation steps.
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 |
npx claudepluginhub n24q02m/claude-plugins --plugin better-code-review-graphSafe refactoring workflow using trace-mcp — assess risk, find candidates, check impact, and rename symbols across all files without missing import sites or cross-file references.
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.