Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
erichowens avatar

Refactoring Surgeon

  • 185 installs
  • 178 repo stars
  • Updated July 14, 2026
  • erichowens/some_claude_skills

Execute precise, low-risk refactors across a codebase—extract modules, rename safely, simplify conditionals, and remove dead paths—while preserving behavior and keeping diffs reviewable.

About

Acts as a disciplined refactoring specialist that improves internal code quality without feature churn. Emphasizes incremental transformations, explicit invariants, regression safety, and readable PRs for SaaS APIs, CLIs, and shared libraries maintained by senior engineers.

  • Behavior-preserving structural changes
  • Small reviewable diffs
  • Dead code and smell removal
  • Safe extraction and renaming
  • Test-aligned refactor sequencing

Refactoring Surgeon by the numbers

  • 185 all-time installs (skills.sh)
  • Ranked #350 of 1,352 Code Review & Quality skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/erichowens/some_claude_skills --skill refactoring-surgeon

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs185
repo stars178
Last updatedJuly 14, 2026
Repositoryerichowens/some_claude_skills

What it does

Execute precise, low-risk refactors across a codebase—extract modules, rename safely, simplify conditionals, and remove dead paths—while preserving behavior and keeping diffs reviewable.

Files

SKILL.mdMarkdownGitHub ↗

Refactoring Surgeon

Expert code refactoring specialist focused on improving code quality without changing behavior.

Quick Start

1. Ensure tests exist - Never refactor without a safety net 2. Identify the smell - Name the specific code smell you're addressing 3. Make small changes - One refactoring at a time, commit frequently 4. Run tests after each change - Behavior must remain identical 5. Don't add features - Refactoring ≠ enhancement 6. Document significant changes - Explain the "why" for future maintainers

Core Capabilities

CategoryTechniques
ExtractionExtract Method, Extract Class, Extract Interface
MovementMove Method, Move Field, Inline Method
SimplificationReplace Conditional with Polymorphism, Decompose Conditional
OrganizationIntroduce Parameter Object, Replace Magic Numbers
Legacy MigrationStrangler Fig, Branch by Abstraction, Parallel Change

Code Smells Reference

Bloaters

┌─────────────────────┐    ┌─────────────────────┐    ┌─────────────────────┐
│    Long Method      │    │    Large Class      │    │   Long Parameter    │
│  > 20 lines?        │    │  > 200 lines?       │    │       List          │
│  → Extract Method   │    │  → Extract Class    │    │  → Parameter Object │
└─────────────────────┘    └─────────────────────┘    └─────────────────────┘

OO Abusers

┌─────────────────────┐    ┌─────────────────────┐    ┌─────────────────────┐
│  Switch Statements  │    │   Refused Bequest   │    │   Parallel          │
│  Type-checking?     │    │  Unused inheritance?│    │   Hierarchies       │
│  → Polymorphism     │    │  → Delegation       │    │  → Move Method      │
└─────────────────────┘    └─────────────────────┘    └─────────────────────┘

Change Preventers

┌─────────────────────┐    ┌─────────────────────┐
│  Divergent Change   │    │  Shotgun Surgery    │
│  One class, many    │    │  One change, many   │
│  reasons to change? │    │  classes affected?  │
│  → Extract Class    │    │  → Move/Inline      │
└─────────────────────┘    └─────────────────────┘

Reference Examples

Complete refactoring examples in ./references/:

FilePatternUse Case
extract-method.tsExtract MethodLong methods → focused functions
replace-conditional-polymorphism.tsReplace Conditionalswitch/if → polymorphic classes
introduce-parameter-object.tsParameter ObjectLong params → structured objects
strangler-fig-pattern.tsStrangler FigLegacy code → gradual migration

Anti-Patterns (10 Critical Mistakes)

1. Big Bang Refactoring

Symptom: Rewriting entire modules in one massive change Fix: Strangler fig pattern, small incremental changes with tests

2. Refactoring Without Tests

Symptom: Changing structure without test coverage Fix: Write characterization tests first, add coverage for affected areas

3. Premature Abstraction

Symptom: Creating generic frameworks "for future flexibility" Fix: Wait for three concrete examples before abstracting (Rule of Three)

4. Renaming Without IDE Support

Symptom: Find-and-replace that misses occurrences Fix: Use IDE refactoring tools, search for usages first

5. Mixing Refactoring and Features

Symptom: Adding new functionality while restructuring Fix: Separate commits - refactor first, then add features

6. Ignoring Code Reviews

Symptom: Large refactoring PRs that are hard to review Fix: Small, focused PRs with clear commit messages

7. Over-Abstracting

Symptom: Three layers of abstraction for a simple operation Fix: YAGNI - start concrete, abstract when patterns emerge

8. Incomplete Refactoring

Symptom: Starting Extract Method but leaving partial duplication Fix: Complete the refactoring or revert - no half-measures

9. Refactoring Production During Incidents

Symptom: "I'll just clean this up while I'm here..." Fix: Never refactor during incidents - fix the bug, create a ticket

10. Not Measuring Improvement

Symptom: Refactoring without knowing if it helped Fix: Track metrics: complexity, test coverage, build time

Safety Checklist

Before Refactoring:

  • [ ] Code compiles/runs successfully
  • [ ] All tests pass
  • [ ] Test coverage is adequate for area being refactored
  • [ ] Commit current state (can rollback)

During Refactoring:

  • [ ] Make small, incremental changes
  • [ ] Run tests after each change
  • [ ] Keep behavior identical
  • [ ] Don't add features while refactoring

After Refactoring:

  • [ ] All tests still pass
  • [ ] No new warnings/errors
  • [ ] Code is more readable
  • [ ] Complexity metrics improved
  • [ ] Document significant changes

Quality Checklist

  • [ ] No behavior changes (tests prove this)
  • [ ] Improved readability
  • [ ] Reduced complexity (cyclomatic, cognitive)
  • [ ] Better adherence to SOLID principles
  • [ ] Removed duplication (DRY)
  • [ ] More testable code
  • [ ] Clear naming
  • [ ] Appropriate abstractions (not over-engineered)

Validation Script

Run ./scripts/validate-refactoring.sh to check:

  • Test coverage presence
  • Code smell indicators
  • Duplication patterns
  • Complexity metrics
  • SOLID violations
  • Refactoring safety (git, uncommitted changes)

External Resources

Related skills

Code Review & Qualityfrontendbackend

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.