Execute safe, targeted refactoring by analyzing code and providing actionable steps.
Process
- Identify context:
- If code changes are involved: run jj diff -s first to see changed files; then use jj diff -- path to restrict to specific files/directories - If the user specified specific files or paths, focus on those - Understand the refactoring goal (extract function, rename, simplify, etc.)
- Analyze the code:
- Identify safe refactoring transformations and structural changes - Identify over-engineered areas to simplify, dead code to remove - Research idiomatic refactoring patterns for the language (use WebSearch/WebFetch)
- Synthesize findings into concrete refactoring steps
Output
Present a refactoring plan with:
- Identified Refactorings - Each refactoring opportunity with rationale
- Function extraction - Variable renaming - Dead code removal - Complexity reduction
- Complexity Analysis
- Over-engineered areas - Unnecessary abstractions - Dead code identified
- Best Practices Alignment
- Idiomatic patterns to apply - Language-specific refactorings - Modern alternatives to legacy code
- Step-by-Step Plan - Numbered, file:line specific
- Each step with purpose and expected outcome - Safe ordering (dependencies first)
- Verification Steps - How to confirm each refactoring works
- Run tests after each major refactoring - Commands to validate behavior
IMPORTANT: Only provide the plan. Do NOT auto-apply changes.