← Back to Skills Marketplace
soponcd

Code Refactoring

by soponcd · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
383
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install code-refactoring
Description
Code refactoring patterns and techniques for improving code quality without changing behavior. Use for cleaning up legacy code, reducing complexity, or impro...
README (SKILL.md)

Code Refactoring

Refactoring Principles

When to Refactor

  • Before adding new features (make change easy, then make easy change)
  • After getting tests passing (red-green-refactor)
  • When you see code smells
  • During code review feedback

When NOT to Refactor

  • Without tests covering the code
  • Under tight deadlines with no safety net
  • Code that will be replaced soon
  • When you don't understand what the code does

Common Code Smells

Long Methods

// BEFORE: Method doing too much
function processOrder(order: Order) {
  // 100 lines of validation, calculation, notification, logging...
}

// AFTER: Extract into focused methods
function processOrder(order: Order) {
  validateOrder(order);
  const total = calculateTotal(order);
  saveOrder(order, total);
  notifyCustomer(order);
}

Deeply Nested Conditionals

// BEFORE: Arrow code
function getDiscount(user: User, order: Order) {
  if (user) {
    if (user.isPremium) {
      if (order.total > 100) {
        if (order.items.length > 5) {
          return 0.2;
        }
      }
    }
  }
  return 0;
}

// AFTER: Early returns (guard clauses)
function getDiscount(user: User, order: Order) {
  if (!user) return 0;
  if (!user.isPremium) return 0;
  if (order.total \x3C= 100) return 0;
  if (order.items.length \x3C= 5) return 0;
  return 0.2;
}

Primitive Obsession

// BEFORE: Primitives everywhere
function createUser(name: string, email: string, phone: string) {
  if (!email.includes('@')) throw new Error('Invalid email');
  // more validation...
}

// AFTER: Value objects
class Email {
  constructor(private value: string) {
    if (!value.includes('@')) throw new Error('Invalid email');
  }
  toString() { return this.value; }
}

function createUser(name: string, email: Email, phone: Phone) {
  // Email is already validated
}

Feature Envy

// BEFORE: Method uses another object's data extensively
function calculateShipping(order: Order) {
  const address = order.customer.address;
  const weight = order.items.reduce((sum, i) => sum + i.weight, 0);
  const distance = calculateDistance(address.zip);
  return weight * distance * 0.01;
}

// AFTER: Move method to where the data is
class Order {
  calculateShipping() {
    return this.totalWeight * this.customer.shippingDistance * 0.01;
  }
}

Refactoring Techniques

Extract Method

// Identify a code block that does one thing
// Move it to a new method with a descriptive name
// Replace original code with method call

function printReport(data: ReportData) {
  // Extract this block...
  const header = `Report: ${data.title}\
Date: ${data.date}\
${'='.repeat(40)}`;
  console.log(header);

  // ...into a method
  printHeader(data);
}

Replace Conditional with Polymorphism

// BEFORE: Switch on type
function getArea(shape: Shape) {
  switch (shape.type) {
    case 'circle': return Math.PI * shape.radius ** 2;
    case 'rectangle': return shape.width * shape.height;
    case 'triangle': return shape.base * shape.height / 2;
  }
}

// AFTER: Polymorphic classes
interface Shape {
  getArea(): number;
}

class Circle implements Shape {
  constructor(private radius: number) {}
  getArea() { return Math.PI * this.radius ** 2; }
}

class Rectangle implements Shape {
  constructor(private width: number, private height: number) {}
  getArea() { return this.width * this.height; }
}

Introduce Parameter Object

// BEFORE: Too many parameters
function searchProducts(
  query: string,
  minPrice: number,
  maxPrice: number,
  category: string,
  inStock: boolean,
  sortBy: string,
  sortOrder: string
) { ... }

// AFTER: Parameter object
interface SearchParams {
  query: string;
  priceRange: { min: number; max: number };
  category?: string;
  inStock?: boolean;
  sort?: { by: string; order: 'asc' | 'desc' };
}

function searchProducts(params: SearchParams) { ... }

Replace Magic Numbers with Constants

// BEFORE
if (user.age >= 18 && order.total >= 50) {
  applyDiscount(order, 0.1);
}

// AFTER
const MINIMUM_AGE = 18;
const DISCOUNT_THRESHOLD = 50;
const STANDARD_DISCOUNT = 0.1;

if (user.age >= MINIMUM_AGE && order.total >= DISCOUNT_THRESHOLD) {
  applyDiscount(order, STANDARD_DISCOUNT);
}

Safe Refactoring Process

  1. Ensure tests exist - Write tests if they don't
  2. Make small changes - One refactoring at a time
  3. Run tests after each change - Catch regressions immediately
  4. Commit frequently - Easy to revert if something breaks
  5. Review the diff - Make sure behavior hasn't changed

Refactoring Checklist

  • Tests pass before starting
  • Each change is small and focused
  • Tests pass after each change
  • No behavior changes (only structure)
  • Code is more readable than before
  • Commit message explains the refactoring
Usage Guidance
This skill appears to be a safe, coherent collection of refactoring patterns and processes. Before applying any automated or agent-suggested refactorings, make sure you have a working test suite and review diffs locally (or in a protected branch) and run tests — the guidance is educational, not an automated code changer. If you plan to allow an agent to modify repositories automatically, restrict that capability and require human review to avoid unintended changes.
Capability Analysis
Type: OpenClaw Skill Name: code-refactoring Version: 1.0.0 The skill bundle is purely educational, providing documentation and examples for code refactoring patterns such as 'Extract Method' and 'Guard Clauses'. It contains no executable code, shell commands, or instructions that could lead to data exfiltration or unauthorized access (SKILL.md).
Capability Assessment
Purpose & Capability
The name and description describe code refactoring patterns and the skill contains only refactoring principles, examples, and a safe refactoring process — no unrelated capabilities or requests are present.
Instruction Scope
SKILL.md stays within scope: it provides examples, techniques, and a checklist for refactoring. It does not instruct the agent to read files, access environment variables, send data to external endpoints, or perform system operations.
Install Mechanism
There is no install specification and no code files — this is instruction-only, so nothing is written to disk or downloaded during install.
Credentials
The skill declares no required environment variables, credentials, or config paths, which is proportionate for a documentation/instruction skill.
Persistence & Privilege
The skill is not marked always:true and does not request elevated persistence or modify other skills or system settings. It is user-invocable and may be invoked by the agent (default behavior), which is expected for skills.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install code-refactoring
  3. After installation, invoke the skill by name or use /code-refactoring
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of the Code Refactoring skill. - Provides practical patterns and techniques for improving code quality without changing behavior. - Covers key refactoring principles, common code smells, and safe refactoring processes. - Includes TypeScript examples for common problems and solutions. - Lists checklists to ensure safe and effective code refactoring.
Metadata
Slug code-refactoring
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Code Refactoring?

Code refactoring patterns and techniques for improving code quality without changing behavior. Use for cleaning up legacy code, reducing complexity, or impro... It is an AI Agent Skill for Claude Code / OpenClaw, with 383 downloads so far.

How do I install Code Refactoring?

Run "/install code-refactoring" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Code Refactoring free?

Yes, Code Refactoring is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Code Refactoring support?

Code Refactoring is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Code Refactoring?

It is built and maintained by soponcd (@soponcd); the current version is v1.0.0.

💬 Comments