SKILL 05 / META · ROUNDUP

元技能榜单:造工具的工具

官方给的九件套 — 四个能跑的、三份纸面契约、两个体检器

2026-09-06 · BigCat

最反直觉的一条写在官方文档里:你并不需要一个「写 skill 的 skill」。所以这九件里最值钱的那半段,不是起草,是评估。

前置 → Skill 01 AI 编码 Skills 榜单(skill / subagent / MCP / hook 的分工)

// WHY THIS MATTERS

前四期讲的是「装别人的 skill」。到某一天你会发现,你真正想要的那个 skill 没人写过——它装着你团队的表结构、你的写作口径、你那套没人懂的部署流程。这一期收的是造工具的工具:起草、评估、打包、体检这条链上,官方真的给了什么。九个条目全部来自 Anthropic 官方仓库与官方文档,都能点开;第 03 节把这四个官方 skill 自己的写法拆成判据,第 04 节讲这一类最容易白装在哪。

// 01

先给清单:官方这九件,装法都在下面

论断:元技能不是一类 skill,是三层东西——四个真的会跑的 skill、三份定义「什么算合格」的纸面契约、两个装完之后回头查账的体检器。缺哪一层都会出问题。
条目 替你干掉的那件事 什么时候别装/别读 ────────────────────────────────────────────────────────────────────────────────── ① skill-creator 起草 SKILL.md + 跑有/无 skill 对照评估 只想写一页说明书 ② mcp-builder 写 MCP server 的四阶段流程 + 10 道验收题 你不打算写 server ③ web-artifacts-builder React+shadcn 打成单文件 HTML 产物 手写一页静态 HTML ④ claude-api 调 Claude API 的型号/定价/缓存/工具用法 项目用的不是 Claude ────────────────────────────────────────────────────────────────────────────────── ⑤ template/SKILL.md 背 frontmatter 字段的记忆负担 你已有自己的起手式 ⑥ agent-skills-spec 「什么算一个 skill」的跨 harness 真相源 只在单一 harness 内用 ⑦ 官方 authoring 最佳实践 拍脑袋定「写多长、拆几层」 ——这份建议都读 ────────────────────────────────────────────────────────────────────────────────── ⑧ /skill-doctor 猜哪个 skill 在白吃 context 你总共只有三个 skill ⑨ claude plugin validate 上手才发现清单 YAML 写错 不打算发布给别人 ────────────────────────────────────────────────────────────────────────────────── ①—④ 来自 anthropics/skills 仓库;⑤—⑥ 同仓的 template/ 与 spec/;⑧—⑨ 是 Claude Code 自带命令

怎么装(命令都是官方页面上的原文)

# ① 官方 skills 仓库:注册 marketplace,再按包装
/plugin marketplace add anthropics/skills
/plugin install example-skills@anthropic-agent-skills
/plugin install document-skills@anthropic-agent-skills

# skill-creator 另有一条官方 plugin 源(Claude Code 文档给的就是这条)
/plugin install skill-creator@claude-plugins-official

# ⑧ 体检:列出每个 skill 的 context 开销与调用频次(需 v2.1.252+)
/skill-doctor

# ⑨ 校验:查 YAML 与清单语法
claude plugin validate .claude/skills

逐条说人话

失败模式:只装 ①—④ 不读 ⑦。skill-creator 会老老实实按你的意思生成一份 SKILL.md,但「这份该拆成几个文件」「description 该怎么写才触发得准」这类判断,它给不了你答案——那是判据的活,写在最佳实践那一页。反过来只读文档不装 ①,你就永远只能靠感觉判断改动有没有变好。
// 02

这九条不能混着比:三层各自的分母不一样

论断:①—④ 是「会跑的代码」,⑤—⑦ 是「合格标准」,⑧—⑨ 是「事后查账」。拿 star 数比它们毫无意义,因为它们根本不在同一个市场里竞争。

背景与原理

anthropics/skills 据 GitHub 仓库页 2026-09 约 17.5 万 star / 2.07 万 fork(本站 Skill 01 在 2026-08 记的是 17.2 万,一个月涨了约三千)。但这个数字量的是「示范仓库有多出名」,不是「里面哪个 skill 有人用」——整仓 19 个 skill 共用同一个 star 数,skill-creator 和 slack-gif-creator 在这个指标上完全等价,显然荒谬。

更实际的分层理由是可替代性:⑤ template 与 ⑦ 最佳实践是纯文本,你抄进自己的仓库就永远拥有它,没有版本风险;①—④ 是会跑的东西,升级、依赖、脚本失效都跟着上游走;⑧—⑨ 是 Claude Code 的能力,换个 harness 就没有了。三层的保质期完全不同,别拿同一套标准挑。

实战示例

还有个坑:名字会被抄错。③ 的真名是 web-artifacts-builder,不少聚合文章写成 artifacts-builder——照那个名字装会装不上、让 agent 去找会找不到。同理 ⑥ 的位置也已经变了:仓库里那个文件还在,但内容只剩一句「规范已搬到 agentskills.io」。硬规矩:任何要写进配置或喂给 agent 的名字与路径,一律以仓库目录或官方文档页面为准。

失败模式:把整个 anthropics/skills 克隆下来当元技能全家桶——那 19 个里有 algorithmic-art、slack-gif-creator、canvas-design,跟造 skill 一点关系都没有,只会把你的 description 候选池搅浑。
// 03

三分钟验货:把这四个官方 skill 自己的写法当判据

论断:判断一个元技能值不值得装,最省事的办法是看它自己有没有按官方那套标准写。上面四个官方 skill 恰好各自示范了一条,可以直接拿来量你遇到的下一个候选。

背景与原理

先记住硬约束(官方 authoring 页原文):name ≤ 64 字符,只许小写字母、数字、连字符,不能含 anthropic / claude 这类保留词;description ≤ 1024 字符,非空,必须第三人称;正文建议 500 行以内;引用只许一层深。另外 Claude Code 文档还给了一个容易被忽略的数:skill 列表里 description 与 when_to_use 合起来按 1536 字符截断——写超了的部分不是被读到,是被砍掉。

实战示例

  1. description 是不是把触发词铺满了——看 skill-creator 的原文:「create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description」。一句里塞进 create / edit / optimize / run evals / benchmark 五组说法,因为用户嘴里可能是任何一种。只写「Helps with skills」的,要么永不触发,要么到处乱触发。
  2. 有没有可机器核验的验收标准——mcp-builder 要求那 10 道题「答案要支持字符串比对」。这句是分水岭:写得出这句的作者,知道自己在追求什么;写不出的,交付标准就是「看起来还行」。
  3. 确定性动作有没有落成脚本——web-artifacts-builder 把起项目和打包写成 init-artifact.sh / bundle-artifact.sh,而不是每次让模型现编。官方的理由很直白:预置脚本更可靠、更省 token(只有输出计费,脚本内容不进上下文)、结果还一致。
  4. reference 是不是按域拆、且只有一层——claude-api 按语言 + 按主题拆出十几份文档,SKILL.md 只当目录。官方明确警告:嵌套引用时模型常常只 head -100 扫一眼开头,拿到残缺信息;所以所有 reference 都要从 SKILL.md 直连。超过 100 行的 reference 还该自带目录。
  5. 自由度和任务脆弱性匹不匹配——官方比喻是「两侧是悬崖的窄桥 vs 空旷原野」。数据库迁移要低自由度(给死命令,并写明「不要改这条命令、不要加参数」);代码审查要高自由度(给方向)。
  6. 它说不说得出自己解决的三个具体失败——官方 checklist 的原话是「至少创建三条评估」,并且要求「用 Haiku、Sonnet、Opus 各测一遍」。这条答不上来的元技能,你没法判断它有没有用。

顺序也别写反。官方 authoring 页把「先建评估,再写文档」写成加粗要求,五步是:跑无 skill 的真实任务、记下具体失败 → 就这些缺口造三个场景 → 量出基线 → 只写刚好够补缺口的字 → 迭代对照基线。它给的理由是:这样你解决的才是真问题,而不是想象出来的需求。

进阶资源 · Anthropic · Skill authoring best practices(本节六条判据与五步法的全部出处)
// 04

诚实的代价:官方文档亲口说「你不需要一个写 skill 的 skill」

论断:这一类最大的风险不是装错,是为免费的东西付费——起草 SKILL.md 这件事,Claude 本来就会。

背景与原理

authoring 最佳实践页里有一条 Tip,直白到有点扫兴:Claude 原生就懂 skill 的格式与结构,你不需要特殊系统提示词、也不需要一个「写 skill 的 skill」,直接叫它写,它就会生成结构正确、frontmatter 齐全的 SKILL.md。

那 skill-creator 的价值在哪?在它后半段那套评估机器,不在起草。并行开两组 subagent 做有/无 skill 对照、按断言打分、汇出 benchmark.json——这套东西你手搓要花一整天。冲着「帮我生成 SKILL.md」去装它,你付了 context 税,换回来的是本来就免费的东西。

实战示例

失败模式:拿 mcp-builder 去写一个只包一次 HTTP 调用的小 server——那四阶段流程加 10 道验收题,会让你为一件半小时的事付一整天。它的划算区间是「你要给别人用、要长期维护」的 server。

// 一页选购卡

先装这三个:skill-creator(冲评估那半段装,不是冲起草)+ 把 template/SKILL.md 拷成自己仓库里的起手式(纯文本,零成本,永不过期)+ 把 /skill-doctor 变成两周一次的习惯。mcp-builder 只在你真要写一个长期维护的 server 时装;claude-api 当「多域 reference 怎么拆」的范本读;web-artifacts-builder 只在你真要做富交互 artifact 时装。

装之前三分钟:description 有没有铺满触发词且第三人称 · 有没有可机器核验的验收标准 · 确定性动作是不是落成了脚本 · reference 是否按域拆且只有一层 · 自由度是否匹配任务脆弱性 · 说不说得出它解决的三个具体失败。

写自己的 skill 时,顺序是:跑一遍没有 skill 的真实任务 → 记下具体失败 → 造三个场景 → 量基线 → 只写刚好够补缺口的字 → 对照基线迭代。别反过来先写文档。

硬数字备查:name ≤ 64 字符 · description ≤ 1024 字符 · 列表里 description+when_to_use 按 1536 字符截断 · SKILL.md 正文 < 500 行 · 引用只许一层深 · 至少三条评估 · Haiku/Sonnet/Opus 各测一遍。

// 术语表

元技能(meta-skill)
用来造别的 skill / server / 应用的 skill。它的产物不是答案,是另一件工具。
eval(评估集)
一组「提示 + 期望行为」的测试用例,用来量一个 skill 到底有没有让结果变好。官方要求至少三条。
baseline(基线)
不带 skill 跑同一批任务得到的成绩。没有基线,「装了感觉更好」永远只是感觉。
benchmark.json
skill-creator 汇总产物:把「带 skill」与「不带 skill」两组的通过率、耗时、token 放在一起对照。
frontmatter
SKILL.md 开头的 YAML 头。必填 name(≤64 字符)与 description(≤1024 字符),决定这个 skill 会不会被触发。
progressive disclosure(渐进式披露)
启动时只预加载所有 skill 的 name+description;正文触发后才读;附带文件用到才读;脚本只执行、内容不进上下文。

// 延伸阅读