
你可能会问:"Skill是什么?跟直接打字有什么区别?"
区别大了。直接打字,你每次都要花30秒组织语言描述需求,而且每次描述还不一样,输出质量忽高忽低。Skill把你的最佳实践固化成一个斜杠命令,输入/xxx就执行,输出质量稳定、可复现。
用人话说:Skill就是Claude Code的"快捷指令",但比Siri的快捷指令强一百倍——因为它背后有一个能理解上下文的大模型在执行。

今天这篇文章,我从实战中筛出最值得装的5个Skill,覆盖从写代码到提交到发版的核心流程,每个都附完整源码,复制粘贴即用。
痛点:git commit -m "fix bug"——你的Git历史是不是长这样?三个月后回来看,完全不知道当时修了什么。更惨的是code review时,Reviewer看着你的update、wip、misc,连问都不知道从哪问起。
这个Skill做什么:自动分析git diff,生成符合Conventional Commits规范的提交信息,区分feat/fix/refactor/docs,附带影响范围说明。
---
name: commit
description:
分析当前git暂存区的变更,生成符合Conventional Commits规范的
提交信息。自动识别变更类型(feat/fix/refactor/docs/test),
提取影响范围,生成中英双语描述。
argument-hint: "[可选:补充说明本次变更的背景]"
allowed-tools: Bash(git:*)
---
## 任务
分析当前 git diff --cached 的内容,生成规范的commit message。
## 步骤
1. 执行 git diff --cached --stat 查看变更概览
2. 执行 git diff --cached 查看具体变更
3. 分析变更内容,判断类型:
- feat: 新功能
- fix: Bug修复
- refactor: 重构(不影响功能)
- docs: 文档变更
- test: 测试相关
- chore: 构建/工具变更
4. 生成commit message,格式:<type>(<scope>): <简短描述>
<详细说明,解释为什么做这个变更>
影响范围:<列出受影响的模块/功能>
5. 展示给用户确认后,执行 git commit -m "<message>"
## 注意
- scope从变更的文件路径中提取
- 描述用中文,type用英文
- 如果用户通过 $ARGUMENTS 补充了背景,融入到详细说明中
- 如果暂存区为空,提示用户先 git add
装完之后:git add . 然后 /commit,两秒钟搞定。三个月后翻Git log,每条记录都像写给未来自己的情书——清清楚楚,明明白白。
痛点:提交PR后等同事review,等了两天收到一句"LGTM"。——合着你两天就看了个寂寞?
这个Skill做什么:从安全漏洞、性能问题、代码质量三个维度审查代码,每个问题标注P0-P3严重等级,附带具体修复建议。不是那种"建议优化一下"的废话,而是告诉你第几行、什么问题、怎么改。

---
name: review
description:
审查当前分支相对于主分支的所有代码变更,从安全性、
性能、代码质量三个维度输出结构化审查报告,标注
严重等级(P0-P3)和具体修复建议。
allowed-tools: Bash(git:*), Read, Grep, Glob
---
## 任务
对当前分支的代码变更做全面审查。
## 步骤
1. 执行 git diff main...HEAD 获取所有变更
2. 逐文件分析,按三个维度审查:
### 维度一:安全性(权重最高)
- SQL注入、XSS、命令注入
- 硬编码的密钥/密码/Token
- 不安全的反序列化
- 路径遍历风险
### 维度二:性能
- N+1查询
- 缺少索引的数据库查询
- 内存泄漏风险(未关闭的连接/流)
- 不必要的循环内I/O操作
### 维度三:代码质量
- 重复代码(DRY违反)
- 函数过长(>50行警告)
- 魔法数字/硬编码配置
- 缺少错误处理
3. 输出格式:
**🔴 P0 — 必须修复(阻塞合并)**
- [文件:行号] 问题描述 → 修复建议
**🟡 P1 — 建议修复**
- [文件:行号] 问题描述 → 修复建议
**🟢 P2 — 可以改进**
- [文件:行号] 问题描述 → 修复建议
**💡 P3 — 锦上添花**
- [文件:行号] 问题描述 → 修复建议
## 注意
- P0问题必须给出可直接使用的修复代码
- 如果没有发现P0问题,明确说明"无阻塞性问题"
- 不要为了凑数量而列出无关紧要的问题装完之后:提PR之前先/review一遍,自己把P0问题修掉。等同事review时,他只需要关注业务逻辑——你省时间,他也省时间,双赢。
痛点:代码里有一个写死的AWS密钥,在GitHub上裸奔了三个月,直到收到AWS的"惊喜账单"才发现。别笑,2025年GitHub扫描到的泄露密钥超过4000万个,你觉得你的代码仓库真的干净吗?
这个Skill做什么:全面扫描项目的安全风险——硬编码密钥、依赖漏洞、OWASP Top 10代码模式、不安全的配置,输出分级安全报告。
---
name: security
description: >
全面扫描项目的安全风险:硬编码密钥、依赖漏洞、
OWASP Top 10代码模式、不安全的配置文件。输出
按严重等级排序的安全报告。
allowed-tools: Read, Grep, Glob, Bash(npm:audit*, pip:audit*, grep:*)
---
## 任务
全面审计项目安全风险。
## 扫描项目
### 1. 硬编码密钥扫描
搜索以下模式:
- API Key / Secret / Token / Password 的赋值语句
- AWS_ACCESS_KEY、GITHUB_TOKEN等环境变量的硬编码
- .env文件是否被加入版本控制(检查.gitignore)
- 私钥文件(*.pem, *.key)是否在仓库中
### 2. 依赖漏洞检查
- Node.js:npm audit --json
- Python:pip audit --format json(如果安装了pip-audit)
- 检查是否有已知CVE的依赖版本
- 检查是否有超过2年未更新的依赖
### 3. OWASP Top 10 代码模式
- SQL拼接(非参数化查询)
- eval()、exec()、newFunction()使用
- 未转义的用户输入直接渲染(XSS)
- 不安全的文件操作(路径遍历)
- 弱加密算法(MD5/SHA1用于密码哈希)
- 不安全的随机数(Math.random用于安全场景)
### 4. 配置文件检查
- CORS是否设为 *
- debug模式是否在生产配置中开启
- 数据库连接是否使用SSL
- JWT密钥是否硬编码
## 输出格式
**🔴 严重(立即修复)** — 密钥泄露、已知高危CVE
**🟡 高危(本周修复)** — SQL注入、XSS、弱加密
**🔵 中危(下个迭代修复)** — 过时依赖、配置不当
**⚪ 低危(有空再说)** — 代码风格安全建议
每个问题附带:文件位置、风险说明、修复方案代码装完之后:每次发版前跑一遍/security,30秒完成扫描。至少能避免那种"密钥裸奔三个月然后收到天价账单"的社死名场面。安全这件事,出事前觉得是浪费时间,出事后觉得是保命。

痛点:老板说代码覆盖率要达到80%。你看了一眼当前的覆盖率——23%。距离deadline还有两天。你开始考虑是手写测试还是直接跑路。
这个Skill做什么:分析函数签名、业务逻辑和分支条件,自动生成覆盖正常路径、异常路径和边界情况的测试用例。支持主流测试框架,生成完直接能跑。
---
name: test-gen
description:
为指定的函数或文件自动生成单元测试。分析函数签名、
业务逻辑和边界条件,生成覆盖正常路径、异常路径和
边界情况的测试用例。支持Jest/Mocha/Pytest/JUnit。
argument-hint: "<文件路径或函数名>"
allowed-tools: Read, Grep, Glob, Write, Bash(node:--test*, npx:jest*, python:-m pytest*)
---
## 任务
为 $ARGUMENTS 指定的代码生成单元测试。
## 步骤
1. 读取目标代码,分析:
- 函数签名(参数类型、返回类型)
- 内部分支逻辑(if/else/switch/三元表达式)
- 可能抛出的异常
- 外部依赖(需要mock的部分)
2. 识别测试框架:
- 检查package.json中的devDependencies
- 检查现有测试文件的import语句
- 如果没有测试框架,推荐node:test(Node.js)或pytest(Python)
3. 生成测试用例,必须覆盖:
- ✅ 正常路径(至少2个不同输入)
- ❌ 异常路径(null、undefined、空字符串、错误类型)
- 🔲 边界条件(空数组、超长字符串、整数MAX/MIN、零值)
- 🔄 异步场景(如果函数是async的)
4. 将测试文件写入对应的test/目录
5. 运行测试,确保全部通过
6. 如果有失败的用例,分析原因并修复
## 注意
- 测试文件命名跟随项目现有约定(*.test.js或*.spec.js)
- mock要最小化——能不mock就不mock
- 每个测试用例的描述要说明"测的是什么场景"装完之后:/test-gen src/lib/config.js——一条命令,自动分析代码、生成测试、运行验证。两天把覆盖率从23%拉到80%?有了/test-gen,半天够了。老板满意,你准时下班,双赢。
痛点:接手了一个三年前离职同事写的项目。一个函数300行,零注释,变量名全是a、b、temp、tmp2。你问产品经理这段逻辑是干什么的,产品经理说"我也是新来的"。
这个Skill做什么:深度解读代码的设计意图、执行流程和隐含假设。不是简单地"翻译代码",而是结合git blame追溯历史,分析为什么代码会写成这样,输出架构图和流程图。
---
name: explain
description:
深度解读指定代码的设计意图、执行流程和隐含假设。
结合git blame追溯变更历史,分析为什么代码会写成
这样。输出架构图和流程图(Mermaid格式)。
argument-hint: "<文件路径[:行号范围]>"
allowed-tools: Read, Grep, Glob, Bash(git:blame*, git:log*)
---
## 任务
深度解读 $ARGUMENTS 指定的代码。
## 步骤
1. 读取目标代码
2. git blame 查看每行的作者和提交时间
3. git log --follow 追溯文件的变更历史
4. 分析代码的上下游调用关系(谁调了它、它调了谁)
5. 生成解读报告:
### 📋 一句话概括
- 这段代码的职责是什么
### 🔄 执行流程mermaid
(生成流程图,展示核心逻辑分支)
### 🏗️ 在系统中的位置
- 上游:谁调用了这段代码
- 下游:这段代码调用了什么
- 数据流:输入是什么、输出是什么
### 🧠 设计意图
- 为什么选择这种实现方式(而不是更"显而易见"的方式)
- 隐含的假设和前提条件
- 历史上经历过哪些重大修改,以及修改的原因
### ⚠️ 改动须知
- 容易踩的坑
- 修改时需要同步变更的地方
- 哪些"看起来多余"的代码其实是在处理边界情况
## 注意
- 不要只做代码到自然语言的翻译,要分析"为什么"
- 如果git历史中有相关的PR描述或Issue链接,一并引用
- 对于看起来"奇怪"的写法,优先从git log中找原因装完之后:接手遗留项目的第一件事,不是骂前任代码烂,而是/explain src/core/legacy-handler.js。理解才是重构的前提,盲目重构是另一种制造遗留代码。
# | Skill | 一句话痛点 | 装完后 |
|---|---|---|---|
1 | /commit | 提交信息全是"fix bug" | 每条commit都是自文档 |
2 | /review | 等两天收到一句LGTM | 提PR前自己先过一遍 |
3 | /security | 密钥裸奔到GitHub | 发版前30秒安全扫描 |
4 | /test-gen | 覆盖率23%,deadline两天后 | 半天拉满覆盖率 |
5 | /explain | 接手遗留代码两眼一黑 | 5分钟看懂前任的代码 |
5个全装上,保守估计每周省3小时。 按年算就是156小时——将近20个工作日。这还没算避免安全事故省下的钱。
第一步:创建Skill目录
# 个人级(推荐,所有项目都能用)
mkdir -p ~/.claude/skills/commit
mkdir -p ~/.claude/skills/review
mkdir -p ~/.claude/skills/security
mkdir -p ~/.claude/skills/test-gen
mkdir -p ~/.claude/skills/explain第二步:把上面的代码保存为SKILL.md
把每个Skill代码块中的内容(从---开头到最后)保存到对应目录下的SKILL.md文件中。
# 例如
vim ~/.claude/skills/commit/SKILL.md
# 粘贴commit Skill的内容,保存第三步:重启Claude Code,输入/验证
输入/后你应该能在命令列表里看到commit、review、security、test-gen、explain五个命令。看到了就说明装好了。
Pro Tip:这5个Skill放在
~/.claude/skills/个人目录下是最佳选择——它们跟具体项目无关,是通用型研发效率工具,应该跟着你走,不是跟着项目走。
这5个Skill不是什么黑科技,它们的核心逻辑你可能闭着眼睛都能想到。
但问题从来不是"能不能想到",而是"会不会每次都做"。
你知道commit message应该写清楚,但赶进度的时候还是会写"fix"。你知道应该做安全扫描,但发版前总觉得"下次再说"。你知道测试覆盖率很重要,但截止日期面前覆盖率永远是第一个被砍的。
Skill的价值不是教你做事,而是让"正确的事"成为默认行为。
当/commit成了你的肌肉记忆,你就不会再写"fix bug"了——因为写好的commit message比写差的还快。
当/security成了发版清单的一部分,你就不会再遗漏安全扫描了——因为跑一遍只要30秒。
不要收藏了吃灰。 现在就打开终端,从/commit开始装。5分钟装完5个,明天上班直接用。
你会发现,你雇的那个AI助手,终于不只是个"聊天机器人"了。
我是老周,一个在架构领域摸爬滚打多年的技术人。如果这篇文章对你有帮助,欢迎点赞、在看、转发三连。关注「老周聊架构」,每周深度解读AI和架构的最新趋势。
— 完 —