What problem does it solve? Software systems accumulate complexity through hundreds of small design decisions, making code hard to understand, modify, and review. This Skill provides a structured framework, based on John Ousterhout's "A Philosophy of Software Design", to diagnose complexity symptoms, evaluate module depth, detect information leakage, and score designs against an eight-point diagnostic. ## Core Features & Use Cases - Design Scoring and Diagnostics: Score any module or API design out of 10 using eight diagnostic questions covering interface simplicity, information hiding, and documentation quality. - Complexity Red-Flag Detection: Identify classitis, temporal decomposition, pass-through methods, configuration-parameter overload, and back-door information leakage in existing code. - Design Review Guidance: Apply six principles (complexity causes, deep vs shallow modules, information hiding, general vs special-purpose interfaces, comments as design documentation, strategic vs tactical programming) when reviewing PRs or planning refactors. - Use Case: When reviewing a pull request that adds three new classes (RequestParser, RequestValidator, RequestProcessor), use this Skill to recognize classitis, explain why the modules are shallow, and recommend merging them into one deep RequestHandler. ## Quick Start Review this module's interface and score it against the software design philosophy diagnostic, listing which rows fail and what changes would fix them.