Behavior-preserving refactoring specialist - plans and executes safe incremental restructuring with code smell / SATD / hotspot targeting, characterization-test safety nets, metric and coverage gates, and refactor-only commits. Use for refactor, refactoring, code smell, technical debt, legacy code modernization, extract method, hotspot, and characterization test work.
77
96%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Improve internal code structure - readability first - without changing observable behavior, through small verified transformations, each gated by a safety net (tests / tooling / types) and committed separately from any behavior change.
oma-debug (refactoring must not change behavior)oma-qaoma-architecture (a convention/pattern change is an architecture decision, not a local refactoring)oma-db (this skill only plans the expand-contract sequence)oma-scmtarget: file/module/path, smell report, SATD marker, or the feature request motivating preparatory refactoringverification: project test command(s) per the tool registry; coverage/mutation tooling if availableconstraints: coding guide / conventions, regulated-environment flags, merge-window concernsoutputs:
- name: report
description: refactoring plan or before/after report
artifact: ".agents/results/refactor/*.md"
required: falseStandalone runs write plan / before-after reports under .agents/results/refactor/; orchestrated runs (via the refactor-engineer agent) write .agents/results/result-refactor[-{sessionId}].md per the agent execution protocol.
resources/definition.md (invariant definition: 5 properties, boundaries, destination principle, naming roles, inline evidence)resources/measurement.md (4-layer measurement + git forensics commands)resources/governance.md (org parameters: budget floor, 500-line gate, tool registry)oma-architecture when the change requires a convention/boundary decisionoma-architecture for an ADR + ratchet plan.oma-debug; do not fix it in the refactor commit..git-blame-ignore-revs.| Failure | Recovery |
|---|---|
| Tests fail after a transformation | Mikado: record prerequisite, revert all, attack prerequisite first |
| No tests and code is untestable | Find a seam; apply only minimal mechanical changes to inject test access, then characterize |
| Tests are flaky | Fix or quarantine flaky tests before refactoring - an unreliable net is no net |
| Metric improves but readability worsens | Reject the transformation; readability is the success criterion, metrics are proxies |
| Scope keeps growing | Stop; report the boundary issue and split into a Mikado graph or route to architecture |
| Refactoring engine/codemod produces wrong output | Engines are not infallible - tests re-run is mandatory; fall back to manual atomic edits |
| Action | SSL primitive | Evidence |
|---|---|---|
| Diagnose safety net | VALIDATE | Coverage/flakiness/mutation state of target scope |
| Collect signals | READ | Metrics, git churn/ownership, smells, SATD |
| Rank targets | COMPARE | Hotspot = complexity x churn |
| Plan atomic sequence | INFER | Named transformations, Mikado graph |
| Write characterization tests | WRITE | Golden-master/snapshot tests (separate commit) |
| Apply transformation | WRITE / CALL_TOOL | One atomic refactor, engine-first |
| Verify preservation | VALIDATE | Existing tests re-run unchanged |
| Commit separately | UPDATE_STATE | refactor:-typed commits only |
| Report delta | NOTIFY | Metric + readability before/after |
find_symbol, find_referencing_symbols, search_for_pattern for impact analysis; rename_symbol for engine-executed renamesuvx lizard / uvx radon so no pre-install is required; per-language linters with max-lines gatesresources/governance.md)resources/measurement.md)refactor: only.
On repeated failure: record prerequisite, revert fully, recurse (Mikado).| Scope | Resource target |
|---|---|
CODEBASE | Target source, tests, coding guide, lint configs |
LOCAL_FS | Reports under .agents/results/refactor/, .git-blame-ignore-revs |
PROCESS | Test runners, coverage/mutation tools, codemod engines, git log analysis |
MEMORY | Mikado prerequisite graph, deferred follow-ups, metric baselines |
.agents/results/refactor/ and entries to .git-blame-ignore-revs.resources/definition.mdresources/measurement.mdresources/governance.md../_shared/core/context-loading.md../_shared/core/quality-principles.mdoma-debug (bugs), oma-qa (audits), oma-architecture (boundaries/ADR), oma-db (schema), oma-scm (commits)3021301
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.