skills指南
GitHub Copilot Skills 开发指南
本指南介绍如何为 GitHub Copilot 创建、开发和使用 Skills。
目录
快速开始
5 分钟快速上手
初始化新项目
1
打开 VS Code → 打开 GitHub Copilot Chat → 输入 /init查看可用的 Skills
1
在 Copilot Chat 中输入 /skills获取 skill-creator
1
2从 https://github.com/anthropics/skills/tree/main/skills/skill-creator
下载到 .github/skills/skill-creator/开始使用
1
在 Chat 中说 "帮我创建一个新的 skill"
项目初始化
使用 /init 命令
对于一个新项目,首先需要初始化 GitHub Copilot 配置:
打开 VS Code
打开 GitHub Copilot Chat
- 快捷键:
Ctrl + Alt + I(Windows/Linux) - 或点击侧边栏的 Copilot 图标
- 快捷键:
初始化项目
在 Chat 中输入:
1
/init结果
这会在项目根目录创建
.github/copilot-instructions.md文件,包含:- 项目级别的 Copilot 指令
- 代码风格指南
- 架构说明
- 开发规范
初始化后的项目结构
1 | |
注意: .github/skills/ 目录需要手动创建,用于存放 skills。
获取通用 Skills
从 GitHub 获取
GitHub 提供了一些通用的 skills,可以直接使用:
官方 Skills 仓库:
1 | |
推荐的通用 Skills
1. skill-creator
功能: 帮助你创建新的 skills
获取方式:
访问:https://github.com/anthropics/skills/tree/main/skills/skill-creator
下载整个
skill-creator目录放到你的项目中:
1
你的项目/.github/skills/skill-creator/
使用:
1 | |
2. 其他通用 Skills
浏览 https://github.com/anthropics/skills/tree/main/skills 查看更多:
- 代码审查相关
- 文档生成相关
- 测试辅助相关
- 等等
安装 Skills
将下载的 skill 目录复制到:
1 | |
目录结构示例:
1 | |
查看和管理 Skills
/skills 命令
使用 /skills 命令查看和管理当前项目中的所有 skills。
在 Copilot Chat 中输入:
1 | |
显示内容:
- 所有已安装的 skills 列表
- 每个 skill 的名称和描述
- 可用的操作:重命名(Rename)、复制(Copy)、删除(Delete)
管理 Skills
查看位置:
所有 skills 都存放在:
1 | |
添加新 Skill:
- 创建新目录:
.github/skills/your-skill-name/ - 添加
SKILL.md文件 - GitHub Copilot 会自动检测并加载
重命名 Skill:
通过 /skills 命令界面:
- 输入
/skills - 找到要重命名的 skill
- 点击 Rename 选项
或手动重命名目录:
1 | |
复制 Skill:
通过 /skills 命令界面:
- 输入
/skills - 找到要复制的 skill
- 点击 Copy 选项
或手动复制目录:
1 | |
删除 Skill:
通过 /skills 命令界面:
- 输入
/skills - 找到要删除的 skill
- 点击 Delete 选项
或手动删除目录:
1 | |
临时禁用 Skill:
如果想临时禁用但不删除,可以重命名目录(添加 .disabled 后缀):
1 | |
创建新的 Skill
方法 1: 使用 skill-creator(推荐)
如果你已经安装了 skill-creator,可以直接在 Copilot Chat 中请求帮助:
示例对话:
1 | |
方法 2: 手动创建
步骤 1: 规划你的 Skill
在创建之前,明确回答以下问题:
Skill 的目的是什么?
- 例如:”保存 ALM 附件到本地文件”
何时触发此 Skill?
- 例如:”用户说’下载附件 AT123456’”
需要什么资源?
- Scripts: 需要执行的脚本(Python、PowerShell 等)
- References: 参考文档、API 说明等
- Assets: 模板文件、图片等
步骤 2: 创建目录结构
1 | |
命名规范:
- 使用 kebab-case(小写字母和连字符)
- 例如:
attachment-saver,code-reviewer,api-helper - 简短且描述性
步骤 3: 基础结构
1 | |
开发 Skill
编写 SKILL.md
SKILL.md 是最重要的文件,包含两部分:
1. YAML Frontmatter(必需)
1 | |
重要提示:
description是触发 skill 的关键!要详细描述使用场景- 必须包含”何时使用”的信息
- 只有
name和description会被 Claude 读取用于判断是否触发
2. Markdown 正文(必需)
推荐的章节结构:
1 | |
编写指南:
- 使用祈使句/不定式(例如:”Call the tool”, “Save the file”)
- 提供具体的代码示例
- 保持简洁,避免冗余
- 不要重复 Claude 已经知道的通用知识
创建脚本(可选)
如果需要可执行脚本:
- 在
scripts/目录下创建脚本 - 确保脚本有清晰的注释和帮助信息
- 添加错误处理
- 提供使用示例
Python 脚本示例:
1 | |
添加参考文档(可选)
对于复杂的 API 或详细文档,可以创建 references/ 目录:
1 | |
在 SKILL.md 中引用这些文档:
1 | |
测试 Skill
1. 验证 SKILL.md 格式
确保:
- YAML frontmatter 格式正确
- 包含必需的
name和description字段 - Markdown 格式正确
- 代码示例可以运行
2. 测试脚本功能
如果你的 skill 包含脚本,先独立测试:
1 | |
创建测试脚本:
1 | |
3. 在 Copilot Chat 中测试
检查 Skill 是否被识别
1
2在 Chat 中输入 /skills
应该能看到你的新 skill触发 Skill
使用 description 中描述的场景:
1
2例如:如果 description 说 "用于下载附件"
则说:"帮我下载附件 AT123456"验证输出
- 检查 Copilot 是否正确理解 skill
- 验证脚本是否正确执行
- 确认输出符合预期
4. 调试
启用详细输出:
1 | |
查看执行日志:
- 检查终端输出
- 查看脚本的错误信息
- 验证文件是否正确创建
分享 Skill
方法 1: 通过 Git 仓库
推荐将 skills 提交到 Git 仓库:
1 | |
其他用户使用:
1 | |
方法 2: 直接分享目录
将整个 skill 目录打包分享:
1 | |
其他用户使用:
1 | |
方法 3: 发布到 GitHub
- 创建专门的 skills 仓库
- 按照 Anthropic 的格式组织
- 其他用户可以从你的仓库获取
示例仓库结构:
1 | |
最佳实践
1. Skill 设计原则
保持简洁:
- 只包含 Claude 不知道的信息
- 避免重复通用知识
- 使用简洁的语言
明确触发条件:
- 在
description中清晰描述使用场景 - 包含关键词和示例
- 说明”何时使用”
提供具体示例:
- 包含实际的代码示例
- 展示常见使用模式
- 提供错误处理示例
2. 文件组织
SKILL.md(必需):
- Skill 的主文档
- 包含 YAML frontmatter
- 包含使用说明和示例
Scripts(可选):
- 用于需要确定性执行的操作
- 避免重复编写相同代码
- 示例:PDF 处理、文件转换、数据解析
References(可选):
- 用于详细文档和参考
- API 文档、数据库 schema
- 只在需要时加载
Assets(可选):
- 用于输出的模板文件
- 图片、字体等静态资源
- 不会加载到上下文中
3. 避免的错误
❌ 不要:
- 在 SKILL.md 中重复基础知识
- 创建额外的 README.md 等文档
- 在 skill 正文中说明”何时使用”(应该在 description 中)
- 深度嵌套的 reference 文件
- 创建
.skill打包文件(直接使用目录即可)
✅ 应该:
- 保持 SKILL.md 精简(< 500 行)
- 将详细内容分离到 references
- 提供可执行的代码示例
- 使用渐进式披露(progressive disclosure)
- 将 skills 直接放在
.github/skills/目录
4. 版本管理
推荐做法:
1 | |
提交到 Git:
1 | |
建议:
- 在 Git 中管理源代码
- 使用分支开发新功能
- 添加 commit message 说明变更
5. 团队协作
共享 Skills:
- 将
.github/skills/提交到团队仓库 - 团队成员克隆后自动获得所有 skills
- 使用
/skills查看可用 skills
命名约定:
- 使用描述性的名称
- 团队内保持一致的命名风格
- 避免名称冲突
完整示例:attachment-saver
查看实际例子:.github/skills/attachment-saver/
结构:
1 | |
SKILL.md 示例:
1 | |
1 | |
用户: “下载附件 AT867050”
Copilot 执行:
- 识别 attachment-saver skill
- 调用 get_attachment_tool
- 运行 save_from_mcp_response.py
- 保存文件到 attachments/
- 告知用户文件位置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
---
## 故障排除
### Skill 未被识别
**问题:** 输入 `/skills` 看不到你的 skill
**解决:**
1. 检查目录位置是否正确:`.github/skills/<skill-name>/`
2. 确认 `SKILL.md` 文件存在
3. 检查 YAML frontmatter 格式
4. 重启 VS Code
### Skill 未触发
**问题:** Copilot 没有使用你的 skill
**检查:**
1. `description` 是否清晰描述使用场景
2. 用户请求是否与 description 匹配
3. Description 中包含关键触发词
**改进 description:**
```yaml
# ❌ 不够具体
description: Helper for API calls
# ✅ 清晰的触发条件
description: Use when users want to call external APIs, make HTTP requests, or fetch data from web services. Triggered by phrases like "call the API", "fetch from URL", "make HTTP request".
脚本执行错误
调试步骤:
单独运行脚本测试
1
python .github\skills\my-helper\scripts\script.py <args>检查参数传递是否正确
查看错误日志
验证文件路径(使用绝对路径)
YAML 格式错误
常见问题:
1 | |
验证 YAML:
- 确保有开始和结束的
--- name和description是必需的- 注意缩进和语法
快速参考
常用命令
初始化项目:
1 | |
查看已安装的 Skills:
1 | |
创建新 Skill 目录:
1 | |
删除 Skill:
1 | |
目录结构速查
1 | |
必需的 YAML Frontmatter
1 | |
获取通用 Skills
官方仓库:
1 | |
推荐 Skills:
skill-creator- 帮助创建新 skills- 浏览官方仓库查看更多
工作流程
初始化项目
1
/init 命令创建 copilot-instructions.md获取 skill-creator
1
从 GitHub 下载到 .github/skills/skill-creator/创建新 Skill
1
在 Chat 中说:"帮我创建一个新的 skill"开发和测试
1
编辑 SKILL.md,添加脚本,使用 /skills 验证分享
1
提交到 Git 或打包整个目录
相关资源
- 官方 Skills 仓库: https://github.com/anthropics/skills/tree/main/skills
- Skill Creator:
.github/skills/skill-creator/SKILL.md - 示例 Skill:
.github/skills/attachment-saver/
总结
创建 Skill 的正确流程:
- 初始化项目 → 使用
/init创建copilot-instructions.md - 获取 skill-creator → 从 GitHub 下载到
.github/skills/ - 查看现有 skills → 使用
/skills命令 - 创建新 skill → 在
.github/skills/下创建目录和 SKILL.md - 开发和测试 → 编写文档和脚本,在 Chat 中测试
- 分享 → 通过 Git 或直接分享目录
记住:
- 使用
/init初始化项目 - 使用
/skills查看和管理 skills - Skills 直接放在
.github/skills/目录 - 从 https://github.com/anthropics/skills 获取通用 skills
- 保持 SKILL.md 简洁,提供清晰的使用示例
祝你开发出优秀的 Skills!🎉