mhattingpete/code-refactor
Perform bulk code refactoring operations like renaming variables/functions across files, replacing patterns, and updating API calls. Use when users request renaming identifiers, replacing deprecated code patterns, updating method calls, or making consistent changes across multiple locations.
npx skills add https://github.com/mhattingpete/claude-skills-marketplace --skill code-refactor
Systematic code refactoring across files. Auto-switches to execution mode for 10+ files (90% token savings).
code-execution skillExecution example (50 files):
from api.code_transform import rename_identifier
result = rename_identifier('.', 'oldName', 'newName', '**/*.py')
# Returns: {'files_modified': 50, 'total_replacements': 247}
# ~500 tokens vs ~25,000 tokens traditional
Grep(pattern="getUserData", output_mode="files_with_matches") # Find files
Grep(pattern="getUserData", output_mode="content", -n=true, -B=2, -A=2) # Verify with context
Edit(
file_path="src/api.js",
old_string="getUserData",
new_string="fetchUserData",
replace_all=true
)
Grep(pattern="getUserData", output_mode="files_with_matches") # Should return none
Grep(pattern="getUserData", output_mode="files_with_matches")replace_all=trueGrep(pattern="\\bvar\\s+\\w+", output_mode="content", -n=true)Edit(old_string="var count = 0", new_string="let count = 0")npm run lintGrep(pattern="/api/auth/login", output_mode="content", -n=true)Edit(old_string="'/api/auth/login'", new_string="'/api/v2/authentication/login'", replace_all=true)Planning:
Safe Process:
Edge Cases:
Edit with replace_all:
replace_all=true: Replace all occurrencesreplace_all=false: Replace only first (or fail if multiple)Grep patterns:
-n=true: Show line numbers-B=N, -A=N: Context lines-i=true: Case-insensitivetype="py": Filter by file typeTake mhattingpete/code-refactor from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.