从零打造你的专属 AI 助手——Claude Code Skills 实战教程
昨天我让 Claude 帮我审代码。它输出一堆建议,全是老生常谈:变量命名、注释规范、错误处理。我想要的不是这些。

昨天我让 Claude 帮我审代码。它输出一堆建议,全是老生常谈:变量命名、注释规范、错误处理。
我想要的不是这些。我要它检查 SQL 注入、敏感信息硬编码、未授权访问。安全问题才是重点。
于是我花 10 分钟,给 Claude 写了个「安全审计」Skill。现在我说「帮我审代码」,它自动按我的安全清单检查。
这就是 Skills 的魔力。
Skills 是什么
一句话:教 Claude 干特定活的说明书。
你写个 Markdown 文件,告诉 Claude:
-
技能叫什么名字
-
什么时候触发
-
怎么执行
Claude 自动识别你的意图,匹配对应 Skill,按你的指令干活。
不用每次重复描述。一次配置,永久生效。

准备工作
先确保装了 Claude Code。没装的话:
npm install -g @anthropic-ai/claude-code
Skills 放在 ~/.claude/skills/ 目录。一个 Skill 一个文件夹,里面至少有个 SKILL.md。
~/.claude/skills/
├── code-review/
│ └── SKILL.md
├── git-commit/
│ └── SKILL.md
└── ...
动手:创建「安全审计」Skill
做个实用的:让 Claude 按安全清单审代码。
Step 1:创建目录
mkdir -p ~/.claude/skills/security-review

Step 2:写 SKILL.md
创建 ~/.claude/skills/security-review/SKILL.md:
---
name: security-review
description: "代码安全审计。检查 SQL 注入、XSS、敏感信息泄露、未授权访问等安全问题。当用户提到代码审计、安全检查、安全审查时触发。"
---
# 安全代码审计
你是一名资深安全工程师。用户请求代码审计时,按以下清单逐项检查。
## 审计清单
### 1. 注入类漏洞
- [ ] SQL 注入:是否用参数化查询
- [ ] 命令注入:shell 命令参数有没有转义
- [ ] XSS:用户输入有没有转义
### 2. 认证与授权
- [ ] 有没有未授权访问的接口
- [ ] 密码是不是明文存储
- [ ] Session/Token 生成安全吗
### 3. 敏感信息
- [ ] 有没有硬编码的密钥、密码
- [ ] 日志里有没有敏感信息
- [ ] 错误信息会不会泄露内部细节
### 4. 其他
- [ ] 依赖有没有已知漏洞
- [ ] 文件上传有没有类型/大小限制
- [ ] 有没有 CSRF 防护
## 输出格式
按风险等级分类:
**高风险**:立即修
**中风险**:尽快修
**低风险**:建议改
**安全**:没问题
每个问题给出:
1. 问题是什么
2. 在哪一行
3. 怎么修
保存。搞定。

Step 3:测试
进入一个代码项目:
cd your-project
claude
说:「帮我查查这代码有没有安全问题」
Claude 自动加载 security-review Skill,按你定义的清单检查。

关键配置
name 和 description
---
name: security-review
description: "代码安全审计。检查 SQL 注入、XSS..."
---
-
name:小写字母、数字、连字符,最多 64 字符
-
description:决定 Claude 什么时候触发这个 Skill
description 写得好不好,直接影响匹配准确度。写的时候想两件事:
-
这 Skill 干嘛的
-
用户会怎么说
比如:「代码安全审计。当用户提到代码审计、安全检查、安全审查时触发。」
指令内容
--- 下面是正文。你可以:
-
定角色(你是资深安全工程师)
-
列步骤清单
-
规定输出格式
-
给示例
Claude 会老老实实照着做。
进阶:多文件 Skill
简单 Skill 一个文件够了。复杂的可以拆:
security-review/
├── SKILL.md # 主文件
├── checklist.md # 详细清单
├── examples.md # 示例
└── scripts/
└── scan.py # 辅助脚本
在 SKILL.md 里引用:
详细清单见 `checklist.md`。
自动扫描跑 `scripts/scan.py`。
Claude 用到时才加载。官方叫「渐进式披露」——别一股脑塞进去。
两个实用 Skill
示例 1:Git 提交助手
---
name: git-commit
description: "生成规范的 Git 提交信息。用户说 commit、提交代码时触发。"
---
# Git Commit 助手
分析暂存区改动,生成 Conventional Commits 格式的提交信息。
## 格式
<type>(<scope>): <description>
## type 类型
- feat: 新功能
- fix: 修 bug
- docs: 改文档
- refactor: 重构
- test: 测试
- chore: 杂活
## 规则
1. description 不超过 50 字符
2. 用祈使句(Add xxx,不是 Added xxx)
3. 结尾不加句号
示例 2:API 文档生成器
---
name: api-docs
description: "生成 API 文档。用户说生成文档、API 文档时触发。"
---
# API 文档生成器
读代码里的函数/类定义,输出 Markdown 格式文档。
## 每个函数包含
- 函数签名
- 参数说明
- 返回值
- 示例
- 注意事项
## 输出格式
### `function_name(param1, param2)`
**参数:**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| param1 | string | 是 | 参数描述 |
**返回值:** xxx
**示例:**
\`\`\`python
result = function_name("hello", 123)
\`\`\`
Skill 不生效?
查这几点:
-
文件位置:必须在 ~/.claude/skills/xxx/SKILL.md
-
YAML 格式:开头 ---,name 和 description 不能少
-
description:Claude 没匹配到?加更多触发词试试
在 Claude Code 里输 /skills 看已加载的列表。
分享给别人
方法 1:放项目里
your-project/
├── .claude/
│ └── skills/
│ └── your-skill/
│ └── SKILL.md
└── src/
团队成员 clone 下来就能用。
方法 2:发布插件
打包成 npm 包或独立仓库。这个复杂点,以后单独写。
最后
Skills 就是给 Claude 写说明书。
-
建文件夹和 SKILL.md
-
写 name 和 description
-
填指令
-
测试、迭代
10 分钟搞定一个。
现在去试试。把你天天重复跟 Claude 说的话,写成 Skill。以后一句话,它就知道该怎么干。
更多推荐


所有评论(0)