SKILL.md 文件,定义技能的描述、指令和可选的辅助文件(代码、脚本、模板等)。
核心特点:
- 智能调用:模型根据用户请求和 Skill 描述自主决定何时使用(也支持命令加载)
- 模块化设计:每个 Skill 专注解决特定类型的任务
- 灵活扩展:支持用户级和项目级的自定义 Skill
快速开始
以下示例创建一个用于生成 API 文档的 Skill:1. 创建 Skill 目录
在用户级 Skills 文件夹中创建目录。用户级 Skills 适用于所有项目,也可在.qoder/skills/ 中创建项目级 Skills 与团队共享。
2. 编写 SKILL.md
每个 Skill 需要一个SKILL.md 文件,以 --- 标记之间的 YAML 元数据开头,必须包含 name 和 description,后跟 Markdown 指令。
创建 ~/.qoder/skills/api-doc-generator/SKILL.md:
3. 验证 Skill 加载
新会话会在启动时加载 Skill。如果 Qoder CLI 已在运行,使用/skills reload 刷新已发现的 Skill。输入如下内容,验证是否加载成功:
api-doc-generator 及其描述。
4. 测试 Skill
打开项目中的 API 路由文件,输入与 Skill 描述匹配的问题:api-doc-generator Skill 并生成相关 API 文档。若未触发,尝试使用 description 中的关键词重新描述需求。
工作原理
Skill 可以由命令加载,也可以由模型自动调用。模型根据请求内容决定使用哪个 Skill,无需显式指定。- 启动时,Qoder CLI 加载每个 Skill 的名称和描述,保持快速启动的同时让模型了解各 Skill 的适用场景。
- 请求与 Skill 描述匹配时,模型请求使用该 Skill 并加载完整
SKILL.md。部分 Skill 可直接执行;需要额外能力的 Skill 可能会请求授权。编写描述时应包含用户常用的关键词。 - 模型按 Skill 指令执行,按需加载引用文件或运行脚本。
存储位置
存储位置决定 Skill 的可用范围:| 位置 | 路径 | 作用域 | 适用场景 |
|---|---|---|---|
| 用户级 | ~/.qoder/skills/{skill-name}/SKILL.md | 当前用户的所有项目 | 个人工作流、实验性 Skill、个人工具 |
| 项目级 | .qoder/skills/{skill-name}/SKILL.md | 仅当前项目 | 团队工作流、项目特定知识、共享脚本 |
Skill 与 Command 的区别
核心区别:Skill 支持命令加载和自动触发,Command 需显式输入/command-name。
| 特性 | Skill | Command |
|---|---|---|
| 触发方式 | 模型自动判断或输入 /skill-name | 输入 /command-name |
| 主要用途 | 专业领域知识、复杂工作流 | 快速执行预设任务 |
| 存储位置 | skills/ 目录 | commands/ 目录 |
| 权限确认 | 视 Skill 能力而定,可能需要授权 | 不需要 |
Skill 内部转换为特殊类型的 Command,两者共享执行机制。
使用场景
适合使用 Skill 的场景:- 复杂专业任务:需要领域知识的工作流(代码审查、PDF 处理、API 设计)
- 标准化流程:按固定步骤执行的任务(提交规范、部署流程)
- 团队知识共享:打包最佳实践供团队使用
- 重复性工作:频繁执行且需要专业指导的任务
- 简单快捷操作
- 需要明确触发的任务
- 无需复杂提示词指导的任务
创建 Skill
选择存储位置
| 类型 | 路径 | 作用域 |
|---|---|---|
| 用户级 | ~/.qoder/skills/{skill-name}/SKILL.md | 当前用户的所有项目 |
| 项目级 | .qoder/skills/{skill-name}/SKILL.md | 仅当前项目 |
项目级 Skill 覆盖同名的用户级 Skill。创建目录:
组织目录结构
目录结构示例:SKILL.md 中引用辅助文件实现渐进式披露:
编写 SKILL.md
SKILL.md 是 Skill 中唯一必需的文件,包含 YAML 元数据和 Markdown 指令:
| 字段 | 必需 | 说明 | 限制 |
|---|---|---|---|
name | 是 | Skill 唯一标识符 | 仅小写字母、数字、连字符,最多 64 字符 |
description | 是 | 功能描述,模型据此判断何时使用 | 最多 1024 字符 |
重要:description 决定模型何时使用 Skill,应包含功能说明和使用时机。详见”最佳实践”部分。
使用 Skill
自动触发
直接描述需求,模型自动判断是否使用 Skill:log-analyzer Skill。
手动触发
输入/skill-name 手动触发:
查看可用 Skill
CLI 中查看:更新与删除
更新 Skill
直接编辑SKILL.md。新会话会在启动时加载更新;如果 Qoder CLI 已在运行,执行 /skills reload 刷新已发现的 Skill。
删除 Skill
删除 Skill 目录:警告:删除操作永久移除所有文件,无法恢复。
最佳实践
保持专注
每个 Skill 专注于一个领域或任务类型。 推荐:log-analyzer- 日志分析security-auditor- 安全审计database-migrator- 数据库迁移
coding-helper- 功能过于宽泛
编写清晰的 description
description 应包含:Skill 功能、使用时机和触发关键词。
对比:
共享前测试
共享 Skill 前确保:- 预期场景下能触发
- 指令清晰
- 覆盖常见边界情况