Claude Code Skills 系列(2/3):开发进阶篇 - 创建与管理自定义 Skills
- [第一部分:创建自定义 Skills](#第一部分:创建自定义 Skills)
-
- [1. Skill 文件结构](#1. Skill 文件结构)
-
- [1.1 标准目录结构](#1.1 标准目录结构)
- [1.2 文件说明](#1.2 文件说明)
- [1.3 最小化示例](#1.3 最小化示例)
- [1.4 创建第一个 Skill](#1.4 创建第一个 Skill)
- [2. SKILL.md 文件格式](#2. SKILL.md 文件格式)
-
- [2.1 完整模板](#2.1 完整模板)
- [2.2 Frontmatter 部分](#2.2 Frontmatter 部分)
- [2.3 Markdown 内容部分](#2.3 Markdown 内容部分)
- [3. Frontmatter 配置详解](#3. Frontmatter 配置详解)
-
- [3.1 字段速查表](#3.1 字段速查表)
- [3.2 调用控制配置](#3.2 调用控制配置)
-
- [场景 1:仅手动调用(如部署操作)](#场景 1:仅手动调用(如部署操作))
- [场景 2:仅 AI 调用(如背景知识)](#场景 2:仅 AI 调用(如背景知识))
- [场景 3:双向调用(默认)](#场景 3:双向调用(默认))
- [3.3 工具访问限制](#3.3 工具访问限制)
- [4. 参数传递与上下文注入](#4. 参数传递与上下文注入)
- [5. 最佳实践与实战案例](#5. 最佳实践与实战案例)
-
- [5.1 编写 Skills 的黄金法则](#5.1 编写 Skills 的黄金法则)
-
- [法则 1:描述是触发器,不是文档](#法则 1:描述是触发器,不是文档)
- [法则 2:专注单一功能](#法则 2:专注单一功能)
- [法则 3:避免过度预判](#法则 3:避免过度预判)
- [5.2 实战案例:API 文档生成器](#5.2 实战案例:API 文档生成器)
- [第二部分:管理多个 Skills](#第二部分:管理多个 Skills)
-
- [6. 管理多个 Git 项目的 Skills](#6. 管理多个 Git 项目的 Skills)
-
- [6.1 问题场景](#6.1 问题场景)
- [6.2 解决方案一:选择性复制(推荐)](#6.2 解决方案一:选择性复制(推荐))
- [6.3 解决方案二:重命名避免冲突(推荐)](#6.3 解决方案二:重命名避免冲突(推荐))
-
- 正确的目录结构
- 完整操作流程(一行命令版)
- [⚠️ 如果仓库有 skills 子目录](#⚠️ 如果仓库有 skills 子目录)
- 手动复制版(如果需要精确控制)
- 优点
- [6.4 解决方案三:使用 Git Submodules(团队推荐)](#6.4 解决方案三:使用 Git Submodules(团队推荐))
- [6.5 处理命名冲突](#6.5 处理命名冲突)
- [7. 批量管理脚本](#7. 批量管理脚本)
-
- [7.1 创建管理脚本(CMD 版本)](#7.1 创建管理脚本(CMD 版本))
- [7.2 使用方法](#7.2 使用方法)
- [7.3 最佳实践建议](#7.3 最佳实践建议)
- 第三部分:问题排查
-
- [8. 常见问题与解决方案](#8. 常见问题与解决方案)
- [9. 性能优化与安全](#9. 性能优化与安全)
-
- [9.1 性能优化建议](#9.1 性能优化建议)
-
- [1. 合理使用支持文件](#1. 合理使用支持文件)
- [2. 优化 description](#2. 优化 description)
- [3. 按需加载](#3. 按需加载)
- [9.2 安全注意事项](#9.2 安全注意事项)
-
- [1. 敏感信息处理](#1. 敏感信息处理)
- [2. 命令执行安全](#2. 命令执行安全)
- [3. 工具权限限制](#3. 工具权限限制)
- [9.3 团队协作最佳实践](#9.3 团队协作最佳实践)
-
- [1. 版本控制](#1. 版本控制)
- [2. 文档化](#2. 文档化)
- [3. 代码审查](#3. 代码审查)
- [4. 命名规范](#4. 命名规范)
系列导航
- [第 1 篇:入门实战篇 - 快速上手 Claude Code Skills](#第 1 篇:入门实战篇 - 快速上手 Claude Code Skills)
- 第 2 篇:开发进阶篇 - 创建与管理自定义 Skills(当前)
- [第 3 篇:精通参考篇 - 进阶技巧与完整手册](#第 3 篇:精通参考篇 - 进阶技巧与完整手册)
本篇概要本文是 Claude Code Skills 系列的第 2 篇,将深入讲解如何从零创建自定义 Skills,掌握 SKILL.md 文件格式和配置技巧,学会管理多个 Git 项目的 Skills,并解决常见问题。阅读完本篇后,你将能够独立开发和管理自己的 Skills。
适用系统 :Windows 10/11
命令行工具 :优先使用 CMD,复杂操作使用 PowerShell
预计阅读时间 :30-40 分钟
前置要求:已阅读第 1 篇,了解 Skills 基本概念
第一部分:创建自定义 Skills
1. Skill 文件结构
1.1 标准目录结构
一个完整的 Skill 可以包含以下文件和目录:
.claude\skills\my-skill\ # Skill 根目录(目录名即为 Skill 名称)
├── SKILL.md # 核心配置文件(必需,必须大写)
├── scripts\ # 可执行脚本目录(可选)
│ ├── process.py # Python 处理脚本
│ ├── analyze.js # JavaScript 分析脚本
│ └── deploy.ps1 # PowerShell 部署脚本
├── templates\ # 输出模板目录(可选)
│ ├── report-template.md # Markdown 报告模板
│ └── code-template.js # 代码生成模板
└── references\ # 参考文档目录(可选)
├── api-spec.md # API 规范文档
├── database-schema.sql # 数据库结构文件
└── style-guide.md # 代码风格指南
1.2 文件说明
SKILL.md(必需)
- 这是 Skill 的入口文件
- 必须使用大写的
SKILL.md作为文件名 - 包含 YAML frontmatter 配置和 Markdown 内容
- Claude 会读取这个文件来理解 Skill 的功能
scripts\(可选)
- 存放 Skill 需要执行的脚本
- 支持任何编程语言(Python、JavaScript、PowerShell 等)
- 在 SKILL.md 中通过
!command"语法调用 - 示例:
!python scripts\process.py"
templates\(可选)
- 存放输出模板文件
- Claude 可以使用这些模板生成内容
- 在 SKILL.md 中引用:参考
templates\report-template.md
references\(可选)
- 存放详细的参考文档
- 按需加载,不会每次都读取
- 在 SKILL.md 中说明:详见
references\api-spec.md - 适合存放大型文档、规范等
1.3 最小化示例
只需要一个文件即可:
.claude\skills\simple-skill\
└── SKILL.md # 只需要这一个文件即可
1.4 创建第一个 Skill
让我们创建一个简单的 Skill:
cmd
# 1. 创建目录(CMD)
mkdir %USERPROFILE%\.claude\skills\hello-skill
cd %USERPROFILE%\.claude\skills\hello-skill
# 2. 创建 SKILL.md
notepad SKILL.md
在 SKILL.md 中输入:
markdown
---
name: hello-skill
description: 简单的问候 Skill
---
# Hello Skill
## Purpose
这是一个简单的示例 Skill,用于学习 Skills 的基本结构。
## Instructions
1. 向用户问好
2. 询问用户需要什么帮助
3. 提供友好的回应
## Examples
用户输入:`/hello-skill`
AI 响应:你好!我是 Hello Skill,很高兴为你服务!
保存文件,重启 Claude Code,然后测试:
/hello-skill
2. SKILL.md 文件格式
2.1 完整模板
一个完整的 SKILL.md 文件包含两部分:
- Frontmatter(YAML 配置)
- Markdown 内容(指令和说明)
markdown
---
name: my-skill
description: 简短描述这个 Skill 的功能和使用场景
argument-hint: [参数1] [参数2]
disable-model-invocation: false
user-invocable: true
allowed-tools: []
model: claude-3-5-sonnet-20241022
context: inline
agent: general-purpose
---
# Skill: my-skill
## Purpose(目的)
详细说明这个 Skill 的用途和价值。
## Trigger Conditions(触发条件)
列出会触发此 Skill 的关键词或场景:
- 关键词1
- 关键词2
- 使用场景描述
## Instructions(执行指令)
1. 第一步操作
2. 第二步操作
3. 第三步操作
## Examples(示例)
**示例 1**:
- 用户输入:`/my-skill example-arg`
- AI 响应:执行相应操作...
**示例 2**:
- 用户输入:描述性请求
- AI 响应:自动识别并执行...
## Supporting Files(支持文件)
如果需要引用其他文件:
- `scripts/process.py`: 数据处理脚本
- `references/api-spec.md`: API 规范文档
2.2 Frontmatter 部分
Frontmatter 是文件开头用 --- 包围的 YAML 配置部分,用于定义 Skill 的元数据和行为。
必需字段:
- 实际上没有严格必需的字段,但强烈推荐设置
description
推荐字段:
name:Skill 名称description:功能描述(非常重要!)
2.3 Markdown 内容部分
推荐的章节结构:
- Purpose(目的):说明 Skill 的用途
- Trigger Conditions(触发条件):列出触发关键词
- Instructions(执行指令):详细的执行步骤
- Examples(示例):使用示例
- Supporting Files(支持文件):引用的其他文件
3. Frontmatter 配置详解
3.1 字段速查表
| 字段 | 类型 | 必需 | 说明 | 默认值 |
|---|---|---|---|---|
name |
string | 否 | Skill 名称(小写字母、数字、连字符,最多 64 字符) | 目录名 |
description |
string | 推荐 | 功能描述,Claude 用此判断何时使用 | 第一段内容 |
argument-hint |
string | 否 | 参数提示,如 [issue-number] |
无 |
disable-model-invocation |
boolean | 否 | 禁止 AI 自动调用 | false |
user-invocable |
boolean | 否 | 是否在 / 菜单中显示 |
true |
allowed-tools |
array | 否 | 允许使用的工具列表 | 无限制 |
model |
string | 否 | 指定使用的模型 | 默认模型 |
context |
string | 否 | 设为 fork 在子代理中运行 |
inline |
agent |
string | 否 | 子代理类型(需配合 context: fork) |
general-purpose |
3.2 调用控制配置
场景 1:仅手动调用(如部署操作)
yaml
---
name: deploy-prod
description: 部署到生产环境
disable-model-invocation: true # AI 不能自动调用
user-invocable: true # 用户可以手动调用
---
使用场景:
- 部署到生产环境
- 删除数据库
- 发送邮件通知
- 其他敏感操作
场景 2:仅 AI 调用(如背景知识)
yaml
---
name: coding-standards
description: 公司编码规范
disable-model-invocation: false # AI 可以自动加载
user-invocable: false # 不在菜单中显示
---
使用场景:
- 编码规范
- 项目约定
- 背景知识
- 参考文档
场景 3:双向调用(默认)
yaml
---
name: code-review
description: 代码审查
# 默认配置,两者都可以调用
---
使用场景:
- 代码审查
- 文档生成
- 测试编写
- 大多数常规操作
3.3 工具访问限制
创建只读模式:
yaml
---
name: code-explorer
description: 探索代码库(只读)
allowed-tools:
- readFile
- readMultipleFiles
- listDirectory
- grepSearch
- fileSearch
---
使用场景:
- 代码分析
- 文档查看
- 项目探索
- 不需要修改文件的操作
4. 参数传递与上下文注入
4.1 参数传递
使用 $ARGUMENTS 占位符
markdown
---
name: fix-issue
description: 修复 GitHub Issue
argument-hint: [issue-number]
---
# Fix GitHub Issue
修复 Issue #$ARGUMENTS,遵循以下步骤:
1. 查看 Issue 详情
2. 分析问题根源
3. 实现修复方案
4. 编写测试用例
5. 提交 PR
使用方法:
/fix-issue 123
Claude 会将 $ARGUMENTS 替换为 123。
使用索引访问参数
markdown
---
name: migrate-component
argument-hint: [component-name] [from-framework] [to-framework]
---
# Migrate Component
将组件 $ARGUMENTS[0] 从 $ARGUMENTS[1] 迁移到 $ARGUMENTS[2]。
# 或使用简写
将组件 $0 从 $1 迁移到 $2。
使用方法:
/migrate-component Button React Vue
$0或$ARGUMENTS[0]→Button$1或$ARGUMENTS[1]→React$2或$ARGUMENTS[2]→Vue
4.2 动态上下文注入
使用 !command" 语法
markdown
---
name: pr-summary
description: 总结 Pull Request
---
# PR Summary
## PR 信息
!gh pr view --json title,body,author"
## 代码变更
!gh pr diff"
## 评论讨论
!gh pr view --comments"
请基于以上信息生成 PR 摘要。
工作流程
- Skill 被触发
- 所有
!command"立即执行 - 命令输出替换占位符
- Claude 接收完整渲染的内容
⚠️ 注意:这是预处理,不是 Claude 执行的命令。
实际应用示例
markdown
---
name: git-status-summary
description: Git 状态摘要
---
# Git Status Summary
## 当前分支
!git branch --show-current"
## 未提交的更改
!git status --short"
## 最近的提交
!git log --oneline -5"
请分析当前 Git 状态并提供建议。
5. 最佳实践与实战案例
5.1 编写 Skills 的黄金法则
法则 1:描述是触发器,不是文档
❌ 错误示例:
yaml
description: 这是一个复杂的工具,用于处理各种文档格式,包括 PDF、Word、Excel 等,支持转换、合并、拆分等多种操作...
✅ 正确示例:
yaml
description: 处理文档转换和合并
原因:Claude 使用 description 判断何时触发,简洁的关键词更有效。
法则 2:专注单一功能
❌ 错误示例:万能内容创作者
markdown
---
name: content-creator
description: 创建所有类型的内容
---
支持:
- 博客文章
- 社交媒体帖子
- 技术文档
- 营销文案
- 视频脚本
- 邮件模板
✅ 正确示例:专注的 Skills
markdown
# Skill 1: blog-writer
专注于博客文章创作
# Skill 2: api-doc-generator
专注于 API 文档生成
# Skill 3: email-template
专注于邮件模板
原因:专注的 Skill 更可靠、更易维护、触发更精准。
法则 3:避免过度预判
❌ 错误示例:
markdown
如果用户想要 A,则执行 X
如果用户想要 B,则执行 Y
如果用户想要 C,则执行 Z
如果用户没说清楚,则询问...
✅ 正确示例:
markdown
执行以下步骤:
1. 分析需求
2. 实施方案
3. 验证结果
原因:让 Claude 根据实际情况灵活处理,而不是预设所有分支。
5.2 实战案例:API 文档生成器
这是一个完整的、可直接使用的 Skill 示例。
步骤 1:创建目录
cmd
# CMD
mkdir %USERPROFILE%\.claude\skills\api-doc
cd %USERPROFILE%\.claude\skills\api-doc
步骤 2:创建 SKILL.md
cmd
notepad SKILL.md
步骤 3:编写 SKILL.md 内容
markdown
---
name: api-doc
description: 生成 API 文档
argument-hint: [endpoint-path]
---
# API Documentation Generator
## Purpose
为 RESTful API 端点生成完整的文档,包括请求参数、响应格式和示例代码。
## Instructions
### 1. 收集信息
询问用户以下信息(如果未提供):
- HTTP 方法(GET/POST/PUT/DELETE)
- API 路径
- 功能描述
- 认证要求
### 2. 参数文档
记录以下参数类型:
- 路径参数(Path Parameters)
- 查询参数(Query Parameters)
- 请求头(Headers)
- 请求体(Request Body)
### 3. 响应文档
记录:
- 成功响应(2xx)
- 错误响应(4xx, 5xx)
- 响应体结构
- 字段说明
### 4. 生成示例代码
提供以下语言的示例:
- cURL
- JavaScript (fetch)
- Python (requests)
### 5. 输出格式
使用 Markdown 格式,包含:
- API 概述
- 请求参数表格
- 响应示例
- 多语言代码示例
## Examples
**用户输入**:
/api-doc POST /users
**AI 响应**:
询问必要信息后生成完整的 API 文档。
步骤 4:测试 Skill
- 保存文件
- 重启 Claude Code
- 测试:
/api-doc POST /users
第二部分:管理多个 Skills
6. 管理多个 Git 项目的 Skills
6.1 问题场景
当你从多个 Git 仓库下载 Skills 时,可能会遇到以下情况:
cmd
# 你下载了多个 Skills 仓库
git clone https://github.com/anthropics/skills.git
git clone https://github.com/obra/superpowers.git
git clone https://github.com/Jeffallan/claude-skills.git
# 现在你有三个文件夹,每个都包含很多 Skills
# 问题:如何有效管理和使用这些 Skills?
6.2 解决方案一:选择性复制(推荐)
适用场景:只需要部分 Skills,不想全部安装
完整操作流程
cmd
# ========================================
# 步骤 1:克隆仓库到 Downloads
# ========================================
cd %USERPROFILE%\Downloads
git clone https://github.com/anthropics/skills.git anthropics-skills
git clone https://github.com/obra/superpowers.git superpowers
git clone https://github.com/Jeffallan/claude-skills.git jeffallan-skills
# ========================================
# 步骤 2:查看有哪些 Skills
# ========================================
# ⚠️ 注意:这三个仓库的 skills 在 skills\ 子目录里
echo === Anthropics Skills ===
dir /B anthropics-skills\skills
echo === Superpowers Skills ===
dir /B superpowers\skills
echo === Jeffallan Skills ===
dir /B jeffallan-skills\skills
# ========================================
# 步骤 3:复制你需要的 Skills
# ========================================
# ⚠️ 注意:这三个仓库的 skills 在 skills\ 子目录里
# 从 anthropics 复制 document-skills
xcopy /E /I /Y %USERPROFILE%\Downloads\anthropics-skills\skills\document-skills %USERPROFILE%\.claude\skills\document-skills\
# 从 superpowers 复制 planning
xcopy /E /I /Y %USERPROFILE%\Downloads\superpowers\skills\planning %USERPROFILE%\.claude\skills\planning\
# 从 jeffallan 复制 react-helper
xcopy /E /I /Y %USERPROFILE%\Downloads\jeffallan-skills\skills\react-helper %USERPROFILE%\.claude\skills\react-helper\
# ========================================
# 步骤 4:清理临时文件(可选)
# ========================================
# 删除下载的仓库(如果不再需要)
rmdir /S /Q %USERPROFILE%\Downloads\anthropics-skills
rmdir /S /Q %USERPROFILE%\Downloads\superpowers
rmdir /S /Q %USERPROFILE%\Downloads\jeffallan-skills
# ========================================
# 步骤 5:验证安装
# ========================================
echo 已安装的 Skills:
dir /B %USERPROFILE%\.claude\skills
echo.
echo 完成!请重启 Claude Code
pause
⚠️ 如果仓库有 skills 子目录
这三个仓库都有 skills\ 子目录,所以需要调整路径。
先查看结构确认:
cmd
dir %USERPROFILE%\Downloads\anthropics-skills
如果看到有 skills 文件夹,使用这个命令:
cmd
# 注意路径中多了 \skills\
xcopy /E /I /Y %USERPROFILE%\Downloads\anthropics-skills\skills\document-skills %USERPROFILE%\.claude\skills\document-skills\
xcopy /E /I /Y %USERPROFILE%\Downloads\superpowers\skills\planning %USERPROFILE%\.claude\skills\planning\
xcopy /E /I /Y %USERPROFILE%\Downloads\jeffallan-skills\skills\react-helper %USERPROFILE%\.claude\skills\react-helper\
如果 skills 直接在根目录(没有 skills 子目录),去掉 \skills\:
cmd
xcopy /E /I /Y %USERPROFILE%\Downloads\某仓库\document-skills %USERPROFILE%\.claude\skills\document-skills\
最终目录结构
C:\Users\你的用户名\.claude\skills\
├── document-skills\ # 来自 anthropics
├── code-review\ # 来自 superpowers
└── api-generator\ # 来自 jeffallan
优点
- ✅ 只安装需要的 Skills
- ✅ 避免命名冲突
- ✅ 节省空间
- ✅ 易于管理
6.3 解决方案二:重命名避免冲突(推荐)
适用场景:想清楚知道每个 Skill 来自哪个仓库,且避免命名冲突
⚠️ 重要提示 :Claude Code 不会递归扫描子目录 ,所以不能使用 @anthropics\skill-name\ 这样的嵌套结构。所有 Skills 必须在 .claude\skills\ 的第一层。
正确的目录结构
C:\Users\你的用户名\.claude\skills\
├── anthropics-document-skills\ # 来自 Anthropic(添加前缀)
│ └── SKILL.md
├── anthropics-code-review\ # 来自 Anthropic
│ └── SKILL.md
├── superpowers-planning\ # 来自 Superpowers(添加前缀)
│ └── SKILL.md
├── superpowers-code-review\ # 来自 Superpowers(与上面不冲突)
│ └── SKILL.md
├── jeffallan-react-helper\ # 来自 Jeffallan(添加前缀)
│ └── SKILL.md
└── custom-my-workflow\ # 自己创建的(添加前缀)
└── SKILL.md
完整操作流程(一行命令版)
cmd
# ========================================
# 步骤 1:克隆仓库到 Downloads
# ========================================
cd %USERPROFILE%\Downloads
git clone https://github.com/anthropics/skills.git anthropics-skills
git clone https://github.com/obra/superpowers.git superpowers
git clone https://github.com/Jeffallan/claude-skills.git jeffallan-skills
# ========================================
# 步骤 2:查看目录结构(确认 skills 位置)
# ========================================
echo === 查看 anthropics-skills 结构 ===
dir %USERPROFILE%\Downloads\anthropics-skills
echo === 查看 superpowers 结构 ===
dir %USERPROFILE%\Downloads\superpowers
echo === 查看 jeffallan-skills 结构 ===
dir %USERPROFILE%\Downloads\jeffallan-skills
# ========================================
# 步骤 3:复制所有 Skills(自动添加前缀)
# ========================================
# ⚠️ 注意:这些仓库的 skills 在 skills\ 子目录里
# 复制 anthropics-skills 的所有 Skills(添加 anthropics- 前缀)
for /d %i in (%USERPROFILE%\Downloads\anthropics-skills\skills\*) do @xcopy /E /I /Y "%i" "%USERPROFILE%\.claude\skills\anthropics-%~nxi\" >nul && echo 已复制: anthropics-%~nxi
# 复制 superpowers 的所有 Skills(添加 superpowers- 前缀)
for /d %i in (%USERPROFILE%\Downloads\superpowers\skills\*) do @xcopy /E /I /Y "%i" "%USERPROFILE%\.claude\skills\superpowers-%~nxi\" >nul && echo 已复制: superpowers-%~nxi
# 复制 jeffallan-skills 的所有 Skills(添加 jeffallan- 前缀)
for /d %i in (%USERPROFILE%\Downloads\jeffallan-skills\skills\*) do @xcopy /E /I /Y "%i" "%USERPROFILE%\.claude\skills\jeffallan-%~nxi\" >nul && echo 已复制: jeffallan-%~nxi
# ========================================
# 步骤 4:清理临时文件(可选)
# ========================================
# 删除下载的仓库(如果不再需要)
rmdir /S /Q %USERPROFILE%\Downloads\anthropics-skills
rmdir /S /Q %USERPROFILE%\Downloads\superpowers
rmdir /S /Q %USERPROFILE%\Downloads\jeffallan-skills
# ========================================
# 步骤 5:验证安装
# ========================================
echo.
echo 已安装的 Skills(带前缀):
dir /B %USERPROFILE%\.claude\skills
echo.
echo 完成!请重启 Claude Code
pause
⚠️ 如果仓库有 skills 子目录
这三个仓库都有 skills\ 子目录,所以上面的命令已经是正确的。
如果你遇到其他仓库,skills 直接在根目录(没有 skills 子目录),调整命令:
cmd
# 如果 skills 直接在根目录(去掉路径中的 \skills\)
for /d %i in (%USERPROFILE%\Downloads\某仓库\*) do @xcopy /E /I /Y "%i" "%USERPROFILE%\.claude\skills\前缀-%~nxi\" >nul && echo 已复制: 前缀-%~nxi
手动复制版(如果需要精确控制)
如果你想手动指定复制哪些 Skills:
cmd
# ========================================
# 步骤 1-2:克隆和查看(同上)
# ========================================
cd %USERPROFILE%\Downloads
git clone https://github.com/anthropics/skills.git anthropics-skills
git clone https://github.com/obra/superpowers.git superpowers
git clone https://github.com/Jeffallan/claude-skills.git jeffallan-skills
# 查看有哪些 Skills
dir /B %USERPROFILE%\Downloads\anthropics-skills
# ========================================
# 步骤 3:手动复制并添加前缀
# ========================================
# ⚠️ 注意:这三个仓库的 skills 在 skills\ 子目录里
xcopy /E /I /Y %USERPROFILE%\Downloads\anthropics-skills\skills\document-skills %USERPROFILE%\.claude\skills\anthropics-document-skills\
xcopy /E /I /Y %USERPROFILE%\Downloads\anthropics-skills\skills\code-review %USERPROFILE%\.claude\skills\anthropics-code-review\
xcopy /E /I /Y %USERPROFILE%\Downloads\superpowers\skills\planning %USERPROFILE%\.claude\skills\superpowers-planning\
xcopy /E /I /Y %USERPROFILE%\Downloads\superpowers\skills\code-review %USERPROFILE%\.claude\skills\superpowers-code-review\
xcopy /E /I /Y %USERPROFILE%\Downloads\jeffallan-skills\skills\react-helper %USERPROFILE%\.claude\skills\jeffallan-react-helper\
# ========================================
# 步骤 4-5:清理和验证(同上)
# ========================================
rmdir /S /Q %USERPROFILE%\Downloads\anthropics-skills
rmdir /S /Q %USERPROFILE%\Downloads\superpowers
rmdir /S /Q %USERPROFILE%\Downloads\jeffallan-skills
echo 已安装的 Skills:
dir /B %USERPROFILE%\.claude\skills
pause
优点
- ✅ 清晰的来源标识(通过前缀)
- ✅ 符合 Claude Code 的扫描规则
- ✅ 避免命名冲突
- ✅ 易于管理和更新
6.4 解决方案三:使用 Git Submodules(团队推荐)
适用场景:团队项目,需要版本控制和统一管理
操作步骤
cmd
# 1. 在项目中添加 Skills 作为 submodule(CMD)
cd your-project
# 2. 添加 Skills 仓库为 submodule
git submodule add https://github.com/anthropics/skills.git .claude\skills-repos\anthropics
git submodule add https://github.com/obra/superpowers.git .claude\skills-repos\superpowers
创建安装脚本
创建 .claude\install-skills.cmd:
cmd
@echo off
echo 开始安装 Skills...
REM 复制 Anthropic Skills
xcopy /E /I /Y .claude\skills-repos\anthropics\skills\document-skills .claude\skills\document-skills\
xcopy /E /I /Y .claude\skills-repos\anthropics\skills\code-review .claude\skills\code-review\
REM 复制 Superpowers Skills
xcopy /E /I /Y .claude\skills-repos\superpowers\skills\planning .claude\skills\planning\
xcopy /E /I /Y .claude\skills-repos\superpowers\skills\testing .claude\skills\testing\
echo Skills 安装完成!
pause
团队成员使用
cmd
# 克隆项目
git clone <your-project-url>
cd your-project
# 初始化 submodules
git submodule update --init --recursive
# 运行安装脚本
.claude\install-skills.cmd
更新 Skills
cmd
# 更新 submodules
git submodule update --remote
# 重新运行安装脚本
.claude\install-skills.cmd
优点
- ✅ 版本控制
- ✅ 团队统一
- ✅ 易于更新
- ✅ 可追溯历史
6.5 处理命名冲突
问题:不同仓库可能有同名的 Skills
解决方案
方案 1:重命名(推荐)
cmd
# 复制时添加前缀(CMD)
xcopy /E /I anthropics\skills\code-review %USERPROFILE%\.claude\skills\anthropics-code-review\
xcopy /E /I superpowers\skills\code-review %USERPROFILE%\.claude\skills\superpowers-code-review\
方案 2:修改 Skill 名称
编辑 SKILL.md 的 frontmatter:
yaml
---
name: anthropics-code-review # 修改这里
description: Anthropic 官方代码审查
---
方案 3:使用目录分类
参考 6.3 节的按来源分类管理方案。
7. 批量管理脚本
7.1 创建管理脚本(CMD 版本)
创建 manage-skills.cmd:
cmd
@echo off
setlocal
set SKILLS_DIR=%USERPROFILE%\.claude\skills
set REPOS_DIR=%USERPROFILE%\claude-skills-repos
if "%1"=="" goto usage
if "%1"=="update" goto update
if "%1"=="list" goto list
if "%1"=="install" goto install
if "%1"=="remove" goto remove
goto usage
:update
echo 更新 Skills 仓库...
cd %REPOS_DIR%\anthropics && git pull
cd %REPOS_DIR%\superpowers && git pull
cd %REPOS_DIR%\jeffallan && git pull
echo 更新完成!
goto end
:list
echo 已安装的 Skills:
dir /B %SKILLS_DIR%
goto end
:install
if "%2"=="" goto usage
if "%3"=="" goto usage
echo 安装 %2/%3...
xcopy /E /I /Y %REPOS_DIR%\%2\skills\%3 %SKILLS_DIR%\%3\
echo 安装完成!
goto end
:remove
if "%2"=="" goto usage
echo 删除 %2...
rmdir /S /Q %SKILLS_DIR%\%2
echo 删除完成!
goto end
:usage
echo 用法:
echo manage-skills.cmd update - 更新所有仓库
echo manage-skills.cmd list - 列出已安装的 Skills
echo manage-skills.cmd install repo skill - 安装 Skill
echo manage-skills.cmd remove skill - 删除 Skill
echo.
echo 示例:
echo manage-skills.cmd install anthropics document-skills
echo manage-skills.cmd remove document-skills
goto end
:end
endlocal
7.2 使用方法
cmd
# 更新所有仓库
manage-skills.cmd update
# 列出已安装的 Skills
manage-skills.cmd list
# 安装特定 Skill
manage-skills.cmd install anthropics document-skills
# 删除 Skill
manage-skills.cmd remove document-skills
7.3 最佳实践建议
推荐的工作流程
1. 初始设置
cmd
# 创建仓库存放目录(CMD)
mkdir %USERPROFILE%\claude-skills-repos
cd %USERPROFILE%\claude-skills-repos
# 克隆所有感兴趣的仓库
git clone https://github.com/anthropics/skills.git anthropics
git clone https://github.com/obra/superpowers.git superpowers
git clone https://github.com/Jeffallan/claude-skills.git jeffallan
2. 浏览和测试
cmd
# 查看有哪些 Skills(CMD)
dir anthropics\skills\
# 查看 README 了解功能
type anthropics\skills\document-skills\SKILL.md
3. 选择性安装
cmd
# 只复制需要的 Skills(CMD)
xcopy /E /I anthropics\skills\document-skills %USERPROFILE%\.claude\skills\document-skills\
# 测试是否工作
# 重启 Claude Code,然后输入:
# What skills are available?
4. 定期更新
cmd
# 每月更新一次仓库(CMD)
cd %USERPROFILE%\claude-skills-repos\anthropics
git pull
cd %USERPROFILE%\claude-skills-repos\superpowers
git pull
# 如果有更新,重新复制
xcopy /E /I /Y anthropics\skills\document-skills %USERPROFILE%\.claude\skills\document-skills\
5. 记录管理
创建 %USERPROFILE%\.claude\skills\INSTALLED.txt:
已安装的 Skills
来自 anthropics/skills
- document-skills (v1.0, 2025-01-15)
- code-review (v1.2, 2025-01-15)
来自 obra/superpowers
- planning (v2.0, 2025-01-10)
- testing (v2.0, 2025-01-10)
自定义 Skills
- my-workflow (v1.0, 2025-01-20)
第三部分:问题排查
8. 常见问题与解决方案
8.1 问题 1:Skill 没有被触发
可能原因
- Description 不够明确
- Skill 未正确安装
- 需要重启 Claude Code
解决方案
# 1. 检查 Skill 是否可用
What skills are available?
# 2. 查看 Skill 描述
/skills
# 3. 手动触发测试
/skill-name test
优化 description:
yaml
# 之前(不好)
description: 这是一个用于处理各种文档的工具
# 之后(好)
description: 处理文档转换
8.2 问题 2:Skill 触发过于频繁
解决方案
方案 1:更精确的描述
yaml
# 之前
description: 处理文件
# 之后
description: 转换 PDF 文件为 Markdown
方案 2:禁用自动调用
yaml
---
name: my-skill
description: 我的 Skill
disable-model-invocation: true # 禁止 AI 自动调用
---
8.3 问题 3:Claude 看不到所有 Skills
原因
Skills 描述超出字符预算
检查方法
/context
查看是否有关于 Skills 被排除的警告。
解决方案
方案 1:增加预算
cmd
# CMD - 临时设置
set SLASH_COMMAND_TOOL_CHAR_BUDGET=32000
# 永久设置(需要管理员权限)
setx SLASH_COMMAND_TOOL_CHAR_BUDGET 32000
方案 2:优化 Skills
- 简化 description
- 合并相似的 Skills
- 移除不常用的 Skills
8.4 问题 4:权限控制
场景
限制 Claude 使用特定 Skills
解决方案
方案 1:全局禁用 Skill 工具
/permissions
然后拒绝 Skill 工具。
方案 2:使用权限规则
# 允许特定 Skill
/permissions allow Skill(code-review)
# 拒绝特定 Skill
/permissions deny Skill(deploy-prod)
# 使用通配符
/permissions allow Skill(test-*)
方案 3:Skill 级别控制
yaml
---
name: deploy-prod
disable-model-invocation: true # 在 SKILL.md 中设置
---
8.5 常见问题速查
| 问题 | 原因 | 解决方案 |
|---|---|---|
| Skill 不触发 | description 不明确 | 使用简洁关键词 |
| 触发过于频繁 | description 太宽泛 | 更精确的描述 |
| 看不到所有 Skills | 超出字符预算 | 增加预算或优化 Skills |
| 权限问题 | 未设置权限 | 使用 /permissions 配置 |
| 命名冲突 | 同名 Skill | 重命名或分类管理 |
9. 性能优化与安全
9.1 性能优化建议
1. 合理使用支持文件
❌ 不推荐:将所有内容放在 SKILL.md
markdown
---
name: api-guide
---
# API Guide
[10000 行 API 文档...]
✅ 推荐:使用引用
markdown
---
name: api-guide
---
# API Guide
核心指令...
## 详细文档
需要时查看:
- `references/rest-api.md`: REST API 规范
- `references/graphql-api.md`: GraphQL API 规范
2. 优化 description
❌ 不推荐:
yaml
description: 这是一个用于生成、审查、优化、测试和部署代码的综合工具,支持多种编程语言和框架...
✅ 推荐:
yaml
description: 代码生成和审查
3. 按需加载
使用 disable-model-invocation: true 标记不常用的 Skills,需要时手动调用。
9.2 安全注意事项
1. 敏感信息处理
❌ 不要在 Skill 中硬编码敏感信息:
markdown
---
name: deploy
---
使用以下凭证部署:
API_KEY=sk-1234567890abcdef
DATABASE_URL=postgresql://user:password@host/db
✅ 使用环境变量:
markdown
---
name: deploy
---
部署步骤:
1. 确保环境变量已设置:
- %API_KEY%
- %DATABASE_URL%
2. 运行部署脚本
2. 命令执行安全
使用 !command" 时要小心:
markdown
# 危险:可能执行任意命令
!%ARGUMENTS%"
# 安全:验证和限制
!gh pr view %ARGUMENTS% --json title"
3. 工具权限限制
为敏感操作创建受限的 Skills:
yaml
---
name: read-only-review
allowed-tools:
- readFile
- grepSearch
# 不包括 fsWrite, strReplace 等修改工具
---
9.3 团队协作最佳实践
1. 版本控制
推荐的 .gitignore 配置:
gitignore
# 不提交个人级 Skills
# (个人级 Skills 在用户主目录,不在项目中)
# 提交项目级 Skills
!.claude/skills/
2. 文档化
为每个 Skill 添加 README.md:
markdown
# Skill: deploy-prod
## 用途
部署到生产环境
## 前置条件
- AWS CLI 已配置
- 拥有部署权限
## 使用方法
/deploy-prod [version]
## 示例
/deploy-prod v1.2.3
3. 代码审查
将 Skills 纳入代码审查流程:
- 检查 description 是否清晰
- 验证 instructions 是否完整
- 测试 Skill 是否正常工作
4. 命名规范
推荐的命名约定:
动词-名词 格式:
✅ generate-api-docs
✅ review-code
✅ deploy-staging
✅ test-integration
避免:
❌ api-docs(不明确是生成还是查看)
❌ code(太宽泛)
❌ deploy(缺少环境信息)
相关链接: