| name | refactoring-code |
| description | Improve code structure without changing behavior. Use when code is hard to read, modify, or test. Covers Extract Method, Rename, and other safe refactorings. |
| allowed-tools | Read, Write, Edit, Bash, Glob, Grep |
Refactoring Code
The Refactoring Hat
When refactoring, you change structure without changing behavior. Always have tests passing before and after.
Workflows
Common Refactorings
Extract Method
When a code block does one thing, extract it to a named method.
- Use Grep to verify extraction won't break callers
- Extract the method
- Run tests
Rename for Clarity
Names should reveal intent.
- Use Grep to find ALL usages
- Use Edit with replace_all for codebase-wide rename
- Verify no missed references
Remove Dead Code
- Use Grep to verify code is unused
- If zero references, safe to remove
- If references exist, trace to understand usage
Code Smells to Address
- Long Method: Extract smaller methods
- Long Parameter List: Introduce parameter object
- Duplicate Code: Extract to shared function (use Grep to locate duplicates)
- Feature Envy: Move method to the class it uses most
- Data Clumps: Group related data into objects
- Primitive Obsession: Replace primitives with value objects
Safety Rules
- Never refactor and add features simultaneously
- Always use Grep to find all usages before removing/renaming
- Run tests after every change
- Use targeted Edit operations instead of broad find-replace
- Commit working states frequently