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.