先说个烦心事

前段时间我用 AI 助手写代码,每次开新对话都要重复一遍:

“我们项目用的是 React 18,状态管理用 Zustand,样式用 Tailwind,组件库是 shadcn/ui,请按照这个技术栈来写…”

说一遍还好,说十遍二十遍,我人都麻了。

更烦的是,有时候它还会"好心"给我推荐 Redux,或者写出一堆 styled-components 的代码。我就纳闷了:我都说了用 Tailwind,你怎么还给我整这些?

后来我发现了 Skills 这个功能,问题一下子就解决了。

Skills 是个啥?

你可以把 Skills 理解成给 AI 装的"记忆卡"。

打个比方,你新招了个实习生,人挺聪明,但对你们公司的项目一无所知。你每次给他派活,都得先花半小时介绍背景。时间长了,你肯定想:能不能给他一份文档,让他自己看完再来问我?

Skills 就是这份文档。

你把项目的技术栈、代码规范、常用命令这些东西写进去,AI 每次干活之前先"读"一遍,就知道该怎么配合你了。

两种玩法,看你喜欢哪个

玩法一:全局技能

这种方式是把技能文件放在你电脑的固定位置,不管打开哪个项目,AI 都能用。

适合放一些通用的东西,比如你个人的代码风格偏好、常用的工具链配置。

怎么搞:

# 先建个文件夹
mkdir -p ~/.codex/skills/my-coding-style

# 然后在里面创建 SKILL.md 文件

SKILL.md 长这样:

---
name: my-coding-style
description: 我的个人代码风格偏好,写代码时请遵循这些规范
---

# 代码风格

- 变量命名用 camelCase
- 函数尽量保持在 20 行以内
- 不要写注释废话,代码能说明白的就别注释
- 错误处理要认真写,别用空的 catch

重启 Codex,它就会自动加载这个技能。

玩法二:项目级技能(我更推荐这个)

这种方式是把技能文件放在项目目录里,跟着项目走。换电脑、换同事接手,技能都还在。

怎么搞:

# 在项目根目录建文件夹
mkdir -p .claude/skills

然后把 SKILL.md 放进去就行。

这种方式有个好处:你可以针对不同项目配置不同的技能。前端项目用前端的技能,后端项目用后端的技能,互不干扰。

来,我给你看个真实例子

我们团队有个 React 项目,代码审查的时候经常出现这些问题:

  • 有人忘了处理 loading 状态
  • useEffect 的依赖数组写得乱七八糟
  • 组件命名不规范

每次 review 都要重复提这些,烦死了。

代码审查

后来我写了个代码审查技能:

---
name: react-code-reviewer
description: React 代码审查助手,当需要 review React 代码时使用
---

# 审查清单

## 必查项
- [ ] 组件是否处理了 loading、error、empty 三种状态
- [ ] useEffect 依赖数组是否完整且正确
- [ ] 是否有内存泄漏风险(未清理的订阅、定时器)
- [ ] Props 类型定义是否完整

## 命名规范
- 组件:PascalCase,如 UserProfile
- hooks:use 开头,如 useUserData
- 工具函数:camelCase,如 formatDate

## 性能关注点
- 大列表是否用了虚拟滚动
- 频繁渲染的组件是否用了 memo
- 复杂计算是否用了 useMemo

配置好之后,我把代码丢给 AI,说"帮我 review 一下",它就会按照这个清单一项项检查,输出的报告格式统一,该查的点一个不漏。

怎么调用技能?

有两种方式:

自动调用:如果你的指令和某个技能的 description 匹配,AI 会自动加载。比如我说"review 这段 React 代码",它就会自动用上面那个技能。

手动调用:用 @ 符号指定。比如:

@.claude/skills/react-code-reviewer 帮我检查这个组件有没有问题

我一般用自动调用,省事。但如果有多个技能可能匹配,手动指定更靠谱。

进阶玩法:MCP + Skills 组合拳

Skills 真正厉害的地方,是能和 MCP(Model Context Protocol)配合使用。

举个真实场景:我每天早上要看金十数据的财经快讯,然后整理出当天值得关注的信息。以前我得自己打开网站、一条条看、手动筛选,累得慌。

财经数据分析

现在我搞了个"财经分析师"技能,配合 MCP 的网页抓取能力,一句话就搞定:

.claude/skills/finance-analyst/
├── SKILL.md
└── templates/
    └── daily-report.md

SKILL.md 这么写:

---
name: finance-analyst
description: 财经数据分析师,当需要分析财经新闻、市场动态、投资机会时使用
---

# 工作流程

1. 使用 MCP fetch 工具抓取金十数据 (https://www.jin10.com/)
2. 从快讯流中提取关键信息
3. 按以下维度分类整理:
   - 宏观经济(央行政策、GDP、CPI等)
   - 股市动态(A股、港股、美股)
   - 商品期货(原油、黄金、有色金属)
   - 外汇市场(美元、人民币、日元)

# 输出格式

## 今日要点(3-5条最重要的)
简明扼要,说人话

## 市场情绪
一句话总结:偏多/偏空/震荡

## 值得关注
接下来可能有影响的事件

配置好之后,我每天早上只需要说一句"帮我看看今天的财经快讯",AI 就会:

  1. 自动用 MCP 抓取金十数据的最新内容
  2. 按照我定义的维度分类整理
  3. 输出一份简洁的晨报

比如今天抓到的内容里有"碳酸锂涨超8%"、“30年期国债期货涨0.42%"、“苏宁系2300亿债务重整"这些,它会自动帮我归类,告诉我商品市场新能源板块在反弹、债市继续走强、要注意零售行业的风险。

这就是 Skills 的威力:你定义分析框架,AI 负责执行

同样的思路,你可以搞:

  • 竞品监控技能:定期抓取竞品官网,分析他们的产品更新
  • 技术雷达技能:抓取 Hacker News 或掘金,筛选你关注领域的热门文章
  • 舆情监控技能:抓取社交媒体,分析品牌相关讨论

确定性的抓取交给 MCP,创造性的分析交给 AI,分工明确。

官方有现成的,别自己造轮子

Anthropic 官方有个技能仓库,里面有不少现成的好东西:

技能干嘛用的
pdf处理 PDF 文件
xlsx处理 Excel
pptx做 PPT
frontend-design前端设计
mcp-builder构建 MCP 服务器
webapp-testingWeb 应用测试

地址在这:https://github.com/anthropics/skills

直接 clone 下来,把需要的复制到你的 .claude/skills 目录就能用。

几个坑,提前告诉你

坑一:description 写得太模糊

如果你写"这是一个有用的技能”,AI 根本不知道什么时候该用它。description 要写清楚触发条件,比如"当用户提到 PDF、文档提取、表单处理时使用”。

坑二:技能文件太长

别把所有东西都塞进 SKILL.md。核心指令放主文件,详细参考放 reference.md,示例放 examples 文件夹。AI 的上下文窗口是有限的,塞太多反而影响效果。

坑三:来路不明的技能

技能可以包含可执行代码,这意味着有安全风险。只从官方仓库或者你信任的来源安装技能,第三方的要仔细看看代码再用。

最后说两句

Skills 这个功能,说白了就是让你能"调教" AI。

以前 AI 是个啥都懂一点的通才,现在你可以把它训练成只懂你项目的专才。它不会再给你推荐你不用的技术栈,不会再写出不符合你规范的代码,因为你已经把规矩都写在技能文件里了。

花半小时写几个技能,能省下后面无数次的重复解释。这买卖,划算。

要是你也被 AI “答非所问"折磨过,试试 Skills 吧。


有问题评论区见,我尽量回复。