Use when requests involve refactoring, reducing complexity, improving maintainability, introducing patterns, or cleaning up code before larger changes. Apply design patterns and refactoring techniques to improve code structure without losing behavioral correctness: identify smells, choose appropriate abstractions, simplify control flow, isolate responsibilities, and evolve architecture safely.