原始来源(不可变)

Claude Skill 编写与实战指南

文件路径:raw/260311-Claude-Skill-编写与实战指南-洛小山-公众号.md

原文:The Complete Guide to Building Skills for Claude 译者:洛小山、林哲韬

Hi,我是洛小山,你学习 AI 的搭子。

最近沉迷折腾龙虾,想把日常工作都 Skill 化,试了挺多方法都不怎么好用。正好最近 Anthropic 出了一份官方指南,我边学边翻,分享给你。


引言

Skill 是以文件夹的形式打包的一组指令,用来教会 Claude 怎么处理特定任务或工作流。这是针对自己需求定制 Claude 最直接的方式之一。

每次对话都要重新解释偏好、流程和背景知识太低效了,而用 Skill 一次性教会 Claude,之后每次都能直接用。

Skill 非常擅长处理高频、重复的工作流。比如,你可以用它来根据需求文档输出前端代码、基于统一的分析框架做调研、套用团队规范生成文档,或者串联起复杂的多步流程。

它们能与 Claude 内置的代码执行、文档创建等能力无缝配合。

对于做 MCP 集成的开发者来说,Skill 是额外一层,把原始的工具访问变成可靠、可复用的工作流。

本指南涵盖了从规划设计到测试与分发环节构建高效 Skill 所需的全部知识。不管你是为自己、团队还是开发者社区构建 Skill,都能在本指南中找到实用的设计模式与真实案例。

你将学到:

  • Skill 结构的技结构规范和最佳实践
  • 独立 Skill 和 MCP 增强工作流的模式
  • 我们在不同使用场景中已验证的有效模式
  • 如何测试、迭代和分发你的 Skill

适合人群:

  • 希望 Claude 持续遵循特定工作流的开发者
  • 希望 Claude 记住自己偏好和流程的高级用户
  • 希望在整个组织中统一规范 Claude 工作方式的团队

本指南的两条路径: 1-2:构建独立 Skill,重点看基础知识、规划与设计,以及类别。 3:增强 MCP 集成,看「Skill + MCP」章节和类别。

两条路径的技术要求是一样的,按自己用例挑着读就行。

学完本指南后,你将能够一气呵成地构建出一个可运行的 Skill。借助 skill-creator 工具,预计只需 15-30 分钟即可完成第一个 Skill 的构建与测试。


01|基础知识

Skill 是什么?

核心设计原则

渐进式披露(Progressive Disclosure)

Skill 采用三级结构:

  • 第一级(YAML 前置元数据):始终加载到 Claude 的系统提示里。只提供足够的信息让 Claude 判断是否要用这个 Skill,不会把所有内容都塞进上下文。
  • 第二级(SKILL.md 正文):Claude 判断 Skill 与当前任务相关时才加载,包含完整的指令和说明。
  • 第三级(链接文件):Skill 目录里的附加文件,Claude 可以按需去查。

这种分级结构在保持专业能力的同时,把 token 消耗控制到最低。

可组合性(Composability)

Claude 可以同时加载多个 Skill。你的 Skill 要能和其他 Skill 配合运行,不要假设自己是唯一可用的。

可移植性(Portability)

Skill 在 Claude.ai、Claude Code 和 API 上行为完全一致。做一次,所有平台都能用——前提是运行环境支持该 Skill 所需的依赖。

面向 MCP 构建者:Skill + 连接器

💡 构建不依赖 MCP 的独立 Skill?跳到「规划与设计」章节,这部分随时可以回来看。

如果你已经有一个跑起来的 MCP 服务器,最难的部分已经完成了。Skill 是叠在上面的知识层——把你已知的工作流和最佳实践固化下来,让 Claude 每次都能稳定地执行。

类比成厨房:

  • MCP 提供专业厨房:工具、食材和设备的访问权限。
  • Skill 提供食谱:一步步说明怎么做出有价值的成果。
  • 两者结合,用户不用自己摸索每个步骤就能完成复杂任务。
MCP(连接性) Skill(知识)
把 Claude 接入你的服务(Notion、Asana、Linear 等) 教会 Claude 怎么有效使用你的服务
提供实时数据访问和工具调用 固化工作流和最佳实践
Claude 能做什么 Claude 应该怎么做

没有 Skill 时:

  • 用户连上了你的 MCP 但不知道下一步怎么做
  • 收到「怎么用你的集成做 X」的支持工单
  • 每次对话都要从头开始
  • 因为每次提示方式不同,结果时好时坏
  • 用户会觉得是连接器的问题,但真正缺的是工作流引导

有了 Skill 后:

  • 预构建的工作流在需要时自动激活
  • 工具调用稳定、可预期
  • 每次交互都内嵌了最佳实践
  • 用户上手门槛大幅降低

02|规划与设计

从用例出发

动手写之前,先确定你的 Skill 要支持哪 2-3 个具体用例。

问自己:

  • 用户想完成什么?
  • 需要哪些多步骤工作流?
  • 需要哪些工具(内置工具还是 MCP)?
  • 哪些领域知识或最佳实践应该内嵌进去?

常见 Skill 用例类别

Anthropic 观察到三类常见用例:

类别 1:文档与资产创建

用途:创建一致、高质量的输出,包括文档、演示文稿、应用、设计、代码等。

真实案例:frontend-design skill

「创建具有高设计质量的独特、生产级前端界面。在构建 Web 组件、页面、制品、海报或应用时使用。」

关键技术:

  • 内嵌风格指南和品牌标准
  • 用于一致输出的模板结构
  • 最终确定前的质量检查清单
  • 不依赖外部工具——用 Claude 内置能力搞定

类别 2:工作流自动化

用途:需要固定方法论的多步骤流程,包括跨多个 MCP 服务器的协调。

真实案例:skill-creator skill

「创建新 Skill 的交互式指南。引导用户完成用例定义、前置元数据生成、指令编写和验证。」

关键技术:

  • 带验证节点的分步工作流
  • 常见结构的模板
  • 内置审查和改进建议
  • 迭代优化循环

类别 3:MCP 增强

用途:在 MCP 服务器提供的工具访问之上,加一层工作流指导。

真实案例:sentry-code-review skill(来自 Sentry)

「使用 Sentry 的错误监控数据,通过其 MCP 服务器自动分析并修复 GitHub Pull Request 中检测到的 Bug。」

关键技术:

  • 按顺序协调多个 MCP 调用
  • 内嵌领域专业知识
  • 提供用户原本需要自己指定的上下文
  • 处理常见 MCP 问题的错误处理

定义成功标准

定量指标:

  • Skill 在 90% 的相关查询中触发
  • 在 X 次工具调用内完成工作流
  • 每个工作流 0 次 API 调用失败

定性指标:

  • 用户不需要提示 Claude 下一步做什么
  • 工作流不需要用户纠正就能跑完
  • 跨会话结果稳定

技术要求

文件结构:

skill-name/
├── SKILL.md          # 主指令文件(必需)
├── references/       # 参考资料(可选)
│   ├── api-docs.md
│   └── examples/
└── assets/          # 资源文件(可选)

关键规则:

  • 文件夹名称:kebab-case(如 my-skill-name
  • 主文件必须叫 SKILL.md(大小写敏感)
  • YAML 前置元数据用 --- 分隔

YAML 前置元数据:最重要的部分

YAML 前置元数据决定了 Claude 是否加载你的 Skill,必须写好。最简必要格式:

---
name: skill-name-in-kebab-case
description: 它做什么以及何时使用。包含具体触发短语。
---

字段要求:

  • name:kebab-case,无空格,无大写
  • description:最关键,决定 Skill 的「可发现性」

安全限制: 前置元数据里禁止:

  • XML 尖括号(< >
  • 名称以「claude」或「anthropic」开头(保留字)

编写有效的 Skill

description 字段

description 字段决定了 Skill 的「可发现性」,是整个文件里最值得花时间的地方。

结构:[它做什么] + [何时用] + [核心能力]

好的 description 示例:

# 好 - 具体且可操作
description: 分析 Figma 设计文件并生成开发者交接文档。

# 好 - 包含触发短语
description: 管理 Linear 项目工作流,包括 Sprint 规划、任务创建和状态追踪。当用户提到「sprint」「Linear 任务」「项目规划」或要求「创建工单」时使用。

不好的 description 示例:

# 太模糊
description: 帮助处理项目。

# 缺少触发条件
description: 创建复杂的多页文档系统。

# 太技术化,没有用户会说的词
description: 实现具有层级关系的 Project 实体模型。

编写主体指令

推荐结构:

  1. 目标(Goal)

  2. 工作流程(Workflow)

  3. 关键约束(Constraints)

  4. 示例(Examples)

  5. 错误处理(Error Handling)

包含错误处理:

## 错误处理
- API 调用失败时,先检查认证状态
- 如果创建失败,回滚已完成的步骤
- 向用户清晰报告错误原因和解决方案

用好渐进式披露: SKILL.md 只放核心指令,详细文档放到 references/ 里并加链接。


03|测试与迭代

Skill 的测试可以按你需要的严格程度来:

  • 在 Claude.ai 里手动测试:直接跑查询,看行为。迭代最快,不需要任何配置。
  • 在 Claude Code 里写脚本测试:自动化测试用例,变更时可以重复验证。
  • 通过 Skills API 编程测试:构建评估套件,针对预设测试集系统性地跑。

有效做法:先在一个任务上迭代,再扩展范围。

实践表明,做 Skill 最高效的方式是先盯着一个有挑战性的任务反复跑,跑通之后再把有效的方法提炼成 Skill。

推荐测试方法

1. 触发测试

  • ✅ 在明显相关的任务上触发
  • ✅ 换个说法的请求也能触发
  • ❌ 无关话题不触发

2. 功能测试

  • 能生成有效输出
  • API 调用成功
  • 错误处理正常
  • 边界情况有覆盖

3. 性能对比 对比开启和关闭 Skill 时的差异:

  • 对话轮数
  • API 调用失败次数
  • Token 消耗

使用 skill-creator Skill

skill-creator 在 Claude.ai 的插件目录里,也可以下载用于 Claude Code,帮你构建和打磨 Skill。

创建 Skill:

  • 从自然语言描述生成 Skill
  • 生成格式正确的带前置元数据的 SKILL.md
  • 建议触发短语和结构

审查 Skill:

  • 找出常见问题(描述模糊、缺少触发词、结构有问题)
  • 识别可能过度触发或触发不足的风险
  • 根据 Skill 的目的建议测试用例

迭代改进:

  • 用 Skill 过程中遇到边界情况或失败,把这些案例带回 skill-creator

根据反馈迭代

触发太少:

  • 该加载时没有加载
  • 用户要手动启用
  • 收到「这个 Skill 什么时候用」的支持问题

解决:在 description 里补充更多细节和关键词,特别是技术术语。

触发太多:

  • 在无关查询时加载
  • 用户关掉了它
  • 用户搞不清楚它是干嘛的

解决:加负面触发词,把描述写得更精确。

执行有问题:

  • 结果不稳定
  • API 调用失败
  • 需要用户来纠正

解决:改进指令,加错误处理。


04|分发与共享

现在怎么分发(2026 年 1 月)

个人用户的安装方式:

  • 下载 Skill 文件夹
  • 压缩成 zip(如果还没压缩的话)
  • 打开 Claude.ai「设置 > 能力 > Skills」上传
  • 或者直接放到 Claude Code 的 Skills 目录里

组织级部署:

  • 管理员可以全工作区一键部署 Skill(2025 年 12 月 18 日上线)
  • 支持自动更新和集中管理

开放标准

Agent Skills 作为开放标准发布了。和 MCP 一样,Skill 应该能跨工具、跨平台用——同一个 Skill 无论在 Claude 还是其他 AI 平台上都应该能跑。

通过 API 调用 Skill

  • /v1/skills 端点,用来列出和管理 Skill
  • 通过 container.skills 参数把 Skill 挂到 Messages API 请求上
  • 在 Claude Console 里做版本管理
  • 配合 Claude Agent SDK 构建自定义 Agent

现在推荐这么做

先在 GitHub 上建一个公开仓库,写好 README(供人阅读——这跟 Skill 文件夹是分开的,Skill 文件夹里不放 README.md),加上带截图的使用示例。

然后在你的 MCP 文档里加一节,链接过去,说清楚两者配合用的价值,并给个快速上手指南。


05|模式与故障排查

两种出发点:从问题出发 vs. 从工具出发

从问题出发:「我要建一个项目工作区」→ Skill 按顺序编排好 MCP 调用,用户说目标,Skill 搞定工具。

从工具出发:「我已经连了 Notion MCP」→ Skill 教会 Claude 怎么用这个工具,最优流程是什么。用户有权限,Skill 提供经验。

模式 1:顺序工作流编排

适合场景:用户需要按固定顺序完成多个步骤。

关键技术:

  • 明确步骤顺序
  • 步骤之间有依赖关系
  • 每个阶段都要验证
  • 失败时有回滚指令

模式 2:多 MCP 协调

适合场景:流程跨越多个服务。

示例:设计到开发的交接

  • 从 Figma 获取设计规格
  • 在 GitHub 创建 Issue
  • 在 Linear 创建任务
  • 在 Slack 通知团队

关键技术:

  • 清晰的阶段划分
  • MCP 之间的数据传递
  • 进入下一阶段前先验证
  • 统一的错误处理

模式 3:迭代优化

适合场景:输出质量需要多轮打磨。

示例:报告生成

  • 生成初稿
  • 自我审查
  • 改进薄弱部分
  • 最终润色

关键技术:

  • 判断标准要清晰
  • 有备选方案
  • 选择过程对用户透明

模式 4:根据上下文选工具

适合场景:目标相同,但用哪个工具取决于情况。

示例:智能文件存储

  • 敏感文档 → 加密存储
  • 大文件 → 对象存储
  • 协作文档 → 团队空间

模式 5:内嵌领域知识

适合场景:你的 Skill 不只是调工具,还带有专业判断。

示例:金融合规

  • 检查交易限额
  • 验证资金来源
  • 记录审计日志
  • 生成合规报告

关键技术:

  • 领域知识直接写进逻辑
  • 先合规再行动
  • 全程有记录
  • 治理规则清晰

故障排查

Skill 上传失败:

  • Could not find SKILL.md in uploaded folder → 文件名不对,重命名为 SKILL.md(大小写敏感)
  • Invalid frontmatter → YAML 格式有问题
  • Invalid skill name → 名字里有空格或大写,改用 kebab-case

Skill 不自动触发: 改 description 字段。快速自查:

  • 描述是不是太泛?
  • 有没有用户真会说的触发短语?
  • 涉及特定文件类型的话,有没有提到?

调试方法:直接问 Claude「你什么时候会用 [Skill 名称] 这个 Skill?」

Skill 触发太频繁: 加负面触发词或描述更精确。

MCP 连接问题: 按顺序排查:

  1. 确认 MCP 服务器已连接
  2. 检查认证(API 密钥、OAuth token)
  3. 单独测试 MCP
  4. 确认工具名称

Claude 不按指令来:

  • 指令写太长了 → 保持简洁,用列表和编号
  • 关键指令被埋了 → 重要的放最前面
  • 表达含糊 → 用具体可验证的标准

Claude 偷懒: 加一段鼓励:

## 注意
- 请认真完成,不要走捷径
- 质量优先,速度其次
- 验证步骤不能跳过

Skill 变慢或质量下降: 原因通常是:Skill 文件太大、同时开太多 Skill、没有用到渐进式披露导致全量加载。

解决方法:

  • 精简 SKILL.md(控制在 5,000 字以内)
  • 详细文档移到 references/ 里
  • 减少开启的 Skill 数量
  • 相关功能可以打包成一个 Skill「合集」

06|资源与参考

官方文档

  • Anthropic 资源:最佳实践指南、Skills 文档、API 参考、MCP 文档
  • 博客文章:介绍 Agent Skills、工程博客、Skills 详解

示例 Skill

公开 Skill 仓库:GitHub anthropics/skills,包含 Anthropic 做的可以直接改用的 Skill。

工具

skill-creator Skill:

  • 内置于 Claude.ai,也可以用于 Claude Code
  • 能从描述直接生成 Skill
  • 可以帮你审查和改进

遇到问题怎么办

  • 技术问题:Claude Developers Discord 社区论坛
  • 发现 Bug:GitHub Issues:anthropics/skills/issues

附录 A:快速检查清单

开始之前

  • 确定了 2-3 个具体用例
  • 确定了需要哪些工具(内置或 MCP)
  • 看了本指南和示例 Skill
  • 想好文件夹结构

开发过程中

  • 文件夹名称用 kebab-case
  • 有 SKILL.md 文件(大小写要对)
  • YAML 前置元数据有 --- 分隔符
  • name 字段:kebab-case,无空格,无大写
  • description 说清楚「做什么」和「什么时候用」
  • 没有 XML 标签(< >)
  • 指令清晰可操作
  • 有错误处理
  • 有示例
  • 参考资源有清晰链接

上传之前

  • 测试了明显相关的任务能否触发
  • 测试了换个说法的请求能否触发
  • 确认了无关话题不会触发
  • 功能测试通过
  • 工具集成正常(如果用了的话)
  • 已压缩成 .zip

上传之后

  • 在真实对话里测试过
  • 留意过触发太多或太少的情况
  • 收集了用户反馈
  • 根据反馈调整了 description 和指令
  • metadata 里的版本号更新了

附录 B:YAML 前置元数据

必填字段:

---
name: skill-name-in-kebab-case
description: 它做什么以及何时使用。包含具体触发短语。
---

安全说明:

  • 允许:任何标准 YAML 类型、自定义 metadata 字段、长描述(最多 1024 个字符)
  • 禁止:XML 尖括号(< >)、YAML 中的代码执行、名称以「claude」或「anthropic」开头的 Skill

附录 C:完整 Skill 示例

  • Document Skills:PDF、DOCX、PPTX、XLSX 创建
  • Example Skills:各种工作流模式
  • Partner Skills 目录:Asana、Atlassian、Canva、Figma、Sentry、Zapier 等合作伙伴的 Skill

这些仓库持续更新,示例比本指南里的更多。直接 clone 下来,按你的需求改,当模板用。


原文:The Complete Guide to Building Skills for Claude 译者:洛小山、林哲韬

本文知识产权归洛小山所有。未经授权,禁止抓取本文内容,用于模型训练以及二次创作等用途。