refactor
Code refactoring best practices based on Martin Fowler's catalog and Clean Code principles (formerly refactoring). This skill should be used when refactoring existing code, improving code structure, reducing complexity, eliminating code smells, or reviewing code for maintainability. Triggers on task
By pproenca · 596 installs
npx skills add pproenca/dot-skills --skill refactor
Source repository · Upstream listing
Fowler/Martin Code Refactoring Best Practices
Comprehensive code refactoring guide based on Martin Fowler's catalog and Clean Code principles, designed for AI agents and LLMs. Contains 43 rules across 8 categories, prioritized by impact to guide automated refactoring and code generation.
When to Apply
Reference these guidelines when:
Refactoring existing code to improve maintainability
Decomposing long methods or large classes
Reducing coupling between components
Simplifying complex conditional logic
Reviewing code for code smells and anti patterns
Rule Categories by Priority
Priority Category Impact Prefix
1 Structure & Decomposition CRITICAL struct
2 Coupling & Dependencies CRITICAL couple
3 Naming & Clarity HIGH name
4 Conditional Logic HIGH cond
5 Abstraction & Patterns MEDIUM HIGH pattern
6 Data Organization MEDIUM data
7 Error Handling MEDIUM error
8 Micro Refactoring LOW micro
Quick Reference
1. Structure & Decomposition (CRITICAL)
struct extract method Extract Method for Long Functions
struct single responsibility Apply Single Responsibility Principle
struct extract class Extract Class from Large Class
struct compose method Compose Method for Readable Flow
struct function length Keep Functions Under 20 Lines
struct replace method with object Replace Method with Method Object
struct parameter object Introduce Parameter Object
2. Coupling & Dependencies (CRITICAL)
couple dependency injection Use Dependency Injection
couple hide delegate Hide Delegate to Reduce Coupling
couple remove middle man Remove Middle Man When Excessive
couple feature envy Fix Feature Envy by Moving Methods
couple interface segregation Apply Interface Segregation Principle
couple preserve whole object Preserve Whole Object Instead of Fields
3. Naming & Clarity (HIGH)
name intention revealing Use Intention Revealing Names
name avoid abbreviations Avoid Abbreviations and Acronyms
name consistent vocabulary Use Consistent Vocabulary
name searchable names Use Searchable Names
name avoid encodings Avoid Type Encodings in Names
4. Conditional Logic (HIGH)
cond guard clauses Replace Nested Conditionals with Guard Clauses
cond polymorphism Replace Conditional with Polymorphism
cond decompose Decompose Complex Conditionals
cond consolidate Consolidate Duplicate Conditional Fragments
cond special case Introduce Special Case Object
cond lookup table Replace Conditional with Lookup Table
5. Abstraction & Patterns (MEDIUM HIGH)
pattern strategy Extract Strategy for Algorithm Variants
pattern template method Use Template Method for Shared Skeleton
pattern factory Use Factory for Complex Object Creation
pattern open closed Apply Open Closed Principle
pattern composition over inheritance Prefer Composition Over Inheritance
pattern extract superclass Extract Superclass for Common Behavior
6. Data Organization (MEDIUM)
data encapsulate collection Encapsulate Collection
data replace primitive Replace Primitive with Object
data encapsulate record Encapsulate Record into Class
data split variable Split Variable with Multiple Assignments
data replace temp with query Replace Temp with Query
7. Error Handling (MEDIUM)
error exceptions over codes Use Exceptions Instead of Error Codes
error custom exceptions Create Domain Specific Exception Types
error fail fast Fail Fast with Preconditions
error separate concerns Separate Error Handling from Business Logic
8. Micro Refactoring (LOW)
micro remove dead code Remove Dead Code
micro inline variable Inline Trivial Variables
micro simplify expressions Simplify Boolean Expressions
micro rename for clarity Rename for Clarity
How to Use
Read individual reference files for detailed explanations and code examples:
[Section definitions](references/ sections.md) Category structure and impact levels
[Rule template](assets/templates/ template.md) Template for adding new rules
Individual rules: references/{prefix} {slug}.md
Full Compiled Document
For the complete guide with all rules expanded: AGENTS.md