如何给自己的项目添加一个skill-案例
我们用vs code中的github copilot为例来实战给项目创建一个skill.
首先我们需要了解skill的一些规则:
Skills 的核心优势在于:
-
可移植性:同一个 Skill 可以在 VS Code、Copilot CLI 和 GitHub.com 上工作
-
模块化:你可以同时应用多个 Skills
-
团队共享:通过
.github/skills/文件夹可以轻松在团队内部分享
如何编写一个 Skill 案例
第一步:开启 Agent Skills 功能
在 VS Code 中:
-
打开设置(
Ctrl + ,) -
搜索
chat.useAgentSkills -
确保该选项已勾选
第二步:创建 Skill 文件夹结构
在你的项目根目录下创建以下路径:
你的项目根目录/ └── .github/ └── skills/ └── your-skill-name/ (例如:code-formatter) └── SKILL.md
注意事项
-
文件夹名是
.github(注意开头的点) -
SKILL.md 文件名必须全大写
-
技能名称文件夹(如
code-review)可以任意命名,建议用英文小写加连字符 -
完整路径:
autotc/.github/skills/你的技能名/SKILL.md
在 VS Code 中打开 autotc 文件夹作为工作区根目录,Copilot 就能自动识别这个路径下的 Skills。
第三步:编写 SKILL.md 文件
这里以一个实用的 "代码审查与格式化" Skill 为例:
--- name: code-review-formatter description: 对代码进行审查和格式化,修复常见的代码风格问题。当用户说"审查代码"或"格式化这段代码"时触发。 --- # 代码审查与格式化 Skill 这个 Skill 会自动检查并修复代码中的常见问题。 ## 执行步骤 当用户请求代码审查或格式化时,请按以下顺序执行: 1. **检查缩进和空格** - 确保使用 4 个空格进行缩进 - 删除行尾多余的空格 - 确保文件末尾有一个空行 2. **修复引号风格** - 将所有双引号字符串转换为单引号(除非字符串内包含单引号) - 确保引号是直引号(' 和 "),而不是弯引号(‘ ’ “ ”) 3. **检查命名规范** - 变量和函数名使用 camelCase - 常量使用 UPPER_SNAKE_CASE - 类和组件名使用 PascalCase 4. **添加必要的注释** - 为所有函数添加 JSDoc 风格的注释 - 注释模板应包含:功能描述、参数说明、返回值说明 5. **生成审查报告** - 列出所有已修复的问题 - 标注需要注意但无法自动修复的问题 - 给出改进建议 ## 示例 用户输入:"审查这段代码" 你的响应应该: 1. 显示修复前后的对比(diff 视图) 2. 等待用户确认后应用更改 3. 输出简洁的审查报告
我的一个实际操作案例;
1.在仓库中创建一个TestDemo.py文件如下:
def getResult(expected, actual): if expected == actual: return "Test passed" else: return "Test failed
2.在仓库的这个目录下创建SKILL.md (名字必须是SKILL.md):

--- name: generate-python-pytest-case description: Generate a pytest test case for a given Python function. --- # Generate a pytest test case for a given Python function This skill generates a pytest test case for a specified Python function. It takes the function's name, its parameters, and the expected output to create a test case that can be used to validate the function's behavior. - testcase model name format: <function_name>_test.py
ps:
--- 这个符号必须是成对出现,并且它就表示这是skill的metadata(元数据),也叫做概要。里面必须包含name和description字段。描述字段要尽量仔细,因为后续你的用户提示词促发到这个description中的描述才会促发这个skill.
3. 在copilot chat中输入用户提示词:
请帮我给TestDemo.py文件生成一个pytest的测试用例
4.查看结果:
4.1最终是git copilot会自动生成一个测试用例文件。
4.2测试用例文件名是: getResult_test.py (之所以生成这个测试用例文件名,是由于我在SKILL.md中设置了生成测试用文件的模式:- testcase model name format: <function_name>_test.py)
4.3 生成的测试用例文件内容如下:
import pytest from TestDemo import getResult @pytest.mark.parametrize( "expected, actual, result", [ (10, 10, "Test passed"), (10, 8, "Test failed: expected 10, got 8"), ("ok", "ok", "Test passed"), ("ok", "no", "Test failed: expected ok, got no"), ], ) def test_getResult(expected, actual, result): assert getResult(expected, actual) == result

4.4 运行这个测试用例结果:

ps:
如果我没有写这个SKILL.md的话,相同的提示词它生成的测试用例文件名会不同,生成的测试用例的内容也会有所不一样。
反正规则就是,你定义了哪样的SKILL,当你的用户提示词触发到这个SKILL时就能按照这个skill定义的内容给你执行。不需要你每次都在用户提示词中去写一堆提示词约束了。就会很节省token,帮你省钱。
第四步:使用 Skill
-
保存
SKILL.md文件 -
在 VS Code 中打开 Copilot Chat(
Ctrl + Shift + I) -
输入与 Skill 描述匹配的命令,例如 "审查这段代码"。 这个关键字就是触发你的skill中的metadata(元数据)中的description中设置的关键字的关键词。如果你的用户提示词没有触发到skill的元数据的description中的任何描述信息,那么就不会触发读取并执行这个skill.
-
Copilot 会自动识别并执行你的 Skill。
团队共享 Skill
你可以通过以下方式与团队分享 Skills:
-
将
.github/skills/文件夹提交到 Git 仓库 -
团队成员拉取代码后,Skills 会自动出现在他们的 Copilot 中
-
也可以直接复制 Skill 文件夹分享给他人

浙公网安备 33010602011771号