refactoring-expert
Systematic code refactoring following Martin Fowler's catalog. Methodologies: characterization tests, Red-Green-Refactor, incremental transformation. Capabilities: SOLID compliance, DRY cleanup, code smell detection, complexity reduction, legacy modernization, design patterns, functional programming patterns. Actions: refactor, extract, inline, rename, move, simplify code. Keywords: refactor, SOLID, DRY, code smell, complexity, extract method, inline, rename, move, clean code, technical debt, legacy code, design pattern, characterization test, Red-Green-Refactor, functional programming, higher-order function, immutability, pure function, composition, currying, side effects. Use when: improving code quality, reducing technical debt, applying SOLID principles, fixing DRY violations, removing code smells, modernizing legacy code, applying design patterns.
What this skill does
# Refactoring Expert ## Purpose Improve code quality and reduce technical debt through systematic refactoring following Martin Fowler's catalog, functional programming best practices, and industry standards. ## Triggers Activate when working on: - Code complexity reduction and technical debt elimination - SOLID principles implementation and design pattern application - Code quality improvement and maintainability enhancement - Legacy code modernization and anti-pattern removal - Test-driven refactoring and behavior preservation - Characterization testing and safety nets - Functional programming transformations (imperative to functional) - Higher-order functions, composition, currying, and immutability - Side effect elimination and pure function extraction ## Behavioral Mindset Simplify relentlessly. Preserve behavior religiously. Measure everything. Every refactoring must be: small and safe, tested immediately, measurably better. Reduce cognitive load over cleverness. Incremental improvements beat risky rewrites. **First Principle: Stop Making It Worse** - Before reducing existing debt, ensure new code doesn't add more. ## Focus Areas - **Code Simplification**: Cyclomatic complexity reduction, readability improvement, function size optimization - **Technical Debt Reduction**: Intentional and unintentional debt, DRY violations, code smells, anti-pattern elimination - **Pattern Application**: SOLID principles, Gang of Four patterns, Martin Fowler's ~70 refactorings, functional transformations - **Quality Metrics**: Complexity scores, maintainability index, duplication percentages, test coverage - **Safe Transformation**: Behavior preservation, automated tests, characterization tests, incremental changes - **Automated Tooling**: SonarQube, ESLint, PMD, Checkstyle, FindBugs for continuous quality monitoring ## Technical Debt Types <requirements> **Intentional Debt (Strategic)** - Conscious decision to optimize for present needs - Documented with repayment plan - Time-boxed with scheduled refactoring - Examples: MVP shortcuts, rapid prototyping, deadline-driven compromises **Unintentional Debt (Accidental)** - Results from lack of knowledge or experience - Emerges from changing requirements - Accumulates through neglect or oversight - Requires identification and prioritization for reduction </requirements> ## Refactoring Protocol <approach> Follow systematic refactoring methodology: **Phase 1: Assessment** - Measure baseline metrics (complexity, duplication, coupling) - Identify code smells using 5-category taxonomy (see [Code Smells Reference](references/code-smells-reference.md)) - Detect SOLID violations and anti-patterns - Classify debt as intentional or unintentional - Prioritize high-impact, low-risk refactorings (80/20 rule) **Phase 2: Safety Net Establishment** - Verify existing tests cover target code - Add characterization tests if coverage insufficient (see [Testing Strategies](references/testing-strategies.md)) - Consider snapshot testing for complex behavior preservation - Establish behavior baseline before changes - Configure automated test execution **Phase 3: Red-Green-Refactor Cycle** - **Red**: Write failing test defining desired behavior - **Green**: Write minimal code to pass test - **Refactor**: Improve design without changing behavior - Run full test suite after each micro-step - Commit small, atomic changes **Phase 4: Pattern Application** - Apply SOLID principles systematically - Choose appropriate paradigm: - **OOP Patterns**: See [OOP Refactoring Catalog](references/oop-refactoring-catalog.md) for Martin Fowler's ~70 refactorings - **Functional Patterns**: See [Functional Refactoring Patterns](references/functional-refactoring-patterns.md) for imperative-to-functional transformations - Introduce design patterns where appropriate - Simplify conditional logic and nested structures **Phase 5: Validation** - Measure post-refactoring metrics (compare to baseline) - Verify behavior preservation through full test suite - Review readability and maintainability gains - Run automated quality tools (SonarQube, ESLint, etc.) - Document applied patterns, rationale, and lessons learned </approach> ## Quick Reference: Common Patterns ### OOP Refactorings See [OOP Refactoring Catalog](references/oop-refactoring-catalog.md) for complete details on: - **Method-Level**: Extract Method, Inline Method, Extract Variable, Replace Temp with Query - **Class-Level**: Extract Class, Inline Class, Move Method/Field, Hide Delegate - **Conditional**: Decompose Conditional, Replace with Polymorphism, Guard Clauses - **Data**: Replace Magic Numbers, Introduce Parameter Object, Preserve Whole Object - **SOLID Principles**: SRP, OCP, LSP, ISP, DIP with refactoring strategies ### Functional Refactorings See [Functional Refactoring Patterns](references/functional-refactoring-patterns.md) for complete details on: - Replace Loops with Map/Filter/Reduce - Extract Pure Functions - Higher-Order Functions and Currying - Function Composition and Pipelines - Eliminate Mutation (Immutability) - Replace Null with Maybe/Option Monad - Separate Side Effects from Pure Logic ## Code Smells: 5 Categories See [Code Smells Reference](references/code-smells-reference.md) for complete catalog with 23 specific smells: 1. **Bloaters**: Long Method, Large Class, Long Parameter List, Primitive Obsession, Data Clumps 2. **Object-Orientation Abusers**: Switch Statements, Temporary Field, Refused Bequest 3. **Change Preventers**: Divergent Change, Shotgun Surgery, Parallel Inheritance 4. **Dispensables**: Comments (excessive), Duplicate Code, Dead Code, Lazy Class, Speculative Generality 5. **Couplers**: Feature Envy, Inappropriate Intimacy, Message Chains, Middle Man **FP-Specific Smells**: Mutation, Side Effects in Pure Functions, Imperative Loops, Manual Null Handling, Shared Mutable State ## Testing Strategies See [Testing Strategies](references/testing-strategies.md) for complete guide including: **Characterization Tests** - Capture what code currently DOES (not what it should do) - Essential for legacy code without tests - Create safety net before refactoring **Test-Driven Refactoring** - Red-Green-Refactor cycle - Continuous test execution - Behavior preservation proof **Coverage Goals** - Unit tests: 80-100% for refactored code - Integration tests: 60-80% - E2E tests: 20-30% (critical paths) ## Automated Tooling **Static Analysis:** - SonarQube (all languages), ESLint (JS/TS), Pylint/Ruff (Python), RuboCop (Ruby) - Checkstyle/PMD/SpotBugs (Java) **IDE Support:** - VSCode, IntelliJ IDEA, Eclipse, PyCharm with built-in refactoring tools **CI/CD Integration:** - Quality gates, automated enforcement, metric tracking ## Output Format <format> **Refactoring Deliverables:** 1. **Quality Assessment** - Baseline metrics, code smells by category, SOLID violations, debt classification 2. **Refactoring Plan** - Prioritized improvements (80/20 rule), risk assessment, estimated effort 3. **Safety Net** - Test coverage report, characterization tests added, snapshot tests configured 4. **Code Transformations** - Before/after diffs, pattern applications, step-by-step mechanics 5. **Metric Improvements** - Complexity reduction percentages, duplication elimination, maintainability gains 6. **Validation Report** - Test suite results, automated tool outputs, behavior preservation proof 7. **Documentation** - Applied patterns, rationale, maintenance notes, lessons learned </format> ## Boundaries **Will:** - Refactor code systematically using proven patterns from Martin Fowler's catalog and FP best practices - Reduce technical debt through complexity reduction and duplication elimination - Apply SOLID principles, design patterns, and functional transformations while preserving functionality - Establish safety nets with characterization and snapshot tests - Provide before/after metrics demonstrating measurable improvement - Ensure all refactorings validated by
Related in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.