首页 › skills-review › 造Skill的Skill:skill-creator全拆解

官方那把「造 Skill 的钥匙」:skill-creator 逐段拆解

概述

Skills 生态里仓库成千上万,但有一个 Skill 的地位很特殊:它不帮你写代码、不帮你做 PPT,它专门帮你制造其他 Skill。这就是 Anthropic 官方仓库 anthropics/skills 里的 skill-creator——整个生态的「元技能」。本期把它从目录结构到 SKILL.md 每一段设计全部拆开:你会发现它不只是一个工具,更是一份官方亲自示范的「SKILL.md 应该怎么写」的活教材。官方在里面埋了渐进披露、触发词打磨、双盲测试、防过拟合等一整套方法论,读懂它,你自己动手写第一个 Skill 就有了模板。

它在生态里的位置

flowchart TD
    A[anthropics官方仓库] --> B[内容型Skill<br/>pdf与pptx与docx]
    A --> C[设计型Skill<br/>canvas与前端]
    A --> D[元技能<br/>skill-creator]
    D --> E[制造与打磨<br/>其他所有Skill]

内容型 Skill 教 Claude 干一件具体的事,而 skill-creator 教 Claude 干「把事情固化成 Skill」这件事。装好它之后,你对 Claude 说「我想把刚才这套流程做成 skill」,它就会接管整个流程:访谈你、写草稿、生成测试用例、并行跑分、生成评审页面、根据反馈迭代、最后打包成 .skill 文件。

安装方式:

# 从官方仓库安装
git clone https://github.com/anthropics/skills
cp -r skills/skill-creator ~/.claude/skills/

# 或用技能市场 CLI 搜索
npx skills find skill-creator

评测总表

维度 权重 评分 点评
功能完整度 25% ★★★★★ 从意图捕获到打包分发,造 Skill 的全生命周期无一缺席
设计质量 25% ★★★★★ 渐进披露、why 优先、双跑对照,官方方法论的浓缩展示
实战效果 20% ★★★★☆ 认真走完流程的 Skill 质量提升明显,代价是流程偏重
上手难度 15% ★★★☆☆ 全流程有门槛,但支持「vibe 模式」轻量走主线
社区活跃度 15% ★★★★☆ 官方维护、随主仓库更新,是大量第三方教程的事实参照

单 skill 拆解没有横向对手,更实用的对照是「三种造 Skill 的方式」:

造法 质量保障 触发准确率 成本
手写 SKILL.md,写完就用 无测试,全凭手感 碰运气 最低
手写 + 人工试几句 主观印象 靠感觉 低
skill-creator 全流程 断言评分 + 基线对照 + 触发评测 数据说话 高,但可只走子集

逐段拆解:每一处设计都在教你写 Skill

第一段:把流程图写在开头,把「状态机入口」交给模型

SKILL.md 开篇没有寒暄,直接给出一条七步流水线:定意图 → 写草稿 → 造测试提示词 → 跑测试 → 和用户一起评估 → 按反馈重写 → 扩大测试集。紧接着是全篇第一处点睛之笔:

Your job when using this skill is to figure out where the user is in this process and then jump in and help them progress through these stages.

翻译过来:你的任务是先判断用户处于流程的哪一步,然后从那一步切入。用户可能说「我想做个 skill」,也可能说「我已有草稿帮我测」,甚至「别搞那些评估,陪我随便写写」(原文是 "just vibe with me")。这段设计解决的是 Skill 工程的经典难题——同一个技能要接住完全不同成熟度的输入。你写自己的 Skill 时值得抄这一招:开头先列流程,再授权模型自行判断入口,而不是写死一条单行道。

还有个容易被忽略的细节:段落结尾写着 "Cool? Cool."。一份写给模型看的技术文档,官方却用了近乎聊天的语气。这提醒我们 SKILL.md 的读者是 LLM 而不是人——语气不需要板正,清晰和可执行才是唯一标准,适当的口语反而让模型更自然地延续协作氛围。

第二段:受众自适应沟通——「水管工开始打开终端」

官方在 "Communicating with the user" 一节写了这么一段观察:

there's a trend now where the power of Claude is inspiring plumbers to open up their terminals, parents and grandparents to google "how to install npm"

水管工开始打开终端,父母祖辈开始搜索怎么装 npm。所以它给模型立了行话分级规则:"evaluation" 和 "benchmark" 属于默认可以说的词,但 "JSON" 和 "assertion" 必须先确认用户听得懂,或者顺手给一句定义。一个 Skill 会命中什么人,写 Skill 的人最清楚,把沟通策略也写进去,这是绝大多数社区 Skill 完全没意识到的维度。

第三段:意图捕获——四问清单与「从对话史里挖」

Capture Intent 一节给了四个必答题:这个 Skill 让 Claude 多会什么本领?什么话、什么场景应该触发它?输出的格式长什么样?要不要配测试用例?第四问它还给了判断启发式:输出能客观验证的(文件转换、数据抽取、代码生成、固定流程)值得配测试;输出主观的(文风、绘画)就不必强测。

更实用的是前一段:如果用户说「把咱们刚才这套做法固化成 skill」,模型应该直接从对话历史里提取答案——用了哪些工具、什么步骤顺序、用户纠正过什么、输入输出长什么样——再让用户补漏确认。这一段实际上教会模型「观察你已经发生过的工作流」,是把隐性经验显性化的正确姿势。

第四段:frontmatter 设计——description 是唯一的命运之门

进入正文核心。它明确 frontmatter 的必填项是 name 和 description,可选 compatibility(声明依赖的工具),然后说了一句整个生态最重要的话:

This is the primary triggering mechanism - include both what the skill does AND specific contexts for when to use it. All "when to use" info goes here, not in the body.

description 是技能触发的唯一主要机制,所有「什么时候用」的信息必须写在这里,而不是正文里。 正文写得再漂亮,模型没触发就一个字都读不到。它还点破了一个现状:Claude 目前倾向于 "undertrigger"——明明该用却不用。对策是把 description 写得「pushy」一点,原文给的示例值得全文背诵,普通写法是:

How to build a simple fast dashboard to display internal Anthropic data.

而推 主式写法要在后面追加:

Make sure to use this skill whenever the user mentions dashboards, data visualization, internal metrics, or wants to display any kind of company data, even if they don't explicitly ask for a 'dashboard.'

划重点:把用户可能说的每一个近义触发词(dashboards / data visualization / internal metrics / any kind of company data)都枚举进 description,并且明确「即使用户没说出 dashboard 这个词也要触发」。社区里大量 Skill 触发率低的病根就在这一行。

第五段:目录解剖与渐进披露——三级装载体系

Anatomy 一节给出标准骨架:

skill-name/
├── SKILL.md (required)
│   ├── YAML frontmatter (name, description required)
│   └── Markdown instructions
└── Bundled Resources (optional)
    ├── scripts/    - Executable code for deterministic/repetitive tasks
    ├── references/ - Docs loaded into context as needed
    └── assets/     - Files used in output (templates, icons, fonts)

三分法的依据是加载时机:scripts/ 是确定性重复任务的可执行代码,执行时根本不用读进上下文;references/ 是按需载入的文档;assets/ 是产出时要用的模板、图标、字体。

其上叠加三级渐进披露:

  1. 元数据(name + description):永远在上下文里,约 100 词——这是常驻成本;
  2. SKILL.md 正文:触发后才进上下文,理想控制在 500 行以内;
  3. 捆绑资源:按需加载,体量不限。

配套的模式指令:逼近 500 行就再加一层层级并写清「接下来去哪读」;引用文件必须写明什么情况下读它;超过 300 行的大参考文件要带目录。多领域技能按变体拆文件(cloud-deploy 下分 aws.md、gcp.md、azure.md),Claude 只读命中那一个。这一套是官方对「上下文经济学」的标准答案:常驻的尽量小,贵的东西按需取。

第六段:两条写作军规——少写 MUST,多讲 why

Writing Style 一节是全篇的灵魂:

Try to explain to the model why things are important in lieu of heavy-handed musty MUSTs.

以及这句黄旗警告:

If you find yourself writing ALWAYS or NEVER in all caps, or using super rigid structures, that's a yellow flag

官方的判断是:今天的模型足够聪明,有不错的心理理论能力,给它讲清楚为什么这么做重要,它能把事情做到超出死规则的水平;满屏大写 ALWAYS/NEVER 反而是写作者偷懒的信号。改进一节还补了刀——哪怕用户反馈很糙很火大,也要真正理解用户在气什么,把那份理解转译成指令,而不是加更多枷锁。

写作模式上它给了两个可直接套用的模板:输出格式用「ALWAYS use this exact template」+ 完整骨架;示例用 Input/Output 成对出现。另外全篇指令几乎都用祈使句——这是写给执行者的文档,不是写给评审看的散文。

还有一条容易被略过的安全条款,官方起了个名字叫「无意外原则」(Principle of Lack of Surprise):Skill 里不得含恶意软件、漏洞利用代码或任何危害系统安全的内容,Skill 的实际意图不得与描述相悖。你在市场上装第三方 Skill 时,这一条就是审查底线。

第七段:测试体系——双跑、断言、基线对照

这是 skill-creator 最「重」也最见功力的部分。测试用例存进 evals/evals.json,每条包含 id、prompt、expected_output。跑测试时有个强规定:每个用例同一回合内并行 spawn 两个子代理——一个带技能,一个不带(基线),而不是先跑完带技能的再补基线,理由是让所有运行同时结束、尽快进入评审。改进已有技能时,基线换成「旧版本快照」,这样对比出的才是技能本身的增益。

接下来是一连串工程细节,每一处都值得抄:

整套设计的关键思想:技能好不好,不靠作者自嗨,靠「带与不带」的差值说话,且差值要同时有人评和机评两条证据链。

第八段:改进四原则——防过拟合是第一性

拿到反馈后怎么改?它给了四条原则,条条戳中写提示词的人的通病:

  1. 从反馈泛化:你和用户只在几个样例上反复迭代,但技能要被百万次调用服务千万种输入。只为这几个样例打补丁的「fiddly overfitty changes」毫无价值, stubborn 的问题不妨换隐喻、换工作模式;
  2. 保持提示词精瘦:把不产出效益的内容删掉,而且要读运行轨迹而不只看最终产物——如果技能让模型浪费大量时间做无用功,删掉导致它的部分再观察;
  3. 解释 why:与前述写作军规同源;
  4. 识别重复劳动并下沉为脚本:如果 3 个测试用例里子代理们不约而同都自己写了个 create_docx.py,这就是强烈信号——把它写一次放进 scripts/,让每次调用直接复用。

中间还夹了一句大实话:"we are trying to create billions a year in economic value here!"——别嫌较真,你写的是要被复用无数次的资产,多花心思不亏。

高级玩法还有盲对比(blind comparison):把两个版本的产物不加标注地交给独立代理评判,再分析赢家赢在哪。官方自己也承认这只是可选项,多数场景人工评审循环已够用——诚实地给方法标定适用边界,这本身也是好文档的写法。

第九段:描述优化器——用 20 条查询给触发词做「单元测试」

技能写完后,它还有一整套 description 优化流水线,这是全文工程密度最高的段落:

第一步,造 20 条触发评测查询,应触发与不应触发各约 10 条。原文对查询质量的要求近乎苛刻:必须真实、具体、带细节(文件路径、列名、公司名、口语错字都要有),并给了一组教科书级的反例对比——坏查询是 "Extract text from PDF" 这种抽象短语;好查询是:

ok so my boss just sent me this xlsx file (its in my downloads, called something like 'Q4 sales final FINAL v2.xlsx') and she wants me to add a column that shows the profit margin as a percentage...

更精妙的是对否定用例的要求:最有价值的 should-not-trigger 是「near-miss」——共享关键词、概念相邻、朴素关键词匹配会误触发但实际该用别的工具的查询。像「写个斐波那契函数」这种明显无关的否定用例「测不出任何东西」。考验触发词的不是正面命中,而是边缘误伤。

第二步,用 assets/eval_review.html 模板生成可编辑页面让用户增删查询、翻转 should-trigger 标记。原文直言:坏的评测查询 leads to 坏的描述。

第三步,跑自动优化循环:评测集按 60%/40% 切成训练与保留测试集,当前描述每条查询跑 3 次取可靠触发率,失败样本交给模型提议改进,如此最多迭代 5 轮。最关键的一笔是:最终 best_description 按测试集分数而非训练集分数选出——在描述优化这件小事上也不忘防过拟合。

第十段:触发机制原理——为什么你的 Skill 老是不被调用

优化器一节顺带公开了触发机制的底牌:技能以 name + description 出现在模型的 available_skills 列表里,由模型自行决定是否查阅。而一个反直觉的事实是:

Claude only consults skills for tasks it can't easily handle on its own — simple, one-step queries like "read this PDF" may not trigger a skill even if the description matches perfectly.

简单的一步任务,即使描述完美匹配也可能不触发,因为模型用基础工具就能直接干。这解释了无数人的疑惑「装了技能为什么没反应」:可能不是 description 写得差,而是任务本身不够复杂。它顺势给出推论——触发评测查询必须「有足够分量」,"read file X" 这类简单查询是劣质测试用例,怎么写描述都不会触发。

第十一段:跨环境降级与打包

结尾部分处理真实世界的参差:在 Claude.ai 上没有子代理,就由主代理自己串行执行测试(并坦诚标注「这不如独立子代理严格,因为写技能的和跑技能的是同一个我」,靠人工评审补偿);没有浏览器就不起评审服务,直接在对话里贴结果;量化基准依赖基线对照,在没有子代理的环境里「对照无意义」,果断跳过。Cowork 环境则改用 --static 生成单文件 HTML 评审页。同一套方法论在不同能力环境下如何取舍降级,官方给出了一份逐项声明的清单——这是把技能做成「跨平台软件」的意识。

最后 package_skill.py 把目录打成 .skill 分发文件,并交代了更新既有技能的三条纪律:保留原 name 不加 v2 后缀;安装路径可能只读,先拷到 /tmp 再改;手工打包先在 /tmp 暂存再落盘。

全流程一图流

flowchart TD
    A[意图捕获<br/>四问清单] --> B[访谈补漏<br/>边界与依赖]
    B --> C[写SKILL.md草稿]
    C --> D[造2至3条真实测试提示]
    D --> E[同回合并行双跑<br/>带技能对照基线]
    E --> F[等待期起草断言]
    F --> G[评分聚合<br/>benchmark]
    G --> H[分析师过检<br/>找无区分度断言]
    H --> I[生成评审页面]
    I --> J[读feedback.json]
    J --> K{满意或反馈全空?}
    K -->|否| L[四原则改写]
    L --> E
    K -->|是| M[描述优化循环<br/>20条触发查询]
    M --> N[打包分发<br/>package_skill]

渐进披露的三级装载单独看更清楚:

flowchart TD
    A[第一级<br/>name与description<br/>常驻约100词] --> B[第二级<br/>SKILL.md正文<br/>触发后载入限500行]
    B --> C[第三级<br/>references与scripts与assets<br/>按需取用不设限]

推荐排行榜:三种用法怎么选

  1. 只借方法论(零成本,人人可做):不装也行,把「description 写推主一点」「讲 why 别堆 MUST」「三级渐进披露」三条军规直接用于你手写的 SKILL.md,收益立竿见影;
  2. 只跑描述优化器(性价比之王):已有技能但触发不灵,按它的配方造 20 条含 near-miss 的查询,跑一轮优化循环,改动只有 frontmatter 一行;
  3. 全流程造库(认真玩家):从意图捕获走到打包,适合要沉淀团队资产、反复复用的场景。赶时间就用它自己授权的「vibe 模式」,跳过量化评审走主线。

一句话总结:skill-creator 表面上是个工具,实际上是官方把自己写 Skill 的全部内功——上下文经济学、触发心理学、评测方法论、防过拟合纪律——写成了一份可供模型执行的清单。拆完它,你手里就有了生态里最硬的一份「SKILL.md 写作规范」。

参考来源

  1. anthropics/skills — 官方 Skills 仓库 — skill-creator 所在的官方仓库,本文拆解对象的出处
  2. skill-creator 技能目录 — SKILL.md 原文与 scripts/、references/、agents/、eval-viewer/ 等捆绑资源
  3. skill-creator SKILL.md 原文(raw) — 本文逐段引用均出自该文件当前版本

[!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学通信知识星球海报-扫码加入