Skip to content
Go back

Claude Code Skills 的九种类型与写法技巧

Claude Code Skills 概念图

Skills 是 Claude Code 里最常被使用的扩展点,但灵活性也意味着”不知道怎么做才对”。Anthropic 内部已有数百个 Skills 在跑,Thariq(@trq212)把他们的实践经验整理成了这篇文章,分两块:Skills 大概能做什么用,以及怎么写才好用。

一个容易误会的事情是,Skills 不只是 Markdown 文件。官方文档里说的是”文件夹”——可以包含脚本、assets、数据、配置,Claude 可以发现、读取、操作这些文件。真正有意思的 Skill 往往就在这个结构里做文章。

九种 Skill 类型

Anthropic 在整理内部所有 Skills 后,发现它们大致聚拢成 9 类:

1. 库与 API 参考(Library & API Reference)
解释如何正确使用某个库、CLI 或 SDK,尤其是内部库或 Claude 容易用错的通用库。通常包含一组参考代码片段,加上一个”踩坑列表”。例子:内部计费库的边界情况、内部 CLI 的每条子命令示例。

2. 产品验证(Product Verification)
描述如何测试和验证代码是否正确。常搭配 Playwright、tmux 等工具。验证类 Skill 有时值得专门让工程师花一周时间打磨——包括让 Claude 录制测试视频,或在每个步骤做编程断言。

3. 数据获取与分析(Data Fetching & Analysis)
接入数据和监控系统,包含带凭证的数据获取库、仪表盘 ID、常见查询模式。例如:“要看 signup → activation → paid 的漏斗,join 哪些事件表,canonical user_id 在哪张表”。

4. 业务流程自动化(Business Process & Team Automation)
把重复工作流打包成一条命令。通常指令本身不复杂,但可能依赖其他 Skills 或 MCPs。把执行结果存进日志文件可以帮助模型保持一致性、回顾历史执行情况。

5. 代码脚手架(Code Scaffolding & Templates)
为特定功能生成样板代码,尤其适合脚手架里有自然语言要求、不能完全靠代码覆盖的情况。例如:带你的 auth、日志、部署配置的新应用模板。

6. 代码质量与审查(Code Quality & Review)
可以包含确定性脚本来保证鲁棒性,也可以配合 Git hook 或 GitHub Action 自动触发。典型例子:派一个”fresh eyes”子 agent 来批评代码,实现修复,持续迭代直到问题降低到小挑剔为止。

7. CI/CD 与部署(CI/CD & Deployment)
帮你拉取、推送、部署代码,通常引用其他 Skills 来收集数据。例如:监控 PR → 重试 flaky CI → 解决合并冲突 → 启用自动合并。

8. 运行手册(Runbooks)
接收一个症状(Slack 线程、告警、错误特征),走完多步工具调查,生成结构化报告。例如:给定 request ID,从每个可能触达它的系统里拉取匹配日志。

9. 基础设施运维(Infrastructure Operations)
执行例行维护和操作流程,部分涉及破坏性操作,加护栏很有意义。例如:找到孤儿 Pod/卷 → 发到 Slack → 等待期 → 用户确认 → 级联清理。

写法技巧

Description 是触发条件

Claude Code 启动 session 时,会把每个可用 Skill 的 description 列出来扫一遍,再决定”有没有 Skill 适合这个请求”。所以 description 不是摘要,不是给人读的,它是触发条件——告诉模型什么时候调用这个 Skill。写的时候要问:Claude 看到这个 description,能不能判断出”这个请求该用这个 Skill”?

Gotchas Section 信息密度最高

Thariq 把”Gotchas Section”称为信息密度最高的部分。这一节应该从 Claude 真实踩过的坑里积累,而不是预先设计。好的 Skill 会随着时间迭代,每次 Claude 遇到新边界情况就更新一次。

Skill 是文件夹

用文件系统做”渐进披露”(Progressive Disclosure)。告诉 Claude 文件夹里有什么文件,它会在合适时机去读。最简单的形式:把详细 API 签名和用法示例拆到 references/api.md。高级一点:在 assets/ 里放模板文件,让 Claude 复制使用;在 scripts/ 里放可组合的工具脚本。

给 Claude 脚本,不要让它重造轮子

给 Claude 代码,它就能把 token 花在”该做什么”上,而不是重写样板。一个数据分析 Skill 里可以预置一组从事件源取数据的辅助函数,Claude 在接到”星期二发生了什么”这类问题时,直接组合这些函数生成分析脚本。

不要把 Claude 逼进死路

Skills 是复用的,不要把指令写得太死。给 Claude 它需要的信息,同时留出适应情况的空间。

按需 Hook

Skills 可以注册只在调用时激活、session 结束后失效的 Hook。典型例子:

记忆与数据存储

Skill 可以在自身目录里存数据来实现记忆——简单到 append-only 文本日志,复杂到 SQLite 都行。一个 standup-post Skill 可以维护一个 standups.log,每次运行时 Claude 读取自己的历史,知道昨天写了什么。注意:Skill 升级可能会删掉目录里的数据,建议用 ${CLAUDE_PLUGIN_DATA} 这个稳定路径来存持久化数据。

分发与度量

小团队把 Skills check 进 repo(放在 ./.claude/skills 下)就够了。但每个 check 进来的 Skill 都会给模型增加一点上下文。规模变大之后,内部插件市场可以让团队自己选择安装哪些。

Anthropic 通过一个 PreToolUse Hook 记录 Skill 调用,方便找出哪些 Skill 受欢迎、哪些触发率低于预期。

Skills 之间可以相互依赖——在指令里直接引用其他 Skill 的名字,模型会在安装的情况下调用它,不需要原生的依赖管理机制。

参考


Tags


Previous

5 个 Agent Skill 设计模式,ADK 开发者看这一篇

Next

Outbox Pattern 扩展实践:每天处理 20 亿条消息