自定义 Skills:把重复活变成一行召唤
📍 进阶 9/10 · 上一篇:← Slash Commands 全清单
⚠️ 前置门槛提醒:这一篇会出现一点 markdown 语法(写标题用
#、写列表用-)。如果你完全没接触过 markdown,建议先跳过这一篇,等读完前面 8 篇 + 在 Claude Code 里写过几次对话(那时你已经天然熟悉 markdown 了)再回来。文章中会有一段 5 行的 markdown 速查,完全没接触过的人能跟上。

你一定撞到过的痛
Section titled “你一定撞到过的痛”你每周一写一份周报给老板。每次都跟 Claude 说类似的话:
“帮我写本周周报,要求:
- 重点先讲完成的 3 件最大的事
- 每件事写「完成了什么 / 用了多少时间 / 下周计划」
- 风格:克制、不夸张、动词起头
- 不要写「我有幸」、「致力于」这种虚词
- 总长不超过 500 字
- 素材在 ~/Documents/工作日志/ 这个目录”
说了 5 个星期,5 次都是同一段。每次复制粘贴你都觉得自己像复读机。

Skill 就是为这个而生:把上面那一大段打包成一个文件,以后只要说「帮我写本周周报」或者甚至「该写周报了」,Claude 自动找到这个 Skill,按里面定义的流程跑。
Skill 是什么:跟 slash command 有什么区别
Section titled “Skill 是什么:跟 slash command 有什么区别”
很多人会问——「上一篇讲的 custom slash command 也是 markdown 文件,跟 Skill 有啥不一样?」
| Slash Command | Skill | |
|---|---|---|
| 调用方式 | 手动 打 /xxx | Claude 自动判断 是否使用 |
| 触发条件 | 你打了那个命令 | Claude 看到相关意图(比如你说「该写周报了」) |
| 典型形态 | 简单指令包装 | 完整工作流(可调工具、读文件、跑命令) |
| 适合谁 | 你记得用它的场景 | Claude 主动认出该用的场景 |
类比:
- Slash command = 微波炉上的「快速加热」按钮——你按它才热
- Skill = 智能厨房——你说「我饿了」,它自动给你出一份合适的饭
简单来说:slash command 是手动调用 + 简单指令 / Skill 是自动召唤 + 完整工作流。
新手第一年用 slash command 就够了;当你发现某些场景你自己都记不住用什么命令、但希望 Claude 自动想起来的时候——就该写 Skill 了。
一个 Skill 文件长什么样
Section titled “一个 Skill 文件长什么样”
一个 Skill 就是一个 markdown 文件,结构 3 部分:
---name: weekly-reportdescription: 写本周周报,适用于「周报 / 周总结 / 这周做了什么」类请求---
# 写本周周报
请按以下规则帮我写本周周报:
## 风格- 克制、不夸张- 动词起头(❌ 我有幸 / 我致力于 → ✅ 完成了 / 上线了)- 总长不超过 500 字
## 内容结构1. 完成的 3 件最大的事(每件:完成了什么 / 用了多少时间 / 下周计划)2. 遇到的卡点 + 我准备怎么解决3. 下周重点
## 素材来源读 ~/Documents/工作日志/ 这个目录下本周的 .md 文件。3 个核心部分:
1. 顶部 frontmatter(--- 中间这块)
Section titled “1. 顶部 frontmatter(--- 中间这块)”---name: weekly-reportdescription: 写本周周报,适用于「周报 / 周总结 / 这周做了什么」类请求---name:这个 Skill 的唯一标识(英文,小写,横线分隔)description:这是最关键的字段——Claude 用它判断「这次请求要不要用这个 Skill」。写得越具体,触发越精准。
2. 主体(markdown 正文)
Section titled “2. 主体(markdown 正文)”直接写你要 Claude 怎么干——风格、结构、素材来源、注意事项,全部用人话说清楚。就当你在跟一个新员工交代任务。
3. 可选:子工具调用
Section titled “3. 可选:子工具调用”进阶用法——你可以在 Skill 里指定它该调用哪些工具(读文件 / 跑命令 / 调用外部 API)。新手第一年不用。
5 行 markdown 速查(没接触过的可以跟上)
Section titled “5 行 markdown 速查(没接触过的可以跟上)”如果你完全没接触过 markdown,看这 5 条就能写 Skill:
| 你想要 | 写法 |
|---|---|
| 一级标题 | # 标题 |
| 二级标题 | ## 副标题 |
| 列表 | - 第一条 |
| 加粗 | **这段加粗** |
| 代码块 | 三个反引号包起来(就像这一段) |
这 5 条 已经能写 95% 的 Skill。剩下的需要时再查。
怎么写你的第一个 Skill
Section titled “怎么写你的第一个 Skill”Step 1:决定写什么
Section titled “Step 1:决定写什么”挑一个你这一个月让 Claude 做过 3 次以上同样指令的活。常见的:
- 写周报 / 月报
- 改简历(每次都那几条风格规则)
- 整理发票录入 Excel
- 写邮件回复(中文 / 英文)
- code review(找这几类问题)
第一次写,挑一个最简单的。先体验「写好之后召唤一次成功」的爽。
Step 2:在对应目录创建文件
Section titled “Step 2:在对应目录创建文件”全局级(所有项目都能用)
Section titled “全局级(所有项目都能用)”mkdir -p ~/.claude/skillsnano ~/.claude/skills/weekly-report.md把上面的模板内容粘进去,改成你的实际指令。
项目级(只这个项目能用)
Section titled “项目级(只这个项目能用)”mkdir -p .claude/skillsnano .claude/skills/deploy-staging.md放在你当前项目的根目录下。
节奏建议:
- 跨项目通用(写周报、改简历)→ 全局级
- 项目特定(部署 / 测试 / 这个项目的 commit 规范)→ 项目级
Step 3:重启 Claude Code 或 /skill reload
Section titled “Step 3:重启 Claude Code 或 /skill reload”新写的 Skill 不会自动加载,你需要:
/skill reload或者干脆关掉 Claude Code 重开。
Step 4:试试看自动召唤
Section titled “Step 4:试试看自动召唤”新开一个对话,说类似这样:
“该写周报了。”
或者:
“本周做了哪些事?帮我整理一下给老板。”
Claude 应该自动召唤刚才写的 weekly-report Skill——你会看到它读了你的工作日志目录,按你定的格式写,风格符合你的要求。
第一次跑通的爽感——你会立刻明白这一篇为什么值得读。
Skill 自动召唤的原理
Section titled “Skill 自动召唤的原理”
Claude 不会扫描你 Skill 的全部内容(那样太烧 token)——它只读 description 字段。
所以:description 写得好 = Skill 召唤准 + 不召唤错。
写 description 的 3 条原则:
✅ 1. 包含「触发词」
Section titled “✅ 1. 包含「触发词」”❌ 不好的描述:
“用来生成报告。”
✅ 好的描述:
“写本周周报。适用于「周报 / 周总结 / 这周做了什么 / 该交报告了」类请求。”
把用户可能说的触发词全列出来——Claude 看到这些词就会想到这个 Skill。
✅ 2. 描述「适用场景」
Section titled “✅ 2. 描述「适用场景」”❌ 不好的描述:
“改简历。”
✅ 好的描述:
“按特定风格修改简历。适用于「改简历 / 简历润色 / 加强简历」请求。如果是写新简历或重新组织结构,不适用此 Skill。”
说清楚什么时候用、什么时候不用——避免 Claude 误召唤。
✅ 3. 长度控制在 50-150 字
Section titled “✅ 3. 长度控制在 50-150 字”太短 → 触发不准 太长 → 浪费 context
把 Skill 分享给团队
Section titled “把 Skill 分享给团队”
Skill 本质上就是一个 markdown 文件,可以像普通代码一样 git 管理 / 分享。
方法 1:项目级 Skills 跟代码一起走
Section titled “方法 1:项目级 Skills 跟代码一起走”# 在你的项目根目录git add .claude/skills/git commit -m "Add team skills"git push队友 pull 代码后,自动获得整套项目 Skills。一致性立马拉满。
方法 2:个人 Skills 库做成单独 repo
Section titled “方法 2:个人 Skills 库做成单独 repo”# 用 git 仓库管理你的全局 Skillscd ~/.claude/skillsgit initgit push -u origin main换电脑时:git clone 一下,你的所有 Skill 立刻全在新机器上。
方法 3:GitHub gist 分享单个 Skill
Section titled “方法 3:GitHub gist 分享单个 Skill”如果你写了一个特别好用的 Skill 想分享给社区,把它发成 gist,别人 wget 一下放到自己目录就能用。
5 个值得抄走的 Skill 模板
Section titled “5 个值得抄走的 Skill 模板”下面 5 个是社区里反响最好的 Skill 类型,可以照抄改你自己的:
| Skill 名 | 一句话作用 |
|---|---|
weekly-report | 按特定风格写周报 |
improve-resume | 改简历(动词起头 / 数据具体 / 删虚词) |
email-reply | 写邮件回复(中英文 + 三种语气) |
code-review | 自动 review 当前的 git diff(找 bug / 性能 / 风格问题) |
commit-message | 看一下当前的 staged changes,写一条好的 commit message |
每个都是「这事我每周都做 3-5 次」级别的频率,Skill 化收益最大。
三个新手最容易踩的坑
Section titled “三个新手最容易踩的坑”❌ 坑 1:description 写得太宽泛,被误召唤
Section titled “❌ 坑 1:description 写得太宽泛,被误召唤”description: “写文档。”
踩坑:Claude 看到任何「写一段话」的请求都会召唤这个 Skill,把不相关的请求按周报格式写。
修正:精确描述用途 + 列出触发词 + 列出不适用场景。
❌ 坑 2:Skill 文件太长,塞太多东西
Section titled “❌ 坑 2:Skill 文件太长,塞太多东西”Skill 写了 500 行,什么都讲了。
踩坑:Skill 被召唤时全文加载进 context——500 行 = 10k+ token 直接消耗。
修正:Skill 写指令本身,不要塞数据 / 例子库。需要数据时让 Claude 自己去读对应的目录。
❌ 坑 3:Skill 越写越多,自己都忘了有什么
Section titled “❌ 坑 3:Skill 越写越多,自己都忘了有什么”“我写了 30 个 Skills,但每次都忘了哪个适用现在的场景。”
踩坑:Skill 是给 Claude 自动召唤用的,你不需要记。但太多 + 描述写得不清 = Claude 召唤混乱。
修正:
- 每月看一次
~/.claude/skills/目录,删掉 3 个月没触发过的 - 用
/skill命令看当前所有 active skill 的列表 - description 写得互相不重叠(不要两个 Skill 都说「写报告」)
一个真实场景演练
Section titled “一个真实场景演练”你: 该写周报了。
Claude: (自动召唤 weekly-report Skill) 我看了你 ~/Documents/工作日志/ 里这周的 5 份日志, 本周你完成的 3 件最大的事是: 1. 上线了用户增长漏斗 v2,DAU 从 8k → 12k(2 天工作量) 2. 修复了支付回调失败的 bug(1 天) 3. 跟设计对齐了 Q3 的视觉系统(1 天)
下周重点:跟数据团队对接漏斗的 funnel 报表自动化。 卡点:数据库压力升高,需要 DBA 一起拍方案。
全文 432 字,符合你 500 字内的要求。要直接保存到 周报2026-05.md 吗?
你: 好。整个对话不到 30 秒——这是 Skill 的真实威力。
读完这一篇你应该会:
- 写出第一个 Skill(weekly-report 是最好的练手)
- 理解 Skill 跟 slash command 的区别
- 知道 Skill description 怎么写才准
下一篇 02 区的最后一篇:
→ Plugins:别人写好的工具装上就用 —— 不用自己写,直接用社区现成的 Skill / Tool 打包
想第一时间收到,可以收藏 niuxue.org 主页。
如果你写了一个特别好用的 Skill,发到 [email protected],我们会精选放进社区 Skill 库。
评论
不记名、不需要注册——不要邮箱,不要手机号,不要任何身份信息,填个昵称就能留言。放心说。