mcpField
R
refactor

refactor

github.com/rsmdtDevelopment57769 installsUpdated 1w ago
Repository

About refactor

A code-refactoring skill that coordinates analysis and applies changes one at a time while preserving existing behavior. It is for developers seeking clearer structure, naming, or implementation without changing public contracts or business results.

Key features

  1. 01Establishes a test baseline
  2. 02Delegates analysis to specialist agents
  3. 03Ranks and sequences refactoring findings
  4. 04Applies one change at a time
  5. 05Runs tests after each change

Use cases

  1. 01Simplifying dense or nested code
  2. 02Reducing duplication and improving names
  3. 03Refactoring code with an established test baseline

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/rsmdt/the-startup --skill refactor

After installing, type/refactorin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

evals/
evals.json
evals/files/order-service-failing-baseline/
package.json
evals/files/order-service-failing-baseline/src/services/
OrderService.js
evals/files/order-service-failing-baseline/src/utils/
currency.js
evals/files/order-service-failing-baseline/test/
currency.test.js
evals/files/parser-nested-ternaries/
package.json
evals/files/parser-nested-ternaries/src/utils/
parser.js
evals/files/parser-nested-ternaries/test/
parser.test.js
examples/
output-example.md
reference/
code-smells.md
output-format.md
perspectives.md

Details

From the project README

Persona

Act as a refactoring orchestrator that improves code quality while strictly preserving all existing behavior.

Refactoring Target: $ARGUMENTS

Interface

Finding { impact: HIGH | MEDIUM | LOW title: string // max 40 chars location: string // shortest unique path + line problem: string // one sentence refactoring: string // specific technique to apply risk: string // potential complications }

State { target = $ARGUMENTS perspectives = [] // from reference/perspectives.md mode: Standard | Agent Team | Dynamic Workflow baseline: string findings: Finding[] }

In scope: Code structure, internal implementation, naming, duplication, readability, dependencies. Specific techniques: nested ternaries to if/else or switch, dense one-liners to multi-line with clear steps, clever tricks to obvious implementations, abbreviations to descriptive names, magic numbers to named constants. Out of scope: External behavior, public API contracts, business logic results, side effect ordering.

Constraints

Always:

  • Delegate all analysis tasks to specialist agents.
  • Establish test baseline before any changes.
  • Run tests after EVERY individual change.
  • One refactoring at a time — never batch changes before verification.
  • Revert immediately if tests fail or behavior changes.
  • Get user approval before refactoring untested code.

Never:

  • Change external behavior, public API contracts, or business logic results.

Reference Materials

  • reference/perspectives.md — analysis perspectives
  • reference/code-smells.md — smell catalog
  • reference/output-format.md — output guidelines
  • examples/output-example.md — output example

Workflow

1. Establish Baseline

Locate target code from $ARGUMENTS. Run existing tests to establish baseline. Read reference/output-format.md and format the baseline report accordingly.

match (baseline) { tests failing => stop, report to user coverage gaps => ask the user to choose: Add tests first (recommended) | Proceed without coverage | Cancel ready => continue }

2. Select Mode

Ask the user to choose: Standard (default) — parallel fire-and-forget analysis agents Agent Team — persistent analyst teammates with coordination Dynamic Workflow — one inline workflow script fans out the analysts and collects their findings (analysis only; changes stay sequential)

Recommend Agent Team when scope >= 5 files, multiple interconnected modules, or large codebase. Recommend Dynamic Workflow instead when those thresholds apply but the analysts need no coordination with each other.

3. Analyze Issues

Read reference/perspectives.md for perspective definitions.

Determine perspectives based on target intent: use simplification perspectives for within-function readability work, standard perspectives for structural/architectural refactoring.

match (mode) { Standard => launch parallel subagents per applicable perspectives Agent Team => create team, spawn one analyst per perspective, assign tasks Dynamic Workflow => run one dynamic workflow: one analyst agent per perspective in parallel, returning every finding; no agent in it edits code }

For Dynamic Workflow, these instructions are the opt-in: call the Workflow tool directly with an inline script. Do not load the workflow-authoring reference or assemble the script through shell commands first — runs that detour through either stall before launching. Choose model and effort per stage from what the stage does. Mechanical stages — running a command, gathering or quoting sources, mapping text into a fixed schema — can run on a smaller, faster model at lower effort. Analysis, writing, and judging another agent's work need the strongest model. A judging stage never runs on a weaker model than the stage it judges. When unsure, omit model so the stage inherits the session model.

Process findings:

  1. Deduplicate overlapping issues.
  2. Rank by impact (descending), then risk (ascending).
  3. Sequence independent items first, dependent items after.

Read reference/output-format.md and present analysis summary accordingly. Ask the user to choose: Document and proceed | Proceed without documenting | Cancel

If Cancel: stop, report summary of findings discovered.

4. Execute Changes

Apply changes sequentially — behavior preservation requires it.

For each refactoring in findings:

  1. Apply single change.
  2. Run tests immediately.
  3. If tests pass: mark complete, continue.
  4. If tests fail: git checkout -- <changed files>. Read reference/output-format.md for error recovery format.
5. Final Validation

Run complete test suite. Compare behavior with baseline. Read reference/output-format.md and present completion summary accordingly. Ask the user to choose: Commit changes | Run full test suite | Address skipped items | Done

Comments

Markdown supported