What problem does it solve? First interface ideas are rarely the best, yet developers often commit to them without exploring alternatives. This Skill applies the "design it twice" philosophy from A Philosophy of Software Design, forcing exploration of multiple radically different interface shapes before committing to one. ## Core Features & Use Cases - Parallel Design Generation: Launches 3+ sub-agents simultaneously, each constrained to produce a fundamentally different interface (minimal methods, maximum flexibility, optimized for common cases, or inspired by a specific paradigm). - Structured Comparison: Evaluates designs across interface simplicity, generality, implementation efficiency, module depth, and ease of correct use versus misuse. - Synthesis Guidance: Helps combine insights from multiple designs into a final interface rather than picking one wholesale. - Use Case: When designing a new caching module's API, use this Skill to explore a minimal two-method design, a flexible configuration-heavy design, and a design inspired by an existing library, then compare their tradeoffs before writing any implementation. ## Quick Start Ask the agent to design the interface for your module twice using parallel sub-agents, describing what the module does and who will call it.