/refactor
Restructure code with behavioral parity proven through unmodified pre-existing tests, then refactor. No behavior change.
$ npx -y skills add arbiterForge/codeArbiter --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/refactor
Context preview
What this command does when you run it.
Restructure code with behavioral parity proven through unmodified pre-existing tests, then refactor. No behavior change.
Command definition
refactor.mddescription: Restructure code with behavioral parity proven through unmodified pre-existing tests, then refactor. No behavior change.
argument-hint: "<surface and motivation>"
{{CMD:refactor}} — behavior-preserving restructure
The only permitted entry to refactor work. A refactor that cannot prove parity through unmodified pre-existing tests is a feature change in disguise and routes to `{{CMD:feature}}`. Two required parts: the **surface** (exact files, functions, classes, or methods — vague surfaces like "the auth module" are rejected) and the **motivation** (why the restructure is worth doing).
Flow
Routes to the `refactor` skill — six phases:
1. **Surface identification** — lock the exact files, symbols, and public signatures. 2. **Parity coverage proof** — demonstrate pre-existing tests already cover the named surface, with at least one direct test per public method. 3. **Red parity tests (conditional)** — if the refactor exposes a new test seam, route to `tdd` Phase 1 to write failing tests pinning the seam's contract first. 4. **Implementation** — apply the restructure mechanically within the surface table; no new behavior, branches, error paths, or side effects. 5. **Parity verification** — the full pre-existing suite passes with zero edits to any pre-existing test file. 6. **Lint / coverage gate** — lint, type-check, and coverage clear; surface coverage MUST NOT regress.
Routes to
`refactor` (`{{PLUGIN_ROOT}}/skills/refactor/SKILL.md`) — all six phases.
When NOT to use
- New behavior — a new branch, error path, side effect, public method beyond a Phase 3 seam, or a
change to what any input maps to → `{{CMD:feature}}`.
- A change motivated by "the current behavior is wrong" → `{{CMD:fix}}`.
- Questions or discussion → `{{CMD:btw}}`.
- Persisting an already-completed refactor → `{{CMD:commit}}`.
Hard gate
No refactor proceeds without behavioral-parity coverage proof in Phase 2; if the surface is under-covered, the skill halts and routes to `tdd` Phase 1 to backfill before resuming. A Phase 4 diff that would classify as `feat`, or a Phase 5 verification that depends on edits to a pre-existing test, terminates the refactor and re-routes to `{{CMD:feature}}` or `{{CMD:fix}}`.
Read more
description: Restructure code with behavioral parity proven through unmodified pre-existing tests, then refactor. No behavior change. argument-hint: "<surface and motivation>"
{{CMD:refactor}} — behavior-preserving restructure
The only permitted entry to refactor work. A refactor that cannot prove parity through unmodified pre-existing tests is a feature change in disguise and routes to `{{CMD:feature}}`. Two required parts: the **surface** (exact files, functions, classes, or methods — vague surfaces like "the auth module" are rejected) and the **motivation** (why the restructure is worth doing).
Flow
Routes to the `refactor` skill — six phases:
1. **Surface identification** — lock the exact files, symbols, and public signatures. 2. **Parity coverage proof** — demonstrate pre-existing tests already cover the named surface, with at least one direct test per public method. 3. **Red parity tests (conditional)** — if the refactor exposes a new test seam, route to `tdd` Phase 1 to write failing tests pinning the seam's contract first. 4. **Implementation** — apply the restructure mechanically within the surface table; no new behavior, branches, error paths, or side effects. 5. **Parity verification** — the full pre-existing suite passes with zero edits to any pre-existing test file. 6. **Lint / coverage gate** — lint, type-check, and coverage clear; surface coverage MUST NOT regress.
Routes to
`refactor` (`{{PLUGIN_ROOT}}/skills/refactor/SKILL.md`) — all six phases.
When NOT to use
- New behavior — a new branch, error path, side effect, public method beyond a Phase 3 seam, or a
change to what any input maps to → `{{CMD:feature}}`.
- A change motivated by "the current behavior is wrong" → `{{CMD:fix}}`.
- Questions or discussion → `{{CMD:btw}}`.
- Persisting an already-completed refactor → `{{CMD:commit}}`.
Hard gate
No refactor proceeds without behavioral-parity coverage proof in Phase 2; if the surface is under-covered, the skill halts and routes to `tdd` Phase 1 to backfill before resuming. A Phase 4 diff that would classify as `feat`, or a Phase 5 verification that depends on edits to a pre-existing test, terminates the refactor and re-routes to `{{CMD:feature}}` or `{{CMD:fix}}`.
When you can't trust yourself with your code base, trust Arbiter.
Repo: arbiterForge/codeArbiter
Other commands on codearbiter.
- /add-dep
Vet a new or changed third-party dependency for license, provenance, and supply-chain risk before any install runs.
Open command - /adr-status
Report the health of Architecture Decision Records — aged, unchallenged, supersession candidates, unresolved CONFIRM-NN. Read-only.
Open command - /adr
Author a numbered, dated, user-attributed Architecture Decision Record under .codearbiter/decisions/.
Open command - /arbiter
Exit maintainer dev mode — restore orchestration, remove the dev marker, log the exit.
Open command - /audit
Assemble the governance record for a range — commits, overrides, ADRs, sprint auto-decisions, open questions, checkpoint findings — into one dated audit packet. Read-only.
Open command - /btw
Lightweight Q&A about the project — answer from context and return, no routing, no state change.
Open command

