refactor

📁 pproenca/dot-skills 📅 Jan 22, 2026
68
总安装量
68
周安装量
#3229
全站排名
安装命令
npx skills add https://github.com/pproenca/dot-skills --skill refactor

Agent 安装分布

claude-code 54
codex 46
opencode 46
gemini-cli 45
github-copilot 38

Skill 文档

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:

Full Compiled Document

For the complete guide with all rules expanded: AGENTS.md