怎么写 SKILL.md?自己做一个 Claude Skill,把重复工作流沉淀下来

同一段要求反复粘贴给 AI,就该把它沉淀成 Skill。本文讲清哪些任务值得做成 Skill、SKILL.md 的 name、description 和正文怎么写,从零做一个完整示例,并教你写好 description 让它准确触发、再测试迭代。

4 分钟阅读
怎么写 SKILL.md?自己做一个 Claude Skill,把重复工作流沉淀下来

你是不是经常把同一段要求、同一份检查清单粘贴给 AI?这种时候就该把它写成一个 Skill:一个文件夹加一个 SKILL.md,以后说一句话或输入一个命令就能复用。

这篇从零做一个 Skill,讲清楚结构、写法和怎么测。还没用过 Skill,先看《Claude Code Skill 怎么用?Agent Skills 安装目录与触发方式》。

哪些工作值得做成 Skill

满足下面任意一条,就值得沉淀:

  • 同一段说明你粘贴过三次以上,比如"写周报按这个格式"
  • 固定的多步骤流程,比如发版前:跑测试 → 改版本号 → 写更新日志
  • 团队约定,比如接口命名规范、提交信息格式
  • CLAUDE.md 里某一段越写越长,已经变成了操作步骤。Claude Code 官方文档也建议把这类内容挪进 Skill,因为 Skill 正文只在用到时才加载

不适合做成 Skill 的:一次性的任务,或者一句话就能说清的偏好。

SKILL.md 的结构

一个 Skill 就是一个文件夹,SKILL.md 分两部分:

markdown
---
name: weekly-report
description: 做什么,以及什么时候该用
---

这里写给智能体的具体步骤。
  • name:Skill 的名字,用小写字母、数字和连字符,和文件夹名保持一致。Claude Code 里它就是你输入的命令 /weekly-report
  • description:写清"做什么、什么时候用"。智能体靠这句话决定要不要自动加载,是整个 Skill 最关键的一行
  • 正文:写具体步骤。用祈使句,写清输入和输出

需要脚本、模板、参考资料,就放在同一个文件夹里:

text
weekly-report/
├── SKILL.md
├── references/   (参考资料,用到才读)
├── scripts/      (脚本)
└── assets/       (模板等文件)
想让 Skill 在 Claude Code、Codex、Cursor 里都能用,头部尽量只用 name、description 这些标准字段。Claude Code 还支持 disable-model-invocation、allowed-tools、context: fork 等扩展字段,其他工具不一定认。

从零做一个 Skill:根据 git 提交生成周报

假设你每周五都要让 AI 按固定格式,根据本周提交记录写周报。下面把它做成个人 Skill。

第 1 步:先把客户端接好。配置写在全局文件里,以 Claude Code 为例,打开 ~/.claude/settings.json:

创建 API Key →

json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.aicodewith.ai",
    "ANTHROPIC_AUTH_TOKEN": "sk-你的Key",
    "CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK": "1"
  }
}
Codex 用户在 ~/.codex/config.toml 里配置 provider,写法见《Codex config.toml 配置指南》。

第 2 步:建文件夹。个人 Skill 放在家目录,所有项目都能用:

bash
mkdir -p ~/.claude/skills/weekly-report
用 Codex 就放到 ~/.agents/skills/weekly-report/;想让团队共用,就放进项目的 .claude/skills/ 或 .agents/skills/ 并提交到仓库。

第 3 步:写 ~/.claude/skills/weekly-report/SKILL.md:

markdown
---
name: weekly-report
description: 根据本周 git 提交记录生成中文周报。当用户说"写周报""总结本周工作""这周做了什么"时使用。
---

# 生成周报

1. 运行 `git log --since="1 week ago" --pretty=format:"%h %s" --no-merges` 获取本周提交。
2. 按功能把提交分成三类:新功能、问题修复、其他。
3. 按下面的格式输出,每条一句话,不要出现提交哈希:

## 本周完成
- 新功能:……
- 问题修复:……
- 其他:……

## 下周计划
(留空,提醒用户自己补充)

4. 如果本周没有提交,直接告诉用户,不要编造内容。

第 4 步:试一下。进入任意 git 项目,运行 claude,然后:

  • 手动调用:输入 /weekly-report
  • 自动触发:直接说"帮我写一下这周的周报"

两种方式都按格式出周报,就说明这个 Skill 做好了。Claude Code 会自动发现新建或修改的 Skill,不用重启。

Claude Code 还有个专属写法:在正文里写一行 ` !git log --since="1 week ago" --oneline `,它会先执行命令,把结果直接塞进 Skill 内容里再交给模型。这个写法只在 Claude Code 里有效。

description 怎么写才能准确触发

智能体平时只看得到 name 和 description,所以描述写不好,Skill 就不会被用上,或者乱被用上。

把关键用途和触发词放在最前面。Skill 多了以后描述可能被截短,前半句要能单独说明白。

写上用户真正会说的话。对比一下:

写法问题
description: 周报工具太短,智能体不知道什么时候用
description: 一个非常强大的、可以帮助你提升效率的智能助手全是虚词,没有触发词
description: 根据本周 git 提交记录生成中文周报。当用户说"写周报""总结本周工作"时使用。有用途、有触发词,好

写清边界。容易和别的 Skill 混淆时,加一句"不用于……",比如"不用于写月报或项目总结"。

有副作用的不要自动触发。部署、发消息这类,Claude Code 和 Cursor 加 disable-model-invocation: true,只允许手动调用。

测试和迭代

  1. 正向测:换三四种说法提需求,看能不能自动触发
  2. 反向测:说一些不相关的话,确认它不会乱触发
  3. 开新会话测:写 Skill 那个会话里残留的上下文会掩盖说明里的漏洞,一定要在新会话里试
  4. 对比有无 Skill 的结果:同样的需求,关掉 Skill 再跑一次,确认 Skill 真的让结果更好
  5. 按问题改:不触发就改 description;触发了但做错,就改正文步骤

省事的办法是用官方的 Skill 生成工具帮你起草和测试:

  • Claude Code:安装 skill-creator 插件 /plugin install skill-creator@claude-plugins-official,然后让它评估你的 Skill
  • Codex:输入 $skill-creator
  • Cursor:输入 /create-skill
保持正文简短。Claude Code 官方建议 SKILL.md 控制在 500 行以内,详细资料拆到 references/ 里,用到再读。

常见问题

Skill 写好了但 / 菜单里找不到?

先检查文件名是不是 SKILL.md、是不是放在 ~/.claude/skills/<名字>/ 这一层。Claude Code 里,头部的 --- 必须是文件第一行,否则头部不会生效;可以运行 claude plugin validate ~/.claude/skills 检查格式。

头部 YAML 写错了会怎样?

在 Claude Code 里,Skill 还能用 /名字 手动调用,但 description 读不到,就不会自动触发。

一个 Skill 可以做好几件事吗?

不建议。一个 Skill 只做一件事,触发更准,也更好维护。多件事就拆成多个 Skill。

怎么分享给同事?

最简单的是放进项目的 .claude/skills/ 或 .agents/skills/ 提交到仓库,同事拉代码就有。要跨项目分发,可以打包成插件。

用别人写的 Skill 要注意什么?

装之前先读一遍 SKILL.md 和里面的脚本。Claude Code 的 allowed-tools 字段可以让 Skill 免确认执行命令,来路不明的 Skill 要特别留意这一行。

相关文章

Claude Code 怎么控制 Unreal Engine?Epic 官方插件安装、MCP 连接与安全设置(UE5 实操)

Claude Code 怎么控制 Unreal Engine?Epic 官方插件安装、MCP 连接与安全设置(UE5 实操)

Epic Games 在 Anthropic 官方插件市场提供了 Claude Code Unreal Engine 插件 unreal-engine-skills-for-claude-code,配合编辑器里的 Unreal MCP,就能让 Claude Code 直接操作 UE5 编辑器。本文讲清编辑器端要开哪两个插件、怎么启动 MCP 服务、Claude Code 端怎么装插件和验证连接,以及 execute_tool_script 等安全设置。我们用 AICodeWith 的 Key 实测:插件 2.5 秒装好,全程不需要登录 Anthropic 账号。