refactor · git:20261031.61ec6da · 2026-10-31 · sha256 924306c3c7374a17
refactor git:20261031.61ec6daA
Immutable. This exact content never changes and is served at /api/v1/blob/924306c3c7374a17.
--- name: refactor description: Refactor implemented product code in bounded increments while preserving observable behavior and compatibility. Use when existing code has a concrete structural problem; use implement for new behavior and bug fixes. --- # Refactor Apply [core loading rules](../../README.md#loading-rules) for your role, including all required shared sections unless their current text is already supplied or loaded. Read linked procedures only when their operation applies. Persona: maintenance engineer, focused on simpler structure with stable observable behavior. Work on existing implementation. Save the agreement, substantive planning, and refactoring evidence even for small refactors without a separate save request. Reuse the owner. Direct work without a spec may use [notes](../../templates/notes.md) and remain untracked; retain agreement, decisions, explicit TDD/source, checks/evidence, and handoff under [retention](../../references/retention.md). If creating a spec, use relevant sections of [the change record](../../templates/spec.md) under [naming](../../references/naming.md). A clear authorized request does not require Specify first. Use existing execution records in place. Do not create a product-wide cleanup backlog from incidental findings. - Inspect the working tree, relevant implementation, callers, and tests. Preserve unrelated changes. Identify a concrete structural problem and its consequence, such as duplicated business rules or dependencies that prevent testing a boundary. Name the bounded target, intended structural result, and observable behavior and interfaces that must remain stable. - Distinguish refactoring from defect correction or new behavior. If the requested outcome changes behavior, route that part to [implement](../implement/SKILL.md), or [specify](../specify/SKILL.md) if scope is unsettled. Do not silently fix discovered bugs or expand into adjacent modules. No change is valid when the proposed abstraction or rewrite has no demonstrated benefit. - Use reversible increments with focused regression checks; record sequencing only when useful. Prefer a local change over a speculative framework or rewrite. Resolve routine implementation choices independently; ask through the permitted native question tool when a consequential decision exceeds existing authority or changes the selected TDD policy. - Apply the [TDD rules](../../references/tdd.md) for behavior-preserving restructuring. If TDD is unset, ask before editing implementation; inspection and planning can continue. A separately authorized behavior change follows the test-first sequence in [implement](../implement/SKILL.md). - Establish the relevant baseline before edits. Report pre-existing failures and distinguish them from regressions; resolve failures that prevent verifying the affected behavior before proceeding with dependent changes. With TDD `none`, verification remains required. - A planning request ends with the plan. A refactoring implementation request authorizes its bounded scope without another approval after planning. When using or creating a spec, the coordinator reconciles its row under the [queue rules](../../references/queue.md), repairing missing tracking before execution within permitted writes. Existing tracked work stays tracked. Preserve lifecycle state, Icebox, and history; workers return queue changes to the parent. Move authorized work to Doing when execution starts; planning-only work never enters Doing. Spec-free untracked work may retain notes alone. Do not reopen Done work implicitly. - Run regression checks at boundaries where failures can be attributed. Independent assignments may run in parallel; dependent work waits for verified prerequisites. Preserve public contracts, persisted formats, and user-visible behavior. - Inspect the final diff for unintended behavior changes and unnecessary abstractions. Run agreed and required checks, and obtain independent review when the core requires it. Update existing enduring product or architecture documentation when affected. The coordinator records the structural result, baseline and final evidence, limitations, and current handoff under the [retention rules](../../references/retention.md). ## Commit verified increments Establish and preserve the passing baseline, satisfy the selected coverage policy, and run required regression checks, then apply the [commit procedure](../../references/commits.md), subject to user and repository restrictions. Apply [Context budget](../../README.md#context-budget) at each verified structural increment. ## Next action Continue the next authorized increment while the structural objective remains unmet; resolve a failed or missing check before dependent edits. At the authorized boundary, name required review, acceptance, or delivery with its diff scope and preservation constraints.