1. 什么是 Skills?为什么值得学
很多刚接触智能助手(如 Claude Code、各类 Agent CLI 工具)的朋友,常常会把它当成一个“只会聊天”的工具。但实际上,这类助手最强大的能力之一,就是可以通过 Skills(技能包) 来扩展自己的专长领域。
简单来说,Skills 是一种可复用、可分享的“提示词 + 规则 + 可选脚本”组合。你可以把它理解成给助手安装的“专项插件”:装上之后,助手不需要你反复写大段 Prompt,就能按照预设的步骤、规范和工具来完成某一类特定任务。
举几个具体场景:
- 你想让助手每次都按照统一结构写周报;
- 你想让助手自动把 PDF 转成 Markdown;
- 你想让助手按团队规范做代码审查;
- 你想让助手读取 Excel 表格并生成分析结论;
- 你想让助手辅助做网络安全测试与漏洞排查。
这些需求都可以通过一个 Skill 固定下来。以后使用时,只需要一句话触发,就能得到稳定、专业的输出,而不是每次都要重新交代一遍要求。
对于新手来说,学会添加和使用 Skills,是从“随便问问”进阶到“把 AI 变成生产力工具”的关键一步。下面我们先看有哪些现成的优秀 Skills 可以直接使用,再手把手教你创建自己的第一个 Skill。
2. 先搞懂 Skills 的目录结构
在动手之前,我们先花两分钟搞清楚 Skills 应该放在哪里。只有放对位置,Claude Code 才能识别到它。
Claude Code 主要从两个位置加载 Skills:
- 个人级 Skills 目录:存放在用户主目录下的
.claude/skills/中,只对你当前账号生效。适合放你自己的通用技能。 - 项目级 Skills 目录:存放在当前项目的
.claude/skills/中,跟随项目一起管理,可以提交到 Git 仓库,团队协作时大家都能使用。
我们这篇教程以“项目级 Skills”为主,因为它最容易理解和验证。
一个典型的项目级 Skill 目录结构如下:
你的项目根目录/
├── .claude/
│ └── skills/
│ └── weekly-report/
│ ├── SKILL.md
│ └── sample_report.md
├── src/
│ └── ...
└── package.json
这里每一层的作用是:
.claude/:Claude Code 的项目配置目录。skills/:固定名称的目录,Claude Code 会到这个目录下查找所有技能。weekly-report/:这个 Skill 的目录名,通常会作为技能名称。SKILL.md:每个 Skill 必须有的核心入口文件。Claude Code 通过它了解技能是做什么的、什么时候触发、如何执行。sample_report.md:可选的辅助文件。你可以在SKILL.md中让助手读取这个文件作为模板,也可以放一些参考文档、脚本等。
关键点:
SKILL.md文件名必须完全大写,不能写成skill.md或Skill.md,否则部分环境可能无法识别。
3. 推荐值得安装的 Skills(附地址与作用演示)
在动手创建自己的 Skill 之前,我们可以先看看别人已经做好的优秀 Skills。这样既能快速感受到 Skills 的实际效果,也能通过阅读它们的 SKILL.md 学习正确的写法。
下面推荐两类:一个是官方示例入口,另一个是我们重点补充的网络安全方向 Skills。
关于地址说明:本文不再放“某个 GitHub 子目录”的深层链接,因为这类链接很容易因目录改名或文件删除而失效。下面统一使用长期有效的官方主页、社区索引和 GitHub 搜索直达链接。你只需要点进搜索页,选择 stars 较多、最近有更新的仓库即可。
3.1 官方示例 Skills
Anthropic 官方维护的 Skills 集合,包含 PDF 处理、Excel 表格分析、代码审查等多个实用技能,非常适合用来学习和参考。
- 官方介绍页:https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills
- 社区示例索引:https://agentskills.io/examples/
- GitHub 搜索直达:https://github.com/search?q=anthropic+skills&type=repositories
建议先浏览官方介绍页和社区索引,了解每个 Skill 对应什么能力,再按需复制,不必全部安装。
3.2 网络安全类 Skills 推荐
下面这几个网络安全方向的 Skills,适合安全工程师、开发者在本人拥有权限的系统、项目上进行安全测试和审计。请务必遵守法律法规,只在授权范围内使用,不得用于未授权测试。
以下每个技能都给两条地址:一条是长期有效的 GitHub 搜索直达链接,另一条是社区示例索引。进入搜索结果后,优先选择 stars 较多、README 完整、最近有更新的仓库;再按该仓库 README 里给出的目录路径复制到
.claude/skills/。
① 代码安全审查 Skill
作用: 对项目代码进行安全审计,识别 SQL 注入、XSS、命令注入、硬编码密钥、敏感信息泄露、危险函数调用等常见问题,并给出修复建议。
百度网盘:https://pan.baidu.com/s/1Jonc5LUHvBq5yN6Ntb-IeA?pwd=LD66 提取码: LD66
② 依赖漏洞扫描 Skill
作用: 读取项目的依赖清单(package.json、requirements.txt、pom.xml 等),检查其中是否包含已知漏洞版本(CVE),并给出升级版本建议。
百度网盘:https://pan.baidu.com/s/1haDX-g8KU0U2ZZe0Nw4JWw?pwd=LD66 提取码: LD66
③ Web 安全测试辅助 Skill(OWASP Top 10)
作用: 按照 OWASP Top 10 帮助你有条理地梳理 Web 应用攻击面,生成安全测试清单,并解释常见漏洞的原理和验证方法。
百度网盘:https://pan.baidu.com/s/1NoMt_8F0feLgZUaSHiXyJw?pwd=LD66
④ 日志威胁分析 Skill
作用: 分析 Nginx、Apache、系统安全日志等,识别暴力破解、异常登录、目录扫描、WebShell 上传等攻击迹象,适合蓝队和安全运维人员日常巡检。
百度网盘:https://pan.baidu.com/s/1h3ILXl-jxJxD34R15ypevA?pwd=LD66 提取码: LD66
4. 手把手创建你的第一个 Skill
下面我们动手创建一个最基础的 Skill:“每周技术周报生成器”。它的作用是:当你让助手写周报时,它自动按照固定结构、语言风格来输出。
整个过程分为四步:创建目录 → 编写 SKILL.md → 测试 → 查看识别结果。
4.1 第一步:创建 Skill 目录
打开终端,进入你的项目根目录。
macOS / Linux / WSL 用户执行:
# 进入你的项目目录
cd /path/to/your-project
# 创建 weekly-report 技能目录
mkdir -p .claude/skills/weekly-report
# 进入该目录
cd .claude/skills/weekly-report
# 确认当前所在目录
pwd
Windows PowerShell 用户执行:
# 进入你的项目目录
Set-Location C:\path\to\your-project
# 创建 weekly-report 技能目录
New-Item -ItemType Directory -Path .claude\skills\weekly-report -Force
# 进入该目录
Set-Location .claude\skills\weekly-report
# 确认当前所在目录
Get-Location
提示:mkdir -p 中的 -p 表示父目录不存在时也会自动创建。这样即使 .claude/skills/ 还不存在,也能一次性把整条路径建好。
4.2 第二步:编写 SKILL.md 文件
在 weekly-report/ 目录下,新建一个名为 SKILL.md 的文本文件,并把下面的内容完整粘贴进去:
---
name: weekly-report
description: 当用户需要编写周报、总结本周工作或生成 weekly report 时使用本技能。它能根据零散工作记录,生成结构完整、语言简洁的技术周报。
---
# 每周技术周报生成器
## 什么时候使用本技能
当用户提到以下关键词时触发:
- “写周报”
- “生成周报”
- “总结本周工作”
- “weekly report”
## 执行步骤
1. 如果用户没有提供本周工作内容,先询问用户:
- 本周完成了哪些任务?
- 遇到了哪些问题?
- 下周计划做什么?
2. 按照“本周完成事项 / 遇到的问题与解决方案 / 下周计划”三段式结构整理。
3. 语言要求:简洁、客观,不使用情绪化表达。
4. 每个事项使用列表形式,不写大段段落。
5. 如果用户提供了具体数据、指标或链接,必须原样保留。
## 输出格式
使用 Markdown 格式,标题为 `## 本周工作周报`。
示例输出:
## 本周工作周报
### 本周完成事项
- 完成登录模块开发
- 修复两个线上 bug
### 遇到的问题与解决方案
- 问题:接口响应慢
- 解决方案:增加缓存并优化 SQL
### 下周计划
- 开始数据报表模块开发
下面逐段解释这个文件,方便你以后自己修改。
文件开头的 YAML 头信息:
---
name: weekly-report
description: 当用户需要编写周报、总结本周工作或生成 weekly report 时使用本技能。
---
name:技能名称,通常与目录名保持一致。description:技能描述。Claude Code 会根据这个描述判断什么时候触发技能,所以要把触发场景写清楚。
正文部分:
# 每周技术周报生成器是给模型看的说明标题,帮助它理解技能用途。## 什么时候使用本技能列出触发关键词,进一步提高触发准确率。## 执行步骤是核心逻辑,明确告诉模型应该按什么顺序做事。## 输出格式规定最终产出的格式,让结果更稳定。
新手常犯的错误:只写
name和description,后面什么都不写。这样模型虽然能触发技能,但不知道具体怎么做,效果和没用 Skill 差不多。正文部分越具体,输出越稳定。
4.3 第三步:测试你的 Skill
保存 SKILL.md 文件后,回到项目根目录:
cd /path/to/your-project
如果你正在运行的 Claude Code 已经开着了,建议先退出并重新运行 claude,让它重新加载技能目录。然后输入下面的测试指令:
帮我写一份本周的周报,本周主要完成了登录模块开发和修复了两个线上 bug。
正常情况下,它会按照我们在 SKILL.md 里定义的格式,生成一份结构清晰的周报,而不是随意写几句话。
## 本周工作周报
### 本周完成事项
- 完成登录模块开发
- 修复两个线上 bug
### 遇到的问题与解决方案
- 未提供具体问题,已跳过
### 下周计划
- 未提供下周计划,建议补充
这份输出就说明:你的 Skill 已经生效。
4.4 第四步:查看 Skill 是否被识别
在 Claude Code 对话中直接输入:
/skills
如果你的 weekly-report 出现在列表中,说明加载成功。
如果看不到,请按第 7 节的排查清单逐项检查。
5. 安装与添加第三方 Skills
除了自己写,我们还可以直接安装社区里已经写好的 Skills,省时省力。这里介绍三种常用方式,你可以根据自己是否熟悉 Git 来选择。
5.1 方式一:手动复制别人分享的 Skill
朋友或同事直接把某个 Skill 文件夹打包发给你时,用这种方式最快。
把收到的整个 Skill 文件夹(注意是包含 SKILL.md 的那一层目录)复制到你的 skills 目录即可。
macOS / Linux / WSL:
# 把 /path/to/some-skill 替换成实际目录
cp -r /path/to/some-skill ~/.claude/skills/
Windows PowerShell:
Copy-Item -Recurse -Force C:\path\to\some-skill $HOME\.claude\skills\
复制完成后,进入 Claude Code 输入 /skills,确认新技能是否出现。
5.2 方式二:使用 Git 克隆远程仓库
很多优质 Skills 都托管在 GitHub 上。你可以先把仓库克隆下来,再把需要的部分复制到自己的 skills 目录。
例如,克隆官方 Skills 仓库:
git clone https://github.com/anthropics/skills.git
克隆完成后,把其中想要使用的技能目录复制到你的项目或用户目录:
# 复制 document-skills 到项目级 skills 目录
cp -r skills/document-skills .claude/skills/
# 或者复制到个人级 skills 目录
cp -r skills/document-skills ~/.claude/skills/
注意:仓库里的
skills目录和你要复制到的.claude/skills/目录名字很像,不要复制错层级。正确层级应该是.claude/skills/document-skills/SKILL.md。
5.3 方式三:从 GitHub 网页直接下载 ZIP
如果你不想安装 Git,也可以直接在 GitHub 仓库页面操作:
- 打开仓库主页,点击绿色的 Code 按钮。
- 选择 Download ZIP。
- 解压下载的 ZIP 文件。
- 把其中需要的技能目录复制到
.claude/skills/下。
这种方式适合刚开始接触命令行的新手。
5.4 添加后的验证
复制完成后,在 Claude Code 中输入:
/skills
如果列表里能看到新添加的技能名称,说明路径和文件都没有问题。
6. 验证 Skill 是否生效
安装或创建 Skill 后,建议做一次完整验证。可以按下面的顺序检查。
第一步:查看技能列表
在 Claude Code 对话中输入:
/skills
确认技能名称出现在列表中。
第二步:使用触发词测试
不是只输入技能名,而是像真实使用一样说一句话。比如周报技能要说“帮我写周报”,文档技能要说“帮我把这个 PDF 转成 Markdown”。
帮我写一份本周的周报,本周完成了登录模块开发。
第三步:检查输出是否符合 SKILL.md 中定义的格式
如果输出结构清晰、符合预期,说明 Skill 已经完整生效。如果技能进入了列表、但触发后输出不对,通常不是加载失败,而是 SKILL.md 中的触发条件或执行步骤写得不够清晰,需要回到文件中调整 description 和正文内容。
7. 常见问题定位与排查
新手添加 Skills 时,常见问题主要集中在路径、命名、触发条件这几个方面。
Q1:/skills 列表里看不到新加的 Skill?
按以下顺序逐项检查:
- 确认
SKILL.md位于正确层级:.claude/skills/你的skill名/SKILL.md。很多人会多套一层目录,导致识别不到。 - 确认文件名大小写正确:必须是
SKILL.md,不能是skill.md或Skill.md。 - 确认文件开头有完整的 YAML 头信息:
---
name: 你的技能名
description: 你的技能描述
---
- 确认你把技能放在了你当前正在使用的级别:如果 Claude Code 打开的是 A 项目,那么在个人主目录或 A 项目的
.claude/skills/下放置才会生效。 - 重启 Claude Code 后,再输入
/skills查看。
Q2:/skills 里能看到技能,但触发后输出不对?
这说明加载没问题,是 SKILL.md 内容不够明确。重点检查:
description是否写清了触发场景;- 正文“执行步骤”是否具体;
- 是否缺少“输出格式”约束。
可以尝试把触发条件写得更具体。例如不要只写“帮助处理文档”,而是写“当用户上传 PDF 并要求转换为 Markdown 时使用”。
Q3:Windows 下路径总是报错?
Windows 用户建议使用 PowerShell,并注意路径分隔符方向:
New-Item -ItemType Directory -Path .claude\skills\weekly-report -Force
也可以使用绝对路径,避免当前目录不是项目根目录导致的问题:
New-Item -ItemType Directory -Path C:\my-project\.claude\skills\weekly-report -Force
Q4:修改 SKILL.md 后没有生效?
有时修改后需要重启 Claude Code 才能重新加载。关闭后重新运行 claude 再测试。也可以先退出当前对话、重新打开项目,看 /skills 是否更新。
Q5:个人级和项目级同时存在同名技能,会冲突吗?
一般环境下不会互相覆盖,但为了避免混淆,建议只保留一个。如果是团队项目,优先维护项目级 .claude/skills/,这样其他同事也能一起使用。
Q6:可以把写好的 Skill 分享给同事吗?
可以。直接把整个技能目录打包发给对方,对方复制到自己的 .claude/skills/ 下即可。团队协作时更推荐把项目级 .claude/skills/ 提交到 Git 仓库,这样大家拉取代码后就能自动获得相同技能。
8. 总结
到这里,你已经完整走完了从“认识 Skills”到“体验推荐 Skills”再到“手动创建第一个 Skill”的全部流程。
回顾一下关键路径:
- 认识 Skills 的目录结构:
.claude/skills/你的skill名/ - 体验现成的优秀 Skills,了解它们能做到什么程度
- 编写核心文件:
SKILL.md - 测试触发效果
- 用
/skills验证加载
Skills 的核心价值在于:把你反复使用的知识、规范和流程,沉淀成可复用的资产。一开始可以先体验几个现成的 Skills,再手动创建一个最简单的 Skill 跑通流程,最后结合自己的日常工作定制第一个专属技能。
如果你在添加过程中遇到其他问题,欢迎在评论区留言交流。