What problem does it solve? Refactoring work often gets mixed with feature changes in the same commit, producing unreviewable and unrevertable history, vague "cleanup" commits, and accidental behavior changes that break tests. This Skill enforces a disciplined refactoring workflow where structural changes are isolated, named, and verified. ## Core Features & Use Cases - Two-Hat Discipline: Separates Tidyings (structure-only changes) from Behavior Changes, requiring each to land in its own commit with tests staying green at every step. - Named Fowler Refactors: Restricts changes to a catalog of named refactors (Extract Function, Rename Variable, Move Function, Replace Primitive with Branded Type, etc.) instead of vague restructuring. - Strict and Souple Modes: Strict mode requires one Tidying per commit; souple mode allows mechanical batches of the same refactor applied repeatedly. - Legacy Code Support: Applies Feathers' Sprout Method and Wrap Method to add tested behavior around untested legacy code before refactoring inward. - Use Case: When a function has grown too long before adding a feature, use this Skill to extract helper functions in separate refactor: commits, then switch to TDD for the feature itself. ## Quick Start Ask the agent to refactor the long checkout function by extracting named helpers in separate commits without changing any behavior.