interface-designerlisted
Install: claude install-skill DROOdotFOO/agent-skills
# Design an Interface
## Philosophy
Every interface design involves tradeoffs you cannot see from a single perspective. Designing it twice (or three times) with radically different constraints forces you to explore the design space before committing. This skill spawns parallel sub-agents, each constrained differently, then compares and synthesizes.
## Workflow: 5 Phases
### Phase 1: Gather Requirements
Before spawning any sub-agents, clarify:
- What problem does this interface solve?
- Who are the callers? What do they need?
- What are the invariants the interface must preserve?
- What are the performance / ergonomic / safety constraints?
Do NOT start designing until requirements are agreed upon.
### Phase 2: Spawn Divergent Sub-Agents
Launch 3+ parallel sub-agents (via `Agent` tool with `subagent_type`), each given the same requirements but a different constraint set. Constraints must force **radically different** designs -- not minor variations. See [constraints.md](constraints.md) for examples.
Each sub-agent produces:
- Interface definition (function signatures, types, module API)
- Usage example for the most common case
- One paragraph on the tradeoff it optimized for
### Phase 3: Present Designs
Show all designs side-by-side. Label each by its primary constraint. Do not editorialize yet -- let the user see the raw options.
### Phase 4: Comparative Evaluation
Evaluate every design against Ousterhout's criteria. See [evaluation-criteria.md](evaluation-criteri