Refactor Command
Execute automated refactoring for $ARGUMENTS using refactor:code-simplifier agent.
Pre-operation Checks
Goal: Ensure scope resolution is deterministic before launching the agent.
Actions:
-
Run git rev-parse --is-inside-work-tree and continue even if false when explicit paths are provided
-
Normalize arguments by trimming whitespace and preserving quoted path segments
-
Treat an empty argument list as "recent changes" mode
Phase 1: Determine Target Scope
Goal: Identify files to refactor based on arguments or session context.
Actions:
-
If arguments provided: verify as file/directory paths using Glob
-
If paths exist: use them directly as refactoring scope
-
If paths don't exist: treat arguments as semantic query, search codebase with Grep
-
If no arguments: run git diff --name-only to find recently modified code files
-
If no recent changes found: inform user and exit without refactoring
See references/scope-determination.md for search strategies and edge cases.
Phase 2: Launch Refactoring Agent
Goal: Execute refactor:code-simplifier agent with aggressive mode enabled.
Actions:
-
Launch refactor:code-simplifier agent with target scope and aggressive mode flag
-
Pass scope determination method (paths, semantic query, or session context)
-
Agent auto-loads refactor:best-practices skill and applies language-specific patterns
See references/agent-configuration.md for detailed Task parameters.
Phase 3: Summary
Goal: Report comprehensive summary of changes.
Actions:
-
Report total files refactored and changes categorized by improvement type
-
List best practices applied and legacy code removed
-
Suggest tests to run and provide rollback command tailored to actual scope (for example: git restore --worktree --staged <files> )
See references/output-requirements.md for detailed summary format.
Requirements
-
Execute immediately without user confirmation
-
Refactor ALL matching files when semantic search returns multiple results
-
Direct users to /refactor-project for project-wide scope
-
Preserve behavior and public interfaces unless user explicitly requests a behavior change