跳到主内容

Claude Code Skills 用法详解:把重复流程写成 SKILL.md 让 AI 自动加载

100%
Claude Code Skills 用法详解:把重复流程写成 SKILL.md 让 AI 自动加载

Claude Code Skills 是什么:一段按需加载的「操作手册」

Claude Code Skills 的核心思路一句话说清:把你反复粘贴的指令沉淀成一个 SKILL.md 文件,Claude 在相关任务出现时自动加载,平时不占上下文。它解决的是「同一套流程每天手打三遍」的问题——比如代码审查清单、发版步骤、某个内部 API 的调用规范。

官方文档(code.claude.com)给出的判断标准很实用:当你「不断把同样的指令、检查清单或多步流程粘进对话」,或者 CLAUDE.md 里某一段已经从「事实描述」长成了「操作流程」,就该把它拆成 Skill 。与 CLAUDE.md 的区别在于加载时机:CLAUDE.md 每次会话全文注入,Skill 只在触发时才读正文,长文档几乎零成本。

SKILL.md 的结构:frontmatter + 正文

每个 Skill 是一个目录,最核心是一个 SKILL.md,由两部分组成:

---
description: 汇总未提交改动并标出风险。用户问改了什么、要写 commit message 或 review diff 时使用。
---
## 当前改动
!`git diff HEAD`

## 指令
用两三条要点总结上面的改动,再列出你发现的风险,例如缺失的错误处理、硬编码值。

frontmatter 里的 description 是关键字段——Claude 靠它判断什么时候自动加载这个 Skill,写清楚「做什么 + 什么时候用」比写漂亮话重要得多。正文里的 !`命令` 是动态上下文注入:Claude Code 会先执行命令、把输出替换进正文,再让模型读,这样指令天生带着最新数据。

两个控制开关值得记住:disable-model-invocation: true 只允许人手动 /skill-name 触发,适合部署这类有副作用的动作;user-invocable: false 则只让模型自动用,适合纯背景知识。

三层存放位置与官方内置 Skill

  • 个人级:~/.claude/skills/,跨所有项目可用;
  • 项目级:.claude/skills/,只对当前仓库生效,可以提交进 Git 让团队共享;
  • 插件级:带命名空间(如 my-plugin:review),不会与个人级冲突。

同名时企业级覆盖个人级、个人级覆盖项目级。另外,早期的 .claude/commands/ 自定义命令已经合并进 Skill 体系,老文件继续有效,但同名时 Skill 优先。

Claude Code 还内置了一批官方 Skill:/code-review、/debug、/run、/verify 等。其中 /run-skill-generator 值得单独一提——它会把「怎么构建并启动你的项目」这套踩坑经验录制成项目专属 Skill,之后所有智能体都按录好的配方启动,不用每次重新摸索。

实操:五分钟写第一个 Skill

以「提交前检查」为例,流程如下:

  1. 在仓库根目录建 .claude/skills/pre-commit-check/SKILL.md,目录名就是将来的命令名。
  2. 写 frontmatter:description 写成「提交前检查敏感信息、 TODO 和超大文件,用户要求提交或 review 时使用」。
  3. 正文列出检查项和用到的命令(如 !`git diff --stat` 注入当前改动概况)。
  4. 在会话里问「帮我检查能不能提交」,或直接输入 /pre-commit-check 验证触发。
  5. 确认 .claude/skills/ 目录已提交进 Git,团队拉代码后即可共用。

经验总结:三个容易踩的坑

  • description 写太泛:写成「帮助开发者」的 Skill 几乎永远不触发,把触发场景写具体;
  • 正文超 500 行:官方建议 SKILL.md 控制在 500 行以内,详细参考资料拆成 reference.md、examples.md 放同目录,正文里注明「需要时读取」,这就是渐进披露;
  • 把事实也塞进 Skill:项目约定、架构说明这类「每轮都要知道」的内容留给 CLAUDE.md,Skill 只放流程。

Skills 、 Hooks 、子智能体三者组合才是完整玩法:Skill 管知识加载,Hooks 管事件自动执行,子智能体管上下文隔离。想深入可以接着读本站这三篇。

延伸阅读(站内)

Skill 和自定义命令有什么区别?
自定义命令已合并进 Skill:.claude/commands/deploy.md 和 .claude/skills/deploy/SKILL.md 都会创建 /deploy 。 Skill 额外支持支持文件目录、自动触发、调用控制等特性,同名时 Skill 优先。

Skill 会一直占用上下文吗?
不会。默认只有 description 常驻上下文,正文只在触发时加载一次。会话自动压缩时,最近调用的 Skill 会被重新附在摘要后(共享约 25000 token 预算)。

个人级和项目级 Skill 重名了怎么办?
个人级覆盖项目级(企业级最高)。插件 Skill 走独立命名空间 plugin:skill,不会冲突。建议项目相关流程放项目级并提交 Git,个人习惯放 ~/.claude/skills/。

参考来源:Claude Code 官方文档 code.claude.com/docs/en/skills;Anthropic 帮助中心「 Creating custom skills 」。本文为原创整理与实践补充。

这篇有帮助吗?
云上的幻象
云上的幻象查看主页

七彩云博客,分享 WordPress 建站实战与 AI 工具测评,覆盖服务器运维、站长工具、软件资源与电商运营干货,专注原创实用的主题插件、网站加速与安全优化教程。

892文章4评论

相关文章

评论 (0)

欢迎你,新朋友,感谢参与互动!文明发言,理性交流 · 首次评论将在审核后展示