design-an-interface
使用并行子代理为一个模块生成多个截然不同的接口设计。当用户想设计 API、探索接口方案、对比模块形态,或提到 "design it twice" 时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
使用并行子代理为一个模块生成多个截然不同的接口设计。当用户想设计 API、探索接口方案、对比模块形态,或提到 "design it twice" 时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
交互式 QA 会话,用户以对话方式报告 bug 或问题,代理负责提交 GitHub issue。会在后台探索代码库以获取上下文和领域语言。当用户想报告 bug、做 QA、以对话方式提交 issue,或提到 "QA session" 时使用。
通过用户访谈创建一份带有微小提交(tiny commits)的详细重构计划,然后将其作为 GitHub issue 提交。当用户想规划一次重构、创建重构 RFC,或将一次重构拆分为安全的增量步骤时使用。
从当前对话中提炼出一份 DDD 风格的通用语言(ubiquitous language)术语表,标记歧义并提出规范术语。保存到 UBIQUITOUS_LANGUAGE.md。当用户想定义领域术语、构建术语表、固化用词、创建通用语言,或提到 "domain model" 或 "DDD" 时使用。
询问哪个技能或流程适合你当前的处境。它是本仓库中各技能的路由器。
从两个轴向审查某个固定点(commit、branch、tag 或 merge-base)以来的变更——Standards(代码是否遵循本仓库记录的编码规范?)和 Spec(代码是否符合源起的 issue/PRD 的要求?)。在并行子智能体中运行两项审查,并把它们并排报告。当用户想审查一个分支、一个 PR、进行中的变更,或要求 "review since X" 时使用。
用于设计深模块的共享词汇。当用户想设计或改进一个模块的接口、寻找深化机会、决定接缝放在何处、让代码更可测试或更易于 AI 导航,或当另一个技能需要深模块词汇时使用。
| name | design-an-interface |
| description | 使用并行子代理为一个模块生成多个截然不同的接口设计。当用户想设计 API、探索接口方案、对比模块形态,或提到 "design it twice" 时使用。 |
基于《软件设计的哲学》(A Philosophy of Software Design)中的"设计两次"(Design It Twice):你的第一个想法不太可能是最好的。先生成多个截然不同的设计,然后进行对比。
在设计之前,先弄清楚:
询问:"这个模块需要做什么?谁会用它?"
使用 Task 工具同时启动 3 个以上子代理。每个都必须产出一个截然不同的方案。
每个子代理的提示模板:
为以下对象设计一个接口:[模块描述]
需求:[收集到的需求]
本设计的约束:[为每个代理分配一个不同的约束]
- 代理 1:"最小化方法数量——目标是最多 1-3 个方法"
- 代理 2:"最大化灵活性——支持多种用例"
- 代理 3:"针对最常见的情况进行优化"
- 代理 4:"从 [某个特定范式/库] 中汲取灵感"
输出格式:
1. 接口签名(类型/方法)
2. 使用示例(调用方如何使用它)
3. 这个设计在内部隐藏了什么
4. 这个方案的权衡取舍
展示每个设计,包含:
按顺序逐个呈现设计,以便用户在对比之前能够吸收每一个方案。
展示完所有设计后,从以下维度对它们进行对比:
用文字而非表格来讨论权衡。突出设计之间差异最大的地方。
最好的设计往往结合了多个方案的洞见。询问:
出自《软件设计的哲学》:
接口简洁性:更少的方法、更简单的参数 = 更易于学习和正确使用。
通用性:能够在不改动的情况下应对未来的用例。但要警惕过度泛化。
实现效率:接口的形态是否允许高效的实现?还是会迫使别扭的内部结构?
深度:小接口隐藏大量复杂性 = 深模块(好)。大接口配薄实现 = 浅模块(应避免)。