refactor-verify
Installation
SKILL.md
refactor-verify
The operator asked for a change that's supposed to preserve behavior — a refactor, a rename, a split, an extract, a dead-code deletion. Your job is to prove that behavior was preserved, not just produce a diff that looks right.
Behavior-preserving changes are the single biggest source of silent regressions when an LLM touches code. The classic failure is: the AI moves a function, updates the definition, and misses one of several call sites. The tests still pass because coverage was never complete. No one notices until a user hits the broken path.
This skill exists to stop that from happening. It covers two change families:
- Structural refactors — move, rename, split, merge, extract, inline. The behavior is supposed to be identical afterward.
- Safe deletions — removing code the operator has confirmed is dead (usually via
fight-repo-rot). The behavior is supposed to be identical because the code wasn't running.
Both families use the same four verification checks.
The invariant
A change is not done until all four of these pass: