# design-an-interface

> Claude/Codex skill by [@mattpocock](https://omgskills.com/library/mattpocock/index.md) · 204k stars · Updated 2026-08-05

Generate multiple radically different interface designs for a module using parallel sub-agents. Use when user wants to design an API, explore interface options, compare module shapes, or mentions "design it twice".

## Install

```sh
git clone https://github.com/mattpocock/skills /tmp/skills && ln -s /tmp/skills/skills/deprecated/design-an-interface ~/.claude/skills/design-an-interface
```

## From README

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 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?" Generate Designs (Parallel Sub-Agents) Spawn 3+ sub-agents simultaneously using Task tool. Each must produce a radically different approach. Present Designs Show each design with: Interface signature - types, methods, params 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.

## Links

- HTML page: https://omgskills.com/library/mattpocock/skills/design-an-interface/
- GitHub: https://github.com/mattpocock/skills
- Author: [@mattpocock](https://omgskills.com/library/mattpocock/index.md)

## More from this repo

- [chief-of-staff](https://omgskills.com/library/mattpocock/skills/chief-of-staff/index.md) — Pursue a long-running goal in a single session by co-ordinating subagents.
   - [@mattpocock](https://omgskills.com/library/mattpocock/index.md) · 324k stars
- [tdd](https://omgskills.com/library/mattpocock/skills/tdd/index.md) — Test-driven development.
   - [@mattpocock](https://omgskills.com/library/mattpocock/index.md) · 323k stars
- [implement-spec](https://omgskills.com/library/mattpocock/skills/implement-spec/index.md) — Implement the result of /to-spec and /to-tickets in code.
   - [@mattpocock](https://omgskills.com/library/mattpocock/index.md) · 322k stars
