
design-an-interface
使用并行子代理为模块生成多个显著不同的接口设计。适用于用户想设计 API、探索接口选项、比较模块形状,或提到 “design it twice” 时。
- Installs
- 2.1K
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/vinvcn/mattpocock-skills-zh-cn --skill design-an-interface- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads design-an-interface automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Design an Interface
基于 “A Philosophy of Software Design” 中的 “Design It Twice”:你的第一个想法很可能不是最好的。生成多个根本不同的 designs,然后比较。
Workflow
1. Gather Requirements
设计前先理解:
- 这个 module 解决什么问题?
- callers 是谁?(other modules、external users、tests)
- key operations 是什么?
- 有哪些 constraints?(performance、compatibility、existing patterns)
- 什么应该隐藏在内部,什么应该暴露?
询问:“这个 module 需要做什么?谁会使用它?”
2. Generate Designs (Parallel Sub-Agents)
使用 Task tool 同时生成 3+ 个 sub-agents。每个都必须产出根本不同的 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
每个 design 展示:
- Interface signature — types、methods、params
- Usage examples — callers 在实践中如何使用
- What it hides — 保持在内部的 complexity
顺序展示 designs,让用户能在比较前吸收每个 approach。
4. Compare Designs
展示所有 designs 后,按以下维度比较:
- Interface simplicity:更少 methods、更简单 params
- General-purpose vs specialized:flexibility vs focus
- Implementation efficiency:shape 是否允许高效 internals?
- Depth:小 interface 隐藏大量 complexity(好)vs 大 interface 配薄 implementation(坏)
- Ease of correct use vs ease of misuse
用 prose 讨论 trade-offs,不用 tables。突出 designs 分歧最大的地方。
5. Synthesize
最好的 design 往往结合多个 options 的 insights。询问:
- “哪个 design 最适合你的 primary use case?”
- “其他 designs 中是否有值得合并的 elements?”
Evaluation Criteria
来自 “A Philosophy of Software Design”:
Interface simplicity:更少 methods、更简单 params = 更容易学习和正确使用。
General-purpose:能不改动就处理未来 use cases。但要警惕 over-generalization。
Implementation efficiency:interface shape 是否允许高效 implementation?还是迫使 internals 变别扭?
Depth:小 interface 隐藏大量 complexity = deep module(好)。大 interface 配薄 implementation = shallow module(避免)。
Anti-Patterns
- 不要让 sub-agents 产出相似 designs;强制 radical difference
- 不要跳过 comparison;价值在 contrast
- 不要 implement;这里只讨论 interface shape
- 不要基于 implementation effort 评价
FAQ
What does the design-an-interface skill do?
使用并行子代理为模块生成多个显著不同的接口设计。适用于用户想设计 API、探索接口选项、比较模块形状,或提到 “design it twice” 时。
How do I install design-an-interface?
Run npx skills add https://github.com/vinvcn/mattpocock-skills-zh-cn --skill design-an-interface in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/design-an-interface/ (personal) or .claude/skills/design-an-interface/ (project).
Which AI agents can use design-an-interface?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is design-an-interface safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains design-an-interface?
It is published by vinvcn in vinvcn/mattpocock-skills-zh-cn. It has 2,143 recorded installs.
More from vinvcn/mattpocock-skills-zh-cn
grill-with-docs
vinvcn/mattpocock-skills-zh-cn
一个用来打磨计划或设计的持续追问式访谈,并在过程中创建文档(ADRs 和词汇表)。
setup-matt-pocock-skills
vinvcn/mattpocock-skills-zh-cn
为此仓库配置 engineering skills:设置其 issue tracker、triage labels 词汇与 domain docs 布局。在首次使用其他 engineering skills 前运行一次。
tdd
vinvcn/mattpocock-skills-zh-cn
测试驱动开发。适用于用户想用先写测试的方式构建功能或修复缺陷、提到 “red-green-refactor”,或需要集成测试时。
improve-codebase-architecture
vinvcn/mattpocock-skills-zh-cn
扫描代码库中的深化机会,生成可视化 HTML 报告,然后围绕你选中的候选项继续追问。
Popular backend & apis skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
entra-app-registration
microsoft/azure-skills
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.
google-agents-cli-adk-code
google/agents-cli
This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).
embedded-captions
heygen-com/hyperframes
Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.
entra-agent-id
microsoft/azure-skills
Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).
neon
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.