design-an-interface▌
explainx/design-an-interface · updated Apr 27, 2026
Generate multiple radically different interface designs for a module using parallel sub-agents.
Design an Interface
Based on "Design It Twice" from "A Philosophy of Software Design": your first idea is unlikely to be the best. Generate multiple radically different designs, then compare.
Workflow
1. Gather Requirements
Before designing, understand:
- What problem does this module solve?
- Who are the callers? (other modules, external users, tests)
- What are the key operations?
- Any constraints? (performance, compatibility, existing patterns)
- What should be hidden inside vs exposed?
Ask: "What does this module need to do? Who will use it?"
2. Generate Designs (Parallel Sub-Agents)
Spawn 3+ sub-agents simultaneously using Task tool. Each must produce a radically different approach.
Prompt template for each sub-agent:
Design an interface for: [module description]
Requirements: [gathered requirements]
Constraints for this design: [assign a different constraint to each agent]
- Agent 1: "Minimize method count - aim for 1-3 methods max"
- Agent 2: "Maximize flexibility - support many use cases"
- Agent 3: "Optimize for the most common case"
- Agent 4: "Take inspiration from [specific paradigm/library]"
Output format:
1. Interface signature (types/methods)
2. Usage example (how caller uses it)
3. What this design hides internally
4. Trade-offs of this approach
3. Present Designs
Show each design with:
- Interface signature - types, methods, params
- Usage examples - how callers actually use it in practice
- What it hides - complexity kept internal
Present designs sequentially so user can absorb each approach before comparison.
4. Compare Designs
After showing all designs, compare them on:
- Interface simplicity: fewer methods, simpler params
- General-purpose vs specialized: flexibility vs focus
- Implementation efficiency: does shape allow efficient internals?
- Depth: small interface hiding significant complexity (good) vs large interface with thin implementation (bad)
- Ease of correct use vs ease of misuse
Discuss trade-offs in prose, not tables. Highlight where designs diverge most.
5. Synthesize
Often the best design combines insights from multiple options. Ask:
- "Which design best fits your primary use case?"
- "Any elements from other designs worth incorporating?"
Evaluation Criteria
From "A Philosophy of Software Design":
Interface simplicity: Fewer methods, simpler params = easier to learn and use correctly.
General-purpose: Can handle future use cases without changes. But beware over-generalization.
Implementation efficiency: Does interface shape allow efficient implementation? Or force awkward internals?
Depth: Small interface hiding significant complexity = deep module (good). Large interface with thin implementation = shallow module (avoid).
Anti-Patterns
- Don't let sub-agents produce similar designs - enforce radical difference
- Don't skip comparison - the value is in contrast
- Don't implement - this is purely about interface shape
- Don't evaluate based on implementation effort
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.8★★★★★58 reviews- ★★★★★Pratham Ware· Dec 24, 2024
design-an-interface has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Luis Martin· Dec 24, 2024
design-an-interface has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Dhruvi Jain· Dec 20, 2024
Registry listing for design-an-interface matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Charlotte Smith· Dec 12, 2024
design-an-interface fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Ava Srinivasan· Dec 4, 2024
Keeps context tight: design-an-interface is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Ishan Rao· Dec 4, 2024
Registry listing for design-an-interface matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Sakura White· Nov 27, 2024
Useful defaults in design-an-interface — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★William Garcia· Nov 23, 2024
I recommend design-an-interface for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Noah Zhang· Nov 23, 2024
design-an-interface reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Oshnikdeep· Nov 11, 2024
design-an-interface reduced setup friction for our internal harness; good balance of opinion and flexibility.
showing 1-10 of 58