Agent SkillsRemocn/remocn › design-an-interface

design-an-interface

GitHub

基于“设计两次”理念,并行生成多个截然不同的接口设计方案。通过对比简洁性、灵活性及实现效率等维度,评估各方案优劣,最终综合提炼出最优接口设计,适用于API设计及模块接口探索场景。

.agents/skills/design-an-interface/SKILL.md Remocn/remocn

Trigger Scenarios

用户希望设计API或模块接口 用户要求探索多种接口选项 用户提到“design it twice”

Install

npx skills add Remocn/remocn --skill design-an-interface -g -y
More Options

Non-standard path

npx skills add https://github.com/Remocn/remocn/tree/main/.agents/skills/design-an-interface -g -y

Use without installing

npx skills use Remocn/remocn@design-an-interface

指定 Agent (Claude Code)

npx skills add Remocn/remocn --skill design-an-interface -a claude-code -g -y

安装 repo 全部 skill

npx skills add Remocn/remocn --all -g -y

预览 repo 内 skill

npx skills add Remocn/remocn --list

SKILL.md

Frontmatter
{
    "name": "design-an-interface",
    "description": "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\"."
}

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)

Spawn 3+ sub-agents simultaneously using Task tool. Each must produce a radically different approach.

Prompt template for each sub-agent:

Design an interface for: [module description]

Requirements: [gathered requirements]

Constraints for this design: [assign a different constraint to each agent]
- 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 [specific paradigm/library]"

Output format:
1. Interface signature (types/methods)
2. Usage example (how caller uses it)
3. What this design hides internally
4. Trade-offs of this approach

3. Present Designs

Show each design with:

  1. Interface signature - types, methods, params
  2. Usage examples - how callers actually use it in practice
  3. What it hides - complexity kept internal

Present designs sequentially so user can absorb each approach before comparison.

4. Compare Designs

After showing all designs, compare them on:

  • 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

Discuss trade-offs in prose, not tables. Highlight where designs diverge most.

5. Synthesize

Often the best design combines insights from multiple options. Ask:

  • "Which design best fits your primary use case?"
  • "Any elements from other designs worth incorporating?"

Evaluation Criteria

From "A Philosophy of Software Design":

Interface simplicity: Fewer methods, simpler params = easier to learn and use correctly.

General-purpose: Can handle future use cases without changes. But beware over-generalization.

Implementation efficiency: Does interface shape allow efficient implementation? Or force awkward internals?

Depth: Small interface hiding significant complexity = deep module (good). Large interface with thin implementation = shallow module (avoid).

Anti-Patterns

  • Don't let sub-agents produce similar designs - enforce radical difference
  • Don't skip comparison - the value is in contrast
  • Don't implement - this is purely about interface shape
  • Don't evaluate based on implementation effort

Version History

  • f77e19e Current 2026-07-19 22:34

Same Skill Collection

.agents/skills/ask-matt/SKILL.md
.agents/skills/claude-handoff/SKILL.md
.agents/skills/code-review/SKILL.md
.agents/skills/codebase-design/SKILL.md
.agents/skills/diagnosing-bugs/SKILL.md
.agents/skills/domain-modeling/SKILL.md
.agents/skills/edit-article/SKILL.md
.agents/skills/git-guardrails-claude-code/SKILL.md
.agents/skills/grilling/SKILL.md
.agents/skills/handoff/SKILL.md
.agents/skills/implement/SKILL.md
.agents/skills/improve-codebase-architecture/SKILL.md
.agents/skills/loop-me/SKILL.md
.agents/skills/migrate-to-shoehorn/SKILL.md
.agents/skills/obsidian-vault/SKILL.md
.agents/skills/prototype/SKILL.md
.agents/skills/qa/SKILL.md
.agents/skills/request-refactor-plan/SKILL.md
.agents/skills/research/SKILL.md
.agents/skills/resolving-merge-conflicts/SKILL.md
.agents/skills/scaffold-exercises/SKILL.md
.agents/skills/setup-matt-pocock-skills/SKILL.md
.agents/skills/setup-pre-commit/SKILL.md
.agents/skills/tdd/SKILL.md
.agents/skills/teach/SKILL.md
.agents/skills/to-spec/SKILL.md
.agents/skills/to-tickets/SKILL.md
.agents/skills/triage/SKILL.md
.agents/skills/ubiquitous-language/SKILL.md
.agents/skills/wayfinder/SKILL.md
.agents/skills/wizard/SKILL.md
.agents/skills/writing-beats/SKILL.md
.agents/skills/writing-fragments/SKILL.md
.agents/skills/writing-great-skills/SKILL.md
.agents/skills/writing-shape/SKILL.md
.claude/skills/interactivity-best-practices/SKILL.md
agent/skills/ask-matt/SKILL.md
agent/skills/claude-handoff/SKILL.md
agent/skills/code-review/SKILL.md
agent/skills/codebase-design/SKILL.md
agent/skills/design-an-interface/SKILL.md
agent/skills/diagnosing-bugs/SKILL.md
agent/skills/domain-modeling/SKILL.md
agent/skills/edit-article/SKILL.md
agent/skills/git-guardrails-claude-code/SKILL.md
agent/skills/grilling/SKILL.md
agent/skills/handoff/SKILL.md
agent/skills/implement/SKILL.md
agent/skills/improve-codebase-architecture/SKILL.md
agent/skills/loop-me/SKILL.md
agent/skills/migrate-to-shoehorn/SKILL.md
agent/skills/obsidian-vault/SKILL.md
agent/skills/prototype/SKILL.md
agent/skills/qa/SKILL.md
agent/skills/request-refactor-plan/SKILL.md
agent/skills/research/SKILL.md
agent/skills/resolving-merge-conflicts/SKILL.md
agent/skills/scaffold-exercises/SKILL.md
agent/skills/setup-matt-pocock-skills/SKILL.md
agent/skills/setup-pre-commit/SKILL.md
agent/skills/tdd/SKILL.md
agent/skills/teach/SKILL.md
agent/skills/to-spec/SKILL.md
agent/skills/to-tickets/SKILL.md
agent/skills/triage/SKILL.md
agent/skills/ubiquitous-language/SKILL.md
agent/skills/wayfinder/SKILL.md
agent/skills/wizard/SKILL.md
agent/skills/writing-beats/SKILL.md
agent/skills/writing-fragments/SKILL.md
agent/skills/writing-great-skills/SKILL.md
agent/skills/writing-shape/SKILL.md
skills/remocn/SKILL.md
.agents/skills/grill-me/SKILL.md
.agents/skills/grill-with-docs/SKILL.md
agent/skills/grill-me/SKILL.md
agent/skills/grill-with-docs/SKILL.md

Metadata

Files
0
Version
f77e19e
Hash
a2596e9f
Indexed
2026-07-19 22:34

ホーム - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-22 14:22
浙ICP备14020137号-1 $お客様$