/ca-refactor
Restructure code with behavioral parity proven through unmodified pre-existing tests, then refactor. No behavior change.
$ npx -y skills add arbiterForge/codeArbiter --skill ca-refactor --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/ca-refactor
Context preview
The summary Claude sees to decide when to auto-load this skill.
Restructure code with behavioral parity proven through unmodified pre-existing tests, then refactor. No behavior change.
SKILL.md
ca-refactor.SKILL.mdname: ca-refactor
description: Restructure code with behavioral parity proven through unmodified pre-existing tests, then refactor. No behavior change.
argument-hint: "<surface and motivation>"
$ca-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 `$ca-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` (`${CLAUDE_PLUGIN_ROOT}/routines/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 → `$ca-feature`.
- A change motivated by "the current behavior is wrong" → `$ca-fix`.
- Questions or discussion → `$ca-btw`.
- Persisting an already-completed refactor → `$ca-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 `$ca-feature` or `$ca-fix`.
Read more
name: ca-refactor description: Restructure code with behavioral parity proven through unmodified pre-existing tests, then refactor. No behavior change. argument-hint: "<surface and motivation>"
$ca-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 `$ca-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` (`${CLAUDE_PLUGIN_ROOT}/routines/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 → `$ca-feature`.
- A change motivated by "the current behavior is wrong" → `$ca-fix`.
- Questions or discussion → `$ca-btw`.
- Persisting an already-completed refactor → `$ca-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 `$ca-feature` or `$ca-fix`.
When you can't trust yourself with your code base, trust Arbiter.
Repo: arbiterForge/codeArbiter
Other skills on codearbiter.
- /brainstorming
The Socratic spec-refinement front of /feature, and the planning front of /sprint. Routed to BEFORE any code — it takes a one-line idea and drives it to an approved, concrete spec with testable acceptance criteria. Four gated phases — frame, refine, write, approve. No
Open skill - /commit-gate
The only path to a commit. Routed to when the user invokes /commit or otherwise instructs codeArbiter to persist staged changes. Nine gated phases — permission, branch, classification, verification (test/lint/secrets), behavioral proof, diff review, selective stage, message,
Open skill - /context-check
Optional manual drift audit — report stale provenance-tracked docs (via _provenancelib drift detection across .codearbiter/.provenance/), then per stale doc offer re-scout / re-baseline / defer. Not the daily loop; commit-gate auto-heal owns routine maintenance.
Open skill - /context-creation
The brownfield back-fill. Routed to by /create-context, and by startup when .codearbiter/CONTEXT.md lacks the <!--INITIALIZED--> body marker but source code exists. Six gated phases — pre-flight, scout dispatch, synthesis, gap interview, write, lock. Reads the existing codebase
Open skill - /crypto-compliance
The banned-primitive gate. Routed to when changed code hashes, signs, encrypts, derives keys, generates security-relevant randomness, configures TLS, or imports a crypto library. Rejects broken primitives, disabled TLS verification, and home-rolled crypto; the approved-primitive
Open skill - /debug
Investigate-then-decide root-cause analysis for a defect whose cause is unknown (distinct from /fix, which assumes a known bug). Five gated phases: capture, hypothesize, gather, decide, hand off. Investigation only, no code changes; exits to /fix, /adr, or a no-action close.
Open skill

