APM

>Agent Skill

@dhofheinz/refactor

skilldevelopment

Comprehensive code refactoring operations for improving code quality and maintainability

testing
apm::install
$apm install @dhofheinz/refactor
apm::skill.md
---
description: Comprehensive code refactoring operations for improving code quality and maintainability
---

# Code Refactoring Skill

You are executing a **code refactoring operation** to improve code quality, maintainability, and architecture without changing external behavior.

## Operation Routing

Parse `$ARGUMENTS` to identify the requested operation and parameters:

**Available Operations**:
- `analyze` → Analyze code quality and identify refactoring opportunities
- `extract` → Extract methods, classes, modules, or components
- `patterns` → Introduce design patterns (Factory, Strategy, Observer, etc.)
- `types` → Improve type safety (TypeScript)
- `duplicate` → Eliminate code duplication
- `modernize` → Update legacy code patterns

**Base Directory**: `/home/danie/projects/plugins/architect/open-plugins/plugins/10x-fullstack-engineer/commands/refactor`

## Request Processing

**Received**: `$ARGUMENTS`

**Parse format**:
```
<operation> <parameters>
```

Example arguments:
- `analyze scope:"user authentication module" metrics:"complexity,duplication" depth:"detailed"`
- `extract scope:"UserProfile.tsx" type:"method" target:"validateEmail" reason:"reduce complexity"`
- `patterns scope:"services/" pattern:"dependency-injection" reason:"improve testability"`
- `types scope:"api-client/" strategy:"eliminate-any" strict:"true"`
- `duplicate scope:"src/validators" threshold:"80" strategy:"extract-function"`
- `modernize scope:"legacy-api/" targets:"callbacks-to-async,classes-to-hooks"`

## Pre-Refactoring Safety Checklist

**CRITICAL**: Before ANY refactoring, verify:

1. **Test Coverage**:
   - Existing test coverage is adequate (>70% for code being refactored)
   - All tests currently passing
   - Tests are meaningful and test behavior, not implementation

2. **Version Control**:
   - All changes committed to version control
   - Working on a feature branch (not main/master)
   - Clean working directory (no uncommitted changes)

3. **Backup**:
   - Current state committed with clear message
   - Can easily revert if needed
   - Branch created specifically for this refactoring

4. **Scope Definition**:
   - Clearly defined boundaries of what to refactor
   - No mixing of refactoring with new features
   - Reasonable size for one refactoring session

5. **Risk Assessment**:
   - Understand dependencies and impact
   - Identify potential breaking changes
   - Have rollback plan ready

## Operation Execution

Based on the first word in `$ARGUMENTS`, execute the corresponding operation:

### If operation is "analyze":
Read and execute: `.claude/commands/refactor/analyze.md`

**Purpose**: Analyze code quality, identify code smells, calculate metrics, prioritize refactoring opportunities.

### If operation is "extract":
Read and execute: `.claude/commands/refactor/extract.md`

**Purpose**: Extract methods, classes, modules, components, utilities, or interfaces to improve code organization.

### If operation is "patterns":
Read and execute: `.claude/commands/refactor/patterns.md`

**Purpose**: Introduce design patterns (Factory, Strategy, Observer, Dependency Injection, Repository, etc.) to solve recurring design problems.

### If operation is "types":
Read and execute: `.claude/commands/refactor/types.md`

**Purpose**: Improve type safety by adding types, strengthening types, migrating to TypeScript, eliminating 'any', or adding generics.

### If operation is "duplicate":
Read and execute: `.claude/commands/refactor/duplicate.md`

**Purpose**: Detect and eliminate code duplication through extraction, parameterization, or templating.

### If operation is "modernize":
Read and execute: `.claude/commands/refactor/modernize.md`

**Purpose**: Update legacy code patterns (callbacks→async/await, var→const/let, prototypes→classes, CommonJS→ESM, jQuery→vanilla, classes→hooks).

### If operation is unknown or missing:
Provide operation list and usage examples.

## Error Handling

**Unknown Operation**:
```
Error: Unknown refactoring operation: <operation>

Available operations:
- analyze   - Analyze code quality and identify opportunities
- extract   - Extract methods, classes, modules, components
- patterns  - Introduce design patterns
- types     - Improve type safety (TypeScript)
- duplicate - Eliminate code duplication
- modernize - Update legacy code patterns

Usage: /refactor <operation> <parameters>

Examples:
  /refactor analyze scope:"user-service/" depth:"detailed"
  /refactor extract scope:"UserForm.tsx" type:"component" target:"EmailInput"
  /refactor patterns scope:"services/" pattern:"dependency-injection"
```

**Missing Parameters**:
```
Error: Required parameters missing for <operation>

Expected format: /refactor <operation> scope:"..." [additional-params]

See: /refactor <operation> help
```

**Insufficient Test Coverage**:
```
Warning: Test coverage is below recommended threshold (<70%).

Recommendations:
1. Add tests for code being refactored
2. Reduce refactoring scope to well-tested areas
3. Write tests first, then refactor (Red-Green-Refactor)

Continue anyway? This increases risk of breaking changes.
```

**Uncommitted Changes**:
```
Error: Working directory has uncommitted changes.

Refactoring requires clean version control state for safety.

Action required:
1. Commit current changes: git add . && git commit -m "..."
2. Or stash changes: git stash
3. Create feature branch: git checkout -b refactor/<description>

Then retry refactoring operation.
```

## Integration with 10x-fullstack-engineer Agent

All refactoring operations leverage the **10x-fullstack-engineer** agent for:
- Expert code quality analysis
- Best practice application
- Pattern recognition and recommendation
- Consistency with project standards
- Risk assessment and mitigation
- Test-driven refactoring approach

The agent applies SOLID principles, DRY, YAGNI, and follows the Boy Scout Rule (leave code better than found).

## Refactoring Principles

All operations adhere to:

1. **Preserve Behavior**: External behavior must remain unchanged
2. **Small Steps**: Incremental changes with frequent testing
3. **Test-Driven**: Tests pass before, during, and after refactoring
4. **One Thing at a Time**: Don't mix refactoring with feature development
5. **Frequent Commits**: Commit after each successful refactoring step
6. **Clear Intent**: Each change has clear purpose and benefit
7. **Reversibility**: Easy to revert if something goes wrong
8. **Maintainability First**: Optimize for readability and maintainability

## Usage Examples

**Analyze codebase for refactoring opportunities**:
```bash
/refactor analyze scope:"src/components" metrics:"complexity,duplication,coverage" depth:"detailed"
```

**Extract long method into smaller functions**:
```bash
/refactor extract scope:"UserService.ts" type:"method" target:"validateAndCreateUser" reason:"function is 150 lines, too complex"
```

**Introduce dependency injection pattern**:
```bash
/refactor patterns scope:"services/" pattern:"dependency-injection" reason:"improve testability and flexibility"
```

**Strengthen TypeScript type safety**:
```bash
/refactor types scope:"api/" strategy:"eliminate-any" strict:"true"
```

**Eliminate duplicate validation logic**:
```bash
/refactor duplicate scope:"src/validators" threshold:"75" strategy:"extract-function"
```

**Modernize legacy callback code to async/await**:
```bash
/refactor modernize scope:"legacy-api/" targets:"callbacks-to-async" compatibility:"node14+"
```

## Best Practices

1. **Start Small**: Begin with low-risk, high-value refactorings
2. **Test Continuously**: Run tests after each change
3. **Commit Frequently**: Small commits with clear messages
4. **Pair Review**: Have someone review refactored code
5. **Measure Impact**: Track metrics before and after
6. **Document Why**: Explain reasoning in commits and comments
7. **Avoid Scope Creep**: Stay focused on defined scope
8. **Time Box**: Set time limits for refactoring sessions

## Output

All operations provide detailed reports including:
- Before/after code examples
- Metrics improvement (complexity, coverage, duplication)
- Changes made and reasoning
- Verification steps
- Future refactoring opportunities
- Risk assessment and mitigation

---

**Ready to refactor**: Specify operation and parameters to begin.