with one click
design-an-interface
// Generates and compares parallel interface designs (Ousterhout 'Design It Twice'). Triggers: design API, interface options, compare modules, design it twice.
// Generates and compares parallel interface designs (Ousterhout 'Design It Twice'). Triggers: design API, interface options, compare modules, design it twice.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | design-an-interface |
| description | Generates and compares parallel interface designs (Ousterhout 'Design It Twice'). Triggers: design API, interface options, compare modules, design it twice. |
| user-invocable | true |
| effort | high |
| argument-hint | [module or interface to design] |
| allowed-tools | Read, Grep, Glob, Bash, Agent |
$ARGUMENTS
Generate 3+ radically different interface designs using parallel sub-agents, then compare. Based on "Design It Twice" from "A Philosophy of Software Design."
/design-an-interface [module or interface to design]
Before designing, understand:
Spawn 3+ sub-agents simultaneously using Agent tool. Each gets a radically different constraint:
| Agent | Constraint |
|---|---|
| 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 a specific paradigm/library |
Each agent outputs:
Show each design sequentially so user can absorb each approach before comparison:
Compare in prose (not tables) on:
| Criterion | Description |
|---|---|
| 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 |
Often the best design combines insights from multiple options. Give an opinionated recommendation. Ask:
When upcoming design explorations will involve visual content (mockups, layout comparisons, architecture diagrams), offer the browser companion:
"Some of these interface designs might be easier to compare visually. I can show diagrams and side-by-side comparisons in a browser. Want to try it?"
This offer MUST be its own message. Do not combine with other questions. Wait for response.
If accepted, start the server and use it for visual comparisons only. Text/conceptual questions stay in terminal.
See ../write-a-prd/reference/visual-companion.md for details.
This skill designs interfaces. It does NOT write implementation code.