refactor
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 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 Object
2. Coupling & Dependencies (CRITICAL)
couple-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 Fields
3. Naming & Clarity (HIGH)
name-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 Names
4. Conditional Logic (HIGH)
cond-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 Table
5. Abstraction & Patterns (MEDIUM-HIGH)
pattern-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 Behavior
6. Data Organization (MEDIUM)
data-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 Query
7. Error Handling (MEDIUM)
error-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 Logic
8. Micro-Refactoring (LOW)
micro-remove-dead-code– Remove Dead Codemicro-inline-variable– Inline Trivial Variablesmicro-simplify-expressions– Simplify Boolean Expressionsmicro-rename-for-clarity– Rename for Clarity
How to Use
Read individual reference files for detailed explanations and code examples:
- Section definitions – Category structure and impact levels
- Rule template – Template for adding new rules
- Individual rules:
references/{prefix}-{slug}.md
Full Compiled Document
For the complete guide with all rules expanded: AGENTS.md