Applies Martin Fowler's refactoring catalog and Clean Code principles to improve code structure, reduce complexity, and eliminate code smells in any language.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pproenca-dot-skills-1:refactorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
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.
Reference these guidelines when:
| 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- |
struct-extract-method - Extract Method for Long Functionsstruct-single-responsibility - Apply Single Responsibility Principlestruct-extract-class - Extract Class from Large Classstruct-compose-method - Compose Method for Readable Flowstruct-function-length - Keep Functions Under 20 Linesstruct-replace-method-with-object - Replace Method with Method Objectstruct-parameter-object - Introduce Parameter Objectcouple-dependency-injection - Use Dependency Injectioncouple-hide-delegate - Hide Delegate to Reduce Couplingcouple-remove-middle-man - Remove Middle Man When Excessivecouple-feature-envy - Fix Feature Envy by Moving Methodscouple-interface-segregation - Apply Interface Segregation Principlecouple-preserve-whole-object - Preserve Whole Object Instead of Fieldsname-intention-revealing - Use Intention-Revealing Namesname-avoid-abbreviations - Avoid Abbreviations and Acronymsname-consistent-vocabulary - Use Consistent Vocabularyname-searchable-names - Use Searchable Namesname-avoid-encodings - Avoid Type Encodings in Namescond-guard-clauses - Replace Nested Conditionals with Guard Clausescond-polymorphism - Replace Conditional with Polymorphismcond-decompose - Decompose Complex Conditionalscond-consolidate - Consolidate Duplicate Conditional Fragmentscond-special-case - Introduce Special Case Objectcond-lookup-table - Replace Conditional with Lookup Tablepattern-strategy - Extract Strategy for Algorithm Variantspattern-template-method - Use Template Method for Shared Skeletonpattern-factory - Use Factory for Complex Object Creationpattern-open-closed - Apply Open-Closed Principlepattern-composition-over-inheritance - Prefer Composition Over Inheritancepattern-extract-superclass - Extract Superclass for Common Behaviordata-encapsulate-collection - Encapsulate Collectiondata-replace-primitive - Replace Primitive with Objectdata-encapsulate-record - Encapsulate Record into Classdata-split-variable - Split Variable with Multiple Assignmentsdata-replace-temp-with-query - Replace Temp with Queryerror-exceptions-over-codes - Use Exceptions Instead of Error Codeserror-custom-exceptions - Create Domain-Specific Exception Typeserror-fail-fast - Fail Fast with Preconditionserror-separate-concerns - Separate Error Handling from Business Logicmicro-remove-dead-code - Remove Dead Codemicro-inline-variable - Inline Trivial Variablesmicro-simplify-expressions - Simplify Boolean Expressionsmicro-rename-for-clarity - Rename for ClarityRead individual reference files for detailed explanations and code examples:
references/{prefix}-{slug}.mdFor the complete guide with all rules expanded: AGENTS.md
npx claudepluginhub joshuarweaver/cascade-code-general-misc-1 --plugin pproenca-dot-skills-1Applies disciplined refactoring in small, verifiable steps to improve code structure without changing behavior: extract functions, rename, move code.
Proven refactoring patterns (Extract Method, Replace Temp, Introduce Parameter Object) to improve code structure safely. Use when improving existing code while keeping behavior unchanged.
Surgical refactoring improves maintainability without changing behavior: extracts functions, renames variables, breaks god functions, boosts type safety, fixes code smells, applies patterns. For gradual cleanups of hard-to-maintain code.