npx skills add ...
npx skills add pproenca/dot-skills --skill 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 tasks involving extract method, rename, decompose conditional, reduce coupling, or improve readability.
npx skills add pproenca/dot-skills --skill refactor
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