Code Refactor
Systematic code refactoring across files. Auto-switches to execution mode for 10+ files (90% token savings).
Mode Selection
- •1-9 files: Use native tools (Grep + Edit with replace_all)
- •10+ files: Automatically use
code-executionskill
Execution example (50 files):
python
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
When to Use
- •"rename [identifier] to [new_name]"
- •"replace all [pattern] with [replacement]"
- •"refactor to use [new_pattern]"
- •"update all calls to [function/API]"
- •"convert [old_pattern] to [new_pattern]"
Core Workflow (Native Mode)
1. Find All Occurrences
code
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
2. Replace All Instances
code
Edit( file_path="src/api.js", old_string="getUserData", new_string="fetchUserData", replace_all=true )
3. Verify Changes
code
Grep(pattern="getUserData", output_mode="files_with_matches") # Should return none
Workflow Examples
Rename Function
- •Find:
Grep(pattern="getUserData", output_mode="files_with_matches") - •Count: "Found 15 occurrences in 5 files"
- •Replace in each file with
replace_all=true - •Verify: Re-run Grep
- •Suggest: Run tests
Replace Deprecated Pattern
- •Find:
Grep(pattern="\\bvar\\s+\\w+", output_mode="content", -n=true) - •Analyze: Check if reassigned (let) or constant (const)
- •Replace:
Edit(old_string="var count = 0", new_string="let count = 0") - •Verify:
npm run lint
Update API Calls
- •Find:
Grep(pattern="/api/auth/login", output_mode="content", -n=true) - •Replace:
Edit(old_string="'/api/auth/login'", new_string="'/api/v2/authentication/login'", replace_all=true) - •Test: Recommend integration tests
Best Practices
Planning:
- •Find all instances first
- •Review context of each match
- •Inform user of scope
- •Consider edge cases (strings, comments)
Safe Process:
- •Search → Find all
- •Analyze → Verify appropriate
- •Inform → Tell user scope
- •Execute → Make changes
- •Verify → Confirm applied
- •Test → Suggest running tests
Edge Cases:
- •Strings/comments: Ask if should update
- •Exported APIs: Warn of breaking changes
- •Case sensitivity: Be explicit
Tool Reference
Edit with replace_all:
- •
replace_all=true: Replace all occurrences - •
replace_all=false: Replace only first (or fail if multiple) - •Must match EXACTLY (whitespace, quotes)
Grep patterns:
- •
-n=true: Show line numbers - •
-B=N, -A=N: Context lines - •
-i=true: Case-insensitive - •
type="py": Filter by file type
Integration
- •test-fixing: Fix broken tests after refactoring
- •code-transfer: Move refactored code
- •feature-planning: Plan large refactorings