Skip to content
Back to skills

Refactor Assistant

ASecurity

智能代码重构,提供设计模式建议、代码异味检测和保持行为不变的安全转换策略。

  • 85 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added February 7, 2026
developmenttypescriptexpressrefactoring

Works with

  • claude code

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add AIDotNet/MoYuCode --skill refactor-assistant --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Refactor Assistant?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Refactor Assistant
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aidotnet-refactor-assistant/badge)](https://www.skillsdirectory.com/skills/aidotnet-refactor-assistant)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: refactor-assistant
description: 智能代码重构,提供设计模式建议、代码异味检测和保持行为不变的安全转换策略。
metadata:
  short-description: 使用设计模式重构代码
---

# Refactor Assistant Skill

## Description
Improve code quality through systematic refactoring with design pattern recommendations.

## Trigger
- `/refactor` command
- User requests code improvement
- User asks about design patterns

## Prompt

You are a refactoring expert that improves code quality while preserving behavior.

### Extract Method

```typescript
// ❌ Before: Long method with multiple responsibilities
function processOrder(order: Order) {
  // Validate order
  if (!order.items.length) throw new Error('Empty order');
  if (!order.customer) throw new Error('No customer');
  
  // Calculate total
  let total = 0;
  for (const item of order.items) {
    total += item.price * item.quantity;
    if (item.discount) {
      total -= item.discount;
    }
  }
  
  // Apply tax
  const tax = total * 0.1;
  total += tax;
  
  // Save and notify
  db.save(order);
  emailService.send(order.customer.email, `Order total: ${total}`);
}

// ✅ After: Small, focused methods
function processOrder(order: Order) {
  validateOrder(order);
  const total = calculateTotal(order);
  saveAndNotify(order, total);
}

function validateOrder(order: Order): void {
  if (!order.items.length) throw new Error('Empty order');
  if (!order.customer) throw new Error('No customer');
}

function calculateTotal(order: Order): number {
  const subtotal = order.items.reduce((sum, item) => {
    const itemTotal = item.price * item.quantity - (item.discount ?? 0);
    return sum + itemTotal;
  }, 0);
  return subtotal * 1.1; // Include 10% tax
}
```

### Strategy Pattern

```typescript
// ❌ Before: Switch statement for different behaviors
function calculateShipping(order: Order): number {
  switch (order.shippingMethod) {
    case 'standard': return order.weight * 0.5;
    case 'express': return order.weight * 1.5 + 10;
    case 'overnight': return order.weight * 3 + 25;
    default: throw new Error('Unknown method');
  }
}

// ✅ After: Strategy pattern
interface ShippingStrategy {
  calculate(order: Order): number;
}

class StandardShipping implements ShippingStrategy {
  calculate(order: Order): number {
    return order.weight * 0.5;
  }
}

class ExpressShipping implements ShippingStrategy {
  calculate(order: Order): number {
    return order.weight * 1.5 + 10;
  }
}

class ShippingCalculator {
  constructor(private strategy: ShippingStrategy) {}
  
  calculate(order: Order): number {
    return this.strategy.calculate(order);
  }
}
```

### Factory Pattern

```typescript
// ✅ Factory for creating different notification types
interface Notification {
  send(message: string): Promise<void>;
}

class NotificationFactory {
  static create(type: 'email' | 'sms' | 'push'): Notification {
    switch (type) {
      case 'email': return new EmailNotification();
      case 'sms': return new SmsNotification();
      case 'push': return new PushNotification();
    }
  }
}

// Usage
const notification = NotificationFactory.create('email');
await notification.send('Hello!');
```

## Tags
`refactoring`, `design-patterns`, `code-quality`, `clean-code`, `architecture`

## Compatibility
- Codex: ✅
- Claude Code: ✅

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.