design-an-interface

Installation
Summary

Generate multiple radically different interface designs using parallel sub-agents to explore module shape options.

  • Spawns 3+ simultaneous sub-agents, each constrained to produce a fundamentally different design approach (minimal methods, maximum flexibility, common-case optimization, paradigm-inspired)
  • Presents each design with interface signature, usage examples, and internal trade-offs before comparison
  • Compares designs on simplicity, generality, implementation efficiency, and depth using principles from "A Philosophy of Software Design"
  • Guides synthesis by identifying which design best fits your primary use case and what elements from other approaches might combine into a stronger solution
SKILL.md

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)

Related skills

More from mattpocock/skills

Installs
7.5K
GitHub Stars
73.5K
First Seen
Feb 13, 2026