What problem does it solve? Changing code without tests is risky because there is no way to verify that existing behavior is preserved. This Skill provides a disciplined, step-by-step method—based on Michael Feathers' Working Effectively with Legacy Code—for getting untested code under a test harness before making changes, so edits stop being gambles. ## Core Features & Use Cases - Legacy Code Change Algorithm: A five-step procedure (identify change points, find test points, break dependencies, write tests, then change) with safety checklists and triage guidance for tight deadlines. - Characterization Tests & Golden Masters: Pin down actual current behavior—including bugs—before refactoring, with guidance on snapshot testing and handling volatile output. - Dependency-Breaking Catalog: Named techniques like Parameterize Constructor, Extract Interface, Subclass and Override Method, and Break Out Method Object, with before/after code in TypeScript, Python, and Java. - Use Case: You inherit an 800-line service class with zero tests and must add a feature. The Skill walks you through parameterizing the constructor, pinning nine characterization tests, and sprouting the new logic as a fully tested class—shipping with zero regressions. ## Quick Start Ask the AI to help you safely add a feature or fix a bug in a specific untested class or module, and it will apply the change algorithm, seams, and characterization tests step by step.