构建 Claude Code 技能:把团队经验变成自动加载的插件
# 前言
最近在用 Claude Code (opens new window) 帮我写代码时,遇到一个挺尴尬的情况:当我让它去查一下公司的数据仓库(Data Warehouse),它给出的 SQL 语法很标准,逻辑也挑不出毛病——但它是通用的,不是我们的。
它不知道我们的表结构长啥样,不懂我们的黑话(比如 "ARR" 在我们这儿具体怎么算),更不知道哪些字段必须加 WHERE 过滤条件才能跑通。结果就是,我每次都得像教实习生一样,在 Prompt 里把那些"只可意会不可言传"的规矩重新说一遍。🤷♂️
这并不是 Claude 笨,而是因为它每次对话都是一张白纸,没法直接访问我们团队沉淀下来的"程序性知识"。这些知识通常散落在 Wiki、Google Sheets 和老员工的脑子里(俗称 Tribal Knowledge),Claude 根本够不着。
直到我发现了 Skills 这个功能,感觉像是给 Claude 装了一个"团队知识外挂"。今天就来聊聊怎么把你的工作流、业务逻辑打包成 Claude 能自动调用的技能。🚀
# 技能是如何填补知识鸿沟的?
Skills 本质上就是模块化的知识包。你可以把它理解成一份"入职培训手册",专门教 AI 像你们团队一样工作。
它解决了一个核心矛盾:如何让 AI 既拥有海量知识,又不把 Context Window(上下文窗口)撑爆?
这里用到了一个很妙的设计——渐进式披露 🎭。
- 索引阶段:Claude 只会看到一个轻量级的技能索引(名字 + 100 字左右的描述)。
- 识别阶段:当你说"帮我看下上季度的收入"时,Claude 会敏锐地意识到:"嘿,这事儿好像得用那个
sql-analysis技能。" - 加载阶段:具体的指令细节才会在这个时候被加载进来。而那些几千字的详细表结构文档?只有当你真正查询某张表时,才会被按需读取。
这意味着,你可以把几十张表的定义都塞进去,但 Claude 只会吃它当下需要的那一口,绝不浪费 token。🍱
# 解剖一个技能
一个标准的技能包结构设计得很巧妙,既照顾人类维护,也方便 AI 消费。我们以一个"数据仓库分析技能"为例,看看里面都有啥。
# SKILL.md:核心大脑
这是技能的入口文件,必须包含一段 YAML Frontmatter:
name: sql-analysis
description: 用于分析业务数据:收入、ARR、客户分群、产品使用情况或销售漏斗。包含 ACME 数据仓库特有的表结构、指标定义、必选过滤器和查询模式。
2
💡 注意:
description非常关键!它决定了 Claude 什么时候会想起用这个技能。如果你写得太含糊,它可能就想不起来翻你的牌子了。
Markdown 正文则负责梳理具体的工作流:
# SQL Analysis Skill
## 快速上手流程
当用户请求数据分析时:
1. **明确需求**
- 时间范围?(默认为今年)
- 客户分群?(澄清是指账户还是组织?)
- 这数据要用来做啥决策?
2. **检查现有仪表盘**
- 先去 `references/dashboards.md` 瞧一眼有没有现成的
- 有就直接甩链接,别重复造轮子 🎡
3. **确定数据源**
- 优先用聚合表,别直接扒原始事件日志
- 查询前先确认表里有你需要的列
4. **执行分析**
- 应用必选过滤器(比如排除测试账号)
- 用已知的基准数据校验结果
### 标准查询过滤器
涉及收入查询时,必须遵守:
- 永远排除测试账号:`WHERE account != 'Test'`
- 只用完整周期:`WHERE month <= DATE_TRUNC(CURRENT_DATE(), MONTH)`
### ARR 计算逻辑
- 月度转 ARR:`monthly_revenue * 12`
- 7天滚动率:`rolling_7d * 52`
## 知识库
详细表结构和查询模式请查阅:
- **收入与财务** → `references/finance.md`
- **产品使用** → `references/product.md`
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
你看,SKILL.md 只负责指路和讲规矩,具体的干货都在 references/ 目录里。
# References:按需调用的文档库
references/ 目录就像是一个档案室,放满了详细文档。比如 references/finance.md 可能包含:
- 表结构:列名、类型、注释。
- 标准过滤器:哪些
WHERE子句是必须的。 - 指标定义:计算公式的精确写法。
- 常用 SQL 片段:那种"按地区和分群看收入"的常用查询模板。
- 边缘情况:哪些表虽然长得像但其实不能用,或者 Join 时的坑。
原则
信息要分流:要么在 SKILL.md,要么在 references/,别重复。保持 SKILL.md 精简,把繁琐细节丢给 References。
# Skills vs CLAUDE.md:到底该用谁?
这俩都能给 Claude 喂知识,但分工不同:
| 特性 | Skills | CLAUDE.md |
|---|---|---|
| 加载时机 | 按需渐进式加载 | 总是加载,无脑塞入 |
| 适用范围 | 全平台通用 (claude.ai, Code, API) | 仅限 Claude Code (本地仓库) |
| 内容形式 | Markdown + 可执行代码 + 引用文件 | 单个 Markdown 文件 |
| 最佳场景 | 大型、跨项目的通用知识 (如数据规范) | 单一项目的特定指引 (如代码风格) |
如果你有一套公司级的设计规范,或者复杂的数据仓库逻辑,用 Skills 没跑了。
# 如何打造你的第一个技能 🛠️
# 1. 安装环境
先在终端装好 Claude Code:
curl -fsSL https://claude.ai/install.sh | bash
然后安装包含 skill-creator 的官方插件 (opens new window)。
# 2. 寻找目标
不是所有东西都值得做成技能。好的候选者通常具备:
- 跨项目通用性:好几个项目都能用得上。
- 多受众价值:不懂技术的产品经理和技术大牛都需要。
- 模式稳定:不会三天两头变。
比如:数据查询规范、内部平台文档、全局 UI 组件库。
# 3. 让 Claude 帮你写
你可以直接跟 Claude 对话生成它:
帮我创建一个数据仓库技能。我会告诉你我们的表结构和业务逻辑,你来帮我整理成标准的 Skill 格式。
Claude 会像个好记者一样追问你:
- 关键表有哪些?
- 哪些黑话需要定义?
- 查询时必须带什么过滤器?
这种对话式的过程,其实也是在帮你梳理团队的隐性知识。整理完大纲后,它会帮你生成 SKILL.md 和归档 references/ 文件。
# 4. 存储与分享
技能存本地,安全又可控。想分享给队友也有好几种路子:
- Zip 包:最简单,直接发文件。
- Git 仓库:像管理代码一样管理技能,有版本记录,适合基操扎实的团队。
- 内部中心化仓库:搞个专门的 Repo 存官方认证的技能。
- 插件包:打包成 Claude Code 插件分发。
挑个最适合你们团队协作习惯的就行。
# 实战案例:大家都怎么玩?
社区里已经有很多大佬玩出花了,这里举两个栗子 🌰:
- Playwright Skill (opens new window):让 Claude 直接写并运行浏览器自动化测试。你只要说"测一下登录页表单",它就自己写代码、跑测试、截图给你看,完全不用你动手配环境。
- Web Assets Generator (opens new window):输入 Logo 或 Emoji,它自动帮你生成 Favicon、App Icon 和各种社交分享图,尺寸都对得齐齐的。
更多奇奇怪怪的技能可以逛逛 Skills Marketplace (opens new window)。
# 结语
Skills 最吸引我的地方在于,它把组织记忆给具象化、工具化了。
以前,新人入职要老员工手把手教两周才能看懂数据表;现在,装个 Skill,第二天就能准确跑出数据。以前,数据科学家要把嗓子说哑解释为什么这个表不能 Join;现在,Claude 早就把规则写在小本本上了。
把团队的流程化经验封装成技能,不仅是为了省事,更是为了让知识得以沉淀和复用。如果你也在用 Claude Code,不妨试着把团队里那些重复解释了八百遍的规矩整理成 Skill,把生命留给更有创造力的事情吧!✨
"Knowledge has to be improved, challenged, and increased constantly, or it vanishes." — Peter Drucker