What problem does it solve? First interface ideas are rarely the best, yet teams often commit to them without exploring alternatives. This Skill forces structured divergence: it produces multiple radically different interface designs for a module, compares them on concrete dimensions, and synthesizes a recommendation before any implementation begins. ## Core Features & Use Cases - Requirements Intake: Asks targeted questions about callers, failure modes, hidden complexity, and the most common case before designing anything. - Divergent Design Generation: Produces three designs with different information-hiding boundaries using lenses like minimal surface, caller-empowering primitives, and common-case-first ergonomics. - Structured Comparison and Synthesis: Fills a comparison table, applies evaluation criteria from A Philosophy of Software Design (depth, simplicity, ease of correct use), and delivers a concrete recommended interface with signatures. - Use Case: Before implementing a new caching module, run this Skill to get three candidate APIs with real call-site examples, an honest trade-off analysis, and a synthesized final interface. ## Quick Start Ask the agent to design an interface for your module, for example: "Design an interface for a retry-able job queue module — give me options before I implement it."