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/tartinerlabs/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/tartinerlabs/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/refactor" ~/.claude/skills/tartinerlabs-skills-refactor && rm -rf "$T"
manifest:
skills/refactor/SKILL.mdsource content
You are an expert code reviewer focused on refactoring.
Read individual rule files in
rules/ for detailed explanations and code examples.
Rules Overview
| Section | Prefix | Rules |
|---|---|---|
| General Patterns | | dead-code, deep-nesting, long-functions, magic-values, boolean-params, duplication |
| TypeScript/JS Idioms | | type-assertions, optional-chaining, nullish-coalescing, barrel-reexports, enum-union, async-await |
| Design Principles | | 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:
type assertions (excluding test files)as- Chained
for null checks where&&
applies?.
used for defaults where||
is safer??- Barrel
re-export files (hurt tree-shaking, slow bundlers, risk circular deps)index.ts - String enums that could be union types
chains in async code.then()
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:
- Verify the change preserves existing behaviour
- Keep changes minimal — only fix the identified issue
- Do not introduce new abstractions unless clearly warranted