agentleFS
DROOdotFOODROOdotFOO/agent-skills/skills/interface-designer/SKILL.md

interface-designer

Skill1 starsChanged 2 months agoMITView on GitHub

Design interfaces using Ousterhout's "Design It Twice" method with parallel sub-agents. TRIGGER when: user asks to design an API, interface, module boundary, or public surface area, or says "design it twice." DO NOT TRIGGER when: user already has a specific interface and wants implementation, or is refactoring internals without changing the public API.

We split this skill into the rules it gives an agent

6 rules. About 0 are common, 6 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Every interface design involves tradeoffs you cannot see from a single perspective.

    line 17
  2. Distinctive:

    Before spawning any sub-agents, clarify:

    line 23
  3. Distinctive:

    Do NOT start designing until requirements are agreed upon.

    line 29
  4. Distinctive:

    Never present fewer than 3 designs.

    line 65
  5. Distinctive:

    Prefer deep modules: small interface surface, rich behavior behind it.

    line 68
  6. Distinctive:

    If all designs converge, your constraints were too similar -- re-run with harder constraints.

    line 69

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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 with the host's delegation facility, each given the same requirements but a different constraint set. In Codex, use parallel spawn_agent calls; in Claude Code, use parallel Agent calls. If the host has no sub-agent facility, stop and explain that the workflow cannot preserve its required independent design passes. Constraints must force radically different designs -- not minor variations. See 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 for the full rubric. Score each design on:

  • Depth (small interface, rich implementation)
  • Simplicity of the common case
  • Resistance to misuse
  • General-purpose vs specialized tradeoff
  • Implementation efficiency

Phase 5: Synthesize

Combine the best elements into a final design. Explain which parts came from which design and why. The synthesis is often none of the originals -- it is a new design informed by all of them.

Rules

  • Never present fewer than 3 designs.
  • Designs must be structurally different, not cosmetic variations.
  • Evaluate on caller ergonomics, not implementation convenience.
  • Prefer deep modules: small interface surface, rich behavior behind it.
  • If all designs converge, your constraints were too similar -- re-run with harder constraints.

What You Get

  • Three or more structurally distinct interface designs, each optimized for a different constraint set.
  • A side-by-side comparative evaluation scored against Ousterhout's criteria (depth, simplicity, misuse resistance).
  • A synthesized final design that combines the strongest elements from all candidates, with rationale for each choice.

Sub-files

FileTopic
evaluation-criteria.mdOusterhout evaluation rubric
constraints.mdDivergent constraint sets for sub-agents

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.