What problem does it solve? Object-oriented codebases accumulate design problems—god classes, switch statements that grow forever, subclasses that break caller expectations, fat interfaces, and hard-coded vendor dependencies—that make code hard to test, extend, and maintain. This Skill diagnoses those problems using the five SOLID principles and guides targeted refactors, while also pushing back on over-engineering when abstractions aren't warranted. ## Core Features & Use Cases - SOLID violation diagnosis: Checklists and code smells for SRP, OCP, LSP, ISP, and DIP, each with plain-language explanations and TypeScript examples. - Deep-dive references: Full before/after TypeScript refactors for each principle, covering real-world scenarios like payment gateways, repositories, and notification channels. - Over-engineering guardrails: An anti-patterns catalogue covering premature interfaces, excessive DI, factory-of-factories, and speculative generality, so fixes don't add needless indirection. - Use Case: When reviewing a service class that directly instantiates a Stripe client, use this Skill to identify the DIP violation, apply the PaymentGateway interface refactor, and make the logic unit-testable with a fake. ## Quick Start Ask the assistant to review this class design for SOLID violations and suggest a refactor.