---
name: skill-smith
description: "Use when 需要创建新的 AI Agent 技能、改进已有 SKILL.md 文件、设计技能工作流或不确定技能该如何组织时。触发场景：创建技能、新建技能、写技能、技能开发、skill-smith、设计技能、编写SKILL.md、制作技能、开发skill、如何写一个好技能、技能质量不好怎么改进。"
---

# 技能铸造师

铁律：每一行内容都要对得起 token 消耗。不写 Claude 已经知道的东西，只写它不知道的领域知识、流程规范和决策框架。

## 什么是技能

技能是给 AI Agent 的"专项培训手册"——把它从通用助手变成领域专家。好的技能应该：
- 提供 Claude 不具备的领域知识或流程约束
- 让输出更一致、更可预测
- 减少用户每次都要重复解释的上下文

---

## 工作流

### Step 1：理解需求（必须完成，不可跳过）

至少收集 3 个具体的使用示例：

```
询问用户：
"请给我 3 个你会如何使用这个技能的具体例子，
包括你会说什么，以及你期望得到什么输出。"
```

没有 3 个具体例子，不进入下一步。

同时了解：
- "现在没有这个技能时，你是怎么做的？"（理解 Gap）
- "这个技能最重要的限制/铁律是什么？"
- "输出格式有特殊要求吗？"

### Step 2：架构规划

加载 `references/architecture-guide.md`，回答以下问题：

1. **主文件** `SKILL.md`：
   - 核心工作流是什么？（步骤清单）
   - 有哪些铁律（必须遵守的规则）？
   - 需要哪些用户确认门控？

2. **参考文档** `references/`：
   - 哪些内容是重型参考资料（检查清单、模板、规范）？
   - 按需加载哪些文档（在工作流的哪个步骤加载）？
   - 每个 reference 文件聚焦一个主题

3. **资源文件** `assets/`（可选）：
   - 用于输出但不用于推理的文件（图片、固定模板）

**架构决策原则**：
- `SKILL.md` 控制在 500 行以内
- 超出 500 行的内容移到 `references/`
- 每个 reference 文件聚焦单一主题

### Step 3：编写 SKILL.md

#### 3.1 Frontmatter（决定触发时机）

加载 `references/description-guide.md`。

```yaml
---
name: skill-name
description: "核心描述。触发词：[关键词 1]、[关键词 2]、[关键词 3]..."
---
```

**描述要求**：
- 前 50 字说明解决什么问题
- 列出 10-20 个触发关键词（中英文都要包含）
- 包含触发场景的动词（创建、分析、优化、生成...）

#### 3.2 铁律（Iron Law）

在标题下方立即写出最重要的约束：

```markdown
# 技能名称

铁律：[最重要的行为约束，用户最需要知道的一条规则]
```

#### 3.3 工作流（核心内容）

加载 `references/workflow-patterns.md`。

使用**勾选清单格式**，让 AI 可以追踪进度：

```markdown
## 工作流

- [ ] 第一步：[描述]（标注是否必须）
  - [子步骤 1]
  - [子步骤 2]
- [ ] 第二步：[描述]
  - 用户确认门控：[在继续前必须获得用户批准]
```

**确认门控示例**：
```markdown
**将以上内容展示给用户确认，批准后才继续。**
```

#### 3.4 参考资源

文件末尾列出所有 references 及加载时机：

```markdown
## 参考资源

- `references/checklist.md` — 在第 3 步加载，用于[目的]
- `references/template.md` — 在输出阶段加载，用于[目的]
```

### Step 4：编写 References

每个 reference 文件：
- 聚焦单一主题（不要"大杂烩"）
- 以表格、清单、代码示例为主（减少叙述性文字）
- 文件名描述内容（`security-checklist.md` 而非 `ref1.md`）

### Step 5：质量检查

**发布前检查清单**：

- [ ] `SKILL.md` 是否 < 500 行？
- [ ] 每段内容是否都对得起 token（删掉 Claude 已经知道的废话）？
- [ ] description 是否包含了足够的触发关键词？
- [ ] 铁律是否明确（最重要的约束）？
- [ ] 工作流中是否有合适的用户确认门控？
- [ ] 是否在第一步就要求了 3 个具体例子？
- [ ] references 是否按需加载而非一次性全加载？
- [ ] 是否有反模式清单（告诉 AI 不该做什么）？

### Step 6：README.md

编写简短的安装和使用说明：
- 安装命令（`npx skills add ...`）
- 触发方式
- 主要功能和使用场景
- 简单的使用示例

---

## 技能目录结构

```
skill-name/
├── SKILL.md          # 主文件（<500行）
├── README.md         # 安装和使用说明
└── references/       # 按需加载的参考文档
    ├── checklist.md
    └── template.md
```

---

## 反模式警告

| 反模式 | 识别特征 | 处理方式 |
|--------|----------|----------|
| 废话文学 | 解释 Claude 已知的基础概念 | 删除 |
| 一次性全加载 | 所有 references 在开头全部加载 | 改为按步骤按需加载 |
| 没有铁律 | 缺少明确的行为约束 | 识别最重要的约束写到最前面 |
| 没有确认门控 | 自作主张连续执行 | 在关键决策前增加用户确认 |
| 超大单文件 | SKILL.md > 1000 行 | 将重型内容移到 references |
| 触发词不足 | description 太短，只有 1-2 句 | 增加 10-20 个触发关键词 |

---

## 警告：当你想跳过需求收集或质量检查时

遇到以下想法，立刻停下——未经验证的技能比没有技能更有害（会给 Agent 错误指导）：

| 借口 | 现实 |
|------|------|
| "需求很清楚，不需要 3 个例子" | 例子的作用是暴露你的假设，不是重复已知信息。没有例子就没有边界检验。 |
| "description 有几个触发词就够了" | 触发词不足导致技能无法被发现。10-20 个关键词是最低要求，不是上限。 |
| "SKILL.md 长一点没关系，内容更全面" | 超过 500 行的 SKILL.md 会消耗过多 context。把重型内容移到 references。 |
| "这个技能很简单，不需要反模式清单" | 简单技能的边界更容易被 Agent 误解。反模式清单是防止误用的护栏。 |
| "用户要的快，先发布再完善" | 未完善的技能会被 Agent 错误遵循，修复成本远高于一开始做好。 |

## 参考资源

- `references/description-guide.md` — Frontmatter description 编写指南
- `references/workflow-patterns.md` — 工作流设计模式
- `references/architecture-guide.md` — 技能架构设计原则
