What problem does it solve? Choosing the right design pattern is hard in both directions: code that needed a pattern gets tangled, and code that didn't need one gets buried under GoF ceremony. This Skill decides which object-level pattern fits a design problem, or reviews existing code to map smells to the pattern (or Python language feature) that resolves them. ## Core Features & Use Cases - Greenfield pattern selection: A short decision-tree interview (create, structure, vary behavior, resource/idiom, application/concurrency) returns one primary pattern plus its Pythonic form, such as a dict of callables instead of a Strategy class. - Refactoring review: Maps code smells (construction conditionals, hand-rolled singletons, getter/setter pairs, inlined SQL) to the pattern or language feature that fixes them, favoring the smallest change. - Disambiguation and principles: Settles commonly confused pairs (Strategy vs State vs Command, Adapter vs Facade vs Proxy) with one distinguishing question, and names the SOLID/GRASP principle behind each finding. - Use Case: Ask how to make a set of pricing algorithms swappable, and get a recommendation for Strategy implemented as a dict of callables, with guidance on when the full pattern is unnecessary. ## Quick Start Ask the design-patterns skill which pattern fits your class design problem, or point it at a file and request a pattern review.