<!-- title: Claude Code Skills开发：从零到发布全实战 -->

# Claude Code Skills 开发实战：从零创建自定义 Skill 到发布

> **学习目标**：掌握 Claude Code Skills 的完整开发流程——从理解 Skill 架构、编写 SKILL.md、打包测试到社区发布。读完本教程，你将独立创建一个功能完整、可分发、带测试验证的自定义 Skill，并深入理解 Skill 的触发机制、渐进加载与最佳实践。
>
> **适用人群**：已安装 Claude Code CLI 并有基本使用经验的开发者，希望将重复性工作流封装为可复用的自动化指令包。

---

## 一、前置条件

| 条件 | 说明 |
|------|------|
| Claude Code CLI | v2.1.145+（支持 `/run-skill-generator`、动态上下文注入等新特性） |
| Node.js 18+ | Claude Code 运行环境 |
| 基础终端操作 | `mkdir`、`cat`、文件编辑等 |
| Git | Skill 版本管理和发布的基础 |
| 一个 Git 仓库 | 用于实战演练 |

安装验证：

```bash
claude --version
# 确保输出 >= 2.1.145
```

---

## 二、理解 Skill 架构：三层渐进加载

在动手写代码之前，先理解 Skill 的工作原理。这是写出高质量 Skill 的基础。

### 2.1 Skill 的本质

Skill 不是插件，不是 MCP 服务器，也不是脚本。它是一份**结构化指令文档**，告诉 Claude 在特定场景下应该如何行动。核心文件只有一个：`SKILL.md`。

Skill 的运行机制遵循**渐进加载**（Progressive Disclosure）原则：

```mermaid
graph TD
    A[用户输入 / 提问] --> B{Claude 检查可用 Skills 列表}
    B -->|description 匹配| C[加载 Skill 元数据<br/>name + description ~100 tokens]
    C --> D[读取 SKILL.md 正文<br/>执行指令]
    D -->|需要参考文件| E[按需加载 references/<br/>scripts/ 等资源]
    D -->|任务简单| F[直接执行并返回结果]
    E --> G[使用完整资源完成任务]
    F --> H[输出结果]
    G --> H

    style C fill:#22d3ee,stroke:#0e7490,color:#000
    style D fill:#34d399,stroke:#047857,color:#000
    style E fill:#a78bfa,stroke:#6d28d9,color:#fff
```

| 层级 | 内容 | 加载时机 | Token 成本 |
|------|------|----------|-----------|
| **元数据层** | name + description | 始终在上下文中 | ~100 tokens（极低） |
| **指令层** | SKILL.md 正文 | Skill 被触发时 | 保持在上下文中直到会话结束 |
| **资源层** | references/、scripts/、assets/ | 按需读取 | 仅使用时产生开销 |

这个设计的核心优势：一个 2000 行的参考文档在 Skill 未被触发时**零开销**。

### 2.2 Skill 存放位置与作用域

```mermaid
graph LR
    subgraph 优先级从高到低
        E[Enterprise<br/>企业管理配置]
        P[Personal<br/>~/.claude/skills/]
        R[Project<br/>.claude/skills/]
        PL[Plugin<br/>插件内 skills/]
    end
    E --> P --> R --> PL

    style E fill:#fb7185,stroke:#be123c,color:#fff
    style P fill:#fbbf24,stroke:#92400e,color:#000
    style R fill:#34d399,stroke:#047857,color:#000
    style PL fill:#94a3b8,stroke:#334155,color:#fff
```

| 位置 | 路径 | 作用域 |
|------|------|--------|
| 企业级 | 管理后台配置 | 全组织所有用户 |
| 个人级 | `~/.claude/skills/<skill-name>/SKILL.md` | 你所有项目 |
| 项目级 | `<project>/.claude/skills/<skill-name>/SKILL.md` | 仅当前项目 |
| 插件级 | `<plugin>/skills/<skill-name>/SKILL.md` | 插件启用时 |

同名 Skill 的优先级：Enterprise > Personal > Project > Plugin。插件级 Skill 使用 `plugin-name:skill-name` 命名空间，不会冲突。

### 2.3 Skill 目录结构

```
my-skill/
├── SKILL.md              # 主指令文件（必须）
├── template.md           # 模板文件（可选）
├── examples/
│   └── sample.md         # 示例输出（可选）
├── scripts/
│   └── validate.sh       # 可执行脚本（可选）
├── references/
│   ├── api-guide.md      # 参考资料（可选）
│   └── best-practices.md
└── assets/
    └── logo.svg          # 静态资源（可选）
```

关键规则：只有 `SKILL.md` 是必须的，其他所有目录和文件都是可选的。

---

## 三、SKILL.md 完全解析

### 3.1 YAML Frontmatter 字段详解

SKILL.md 由两部分组成：YAML 前置元数据（`---` 包裹）和 Markdown 正文。

```yaml
---
# === 基础字段 ===
name: my-skill                    # 显示名，省略则用目录名
description: |                    # 核心字段：Claude 据此判断是否触发
  一句话说明做什么。触发词：X、Y、Z。
  当用户需要 A、B、C 时使用此技能。

# === 触发控制 ===
when_to_use: |                    # 补充触发上下文（计入 1536 字符上限）
  用户说"帮我部署"、"发布到生产"时触发。
disable-model-invocation: true    # true = 禁止 Claude 自动触发，仅 /手动调用
user-invocable: true              # false = 从 / 菜单隐藏（背景知识型）

# === 参数 ===
argument-hint: "[issue-number]"   # 自动补全时显示的参数提示
arguments: "issue-number"         # 命名参数，可在正文中用 $issue-number 引用

# === 执行控制 ===
context: fork                     # 在子 Agent 中运行（隔离上下文）
agent: general-purpose            # 子 Agent 类型（需 context: fork）
model: claude-sonnet-4-6          # 指定运行模型
effort: high                      # 努力级别：low/medium/high/xhigh/max
allowed-tools: "Read Grep Bash"   # 预授权工具列表

# === 路径过滤 ===
paths: "src/**/*.py,tests/**/*.py" # 仅在匹配路径时激活

# === 其他 ===
shell: bash                       # shell 类型（bash 或 powershell）
---
```

**最关键的字段是 `description`**——它是 Claude 决定是否触发 Skill 的唯一依据。字符上限 1536，每个字符都要精打细算。

### 3.2 字符串替换变量

在 SKILL.md 正文中，可以使用以下变量：

| 变量 | 说明 | 示例 |
|------|------|------|
| `$ARGUMENTS` | 用户传入的全部参数 | `/my-skill hello world` → `hello world` |
| `$ARGUMENTS[0]` / `$0` | 第一个参数 | `hello` |
| `$ARGUMENTS[1]` / `$1` | 第二个参数 | `world` |

```yaml
# frontmatter 中定义命名参数
arguments: "filename format"
```

```markdown
<!-- 正文中使用 -->
处理文件 $filename，输出格式为 $format。
```

### 3.3 动态上下文注入

这是 Skill 最强大的特性之一——在 Skill 加载时执行命令并将输出嵌入到指令中：

```markdown
## 当前变更
!\`git diff HEAD\`

## 当前分支
!\`git branch --show-current\`

## 文件列表
\`\`\`!
ls -la src/
\`\`\`
```

`!`command`` 形式：Claude Code 在加载 Skill 时执行命令，将输出替换到对应位置。这意味着 Skill 指令中包含的是**实时数据**，而非静态文本。

---

## 四、实战：创建一个 API 文档生成 Skill

现在动手创建一个完整的 Skill：`api-doc-gen`——自动扫描代码中的 API 路由，生成标准化 API 文档。

### 4.1 需求分析

| 需求项 | 说明 |
|--------|------|
| 核心功能 | 扫描项目中的 API 路由定义，生成 Markdown 格式的 API 文档 |
| 支持框架 | Express.js、Fastify、Koa |
| 输出格式 | 带目录、分组的 Markdown 文件 |
| 触发方式 | `/api-doc-gen` 或自动识别 API 文档生成需求 |
| 附加功能 | 检测缺失的参数校验和安全标记 |

### 4.2 创建 Skill 目录

```bash
# 创建个人级 Skill
mkdir -p ~/.claude/skills/api-doc-gen/references
mkdir -p ~/.claude/skills/api-doc-gen/templates
```

### 4.3 编写 SKILL.md

```yaml
---
name: api-doc-gen
description: |
  扫描项目 API 路由并生成标准化 Markdown API 文档。
  触发词："生成 API 文档"、"API 文档"、"接口文档"、"接口文档生成"、"API reference"。
  当用户需要生成、更新或审查 API 文档时使用此技能。
  支持扫描 Express.js、Fastify、Koa 路由定义。
argument-hint: "[output-path]"
arguments: "output-path"
disable-model-invocation: false
---
```

接下来是正文部分：

```markdown
# API 文档生成技能

## 角色定义

你是一位专业的 API 文档工程师。根据项目源代码中的路由定义，自动生成结构清晰、信息完整的 API 文档。

## 工作流程

### Step 1：识别框架

扫描项目的 `package.json`，判断使用的 Web 框架：
- 包含 `express` → Express.js 模式
- 包含 `fastify` → Fastify 模式
- 包含 `koa` / `@koa/router` → Koa 模式
- 无法识别 → 询问用户确认

### Step 2：发现路由文件

使用 Glob 查找路由定义文件：
- `src/routes/**/*.{js,ts}`
- `src/**/*route*.{js,ts}`
- `src/**/*controller*.{js,ts}`
- `app.{js,ts}`（根路由注册）

### Step 3：提取路由信息

对每个路由文件，提取以下信息：
1. HTTP 方法（GET/POST/PUT/DELETE/PATCH）
2. 路径（含路径参数，如 `/users/:id`）
3. 中间件链（认证、校验等）
4. 请求参数（query、body、params）
5. 响应格式（从 res.json 推断）
6. 描述注释（JSDoc @description 或行上注释）

### Step 4：生成文档

按照 `templates/api-doc-template.md` 的格式生成文档。

### Step 5：安全审查

在文档末尾附加安全审查清单：
- 标记缺少认证中间件的路由
- 标记缺少输入校验的 POST/PUT/PATCH 路由
- 标记可能存在 SQL 注入风险的查询拼接

## 输出路径

- 如果用户提供了 `$output-path`，保存到指定位置
- 否则保存到 `docs/api-reference.md`

## 参考资源

框架特定的路由模式识别规则，见 `references/framework-patterns.md`。
```

### 4.4 创建参考文件

`references/framework-patterns.md`：

```markdown
# 框架路由模式参考

## Express.js 路由模式

```javascript
// 模式 1：app 直接挂载
app.get('/users', handler)
app.post('/users', handler)

// 模式 2：Router 模块
const router = express.Router()
router.get('/:id', handler)
app.use('/users', router)

// 模式 3：路由文件导出
module.exports = (app) => {
  app.route('/items')
    .get(handler)
    .post(handler)
}
```

## Fastify 路由模式

```javascript
// 模式 1：直接注册
fastify.get('/users', { schema: {...} }, handler)

// 模式 2：插件模式
module.exports = async (fastify) => {
  fastify.post('/users', handler)
}
```

## Koa 路由模式

```javascript
// @koa/router
const router = new Router()
router.get('/users', handler)
router.post('/users/:id', handler)
app.use(router.routes())
```
```

### 4.5 创建输出模板

`templates/api-doc-template.md`：

````markdown
# API Reference

> 自动生成于 {date} | 框架：{framework} | 路由总数：{count}

## 目录

- [认证](#authentication)
- {group-toc}

## 认证

{authentication-section}

---

{group-sections}

---

## 安全审查

| 路由 | 问题 | 严重程度 |
|------|------|----------|
| {security-findings} |
````

### 4.6 最终目录结构

```
api-doc-gen/
├── SKILL.md                          # 主指令文件
├── references/
│   └── framework-patterns.md         # 框架路由识别模式
└── templates/
    └── api-doc-template.md           # 输出文档模板
```

---

## 五、测试与调试

### 5.1 即时生效机制

Claude Code 实时监控 Skill 目录变更。**创建或编辑 Skill 后无需重启**，下一个对话轮次即可生效。

```bash
# 创建 Skill 后直接测试
claude
# 在对话中输入：
> /api-doc-gen
# 或触发自动匹配：
> 帮我生成这个项目的 API 文档
```

### 5.2 手动触发 vs 自动触发

```mermaid
flowchart LR
    A[用户输入] --> B{包含 /skill-name?}
    B -->|是| C[直接加载 SKILL.md<br/>100% 触发]
    B -->|否| D{description 匹配?}
    D -->|是| E[Claude 决定是否加载]
    D -->|否| F[不触发]
    E -->|任务复杂| G[加载并执行]
    E -->|任务简单<br/>Claude 能独立完成| H[不加载<br/>直接用内置能力处理]

    style C fill:#34d399,stroke:#047857,color:#000
    style G fill:#34d399,stroke:#047857,color:#000
    style H fill:#fbbf24,stroke:#92400e,color:#000
```

关键洞察：Claude 只在自身无法轻松完成任务时才咨询 Skill。简单的单步查询即使 description 完美匹配也不会触发。

### 5.3 触发调试技巧

如果 Skill 没有被触发，检查以下几点：

| 问题 | 排查方向 |
|------|----------|
| `/` 菜单看不到 | 检查 `user-invocable` 是否为 `false`；检查目录名是否包含空格或特殊字符 |
| 不自动触发 | description 是否包含足够的触发词和场景描述？任务是否足够复杂？ |
| 触发太频繁 | 添加更精确的 `paths` 限制或 `disable-model-invocation: true` |
| description 被截断 | 总长度（description + when_to_use）超过 1536 字符会被截断 |

---

## 六、高级特性

### 6.1 子 Agent 隔离执行

对于耗时较长的任务，可以让 Skill 在独立的子 Agent 中运行：

```yaml
---
name: deep-analysis
description: 深度代码分析，生成架构报告。
context: fork
agent: general-purpose
effort: high
---
```

`context: fork` 的效果：
- Skill 在独立子进程中运行
- 不消耗主对话上下文窗口
- 结果返回到主对话

### 6.2 Hooks：Skill 生命周期钩子

可以为 Skill 绑定生命周期钩子，实现更精细的控制：

```yaml
---
name: deploy-check
hooks:
  PreToolUse:
    - match: "Bash"
      command: "echo 'Deploy skill activated'"
  PostToolUse:
    - match: "Bash"
      command: "echo 'Command completed'"
---
```

### 6.3 模型和工具控制

```yaml
---
name: quick-refactor
model: claude-sonnet-4-6     # 使用更快的模型
effort: low                   # 快速响应模式
allowed-tools: "Read Edit Grep Bash"  # 预授权工具，无需逐一确认
---
```

`allowed-tools` 特别适合 CI/CD 集成场景——预授权工具后，Skill 执行过程中不会弹出权限确认。

### 6.4 路径限制

```yaml
---
name: python-style
paths: "src/**/*.py,tests/**/*.py,*.py"
---
```

设置 `paths` 后，只有当操作涉及匹配文件时 Skill 才会激活。这对于多语言项目中的语言专属 Skill 非常实用。

---

## 七、Skill 与其他机制对比

```mermaid
graph TB
    subgraph "Claude Code 扩展体系"
        SK[Skill<br/>指令文档]
        MCP[MCP Server<br/>工具服务器]
        SUB[Subagent<br/>独立 Agent]
        CMD[CLAUDE.md<br/>项目配置]
    end

    SK -->|"复杂度低<br/>纯文本指令"| MCP
    SK -->|"需要隔离<br/>可 fork 为"| SUB
    CMD -->|"增长为流程<br/>可提取为"| SK

    style SK fill:#fbbf24,stroke:#92400e,color:#000
    style MCP fill:#a78bfa,stroke:#6d28d9,color:#fff
    style SUB fill:#22d3ee,stroke:#0e7490,color:#000
    style CMD fill:#94a3b8,stroke:#334155,color:#fff
```

| 维度 | Skill | MCP Server | Subagent | CLAUDE.md |
|------|-------|-----------|----------|-----------|
| 本质 | 文本指令 | 外部工具服务器 | 独立 Agent 进程 | 项目配置文件 |
| 复杂度 | 低（写 Markdown） | 中高（写服务器代码） | 低（配置 fork） | 低（写 Markdown） |
| Token 开销 | 按需加载 | 无（工具调用） | 隔离上下文 | 始终加载 |
| 适合场景 | 标准化流程、知识注入 | 外部 API 集成、数据获取 | 耗时任务、并行处理 | 项目约定和上下文 |
| 何时选用 | 重复性工作流、专家知识 | 需要外部工具能力 | 需要上下文隔离 | 项目级全局配置 |

**选择决策树**：如果一个流程在 CLAUDE.md 中已经很长（>50 行），且不是每次对话都需要，就适合提取为 Skill。如果需要调用外部 API 或操作外部系统，用 MCP。如果任务耗时且可以并行，用 Subagent。

---

## 八、Skill 发布与分发

### 8.1 打包为 `.skill` 文件

使用 Anthropic 提供的打包工具：

```bash
# 如果有 skill-creator 插件
python -m scripts.package_skill ~/.claude/skills/api-doc-gen
# 输出：api-doc-gen.skill
```

`.skill` 文件是一个自包含的压缩包，包含整个 Skill 目录。

### 8.2 通过 Git 仓库分发

最常见的方式——将 Skill 放在 Git 仓库中，用户通过 `--add-dir` 引入：

```bash
# 克隆 Skill 仓库
git clone https://github.com/yourname/claude-skills ~/my-skills

# 启动 Claude Code 时引入
claude --add-dir ~/my-skills
```

`--add-dir` 目录下的 `.claude/skills/` 会被自动发现和加载。

### 8.3 发布到 Claude Code 插件市场

对于高质量的 Skill，可以封装为 Claude Code 插件：

1. 创建标准的 npm 包结构
2. 在 `package.json` 中声明 `claude-code` 插件元数据
3. Skill 放在 `skills/` 目录下
4. 发布到 npm 或 Claude Code 插件注册表

### 8.4 企业内部分发

通过企业管理控制台统一配置，推送给组织内所有用户：

- 适合团队标准化工作流（部署流程、代码审查清单等）
- 优先级最高，覆盖个人和项目级 Skill

---

## 九、进阶：Skill 可组合设计模式

### 9.1 Skill 编排模式

多个 Skill 可以协同工作——一个 Skill 的输出触发另一个 Skill：

```mermaid
sequenceDiagram
    participant U as 用户
    participant C as Claude Code
    participant S1 as Skill A: 代码扫描
    participant S2 as Skill B: 报告生成

    U->>C: /scan-and-report src/
    C->>S1: 触发代码扫描 Skill
    S1->>S1: 扫描路由、依赖、安全风险
    S1-->>C: 返回结构化分析数据
    C->>S2: 触发报告生成 Skill
    S2->>S2: 将分析数据格式化为 HTML 报告
    S2-->>C: 输出 report.html
    C-->>U: 扫描完成，报告已生成
```

### 9.2 Skill + MCP 联合模式

Skill 提供指令和流程，MCP 提供工具能力：

```
Skill (指令) → "调用 GitHub MCP 获取 PR 列表" → MCP Server (执行) → 结果返回 → Skill 继续处理
```

### 9.3 资源分层模式

将大型参考文档按领域拆分到 `references/` 下，Skill 正文保持精简：

```markdown
<!-- SKILL.md 正文 -->
## 框架特定规则
读取 `references/express.md` 获取 Express.js 路由模式。
读取 `references/fastify.md` 获取 Fastify 路由模式。
仅在使用对应框架时才读取相应文件。
```

这样做的好处：只有实际需要的参考文件才被加载到上下文中，大幅节省 Token。

---

## 十、编写高质量 Skill 的五个原则

### 原则一：Description 是第一公民

description 是触发机制的唯一依据，必须精心编写：

```yaml
# 差：过于宽泛
description: "Helps with API documentation."

# 好：具体且有触发词
description: |
  扫描项目源代码中的 API 路由定义，自动生成标准化 Markdown API 文档。
  触发词："生成 API 文档"、"接口文档"、"API reference"、"文档化接口"。
  当用户提到 API 文档、接口文档、路由文档时使用。
  支持识别 Express.js、Fastify、Koa 框架路由。
```

**关键技巧**：
- 首句说明做什么
- 包含用户可能使用的各种表达方式（中文/英文/缩写）
- description 稍微"强势"一些——宁可多触发也不要漏触发

### 原则二：正文控制在 500 行以内

每多一行，就在每次触发时多消耗 Token。遵循以下策略：
- 核心流程写在 SKILL.md 正文中
- 详细参考放在 `references/` 下按需加载
- 模板放在 `templates/` 下

### 原则三：解释 Why，而非堆砌 Must

```markdown
# 差：命令式
MUST scan all files. MUST use Express pattern. MUST check security.

# 好：解释原因
扫描所有路由文件以确保文档完整性——遗漏的路由意味着消费者无法发现该接口。
优先识别 Express 模式因为这是项目的主要框架。
安全审查帮助团队在部署前发现潜在风险。
```

LLM 足够聪明——解释背后的原因比堆砌强制性指令更有效。

### 原则四：善用动态上下文注入

```markdown
# 实时获取当前状态
!\`git diff HEAD --name-only\`
!\`cat package.json | grep -E "express|fastify|koa"\`

# 根据实时数据决策，而非让 Claude 去猜
```

### 原则五：可复用的脚本提取到 scripts/

如果多个测试用例中 Claude 都独立编写了类似的辅助脚本（如解析路由、格式化输出），这就是信号——应该将脚本提取到 `scripts/` 目录中预置。

---

## 十一、完整实战演练清单

按以下步骤操作，你将拥有一个可运行的 Skill：

```mermaid
graph TD
    A["1. mkdir -p ~/.claude/skills/api-doc-gen"] --> B["2. 编写 SKILL.md"]
    B --> C["3. 创建 references/ 参考文件"]
    C --> D["4. 创建 templates/ 模板文件"]
    D --> E["5. 在任意 Express 项目中测试"]
    E --> F["6. 输入 /api-doc-gen 触发"]
    F --> G["7. 检查生成的 docs/api-reference.md"]
    G --> H["8. 迭代优化 description 触发词"]
    H --> I["9. 添加路径过滤 paths 字段"]
    I --> J["10. 打包发布"]

    style A fill:#22d3ee,stroke:#0e7490,color:#000
    style F fill:#fbbf24,stroke:#92400e,color:#000
    style J fill:#34d399,stroke:#047857,color:#000
```

| 步骤 | 命令 | 验证 |
|------|------|------|
| 1. 创建目录 | `mkdir -p ~/.claude/skills/api-doc-gen/{references,templates}` | `ls ~/.claude/skills/api-doc-gen/` |
| 2. 编写 SKILL.md | 按第四节内容创建文件 | 文件存在且 YAML 格式正确 |
| 3. 添加参考文件 | 创建 `references/framework-patterns.md` | 文件存在 |
| 4. 添加模板 | 创建 `templates/api-doc-template.md` | 文件存在 |
| 5. 测试 | 在 Express 项目中运行 `claude` | 输入 `/api-doc-gen` 能触发 |
| 6. 自动触发测试 | 输入"帮我生成 API 文档" | 无需 `/` 前缀即可触发 |
| 7. 输出验证 | 检查生成的 Markdown | 包含路由列表、安全审查 |
| 8. 迭代 | 调整 description 触发词 | 非相关提问不触发 |

---

## 十二、常见问题排查

### Q1：创建 Skill 后 `/` 菜单看不到

**原因**：目录名或 `name` 字段包含大写字母、空格或特殊字符。

**解决**：目录名只使用小写字母、数字和连字符。

### Q2：Skill 一直没有自动触发

**原因**：description 不够具体，或任务太简单 Claude 认为自己能处理。

**解决**：
1. 在 description 中增加更多触发场景和同义词
2. 让 description 更"强势"——明确列出应该触发的场景
3. 如果是 CI/CD 场景，考虑使用 `claude -p` 管道模式直接调用

### Q3：Skill 触发太频繁

**原因**：description 过于宽泛，匹配了不该匹配的场景。

**解决**：
1. 添加 `paths` 字段限制激活范围
2. 设置 `disable-model-invocation: true` 改为纯手动触发
3. 缩小 description 的覆盖面

### Q4：上下文窗口消耗过快

**原因**：SKILL.md 正文过长，或参考文件被无条件加载。

**解决**：
1. SKILL.md 控制在 500 行以内
2. 大型参考文档放在 `references/` 下，正文中明确说明"仅在需要时读取"
3. 使用 `context: fork` 在子 Agent 中运行

### Q5：已有的 `.claude/commands/` 怎么办

`.claude/commands/` 中的命令继续正常工作，与 Skill 共享 `/` 命名空间。如果同名，Skill 优先。建议逐步迁移到 Skill 格式以获得更多功能（目录支持、frontmatter 控制等）。

---

## 延伸阅读

- [Anthropic 官方 Skills 文档](https://code.claude.com/docs/en/skills) — 最权威的 Skill 开发参考
- [Agent Skills 开放标准](https://github.com/anthropics/agent-skills) — Skill 格式的跨平台标准规范
- [Skill Creator 工具](https://github.com/anthropics/claude-code/tree/main/skills/skill-creator) — Anthropic 官方的 Skill 创建辅助工具，支持自动评测和迭代优化

---

## 训练营适用性评估

| 维度 | 评估 |
|------|------|
| 适合训练营类型 | AI 工具链训练营、开发效能提升营、团队标准化训练营 |
| 预计教学时长 | 2-3 小时（含动手实操） |
| 难度级别 | 中级（需 Claude Code 基础使用经验） |
| 实操占比 | 70%（核心是动手创建和调试 Skill） |
| 交付物 | 每人完成一个可运行的自定义 Skill |
| 建议分组 | 按技术栈分组（前端/后端/DevOps），各组创建不同领域的 Skill |
| 扩展任务 | 将 Skill 打包为插件发布、创建团队共享 Skill 仓库 |

---

## 参考来源

1. [Extend Claude with skills - Claude Code Docs](https://code.claude.com/docs/en/skills) — Anthropic 官方 Skills 开发完整文档，涵盖创建、配置、分发全流程
2. [How to Build Claude Code Skills That Actually Work](https://dev.to/whoffagents/how-to-build-claude-code-skills-custom-slash-commands-that-actually-work-1nje) — 实战导向的 Skill 创建教程，包含多个真实案例
3. [Claude Code Skills Complete Developer Guide](https://fp8.co/articles/Claude-Code-Skills-Complete-Developer-Guide) — 5 个完整 Skill 示例，覆盖 SKILL.md 规范到安全控制
4. [Build a Claude Skill: YAML Frontmatter, SKILL.md Instructions](https://sjramblings.io/building-skills-for-claude-part-2/) — SKILL.md 格式和 frontmatter 字段深度解析
5. [Skill Anatomy - DeepWiki](https://deepwiki.com/daymade/claude-code-skills/3.2-skill-anatomy) — Skill 组件结构的详细参考

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
