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.From its SKILL.md
npx -y skills add amanahmed2222/skills --skill refactorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.7 KB, 637 tokens by cl100k_base, as published. Nobody here has run it
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
| Section | Prefix | Rules |
|---|---|---|
| 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:
astype assertions (excluding test files)- Chained
&&for null checks where?.applies ||used for defaults where??is safer- Barrel
index.tsre-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:
- Verify the change preserves existing behaviour
- Keep changes minimal — only fix the identified issue
- Do not introduce new abstractions unless clearly warranted
What ships with it: 16 files
10.6 KB alongside SKILL.md
rules/
- design-god-objects.md1.1 KB
- design-interface-segregation.md837 B
- design-single-responsibility.md1.1 KB
- design-tight-coupling.md904 B
- general-boolean-params.md491 B
- general-dead-code.md456 B
- general-deep-nesting.md703 B
- general-duplication.md1.1 KB
- general-long-functions.md620 B
- general-magic-values.md444 B
- ts-async-await.md613 B
- ts-barrel-reexports.md1.0 KB
- ts-enum-union.md323 B
- ts-nullish-coalescing.md357 B
- ts-optional-chaining.md311 B
- ts-type-assertions.md439 B