MCPInstall

code-refactoring

Turn a cleanup packet into one behavior-preserving refactor brief. Use when simplifying a messy function/component/service, freezing behavior before touching fragile legacy code, splitting a cleanup-heavy diff into reviewable slices, or planning a repeated migration / codemod without changing intended behavior. Route diagnosis to debugging, review judgment to code-review, validation-program design to testing-strategies, bottleneck-led tuning to performance-optimization, and pure symbol inventory to codebase-search.

Installs
546
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/akillness/jeo-skills --skill code-refactoring
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads code-refactoring automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Code Refactoring

Use this skill when the job is to improve structure without changing intended behavior.

The center of the skill should stay small and repeatable:

  1. identify the cleanup packet you actually have,
  2. choose one refactor mode,
  3. make the behavior guardrail explicit,
  4. stage the work in reviewable slices,
  5. verify and route remaining work honestly.

Read these support docs before handling unfamiliar cleanup work:

  • references/intake-packets-and-route-outs.md
  • references/refactor-modes.md
  • references/handoff-boundaries.md
  • references/safe-refactor-checklist.md

When to use this skill

  • A function, component, service, script, or module is too tangled and needs structural cleanup without a behavior change.
  • A legacy area needs a freeze-first cleanup because the current behavior is fragile or poorly understood.
  • The same API, naming, or structure change repeats across many files and needs a codemod / migration brief.
  • A diff mixes cleanup with too much semantic work and needs to be split into smaller reviewable slices.
  • The user asks to refactor, decompose, deduplicate, rename safely, stage a cleanup, or plan a behavior-preserving migration.

When not to use this skill

  • The main job is proving why behavior is wrong, reproducing a failure, or isolating a regression → debugging
  • The main job is deciding whether a concrete diff / PR is safe to merge → code-review
  • The main job is choosing org-wide validation depth, benchmark policy, or release gates → testing-strategies
  • The main job is finding the bottleneck from traces, flamegraphs, CWV reports, or profiler output → performance-optimization
  • The main job is finding symbols, call sites, or impact scope before any cleanup tactic is chosen → codebase-search

Instructions

Step 1: Start from the cleanup packet

Use references/intake-packets-and-route-outs.md.

Choose the packet the user already has:

  • one messy file / component / service
  • a fragile legacy area with weak confidence in current behavior
  • a repeated migration pattern across many files
  • a cleanup-heavy diff that needs reshaping before review
  • only a vague desire to “find all the places first”

Output the intake briefly:

## Cleanup Packet
- Current artifact:
- Why it is enough (or not enough):
- Missing evidence to collect next:

Rule: do not force a giant refactor plan when the immediate need is only search, diagnosis, review, or performance evidence.

Step 2: Choose one primary refactor mode

Pick exactly one primary mode from references/refactor-modes.md.

Primary modes:

  • local-safe-refactor
  • behavior-freeze-first
  • repetitive-migration-codemod
  • diff-shaping-cleanup

Quick selector:

SignalMode
One file or narrow module, clear intent, at least one fast guardrail existslocal-safe-refactor
Fragile legacy area, hidden invariants, weak test trustbehavior-freeze-first
Same API or structure repeats across many filesrepetitive-migration-codemod
Cleanup is mixed into a risky review diff and needs smaller slicesdiff-shaping-cleanup

Rule: one primary mode, optional secondary note. Do not mix every cleanup tactic into one answer.

Step 3: Freeze the behavior guardrail

Before broad edits, decide how you will prove intent stayed the same.

Guardrail sources can include:

  • existing unit / integration / end-to-end tests
  • typecheck and linter
  • characterization tests or captured examples
  • fixture snapshots or golden outputs
  • screenshots / preview captures for UI work
  • before/after sample input-output tables
  • manual smoke steps when automation is thin

Minimum rule:

  • Local cleanup → at least one fast verification path
  • Fragile legacy cleanup → freeze behavior first
  • Repeated migration → pilot on a small representative sample first
  • Diff reshaping → separate mechanical cleanup from semantic follow-up

If the user mainly needs help designing the entire validation program, route to testing-strategies.

Step 4: Build the smallest credible cleanup plan

Keep the plan reviewable.

Preferred slices:

  1. rename / move / extract work
  2. duplicated or dead-code cleanup
  3. mechanical migration or codemod rollout
  4. semantic follow-up only if still needed
  5. verification + handoff

For each slice, capture:

  • goal
  • behavior to preserve
  • evidence / guardrail
  • risk edge
  • whether another skill owns the next step

Rules:

  • Prefer a sequence of boring diffs over one heroic rewrite.
  • Keep structural cleanup and semantic behavior changes separate when possible.
  • For migrations, define source pattern, target pattern, known exceptions, and rollback path before scaling up.

Step 5: Use the right mode packet

Use the matching packet in references/intake-packets-and-route-outs.md:

  • local cleanup packet
  • fragile legacy / freeze-first packet
  • repeated migration / codemod packet
  • diff-shaping packet

Good moves by mode:

  • local-safe-refactor → rename unclear concepts, extract pure logic, move side effects to edges, collapse close duplication
  • behavior-freeze-first → capture examples, add characterization tests, identify one seam, refactor behind that seam
  • repetitive-migration-codemod → define source/target pattern, sample first, inspect false positives, expand only after the pilot is trustworthy
  • diff-shaping-cleanup → split cleanup from semantic changes, isolate generated or mechanical edits, leave review notes about remaining hotspots

Step 6: Verify and route remaining work

Do not stop at “looks cleaner.”

Verification brief:

## Refactor Brief
- Primary mode:
- Behavior to preserve:
- Guardrail used:
- Smallest planned slices:
- Risks still open:
- Recommended next move:

Always call out:

  • what behavior was intended to stay the same
  • what evidence was used to verify that
  • what still remains risky or out of scope
  • which neighboring skill should own the next step when the job shifts

Output format

## Cleanup Packet
- Current artifact:
- Primary mode:
- Why this mode fits:

## Behavior Guardrail
- Intended behavior to preserve:
- Evidence available:
- Missing evidence:

## Planned slices
1. ...
2. ...
3. ...

## Verification
- Fast checks:
- Higher-risk checks:

## Route-outs
- Use `debugging` for:
- Use `code-review` for:
- Use `testing-strategies` for:
- Use `performance-optimization` for:
- Use `codebase-search` for:

Examples

Example 1: Oversized service handler

Input: "Refactor this 180-line checkout handler into something readable without changing behavior."

Good response shape:

  • choose local-safe-refactor
  • preserve coupon / tax / out-of-stock behavior explicitly
  • extract validation, pricing, and persistence helpers
  • keep tests / typecheck as guardrails
  • split structural cleanup from later semantic follow-up

Example 2: Fragile legacy module

Input: "This reporting service is impossible to maintain, but we barely trust the tests. Help me refactor it safely."

Good response shape:

  • choose behavior-freeze-first
  • capture characterization cases before broad cleanup
  • identify one seam at a time instead of redesigning everything
  • route deep failure investigation to debugging if expected behavior is still unclear

Example 3: Repeated API migration

Input: "We need to replace a deprecated client API across 220 TypeScript files before the framework upgrade."

Good response shape:

  • choose repetitive-migration-codemod
  • define source and target patterns
  • pilot the transform on a subset first
  • keep mechanical rewrite separate from semantic follow-up
  • verify with tests, typecheck, and repo search

Example 4: Search-first route-out

Input: "Before we refactor anything, find every call site and wrapper around this old helper so we can see the blast radius."

Good response shape:

  • route the primary task to codebase-search
  • do not present a full refactor plan as the main answer
  • keep code-refactoring positioned as the cleanup lane after the impact map exists

Best practices

  1. Start from the packet the user actually has, not an idealized cleanup workflow.
  2. Pick one primary mode before proposing actions.
  3. Make behavior preservation explicit; do not assume it.
  4. Prefer small, reviewable slices over one giant cleanup diff.
  5. Use codemods or structural rewrites only when repetition justifies the setup cost.
  6. Keep diagnosis, review judgment, test-policy design, performance tuning, and symbol inventory routed to neighboring skills instead of absorbing them.
  7. Preserve evidence of what was verified and what still remains risky.

References

FAQ

What does the code-refactoring skill do?

Turn a cleanup packet into one behavior-preserving refactor brief. Use when simplifying a messy function/component/service, freezing behavior before touching fragile legacy code, splitting a cleanup-heavy diff into reviewable slices, or planning a repeated migration / codemod without changing intended behavior. Route diagnosis to debugging, review judgment to code-review, validation-program design to testing-strategies, bottleneck-led tuning to performance-optimization, and pure symbol inventory to codebase-search.

How do I install code-refactoring?

Run npx skills add https://github.com/akillness/jeo-skills --skill code-refactoring in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/code-refactoring/ (personal) or .claude/skills/code-refactoring/ (project).

Which AI agents can use code-refactoring?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is code-refactoring safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains code-refactoring?

It is published by akillness in akillness/jeo-skills. It has 546 recorded installs.

More from akillness/jeo-skills

View all →

rtk

akillness/jeo-skills

Install, initialize, verify, and troubleshoot RTK (Rust Token Killer) for AI coding agents. Use when you need to reduce shell-command token output, confirm that the correct rtk binary is installed, choose between Homebrew, install.sh, or Cargo installation, wire rtk init for Claude Code, Codex, Gemini CLI, Cursor, Copilot, Windsurf, Cline, or OpenCode, or use compact wrappers such as rtk git status, rtk read, rtk grep, rtk test, rtk lint, and rtk gain. Triggers on: rtk, rust token killer, token saver cli, rtk init, rtk gain, codex rtk, gemini rtk, opencode rtk, claude hook token reduction.

Backend & APIs672 installs

graphify

akillness/jeo-skills

Drive Graphify from its CLI to build, refresh, query, export, and serve a durable code/corpus knowledge graph. Use when the user wants .graphify/GRAPHREPORT.md, graph.json, graph.html, graphify update/summary/query/path/explain/tree, change-aware review context, git-hook or watch-based refresh, a stdio MCP graph server, or an install into jeo, jeopi, gjc, opencode, Claude, Codex, or Gemini. Also covers the honest structural fallback when native extraction is empty or misleading. Route simple locate/reference work to codebase-search, narrative knowledge-base work to llm-wiki, and project-memory handoff to opencontext. Triggers on: graphify, graphify update, graphify query, knowledge graph CLI, GRAPHREPORT.md, graph.json, codebase graph, graph refresh, graphify install, graphify serve, review context, affected flows.

data-analysis

akillness/jeo-skills

Analyze datasets to extract insights, identify patterns, and generate reports.

598 installs

technical-writing

akillness/jeo-skills

Write internal technical documentation for engineers and operators: technical specs, architecture docs, ADRs, runbooks, migration plans, and developer-facing implementation guides. Use when the main job is capturing a technical decision, system boundary, operating procedure, or rollout path for builders and maintainers. Triggers on: tech spec, design doc, architecture doc, ADR, runbook, migration guide, implementation guide, rollout doc, operational guide, and internal technical writing. End-user onboarding guides, tutorials, FAQs, and help-center flows belong here too. Route API portals to api-documentation, release notes to changelog-maintenance, decks to presentation-builder, and GTM messaging to marketing-automation.

Docs & Writing544 installs

web-accessibility

akillness/jeo-skills

Routing-first skill for web accessibility remediation and verification. Use when the main job is classifying which accessibility surface is failing — semantics, keyboard/focus, labels/announcements, visual perception/reflow, media alternatives, or routed-app navigation feedback — and turning vague audit, WCAG, axe/Lighthouse, or "make this accessible" requests into one concrete remediation packet. Broad UI critique for hierarchy, polish, and launch readiness belongs here too. Route component API architecture and system governance to design-system, and responsive layout strategy to responsive-design.

Frontend & Design531 installs

remotion-video-production

akillness/jeo-skills

Compatibility alias for video-production when a prompt, setup surface, or legacy workflow explicitly asks for Remotion video production. Use when the request names Remotion, React-based video rendering, compositions, scene components, or a legacy remotion-video-production catalog entry, but the real workflow is still the canonical programmable-video lane. Prefer video-production for general use. Triggers on: remotion-video-production, Remotion render pipeline, React video composition, migrate old Remotion skill.

Media & Creative520 installs

Popular code quality & workflow skills

View category →

grill-me

mattpocock/skills

A relentless interview to sharpen a plan or design.

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

handoff

mattpocock/skills

Compact the current conversation into a handoff document for another agent to pick up.

domain-modeling

mattpocock/skills

Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.

codebase-design

mattpocock/skills

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

diagnosing-bugs

mattpocock/skills

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.