refactor-apply · git:20260924.17234b5 · 2026-09-24 · sha256 069b1acacaad9c1b
refactor-apply git:20260924.17234b5A
Immutable. This exact content is served forever at /api/v1/blob/069b1acacaad9c1b.
--- name: refactor-apply description: Applies a refactor plan written by refactor-simple, refactor-deep, or the refactor orchestrator's merged report - auto-fixable items first, then manual items one at a time with the user, verifying with the repo's own checks after each group. Use only after the user has reviewed the plan and said to apply it. argument-hint: "<plan-path> [--auto-only]" --- # Refactor Apply Turns a reviewed plan into edits. Never runs unasked; the plan it consumes was shown to the user first, by `refactor` or by the user invoking an analysis directly. ## Input One plan file: an individual `./tmp/simple-refactor-plan-*.md` or `./tmp/deep-refactor-plan-*.md`, or the orchestrator's `./tmp/refactor-merged-*.md`. All three share the same shape - Critical / Warning / Info sections, each item with `file:line`, a fix, and an `Auto-fixable: Yes/No` flag. ## Process ### 1. Read the plan and the repo's checks Parse every item. Then find what "passing" means in this repository - its lint, typecheck, and test commands from `package.json`, `Makefile`, `CLAUDE.md` or `AGENTS.md`. Run them once before touching anything so a pre-existing failure is not mistaken for one you caused. ### 2. Auto-fixable first Apply every `Auto-fixable: Yes` item, grouped by file. Rules: - Change only the lines the finding names and what the fix strictly requires. A refactor pass does not widen a PR's scope. - Never alter behaviour to satisfy a convention; if a fix would, it is not auto-fixable - move it to manual and say why. - After the group, run the repo's checks. Fix straightforward failures you introduced; revert an item you cannot make pass and report it. `--auto-only` stops here with a summary. ### 3. Manual, one at a time with the user For each `Auto-fixable: No` item, in plan priority order - Critical first: state the finding, the proposed change, and any judgment call it needs; wait for the user's answer; apply; run the checks. The user may skip any item; a skipped Critical is recorded, not argued. ### 4. Report ``` Applied: X auto-fixable, Y manual (Z skipped by user) Checks: [each command] PASS/FAIL Reverted: [items that could not pass, with reason] Left for follow-up: [skipped or out-of-scope items] ``` Do not commit. The user (or `prepare-pr`) owns the commit, and the diff should be reviewable as its own step. ## Rules - No blanket rewrites; every edit traces to a plan item. - Behaviour-preserving only. If a change would alter behaviour, it needs the user's explicit yes and a test. - Pre-existing debt marked "not against this PR" is not applied unless the user asks for it by name. - Secrets, credentials, and generated files are stop conditions.