chore: import zh skill api-shape-explorer

This commit is contained in:
wehub-skill-sync
2026-07-13 21:37:01 +08:00
commit 8c4cc8c44e
3 changed files with 123 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2026 Matt Pocock
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+9
View File
@@ -0,0 +1,9 @@
# WeHub 来源说明
- Skill 名称:`api-shape-explorer`
- 中文类目:API 接口设计探索
- 上游仓库:`zebbern__claude-code-guide`
- 上游路径:`skills/api-shape-explorer/SKILL.md`
- 上游链接:https://github.com/zebbern/claude-code-guide/blob/HEAD/skills/api-shape-explorer/SKILL.md
- 本仓库为 WeHub 中文 Skill 汉化包,基于 skill 市场筛选 Top200 清单整理
- 原作者、版权和许可证信息以上游仓库为准
+93
View File
@@ -0,0 +1,93 @@
---
name: api-shape-explorer
description: 使用并行子代理为一个模块生成多个截然不同的接口设计方案。当用户想要设计 API、探索接口选项、比较模块形态或提到「设计两次」时使用。
---
# 设计接口
基于《软件设计哲学》中的「设计两次」原则:你的第一个想法不太可能最好。生成多个截然不同的设计方案,然后进行比较。
## 工作流程
### 1. 收集需求
在设计之前,了解以下内容:
- [ ] 这个模块解决什么问题?
- [ ] 调用方是谁?(其他模块、外部用户、测试)
- [ ] 关键操作有哪些?
- [ ] 是否有约束条件?(性能、兼容性、现有模式)
- [ ] 哪些内容应该隐藏在内,哪些应该暴露?
询问:「这个模块需要做什么?谁会使用它?」
### 2. 生成设计方案(并行子代理)
使用 Task 工具同时启动 3 个以上的子代理。每个代理必须提出一种**截然不同**的方案。
```
每个子代理的提示模板:
为以下内容设计接口:[模块描述]
需求:[收集到的需求]
该设计的约束条件:[为每个代理分配不同的约束条件]
- 代理 1:「最小化方法数量——目标最多 1-3 个方法」
- 代理 2:「最大化灵活性——支持多种使用场景」
- 代理 3:「针对最常见的情况进行优化」
- 代理 4:「借鉴[特定范式/库]的灵感」
输出格式:
1. 接口签名(类型/方法)
2. 使用示例(调用方如何使用)
3. 该设计在内部隐藏了什么
4. 该方法的权衡取舍
### 3. 展示设计方案
展示每个设计,内容包括:
1. **接口签名** —— 类型、方法、参数
2. **使用示例** —— 调用方在实际中如何使用
3. **隐藏内容** —— 隐藏在内部的复杂性
按顺序展示设计方案,以便用户在比较之前能充分理解每种方案。
### 4. 比较设计方案
展示所有设计方案后,从以下几个方面进行比较:
- **接口简洁性**:方法更少、参数更简单
- **通用性与专用性**:灵活性 vs 专注度
- **实现效率**:接口形态是否允许高效的内部实现?
- **深度**:小接口隐藏大量复杂性(好)vs 大接口搭配薄实现(差)
- **正确使用的容易程度** vs **误用的容易程度**
用散文而非表格讨论权衡取舍。突出各个设计方案之间分歧最大的地方。
### 5. 综合提炼
通常最好的设计方案融合了多个选项的见解。询问:
- 「哪个设计最符合你的主要使用场景?」
- 「其他设计中是否有值得借鉴的元素?」
## 评估标准
摘自《软件设计哲学》:
**接口简洁性**:方法更少、参数更简单 = 更容易学习和正确使用。
**通用性**:能够在不改动的情况下处理未来使用场景。但要注意过度泛化。
**实现效率**:接口形态是否允许高效的实现?还是会迫使内部结构变得笨拙?
**深度**:小接口隐藏大量复杂性 = 深度模块(好)。大接口搭配薄实现 = 浅度模块(避免)。
## 反模式
- 不要让子代理产生相似的设计方案——要强制它们截然不同
- 不要跳过比较环节——价值在于对比
- 不要实现——这纯粹是关于接口形态的设计
- 不要根据实现工作量来评估