What problem does it solve? C++ codebases drift toward god classes, one-shot helpers, and premature abstractions that become unmaintainable. This Skill gives AI agents and reviewers concrete rules for abstraction, composition, and pattern selection so new modules and refactors stay maintainable. ## Core Features & Use Cases - SOLID and composition guidance: Plain-language rules for single responsibility, narrow public interfaces, and composition over inheritance, with illustrative C++20 snippets. - Design pattern catalog: When-to-apply criteria for Strategy, Factory, Observer, Adapter, Builder, Pimpl, Visitor, Chain of Responsibility, Command, Decorator, and templated policy classes. - Anti-pattern rejection list: Refuses god classes, boolean behavior flags, out-parameters, singleton managers, and premature interfaces (two-strikes/YAGNI rule). - Use Case: When adding a new indicator type to the backtesting engine, use this Skill to decide whether to extend a Strategy seam, add a Factory variant, or keep the code concrete until a second implementation appears. ## Quick Start Ask the agent to review the design of a new C++ class or module using the cpp-oop-design rules before committing.