上一期的结论是「产出层得自己写」。这一期回答怎么写:别坐下来凭空写 skill,先把活干完一遍,再让模型把你纠正过它的地方抽出来。下面点名 9 个真实可装 / 可读的条目,官方文档、官方插件、内置命令和一份社区方法论都有。
Claude Code 官方文档给「什么时候该建 skill」写了一句判据:Create a skill when you keep pasting the same instructions, checklist, or multi-step procedure into chat——当你反复往对话里粘同一段指令、清单或多步流程时。claude.com 的教程换了个说法:当你发现自己用同样的话纠正 Claude。两句话指向同一个信号:重复解释就是 skill 的原材料。问题只剩一个——怎么把它从对话里捞出来,而不是坐下来另写一份泛泛的「最佳实践」。
它替你干掉的是「每个新会话从头解释一遍」:表名和口径、你们的报告格式、「这类请求先排除测试账号」这种规矩。主力工具是官方的 skill-creator:
# Claude Code:官方 marketplace 里的 skill-creator 插件
/plugin install skill-creator@claude-plugins-official
# 若报 Marketplace not found,先加官方 marketplace 再重装
/plugin marketplace add anthropics/claude-plugins-official
# 第一条用法:在刚干完活的同一个会话里说
把我们刚才这套流程做成一个 skill,用 skill-creator。
重点保留我中途纠正你的那几处。
为什么要在同一个会话里说?因为 skill-creator 的第一步 Capture Intent 写明:如果当前对话里已有用户想捕获的流程(比如用户说 turn this into a skill),先从对话历史里抽答案——用过的工具、步骤顺序、用户做过的纠正、观察到的输入/输出格式,缺的再问你、并让你确认。换个新窗口,这些原材料就全丢了。
它写出来的文件放哪:~/.claude/skills/<name>/SKILL.md 是个人级(本机所有项目生效),.claude/skills/<name>/SKILL.md 是项目级(提交进仓库给团队用)。之后 Claude 会按 description 自动调用,你也可以直接敲 /<name>。
Agent Skills 开放规范的官方站 agentskills.io 在《Best practices for skill creators》开篇就点名了这个坑:只让 LLM 凭训练知识写 skill,得到的是「妥善处理错误」「遵循认证最佳实践」这类空话。它给的第一种解法就叫 Extract from a hands-on task,让你盯四样东西:
Anthropic 的《Skill authoring best practices》把同一件事写成 Claude A / Claude B 七步:先不用 skill 和 Claude A 把任务做完,Notice what information you repeatedly provide;再识别可复用模式、让 A 写 skill、删掉多余解释、整理信息结构;然后开一个装了 skill 的新实例 B 去做相似任务,观察它漏了什么,带回给 A 改。官方还特意提示:不需要专门的「写 skill 的 skill」,直接让 Claude 写它就会按格式写。
社区这边最硬的一份是 obra/superpowers 里的 writing-skills,它把这件事当 TDD 做:先跑没有 skill 的基线、记下 agent 的原话借口(RED),再写只针对这些违规的最小 skill(GREEN),最后堵漏洞(REFACTOR)。它的核心句是:If you didn't watch an agent fail without the skill, you don't know if the skill teaches the right thing.
/insights(Claude Code 内置)——分析本机最近的会话(一次最多 200 个),产出 HTML 报告,列出被误解的请求等摩擦点和改进建议,存在 ~/.claude/usage-data/report.html。别指望它的时候:云端会话里不可用,且分析消耗你的额度。/run-skill-generator(Claude Code 内置)——官方自己做的「从重复里长 skill」样板:从干净环境把你的应用跑起来,把成功的安装命令、环境变量、启动脚本记成项目 skill .claude/skills/run-<name>/,之后 /run、/verify 照着走,不再每次重新摸索。别跑:标准项目——官方说 /run 不配置也能推断启动方式。CLAUDE.md。官方的分界:CLAUDE.md 每轮都在上下文里;skill 只在用到时加载,加载后也不会逐轮重读。反过来,CLAUDE.md 里一节长成了「流程」而不是「事实」,就该搬进 skill。writing-skills 说得更直白:能用正则或校验自动化的,就别写成文档。writing-skills:skill 不是「我某次怎么解决问题」的叙事。有副作用的流程(部署、提交)在 frontmatter 加 disable-model-invocation: true,只允许你手动 /name 触发。需要当下数据的,用 !`git diff HEAD` 这种行内命令——它在 Claude 看到 skill 之前就执行,把实时输出注入进去。
skill-creator 自己警告:你们在几个例子上反复迭代,是因为快;但如果 skill 只对这几个例子有效,它就没用——要造的是能被用一百万次的 skill,而不是塞「抠细节的补丁和压迫性的 MUST」。抽出来之后必须换一个没见过的真实任务去验。
官方文档:skill 名字和描述常驻一份清单,预算是模型上下文窗口的 1%;超了就从你最少调用的 skill 开始丢描述,丢了描述它就很难被自动触发。单条 description 加 when_to_use 也会在 1,536 字符处截断。加载后的 body 会一直留在上下文里,每一行都是持续的 token 成本。
记下来的流程只对记录那天的环境成立。官方对 /run-skill-generator 的要求就是:构建或启动方式变了,再跑一次。个人 skill 没有这种提醒,过期了只会悄悄跑错。
CLAUDE.md 一行(每次都该知道的事实)→ hook(必须每次成立的规则)→ 一个 skill(反复粘贴的流程)→ 打包成 plugin(多个 skill 要一起装、一起分享)。先问能不能往左挪一格。先装这三个:① /plugin install skill-creator@claude-plugins-official——干完活在同一个会话里说「把这套做成 skill」,它从对话历史里抽步骤和你的纠正,再跑有 / 无 skill 的对比。② 读一遍官方《Skill authoring best practices》里的 Claude A / Claude B 七步,照它的节奏验。③ 读 obra/superpowers 的 writing-skills——不必装整套 Superpowers,只抄它「先看 agent 失败再写」的 RED 步骤。
按需再加:/run-skill-generator(项目启动步骤复杂时)· /insights(本地会话多、想找自己在哪反复卡住)· anthropics/skills 的 template/(手写时的最小骨架) · skills-ref validate(要分享前校验 frontmatter)。
明确别做:凭空让模型「写一个某某 skill」而不给真实上下文 · 在新会话里补抽取(原材料已丢)· 把每次都该知道的事实写成 skill · 把必须成立的规则只写在 skill 里。
skill-creator 的第一步:先从当前对话里抽出工具、步骤、纠正、输入/输出格式,缺口再问你。true 后 Claude 不会自动调用,只能你手动 /name。writing-skills 防的是被选中之后不读正文:它记录过一次实测,description 里概括了流程(「任务间做 code review」),agent 就只做了一次 review,跳过了正文流程图里的两段式审查;改成只写触发条件后才按正文走。我的折中:写清「什么时候用」和关键词,别把步骤摘要塞进去——流程本身留给正文。CLAUDE.md 一行解决,就别建 skill;如果它会出事故,就上 hook。disable-model-invocation、! 行内命令、CLAUDE.md 与 skill 的分界、清单 1% 预算、/run-skill-generator(官方,据 2026-10 读取)skills-ref validate 与 ZIP 打包(官方)/plugin install skill-creator@claude-plugins-official;源文件 skills/skill-creator/SKILL.md 的 Capture Intent 与「一百万次」(官方)/plugin install superpowers@claude-plugins-official/insights:最多 200 个会话、摩擦点、报告路径、云端会话不可用(官方)