Skip to content
OpenSmartRoute
Skillv1.0.0

refactor-code

Systematic approach to safely refactoring code with tests. Use when user says 'refactor', 'clean up code', 'simplify', 'reduce complexity', or 'technical debt'.

by shipshitdev(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from shipshitdev/skills (skills/refactor-code/SKILL.md). Install upstream with npx skills add shipshitdev/skills --skill refactor-code. Copyright stays with the author.

Refactor Code

Improve readability, cohesion, and maintainability without changing behavior.

The code engine of the refactoring vertical (/refactor code). Draws on typescript-refactor for type-architecture work and react-refactor for component architecture. For mechanical AI-slop removal use deslop; for a read-only structural review use structural-review.

Triggers

  • Function > 50 lines
  • File > 300 lines
  • Duplicate code (3+ instances)
  • Complex conditionals (> 3 levels deep)
  • any types
  • Hard to test or understand
  • Vague naming and mixed responsibilities
  • Dead abstractions, dead code, or misleading comments

Steps

1. Lock Behavior First

  • Read existing tests before editing
  • If behavior is unclear, derive it from current callers and runtime paths
  • Preserve public contracts unless explicitly asked for API changes

2. Study Local Patterns

Find 3+ similar implementations in the codebase. Match naming, error handling, file structure, and test style. Reuse existing helpers before introducing new abstractions.

3. Refactor for Clarity

Small, incremental changes — one at a time. Prioritize in order:

  1. Better names
  2. Smaller focused functions (extract long methods into helpers)
  3. Clearer control flow
  4. Removing duplication
  5. Removing dead code and misleading comments
  6. Narrowing types and interfaces (replace any with proper types)
  7. Extract constants (replace magic numbers/strings)
  8. Extract service/component (move business logic out of controllers, split large components)

4. Avoid Over-Engineering

  • Don't introduce patterns just because they're fashionable
  • Prefer straightforward code over clever indirection
  • Extract abstractions only when they reduce real duplication or confusion

5. Run Tests After Each Change

bun run test <specific-test-file>

Heuristics

  • One function should do one job
  • Names should explain intent, not implementation trivia
  • Comments should explain why, not restate what the code already says
  • Conditionals should read top-to-bottom without mental backtracking
  • Shared logic belongs in one place, but not at the cost of unreadable abstractions

Red Flags (Stop and Reconsider)

  • Generic names like data, item, temp, helper, util
  • Boolean parameters that change function meaning
  • Functions that both fetch, transform, and render
  • Duplicate validation or mapping logic
  • Commented-out code or TODOs masking uncertainty
  • Behavior changes during refactoring
  • Tests start failing
  • Need to change public API
  • Unclear what code does

Checklist

Before starting:

  • All tests passing
  • Understand what the code does
  • Have example pattern to follow
  • Committed current working code

During:

  • One change at a time
  • Tests after each change
  • Same public API
  • Document why (not just what)

After:

  • All tests still passing
  • No behavior changes
  • Code is more readable
  • Performance same or better

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/shipshitdev-skills-refactor-code/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

shipshitdev-skills-refactor-code.ocm.jsonjson
{
  "ocm": "1",
  "id": "shipshitdev-skills-refactor-code",
  "kind": "skill",
  "name": "refactor-code",
  "description": "Systematic approach to safely refactoring code with tests. Use when user says 'refactor', 'clean up code', 'simplify', 'reduce complexity', or 'technical debt'.",
  "publisher": "shipshitdev",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "coding"
    ],
    "tags": [
      "skill-md",
      "refactoring",
      "code-quality",
      "testing",
      "maintenance",
      "clean-code",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Systematic approach to safely refactoring code with tests. Use when user says 'refactor', 'clean up code', 'simplify', 'reduce complexity', or 'technical debt'."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/shipshitdev/skills",
      "path": "skills/refactor-code/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/shipshitdev/skills/blob/HEAD/skills/refactor-code/SKILL.md",
      "key": "shipshitdev/skills/skills/refactor-code/SKILL.md"
    }
  },
  "instructions": "# Refactor Code\n\nImprove readability, cohesion, and maintainability without changing behavior.\n\nThe `code` engine of the refactoring vertical (`/refactor code`). Draws on\n`typescript-refactor` for type-architecture work and `react-refactor` for component\narchitecture. For mechanical AI-slop removal use `deslop`; for a read-only structural\nreview use `structural-review`.\n\n## Triggers\n\n- Function > 50 lines\n- File > 300 lines\n- Duplicate code (3+ instances)\n- Complex conditionals (> 3 levels deep)\n- `any` types\n- Hard to test or understand\n- Vague naming and mixed responsibilities\n- Dead abstrac",
  "cost": {
    "context_tokens": 749
  }
}

Fetch it by URL: GET /api/v1/registry/shipshitdev-skills-refactor-code/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.