你真的会写skill吗,90% 的 Claude Skill 都写错了,来自 Anthropic 33 页官方指南的关键发现

封面图你的 Skill 写不好,不是因为指令太简单,而是因为 description 写得太笼统。

这是 Anthropic 在一份 33 页的官方 Skill 构建指南中揭示的最关键发现(PDF 下载链接见文末)。这份指南发布于 2026 年 1 月,大多数人甚至不知道它的存在。但其中关于 Skill 触发机制的洞察,直接解释了为什么你的 Skill 总是不灵。

本文从中提取了 7 个最关键的知识点。读完之后,你将知道:为什么 Skill 不触发(以及为什么该触发时不触发)、如何写一个精确触发的 description、以及 15 分钟内构建可用 Skill 的完整路径。


为什么 90% 的 Skill 都写错了

先说一个反直觉的事实:大多数 Skill 失败的根本原因不是指令写得差,而是 description 写得像"简介"。

Anthropic 的工程博客明确指出:description 字段是 Claude 决定是否加载 Skill 的唯一信号。它出现在系统提示中,Claude 凭它判断"现在该不该用这个 Skill"。

但大多数人把它当成了功能说明:

# 太模糊 — Claude 根本不知道什么时候该用它
description: 帮助处理项目。

# 缺少触发条件 — 写得再华丽也没用
description: 创建复杂的多页文档系统。

# 纯技术视角 — 没有用户会这样提问
description: 实现带有层级关系的项目实体模型。

这些写法的共同问题是:没有告诉 Claude 用户会说什么话、在什么场景下、想要什么结果。 description 不是写给人看的介绍,是写给 Claude 的触发协议。

Anthropic 给出的正确公式是:

[做什么] + [什么时候用] + [关键能力]

也就是说,description 必须同时包含三件事:这个 Skill 干什么、用户会怎么触发它、它能处理哪些具体场景。缺一个都不行。


Skill 到底是什么?

在深入之前,先用三句话说清楚 Skill 的本质:

  1. Skill 是一个文件夹,核心是 SKILL.md(Markdown + YAML),配合可选的 scripts/、references/、assets/ 子目录。不需要编程,用自然语言就能写。
  2. Skill 解决的核心问题是"每次对话都从零开始"。传统 AI 对话中,你每次都要重新解释偏好、流程、规范。Skill 让这些知识变成一次编写、永久可用的"肌肉记忆"。
  3. Skill 在 Claude.ai、Claude Code 和 API 三端通用。创建一次,到处运行。前提是环境支持 Skill 所需的依赖。

文件结构非常简单:

your-skill-name/
├── SKILL.md          # 必须 — 核心指令文件(大小写敏感)
├── scripts/          # 可选 — 可执行代码(Python、Bash 等)
├── references/       # 可选 — 参考文档(按需加载)
└── assets/           # 可选 — 模板、字体、图标等

几个容易踩坑的命名规则:

  • 文件夹名必须用 kebab-case:my-cool-skill ✅,My Cool Skill
  • 文件名必须精确为 SKILL.mdskill.mdSKILL.MD 都不行)
  • 文件夹内禁止放 README.md

description 字段:一个决定成败的 YAML 属性行

如果说官方指南里有一个"如果你只记住一件事"的核心,那就是:description 字段的写法决定了你的 Skill 能不能被找到。

这个字段必须满足以下条件:

要求 说明
同时包含"做什么"和"什么时候用" 缺一不可
包含用户实际会说的触发短语 越具体,触发越可靠
提及相关文件类型(如适用) 帮助 Claude 更精确匹配
不超过 1024 字符 硬性限制
不含 XML 标签(< > 安全限制
不含"claude"或"anthropic" 保留字

来看三个好的 description 示例(以下改写自 Anthropic 官方示例):

# 好 — 具体 + 触发短语 + 文件类型
description: 分析 Figma 设计文件并生成开发者交接文档。当用户上传 .fig 文件、
要求"设计规格"、"组件文档"或"设计转代码交接"时使用。

# 好 — 包含明确的使用场景和用户会说的话
description: 管理 Linear 项目工作流,包括冲刺规划、任务创建和状态跟踪。
当用户提到"冲刺"、"Linear 任务"、"项目规划"或要求"创建工单"时使用。

# 好 — 清晰的价值主张 + 多个触发短语
description: PayFlow 端到端客户入驻工作流。处理账户创建、支付设置和订阅管理。
当用户说"入驻新客户"、"设置订阅"或"创建 PayFlow 账户"时使用。

注意它们的共同特征:每个都包含用户真正会说的原话。这不是写简介,是写触发协议。

如果你的 Skill 触发过多(加载了不该加载的场景),还可以在 description 中加入负向排除

description: CSV 文件的高级数据分析。用于统计建模、回归分析、聚类分析。
不要用于简单的数据探索(请使用 data-viz skill)。

三层加载:餐厅菜单的智慧

Skill 的加载不是"全部塞进去"或"什么都不加载",而是一个精心设计的三层渐进系统。Anthropic 把它叫做 Progressive Disclosure

理解这个机制的最好方式是类比一家餐厅:

层级 内容 加载时机 餐厅类比
第一层 YAML frontmatter(name + description) 始终在系统提示中 菜单封面 — 告诉你有什么菜系
第二层 SKILL.md 正文(完整指令) 当 Claude 判断 Skill 相关时 完整菜单 — 你坐下了才给你看
第三层 references/、scripts/、assets/ 只有当需要具体内容时 后厨食材 — 你点了菜才去拿

这个设计有一个重要含义:你的 description(第一层)必须在极短的文字中精确传达"这个 Skill 能做什么",因为 Claude 仅凭它来决定是否加载第二层。如果 description 太模糊,Claude 会跳过你的 Skill;如果太宽泛,Claude 会在不该加载时也加载。

这也是为什么 Anthropic 说 description 是"最重要的部分"——它是整个三层系统的守门员。

从 token 经济学的角度看,这个设计非常聪明:

  • 第一层每个 Skill 只占几十个 token(始终加载)
  • 第二层按需加载,只在相关时才消耗 token
  • 第三层只在执行过程中按需读取,进一步节省上下文

官方建议:SKILL.md 控制在 5000 字以内,详细文档移到 references/ 中。

Claude Skill 三层加载机制


三种值得构建的 Skill 类型

Anthropic 从大量实践中总结了三种最有价值的 Skill 类型。你不需要全做,选一个最适合你的场景就行。

类型一:文档/资产创建型

一句话:让 Claude 每次都按你的方式产生东西。

适合场景:创建一致的文档、演示文稿、设计、代码,格式完全符合你的要求。

核心技巧:

  • 嵌入样式指南和品牌标准
  • 输出前有质量检查清单
  • 不需要外部工具,利用 Claude 内置能力

官方实例:frontend-design skill — "Create distinctive, production-grade frontend interfaces with high design quality."

类型二:工作流自动化型

一句话:让 Claude 遵循你的多步骤流程,无需每次重新告知。

适合场景:多步骤流程、跨工具协调、需要一致方法论的复杂任务。

Anthropic 归纳了五大工作流模式:

模式 核心思路 适用场景
顺序编排 Step 1 → Step 2 → Step 3,有依赖和验证 客户注册、发布流程
多 MCP 协调 跨多个服务的阶段式协调 设计→存储→任务→通知
迭代精炼 初稿 → 质量检查 → 改进 → 再验证 报告生成、内容创作
上下文选择 根据条件选择不同工具 智能文件存储路由
领域智能 嵌入专业知识,行动前先合规 金融合规、法律审查

类型三:MCP 增强型

一句话:教 Claude 如何正确使用你连接的工具。

这是最有杠杆效应的类型。Anthropic 用了一个精妙的类比:

MCP 是专业厨房(提供工具、食材和设备),Skill 是菜谱(提供步骤和最佳实践)。

两者组合才完整。看看对比:

没有 Skill 有 Skill
用户连接了 MCP 但不知道下一步做什么 预构建工作流自动激活
大量"怎么用你的集成做 X"的客服工单 一致、可靠的工具使用
每次对话从头开始 最佳实践嵌入每次交互
用户归咎于连接器(实际是工作流指导问题) 更低的学习曲线

对 MCP 开发者而言,为你的 MCP 服务器创建配套 Skill,是把"工具连接"升级为"完整解决方案"的关键一步。

三种值得构建的 Claude Skill 类型


五个最常见的失败模式和修复方法

Anthropic 在指南中详细列出了常见的失败场景。以下是五个最频繁出现的问题及对应的修复方法。

失败 1:Skill 不触发

表现:Skill 从不自动加载,用户需要手动启用。

根因:description 太模糊或缺少触发短语。

修复

  • 检查是否写成了"帮助处理项目"这种空话
  • 加入用户实际会说的原话作为触发短语
  • 提及相关文件类型(如果有)
  • 调试方法:直接问 Claude "When would you use the [skill name] skill?",它会引用 description,你就能看到缺了什么

失败 2:Skill 触发太频繁

表现:不相关的查询也触发你的 Skill,用户开始禁用它。

修复

  • 在 description 中加入负向排除("Do NOT use for...")
  • 缩小范围("Processes PDF legal documents" 而不是 "Processes documents")
  • 明确限定场景("for e-commerce payment workflows, not for general financial queries")

失败 3:指令被忽略

表现:Skill 加载了但 Claude 不按指令执行。

修复

  • 指令太冗长?精简为编号列表和要点,控制在 5000 字以内
  • 关键指令埋在深处?用 ## Critical## Important 放在最前面
  • 语言太模糊?把"validate things properly"改成具体的三步检查清单
  • Claude 太懒?加一句 "Quality is more important than speed. Do not skip validation steps."

失败 4:响应变慢

表现:Skill 加载后响应速度明显下降。

修复

  • SKILL.md 太大?把详细文档移到 references/,SKILL.md 只保留核心指令
  • 同时启用了太多 Skill?评估是否超过 20-50 个,考虑按场景选择性启用
  • 所有内容都内联?改用链接引用,利用第三层按需加载

失败 5:上传失败

表现:上传时报错 "Could not find SKILL.md" 或 "Invalid frontmatter"。

修复

  • 确认文件名是精确的 SKILL.md(大小写敏感)
  • 检查 YAML 格式:必须有 --- 分隔符,引号必须闭合
  • 文件夹名不含空格和大写字母

从零开始的 15 分钟实战路径

Anthropic 在指南中说了一句很有分量的话:

"我们观察到最有效的 Skill 创建者,都是先让 Claude 在一个困难任务上成功,然后把成功的方法提取成 Skill。"

这给了我们一个清晰的行动路径:

第一步:选定一个重复工作流(5 分钟)

选择你不断重复的一个任务。不要贪心,一次只做一个。好的候选:

  • 每次都要重复解释的文档格式
  • 固定的多步骤操作流程
  • 经常出错的工具使用场景

第二步:用 skill-creator 生成初版(5 分钟)

Claude 内置了一个叫 skill-creator 的元技能,专门帮你创建 Skill。直接对 Claude 说:

"Use the skill-creator skill to help me build a skill for [你的场景]"

它会:

  1. 自动生成格式正确的 SKILL.md(含 frontmatter)
  2. 建议触发短语和结构
  3. 标记常见问题(模糊描述、缺失触发、结构问题)

第三步:测试并迭代(5 分钟)

重点测试两件事:

触发测试

  • 说出应该触发的短语 — Skill 加载了吗?
  • 换个说法再说一遍 — 还是能触发吗?
  • 说一句不相关的话 — 没有误触发吧?

功能测试

  • Skill 执行后,结果符合预期吗?
  • 有没有步骤出错或被跳过?
  • 连续跑 3-5 次,结果一致吗?

如果触发不足,在 description 中加更多触发短语和关键词。如果触发过多,加负向排除。如果执行有问题,改进指令的具体性和错误处理。

发布渠道

测试通过后,你可以通过以下方式使用和分享:

  • 个人使用:Claude.ai → Settings → Capabilities → Skills → 上传 ZIP
  • Claude Code:放入 skills 目录即可
  • 组织部署:管理员可 workspace 级别部署,自动更新
  • 社区分享:GitHub 托管 + 清晰 README + 使用示例

写在最后:Skill 是你和 Claude 之间的协议,不是提示词

Skill 不是提示词工程的升级版。它是一套有严格架构的指令系统,核心是精确的触发协议和渐进式的信息加载。

回过头看,写好 Skill 的关键就三件事:

  1. 把 description 当触发协议写,不是当简介写。包含"做什么 + 什么时候用 + 关键能力"。
  2. 利用三层加载机制,SKILL.md 只放核心指令,详细内容放到 references/ 中。
  3. 先跑起来再迭代,用 skill-creator 生成初版,在真实使用中打磨。

掌握这三个机制,你就掌握了把 Claude 从"搜索引擎"变成"个人 AI 系统"的钥匙。

如果你读完这篇文章还觉得不够,完整 33 页指南的 PDF 在这里:The Complete Guide to Building Skills for Claude。官方示例 Skill 仓库在 GitHub anthropics/skills

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。