我们常常看到社区中很多大佬开源非常好用的skills,另外看过前面发表过教程的小伙伴会知道,当CLAUDE.md太长,会将固定化的工作流程拆分为skill.md。那么这一篇文章手把手带你掌握skills查找、安装、使用和制作的前世今生。小伙伴有没有遇到过这种情况:
让 Claude Code 帮你生成 Word 文档,它写出来的格式乱七八糟;让它处理 PPT,它压根不知道你公司的模板风格;让它写代码,它总是绕弯子,不走你们团队的规范……
不是 Claude 不够聪明,是它不了解你的场景。
Skills,就是解决这个问题的关键。
一、Skills定义
Skills 是 Claude Code 的结构化知识包。
小编把它理解成「给 AI 打包好的、成熟稳定的生产线」。当 Claude 遇到某类任务时,只需要提供必需的原材料,通过固定的方法启动对应的 Skill,按照固定的说明来运行——而不是凭空乱猜。
类比一下:
• 没有 Skill → 新入职员工,什么都要现学现卖 • 有了 Skill → 老员工,拿到任务就知道该查哪本手册、用哪套流程
Skills 的核心价值体现在三个方面:
1. 一致性:每次处理同类任务,输出质量稳定可预期 2. 专业度:内置领域知识,不需要你每次重复说明背景 3. 效率:复杂的多步骤任务,AI 按 Skill 的流程走,不走弯路
二、Skills 类别
Skills 按作用域分为三个层级,优先级从高到低依次是:项目级 > 用户级 > 官方捆绑。
1)Bundled Skills(官方捆绑技能)
是否需要安装:❌ 不需要,装完 Claude Code 自动可用
这是 Anthropic 随 Claude Code 安装包一起打包的内置技能,每次会话自动加载,无需任何操作。代表性的捆绑 Skill 包括:
如果你需要关闭捆绑 Skill,可以在配置中设置 disableBundledSkills: true,但通常没有必要。
注意:Bundled Skills 与 Anthropic 在 GitHub 上开源的 Skills(
github.com/anthropics/skills,如docx、xlsx)是两回事。后者需要用户手动安装,见下文。
2)用户级 Skill(User-level)
目录:~/.claude/skills/
是否需要安装:✅ 需要手动安装或创建
作用范围:你这台机器上的所有项目
这一层是你的「个人技能库」。无论你在哪个项目下启动 Claude Code,这里的 Skill 都会自动加载。适合放:
• 你个人惯用的写作风格规范 • 你常用的代码提交格式(如 Conventional Commits) • Anthropic 开源的通用 Skill,如 docx、pdf、skill-creator
3)项目级 Skill(Project-level)
目录:{项目根目录}/.claude/skills/
是否需要安装:✅ 需要手动安装或创建
作用范围:仅当前项目,可提交到 Git 供团队共享
这一层是最强大的层级,优先级高于用户级(同名 Skill 以项目级为准)。把 {项目根目录}/.claude/skills/ 目录提交进 Git 仓库,团队所有成员 git pull 之后就自动拥有同一套 Skill,无需每人单独配置。适合放:
• 团队统一的代码风格规范 • 公司特定的报告模板 • 项目专属的业务领域知识
三个级别对比一览
同名 Skill 冲突时:项目级覆盖用户级,用户级覆盖 Bundled Skills。
三、Skills资源库和安装方法
查找公开可用的skills
官方渠道:
• Anthropic 官方 GitHub: github.com/anthropics/skills,包含所有开源 Skill 的源码,是学习和参考的最佳资料• Claude Code 内置插件浏览器:输入 /plugin→ Discover 标签页,可以直接浏览和安装官方及社区 Skill• 社区 Skill 市场: skills.sh,收录了大量社区贡献的 Skill
社区渠道:
• GitHub 搜索 claude code skill SKILL.md• Skill 以文件夹形式分发,核心就是一个 SKILL.md文件,可以直接复制使用
安装skills方法
安装时需要选择作用域:装到用户级(~/.claude/skills/)还是项目级({项目根目录}/.claude/skills/)。
方法一:通过 Claude Code 插件浏览器安装(最简单)
# 在 Claude Code 会话中输入/plugin# → 进入 Discover 标签页# → 找到想要的 Skill# → 按 Enter 安装# → 选择作用域:User(用户级)或 Project(项目级)


方法二:通过 npx 命令安装
# 安装 Anthropic 官方 Skill(以 docx 为例)npx skills add anthropics/skills --skill docx# 安装社区 Skillnpx skills add <作者>/<仓库名> --skill <skill名>;方法三:手动复制安装
# 克隆官方仓库git clone https://github.com/anthropics/skills# 安装到用户级(本机所有项目可用)cp -r skills/docx ~/.claude/skills/docx/# 或安装到项目级(仅当前项目可用,可提交 Git)cp -r skills/docx {项目根目录}/.claude/skills/docx/方法四:按照Skills作者发布的说明文档,他说怎么安装就怎么安装
安装完成后,Claude Code 会在下次会话中自动识别新 Skill,无需重启。
四、查看已安装的Skills
安装完成后,有三种方式可以查看当前可用的所有 Skills。
方式一:/skills 命令(最推荐)
在 Claude Code 会话中直接输入:
/skills会列出所有可用的 Skills,包括 Bundled Skills 和你自己安装的 Skills,并显示各自的名称、描述和来源。这是目前社区最常用的查看方式。
方式二:/plugin 插件浏览器(可视化管理)
/plugin进入插件浏览器后切换到「已安装」标签页,可以看到所有已安装的 Skill,并支持直接在界面中进行启用、禁用、删除等管理操作,比命令行更直观。
方式三:直接查看目录(最底层、最可靠)
# 查看用户级已安装的 Skills(本机所有项目可用)ls ~/.claude/skills/# 查看当前项目级已安装的 Skills(仅当前项目)ls {项目根目录}/.claude/skills/这种方式绕过 Claude Code 直接看文件系统,在前两种方式出现异常时是最可靠的兜底手段。
三种方式对比
⚠️ 注意:目前 Claude Code 没有一个原生命令能一次性列出所有来源的 Skills(用户级 + 项目级 + Bundled Skills 三合一)。
/skills是目前最接近这个效果的方式,但如果你发现它在某个版本中不可用,ls直接查看目录是最稳妥的备选方案。这个功能缺口已有开发者在 GitHub 提交了 Feature Request(Issue #12140),后续版本可能会完善。
五、调用Skills方法
自动触发(推荐)
Skills 的设计理念是自动感知、自动调用。你不需要显式说"用某个 Skill",只需要正常描述任务:
# 这句话会自动触发 docx skill"帮我写一份项目汇报,生成 Word 文档"# 这句话会自动触发 xlsx skill"把这份 CSV 数据清洗一下,整理成 Excel 表格"# 这句话会自动触发 pptx skill"做一个 10 页的产品介绍 PPT"Claude 会读取你的意图,匹配最合适的 Skill,然后按照 Skill 里的规范来执行。
手动指定触发
当你想明确使用某个 Skill 时:
"请使用 pdf skill,帮我把这三个文件合并成一个 PDF""参考 skill-creator 的流程,帮我创建一个新的数据分析 Skill"实际使用示例
示例 1:生成格式规范的 Word 文档
用户:帮我写一份 Q3 销售复盘报告,要有目录、数据图表说明、 结论和建议,生成 Word 文档,要能直接发给总监。Claude:(自动触发 docx skill) [读取 SKILL.md 中的 Word 文档规范] [按照标准模板生成带目录、标题层级、页码的 .docx 文件]示例 2:批量处理 Excel
用户:这个 xlsx 文件里数据很乱,帮我: 1. 删掉空行 2. 统一日期格式为 YYYY-MM-DD 3. 新增一列计算利润率Claude:(自动触发 xlsx skill) [按照 skill 中的最佳实践处理表格,输出规范的 .xlsx 文件]六、制作自己的Skill
这才是重头戏。
公开 Skills 是通用的,但你的业务有它的特殊性——你需要自己风格的报告模板、你的代码规范、你的特定需求……这些都需要你自己动手创建专属 Skill。
1)选择用户制作skill的目录级别
根据使用场景选择创建位置:
~/.claude/skills/ ← 用户级:个人专属,本机所有项目可用 └── my-report/{项目根目录}/.claude/skills/ ← 项目级:团队共享,提交 Git 后所有人可用 └── my-report/选择建议:
• 只有自己用 → 创建在 ~/.claude/skills/• 团队协作、需要统一规范 → 创建在项目根目录的 {项目根目录}/.claude/skills/
2)Skill 的目录结构
标准结构
# 用户级示例路径~/.claude/skills/my-skill/├── SKILL.md ← 必须有,核心文件├── scripts/ ← 可选,可复用的脚本│ ├── __init__.py│ └── process.py├── references/ ← 可选,参考文档│ └── guide.md└── assets/ ← 可选,模板和资源文件 └── template.docx# 项目级示例路径(在项目根目录下){项目根目录}/.claude/skills/my-skill/├── SKILL.md├── scripts/├── references/└── assets/
各文件格式详解
SKILL.md(核心,必须有)
这是整个 Skill 的「大脑」,分为两部分:
Part 1:YAML 前置元数据(文件最顶部)
---name: my-report-skilldescription: 用于生成公司标准季度报告的技能。当用户提到「季报」「季度汇报」 「Q报告」或需要生成符合公司规范的报告文档时,自动触发此技能。 包含标准模板、数据图表格式和审批流程说明。---⚠️ 关键点:
description最多 200 个字符,是触发机制的核心。Claude 根据这段描述判断「要不要用这个 Skill」。描述要写得具体、有场景感,而不是模糊的「处理报告」。name最多 64 个字符。
Part 2:Markdown 正文(具体指令)
# 季度报告生成规范## 报告结构ALWAYS 使用以下模板结构:1. 封面(包含报告期、部门、日期)2. 执行摘要(不超过 300 字)3. 核心指标(表格形式)4. 详细分析(各业务线分拆)5. 问题与风险6. 下季度计划## 数据格式规范- 金额:万元为单位,保留两位小数- 增长率:百分比形式,如 +12.3%- 日期:YYYY年MM月DD日## 输出格式生成 .docx 文件,文件名格式:[部门]-[季度]-季报-[日期].docxscripts/ 目录(可选)
放可复用的 Python 脚本,Claude 不需要每次都重新写相同的处理逻辑,直接调用脚本即可:
# scripts/format_data.pydef format_currency(value): """将数字格式化为万元单位""" return f"{value/10000:.2f}万元"def format_growth_rate(current, previous): """计算并格式化增长率""" rate = (current - previous) / previous * 100 prefix = "+" if rate > 0 else "" return f"{prefix}{rate:.1f}%"在 SKILL.md 中引用脚本时这样写:
## 执行脚本运行以下命令处理数据:bash scripts/format_data.py --input {input_file}references/ 目录(可选)
放参考文档,比如业务知识、行业术语表、设计规范等。Claude 会在需要时按需读取,不会一次性全部加载。
# references/business-terms.md## 业务术语表- GMV:商品交易总额- DAU:日活跃用户数- LTV:用户生命周期价值- CAC:用户获取成本assets/ 目录(可选)
放模板文件、图标、字体等静态资源。
assets/├── report-template.docx ← Word 模板├── logo.png ← 公司 Logo└── color-scheme.json ← 品牌配色3)完整创建示例:从零到一
以创建一个「竞品分析报告」Skill 为例,分用户级和项目级两种场景。
场景 A:创建用户级 Skill(个人使用)
Step 1:创建目录
mkdir -p ~/.claude/skills/competitor-analysis/mkdir -p ~/.claude/skills/competitor-analysis/scripts/mkdir -p ~/.claude/skills/competitor-analysis/references/Step 2:写 SKILL.md
---name: competitor-analysisdescription: 生成竞品分析报告。当用户提到「竞品分析」「对标分析」「竞争对手研究」 「市场分析报告」或需要对比多个产品/公司时,使用此技能。---# 竞品分析报告规范## 报告标准结构### 必须包含的模块1. **概览**:分析背景、分析维度说明2. **竞品矩阵**:用表格对比所有维度3. **各维度深析**:逐项展开4. **SWOT 分析**:我方视角的优劣势5. **结论与建议**:可执行的行动项### 竞品对比维度(默认)| 维度 | 说明 ||---|---|| 产品定位 | 目标用户、核心价值主张 || 核心功能 | 主要功能列表及差异点 || 定价策略 | 价格档位、收费模式 || 用户口碑 | 评分、典型好评/差评 || 市场占有 | 估算市场份额、增长趋势 |## 写作风格- 客观中立,数据说话- 表格优先,减少大段文字- 结论要直接,不绕弯- 数据来源标注在脚注## 输出格式- 默认输出:Markdown 格式(方便二次编辑)- 如用户要求:生成 .docx 文件- 文件命名:competitor-analysis-[竞品名]-[日期].md## 参考资料如需行业分析框架,读取 references/frameworks.mdStep 3:写参考文档
# references/frameworks.md## 常用分析框架### 波特五力模型适用于行业竞争强度分析:1. 现有竞争者之间的竞争2. 潜在进入者的威胁3. 替代品的威胁4. 买家的议价能力5. 供应商的议价能力### 4P 营销框架- Product(产品)- Price(价格)- Place(渠道)- Promotion(推广)Step 4:验证文件结构
# 检查目录结构是否正确ls -la ~/.claude/skills/competitor-analysis/# 预期输出:# SKILL.md# scripts/# references/Step 5:测试是否生效
在 Claude Code 新开一个会话,输入:
帮我做一个微信和微博的竞品分析如果 Claude 自动按照你的模板结构输出,Skill 已生效。也可以用 /skill-name 显式调用:
/competitor-analysis 帮我分析抖音和快手场景 B:创建项目级 Skill(团队共享)
# 在项目根目录下操作cd {项目根目录}/mkdir -p {项目根目录}/.claude/skills/competitor-analysis/mkdir -p {项目根目录}/.claude/skills/competitor-analysis/references/# SKILL.md 内容与场景 A 完全相同,此处略# 提交到 Git,团队所有人共享git add {项目根目录}/.claude/skills/git commit -m "feat: add competitor-analysis skill for team"git push团队其他成员 git pull 后,无需任何额外操作,Skill 自动生效。
4)使用 skill-creator 自动化创建 Skill
skill-creator 是 Anthropic 在 github.com/anthropics/skills 开源仓库中提供的元技能,需要先安装:
# 安装到用户级npx skills add anthropics/skills --skill skill-creator# 或通过 /plugin 浏览器安装,选择 User 或 Project 作用域安装后,在 Claude Code 中直接描述你的需求:
帮我创建一个新的 Skill,用于处理我们公司的客服工单分析,需要:1. 自动分类工单类型2. 提取关键问题3. 生成每日汇总报告skill-creator 会引导你经过以下流程:
捕获意图 → 访谈细化需求 → 起草 SKILL.md ↓设计测试用例 → 运行测试 → 评估结果 ↓优化迭代 → 打包输出(.skill 文件)创建完成后,根据需要选择存放位置:
# 个人使用mv ./new-skill ~/.claude/skills/new-skill/# 团队使用mv ./new-skill {项目根目录}/.claude/skills/new-skill/git add {项目根目录}/.claude/skills/git commit -m "feat: add new-skill"七、常见问题与解决方案
❌ 问题 1:Skill 没有被自动触发
现象:明明安装了 Skill,但 Claude 没有使用它,而是凭经验乱做。
原因:description 写得太模糊,Claude 无法匹配你的意图。
解决:
# ❌ 错误示范:太模糊description: 处理报告相关任务# ✅ 正确示范:具体、有场景词description: 生成公司季度经营分析报告。当用户提到「季报」「季度复盘」 「经营分析」「Q1/Q2/Q3/Q4 报告」「给老板汇报」等关键词时, 必须使用此技能。包含数据格式规范、模板结构和输出要求。原则:description 要像一个「关键词触发器」,把你能想到的用户说法都写进去。
❌ 问题 2:YAML 格式错误导致 Skill 加载失败
现象:Claude 提示无法读取 Skill,或者完全忽略 Skill 内容。
原因:YAML 前置元数据格式不对。
常见错误:
# ❌ 错误:用了中文冒号name: my-skill# ❌ 错误:description 有多行但缩进不对description: 第一行第二行(没有缩进)# ✅ 正确:多行 description 用 | 或者缩进description: | 第一行说明 第二行说明,继续缩进对齐检查工具:
# 用 Python 验证 YAML 格式python3 -c "import yamlwith open('/mnt/skills/user/my-skill/SKILL.md', 'r') as f: content = f.read()# 提取 YAML 部分yaml_part = content.split('---')[1]yaml.safe_load(yaml_part)print('YAML 格式正确')"❌ 问题 3:Skill 触发了但输出质量很差
现象:Claude 用了 Skill,但没有严格按照你的规范执行。
原因:SKILL.md 正文写得太松散,或者说明不清晰。
解决:
# ❌ 错误:指令太软## 建议的结构可以包含以下内容:执行摘要、数据分析、结论# ✅ 正确:用强制性语言 + 具体格式## 报告结构(必须严格按照此结构)ALWAYS 使用以下顺序,不得调整:1. 执行摘要(100-200字,第一段必须是核心结论)2. 核心指标(必须用表格,至少包含同比/环比数据)3. 原因分析(至少 3 条,每条不超过 100 字)4. 行动建议(不超过 5 条,每条必须可执行)❌ 问题 4:scripts/ 目录里的脚本报错
现象:Claude 调用 Skill 内的脚本时报错,提示模块找不到。
原因:缺少 __init__.py 文件,或者脚本路径引用错误。
解决:
# 确保每个 scripts/ 目录下都有 __init__.pytouch /mnt/skills/user/my-skill/scripts/__init__.py# 在 SKILL.md 中明确说明脚本路径# ✅ 正确的脚本引用方式## 使用脚本运行 scripts/process.py 来处理数据:bash scripts/process.py --input {input_file} --output {output_path}❌ 问题 5:Skill 文件过大,响应变慢
现象:使用 Skill 时,Claude 反应明显变慢。
原因:SKILL.md 正文超过 500 行,或者把大量内容全塞进主文件。
解决:遵循「三层渐进加载」原则:
# ❌ 错误:把所有内容堆在 SKILL.mdSKILL.md(1000行)← 太臃肿# ✅ 正确:分层组织SKILL.md(< 500行,核心指令) ↓ 按需读取references/detail-guide.md(详细规范)references/faq.md(常见问题) ↓ 按需执行scripts/process.py(重复性处理逻辑)在 SKILL.md 里加上明确的引用指引:
## 详细规范如果需要详细的数据处理说明,读取 references/detail-guide.md如果遇到错误情况,参考 references/faq.md❌ 问题 6:description 优化后反而触发率降低
现象:修改了 description,但 Skill 触发变得更不稳定。
解决:使用 skill-creator 的 description 优化功能:
# 在 Claude Code 中python -m scripts.run_loop \ --eval-set evals/trigger-eval.json \ --skill-path /mnt/skills/user/my-skill \ --model claude-sonnet-4-6 \ --max-iterations 5这会自动测试 20 个触发/不触发场景,找出最优的 description 写法。
八、制作最佳Skills的设计原则
理解设计哲学,才能创建出真正好用的 Skill。
原则一:渐进式披露(Progressive Disclosure)
Skills 采用三层加载机制:
第一层(始终在上下文中):name + description,约 100 词第二层(触发时加载):SKILL.md 正文,建议 < 500 行第三层(按需加载):references/ 和 scripts/,无大小限制这意味着:只有真正需要的内容才会占用 AI 的注意力资源。
原则二:解释「为什么」而不是只说「做什么」
# ❌ 糟糕的指令(只说做什么)ALWAYS 在数字后面加单位# ✅ 好的指令(说明为什么)数字后面要加单位(如「万元」「%」),因为读者可能来自不同部门,没有单位的数字在跨部门汇报中极易引发歧义,是最常见的低级失误之一。当 Claude 理解了原因,它会在你没想到的边界情况下,也做出正确判断。
原则三:Skill 是给百万次调用设计的
每个 Skill 可能被调用几百次、几千次。所以写 Skill 时,要站在「通用性」角度,而不是针对某一个具体例子做优化。
Skills的进阶路线
新手路线└── 安装公开 Skill(docx/xlsx/pptx)└── 尝试基础文件任务└── 观察 Claude 如何自动触发进阶路线└── 参考 examples/ 目录学习 Skill 结构└── 创建第一个 User Skill└── 测试触发效果,优化 description高手路线└── 使用 skill-creator 系统化创建 Skill└── 运行 benchmark 测试,量化 Skill 效果└── 打包 .skill 文件,在社区内分享技能库建好了,AI 就真的懂你的业务了。
这件事的价值,不在于省了几分钟,而在于:你把自己的经验,变成了可复用的系统资产。
如果这篇文章对你有用,转发给同样在用 Claude Code 的朋友——有了 Skills,才算真正解锁了它的上限。
欢迎持续关注公众号,和Claude Code教程,Claude Code命令手册。
夜雨聆风