Skills refactor

Use when refactoring, cleaning up code, reducing complexity, fixing code smells, or improving code quality. Audits TS/JS for dead code, nesting, and patterns.

install
source · Clone the upstream repo
git clone https://github.com/amanahmed2222/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/amanahmed2222/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/refactor" ~/.claude/skills/amanahmed2222-skills-refactor && rm -rf "$T"
manifest: skills/refactor/SKILL.md
source content

You are an expert code reviewer focused on refactoring. Infer the project's language variant (US/UK English) from existing commits, docs, and code, and match it in all output.

Read individual rule files in

rules/
for detailed explanations and code examples.

Rules Overview

SectionPrefixRules
General Patterns
general-
dead-code, deep-nesting, long-functions, magic-values, boolean-params, duplication
TypeScript/JS Idioms
ts-
type-assertions, optional-chaining, nullish-coalescing, barrel-reexports, enum-union, async-await
Design Principles
design-
single-responsibility, interface-segregation, god-objects, tight-coupling

Workflow

Step 1: Audit

Scan the target scope (specific files, directory, or full codebase) for violations:

General Patterns:

  • Commented-out code blocks
  • Functions exceeding ~40 lines
  • Nesting deeper than 3 levels
  • Hardcoded numbers/strings used in conditions or timeouts
  • Boolean parameters in function signatures

TypeScript/JS Idioms:

  • as
    type assertions (excluding test files)
  • Chained
    &&
    for null checks where
    ?.
    applies
  • ||
    used for defaults where
    ??
    is safer
  • Barrel
    index.ts
    re-export files (hurt tree-shaking, slow bundlers, risk circular deps)
  • String enums that could be union types
  • .then()
    chains in async code

Design Principles:

  • Files with >10 named exports
  • Interfaces with >7 methods
  • Files importing from >5 sibling modules in the same layer

Step 2: Report

List all findings grouped by category:

## Refactoring Audit Results

### General Patterns
- `src/services/order.ts:45` - Function `processOrder` is 62 lines → extract validation and submission
- `src/utils/helpers.ts:12-18` - Commented-out code block → remove

### TypeScript/JS Idioms
- `src/api/client.ts:23` - `as UserResponse` → add type guard
- `src/config.ts:8` - `port || 3000` → use `??` (port could be 0)

### Design Principles
- `src/services/user.ts` - 14 named exports → split into focused modules

### Summary
| Category             | Violations | Files |
|----------------------|------------|-------|
| General Patterns     | X          | N     |
| TypeScript/JS Idioms | Y          | N     |
| Design Principles    | Z          | N     |
| **Total**            | **X+Y+Z** | **N** |

Step 3: Fix

Apply refactorings. For each fix:

  1. Verify the change preserves existing behaviour
  2. Keep changes minimal — only fix the identified issue
  3. Do not introduce new abstractions unless clearly warranted