芥末
发布于 2026-04-30 / 0 阅读
0
0

Qoder Skills 从入门到落地:用标准工作流约束 AI 执行

很多人使用 AI 工具时都会遇到同一个问题:同样的需求,今天输出一个版本,明天换一种做法;同样的规范,已经解释过很多遍,下一轮对话又被忘掉;同样的工作流,每次都要重新写一长段提示词。

问题不在于 AI 不够聪明,而在于它缺少稳定的执行标准。

Qoder Skills 解决的就是这件事:把一套任务规范、执行步骤、参考材料、脚本和资源封装成一个可复用的能力包,让 AI 在遇到匹配任务时自动加载,并按预设流程完成工作。

可以把 Skill 理解成 AI 工作流里的“操作手册”。用户只描述目标,AI 根据 Skill 里的规则决定怎么拆解任务、调用哪些工具、检查哪些结果、输出什么格式。


1. Skill 到底解决什么问题

如果只靠普通提示词,AI 的执行方式通常依赖当前对话上下文。上下文写得详细,它就做得更接近预期;上下文写得粗略,它就会根据自己的默认习惯补全细节。

这会带来几个麻烦:

问题典型表现Skill 的处理方式
需求解释成本高每次都要重复说明规范、格式、禁忌和流程把规范写进 SKILL.md,触发后自动加载
输出不稳定同一个任务多次执行,步骤和结果差异很大用固定步骤、模板和脚本约束执行过程
复杂流程容易漏步骤例如写 API 时忘记同步文档、测试或变更记录把检查项写成强制流程
团队规范难共享每个人维护自己的提示词,标准不一致项目级 Skill 可以提交到 Git
MCP 有工具但缺少方法AI 能访问 GitHub、Linear、Notion,却不知道按什么流程用Skill 定义工具使用顺序和业务规则

普通提示词像临时口头说明,Skill 像沉淀下来的标准作业流程。只要某个任务会重复出现、需要稳定质量、涉及多人协作或多步骤执行,就适合写成 Skill。


2. Skill、MCP、Slash Command、Rules 的关系

Qoder 以及类似 AI Agent 工具里,常见的扩展方式包括 Skill、MCP、Slash Command 和 Rules。它们看起来都能“影响 AI 行为”,但职责完全不同。

MCP(Model Context Protocol,模型上下文协议)负责把外部系统能力暴露给 AI,例如数据库、GitHub、Linear、Notion、日历、邮件系统等。它解决的是“AI 能访问什么工具”。

Skill 解决的是“AI 应该怎样完成某类任务”。

Slash Command 是用户手动输入的快捷指令,适合触发一次性动作。

Rules 是全局规则,通常一直放在上下文中,比如“全部用中文回答”“提交信息必须使用 Conventional Commits”。

维度SkillMCPSlash CommandRules
核心作用封装标准工作流连接外部工具和数据快捷触发固定提示词提供全局约束
触发方式AI 自动判断,也可手动 /skill-name 调用工具调用时使用用户主动输入 /xxx始终生效
适合复杂度高,支持多步骤、脚本、参考资料中,偏工具接口低到中,偏短指令低,偏行为约束
上下文占用低,默认只加载元数据取决于工具数量和定义通常会加载整段提示一直占用
团队共享适合提交到项目仓库通过服务端共享不太适合规范化分发常见于个人配置或项目配置
典型场景API 规范、报告生成、设计交付、审查流程调 GitHub、查数据库、发消息/commit/review语言、格式、编码风格

判断方式可以很简单:

需要访问外部系统数据或工具?           → MCP
只是全局行为约束?                   → Rules
只是一次性快捷动作?                 → Slash Command
需要复用的多步骤标准流程?             → Skill
需要外部工具 + 固定业务流程?          → MCP + Skill

Skill 并不替代 MCP。更准确地说,MCP 给 AI 提供“手”和“眼睛”,Skill 告诉 AI 按什么顺序使用这些能力。

flowchart LR
    U[用户需求] --> A[AI Agent]
    A --> S[Skill<br/>任务流程与标准]
    A --> R[Rules<br/>全局约束]
    A --> M[MCP<br/>外部工具和数据]
    S --> A
    R --> A
    M --> DB[(数据库)]
    M --> GH[GitHub]
    M --> LN[Linear / Notion]
    A --> O[稳定输出]

3. Skill 的文件结构

Skill 本质上是一个约定好的文件夹。一个最小 Skill 只需要一个 SKILL.md 文件;复杂 Skill 可以额外放脚本、参考文档、模板和静态资源。

推荐结构如下:

your-skill-name/
├── SKILL.md
├── scripts/
│   ├── check_api_docs.py
│   └── validate.sh
├── references/
│   ├── api-guide.md
│   ├── examples.md
│   └── CHANGELOG.md
└── assets/
    ├── report-template.md
    └── logo.svg

各目录职责:

路径是否必须用途
SKILL.md必须Skill 的元数据、触发条件、执行步骤和关键说明
scripts/可选放 Python、Shell、Node.js 等脚本,让某些步骤确定执行
references/可选放较长的规范、示例、接口文档、领域知识
assets/可选放模板、图标、字体、示例文件等资源

命名需要注意三点:

  1. Skill 文件夹名建议使用 kebab-case,例如 api-standard-check
  2. 主文件名必须是 SKILL.md,大小写要完全一致。
  3. SKILL.md 顶部必须包含 YAML Frontmatter,用来告诉 AI 这个 Skill 什么时候该被使用。

4. Skill 的渐进式加载机制

Skill 能同时支持“很多技能共存”和“复杂知识封装”,关键在于渐进式加载,也就是 Progressive Disclosure。

AI 不会一开始就把每个 Skill 的全部内容塞进上下文,而是分层读取。

flowchart TD
    A[启动会话] --> B[加载所有 Skill 的元数据]
    B --> C{用户任务是否匹配某个 Skill}
    C -- 否 --> D[按普通对话处理]
    C -- 是 --> E[加载对应 SKILL.md 正文]
    E --> F{执行中是否需要脚本或参考资料}
    F -- 否 --> G[按 Skill 步骤执行]
    F -- 是 --> H[按需读取 scripts references assets]
    H --> G
    G --> I[输出结果]

三层内容分别承担不同职责:

层级加载时机内容作用
YAML Frontmatter会话启动时namedescription 等元数据让 AI 判断 Skill 是否适合当前任务
SKILL.md 正文Skill 被触发时执行步骤、示例、注意事项、错误处理指导 AI 完成任务
脚本与参考文件执行过程中按需读取检查脚本、模板、长文档、示例支撑复杂任务,避免主文件过长

这种设计有三个直接好处:

好处说明
上下文占用低同时安装很多 Skill 时,默认只加载简短描述
执行更稳定关键流程提前写死,AI 不需要每次重新推理步骤
复杂任务可维护长文档和脚本可以拆出去,主文件保持清晰

5. 安装第一个 Skill

Qoder 支持用户级和项目级两种安装位置。

安装级别路径适合场景
用户级~/.qoder/skills/个人长期使用、跨项目通用
项目级<项目根目录>/.qoder/skills/团队规范、项目专用流程,适合提交到 Git

5.1 使用命令行安装

可以通过 skills 工具安装开源 Skill:

npx skills add <skill-name>

安装过程通常会让你选择:

目标 Agent:Qoder
安装级别:Global 或 Project
安装模式:copy

例如安装一个前端设计相关 Skill:

npx skills add from-design

如果安装到用户级目录,文件会出现在:

~/.qoder/skills/from-design/

如果安装到项目级目录,文件会出现在:

<项目根目录>/.qoder/skills/from-design/

5.2 手动安装

只要目录结构正确,也可以直接复制文件夹:

# 用户级
mkdir -p ~/.qoder/skills
cp -r your-skill-name ~/.qoder/skills/

# 项目级
mkdir -p .qoder/skills
cp -r your-skill-name .qoder/skills/

5.3 在 Qoder 中生成 Skill

Qoder Quest 模式可以通过对话生成一个新的 Skill。适合从零开始固化自己的流程:

帮我创建一个 Skill,用于在新增、修改或删除 API 接口时,
同步更新 OpenAPI 文档,检查兼容性,生成单元测试框架,
并记录 change log。

AI 会引导你补充触发条件、步骤、目录位置和示例。

5.4 验证是否生效

打开 Qoder 对话框输入 /,如果能看到对应 Skill,说明安装成功。

也可以直接输入一个匹配任务,例如:

帮我新增一个用户登录接口,并检查接口文档和兼容性。

如果 AI 自动说明将按某个 Skill 的流程执行,触发配置基本可用。

需要注意:Qoder Skills 通常不支持热更新。新增或修改 Skill 后,建议重启会话再测试。


6. 编写一个最小可用 Skill

一个最小 Skill 可以只有 SKILL.md

api-standard-check/
└── SKILL.md

SKILL.md 示例:

---
name: api-standard-check
description: |
  当用户新增、修改或删除 API 接口时使用本 Skill。
  本 Skill 会要求同步 OpenAPI 文档、检查向后兼容性、生成单元测试框架,
  并以 change log 格式记录接口变更。
  触发词:新增接口、修改接口、删除接口、API 文档、接口兼容性、单元测试、接口变更。
license: MIT
metadata:
  version: 1.0.0
  owner: backend-team
  category: development
  tags:
    - api
    - openapi
    - testing
---

# API 标准变更流程

## 目标

当 API 发生新增、修改或删除时,确保代码、文档、兼容性检查、测试框架和变更记录同时完成。

## 重要约束

CRITICAL: 不允许只修改接口代码而不更新 OpenAPI 文档。

CRITICAL: 删除或修改已有接口前,必须检查是否破坏现有调用方。

## 执行步骤

### 1. 识别接口变更类型

判断当前任务属于以下哪一种:

- 新增 API
- 修改 API
- 删除 API

记录接口路径、HTTP 方法、请求参数、响应结构和错误码。

### 2. 修改接口代码

按项目现有代码风格实现接口逻辑。不要引入与项目技术栈不一致的新框架。

### 3. 同步 OpenAPI 文档

在 OpenAPI 文件中添加或更新对应接口,包括:

- path
- method
- request body
- query/path 参数
- response schema
- error response

### 4. 检查兼容性

检查以下内容:

- 是否删除了已有字段
- 是否改变了字段类型
- 是否改变了必填规则
- 是否改变了错误码语义
- 是否改变了认证或权限要求

如存在破坏性变更,必须明确提示,并给出兼容方案。

### 5. 生成单元测试框架

为新增或修改的接口生成测试,包括:

- 成功请求
- 参数缺失
- 参数非法
- 权限不足
- 典型业务异常

### 6. 记录 change log

按以下格式输出:

```text
## API Change Log

- Type: added | changed | removed
- Endpoint: METHOD /path
- Compatibility: compatible | breaking
- Document Updated: yes | no
- Tests Added: yes | no
- Notes:

示例

用户请求:

“新增一个用户登录接口,支持邮箱和密码登录。”

AI 需要完成:

  1. 创建接口代码
  2. 更新 OpenAPI 文档
  3. 检查是否影响现有认证接口
  4. 生成单元测试框架
  5. 输出 change log

这个 Skill 已经具备可用形态:有清晰触发条件、有强制约束、有执行步骤、有输出格式、有示例。

---

## 7. YAML Frontmatter 怎么写

Frontmatter 是 AI 判断“是否使用 Skill”的核心依据。写得太宽泛,会导致 Skill 被乱触发;写得太模糊,又可能该触发时没有触发。

### 7.1 必填字段

```yaml
---
name: api-standard-check
description: |
  当用户新增、修改或删除 API 接口时使用本 Skill。
  本 Skill 会同步 OpenAPI 文档、检查向后兼容性并生成单元测试框架。
  触发词:新增接口、接口文档、API 规范、兼容性检查、单元测试、接口变更。
---

name 要遵守:

只能使用小写字母、数字和短横线
不要使用空格
不要使用大写
不要使用保留词

正确示例:

name: api-standard-check

错误示例:

name: API Standard Check
name: api_standard_check
name: MySkill

7.2 可选字段

---
name: data-report-generator
description: |
  当用户需要根据 CSV、数据库查询结果或业务指标生成分析报告时使用本 Skill。
  本 Skill 会完成数据检查、指标计算、异常点识别和报告输出。
license: MIT
allowed-tools: "Bash(python:*) WebFetch"
metadata:
  version: 1.0.0
  owner: data-team
  mcp-server: database
  category: analytics
  tags:
    - report
    - csv
    - data-analysis
    - dashboard
  documentation: https://example.com/docs/data-report-generator
---

metadata 通常用于记录版本、维护团队、分类、依赖的 MCP 服务和文档地址。它不是触发的核心,触发主要依赖 description

7.3 Description 的写法

一个好用的 description 要同时回答两个问题:

  1. 这个 Skill 做什么?
  2. 用户说什么话时应该触发?

不推荐:

description: 帮助处理项目。

问题是范围太大,AI 不知道哪些任务需要使用它。

也不推荐:

description: 创建复杂的多页面文档系统。

问题是只说了能力,没有说触发场景。

更好的写法:

description: |
  分析 Figma 设计文件并生成前端开发交付文档。
  当用户上传 .fig 文件,或提到“设计规范”“组件文档”“设计转代码”“前端切图”时使用。

可以把用户真实会说的话放进去。用户通常不会严格使用技术术语,所以触发词要同时覆盖专业表达和口语表达。

例如 Linear 项目管理 Skill:

description: |
  管理 Linear 项目工作流,包括 Sprint 规划、任务创建、状态跟踪和风险同步。
  当用户提到“冲刺”“项目计划”“创建工单”“排期”“任务状态”或“Linear 任务”时使用。

Description 不宜太长。它会常驻上下文,推荐控制在 2 到 4 句话内。


8. SKILL.md 正文怎么写

正文决定 AI 被触发后怎么执行任务。写正文时,目标不是写得“像说明书一样完整”,而是让 AI 不容易误解、不容易跳步。

推荐原则:

原则做法
步骤编号化每个步骤只做一件事
关键检查前置高风险要求放到开头,用 CRITICAL: 标记
示例具体化放 1 到 2 个真实任务示例
大文档外置长规范放到 references/,主文件只保留路径
能脚本化就脚本化检查、扫描、格式化等确定性工作交给脚本

例如,文档检查可以不要只写“检查接口是否有文档”,而是提供脚本:

python scripts/check_api_docs.py --project .

SKILL.md 中写清楚何时运行脚本、期望输出是什么:

## 文档一致性检查

在完成 API 代码修改后,运行:

```bash
python scripts/check_api_docs.py --project .

期望输出:

All API endpoints have matching OpenAPI documentation.

如果脚本报告缺失文档,必须先补齐文档,再继续生成测试代码。


语言描述可以被误解,脚本执行结果更确定。适合脚本化的工作包括:

- 扫描 API 和文档是否一致
- 检查文件命名规范
- 校验 JSON、YAML、OpenAPI 格式
- 统计测试覆盖情况
- 生成固定格式报告
- 运行 lint、test、build

---

## 9. 三个典型使用场景

### 9.1 前端设计生成

很多 AI 生成的前端页面会有明显模板感:蓝白配色、常规卡片、默认字体、缺少层次。问题是用户很难说清楚“更好看”到底意味着什么。

设计类 Skill 可以把审美规则、字体选择、配色策略、布局方法、组件细节写进去。用户只描述产品目标,AI 根据 Skill 主动确认设计方向,再生成更完整的界面方案。

安装示例:

```bash
npx skills add from-design

使用示例:

帮我设计一个 Todo 应用首页,需要适合年轻用户,支持任务分组和今日重点任务。

有设计 Skill 时,AI 通常会多做几件事:

  1. 确认产品定位和视觉方向。
  2. 选择字体、颜色、间距和信息层级。
  3. 避免直接套默认 UI 风格。
  4. 输出组件结构、页面布局和交互细节。
  5. 必要时生成可运行的前端代码。

这类 Skill 的价值在于补齐用户的知识盲区。用户不需要掌握完整设计方法,也能让 AI 按设计领域的标准工作。

9.2 产品宣传视频生成

视频生成属于典型的跨领域任务。用户可能只知道“我要一个宣传视频”,但不知道脚本结构、镜头节奏、字幕、动画技术栈和渲染方式。

如果安装了 Remotion 相关 Skill,可以让 AI 按固定流程创建可渲染的视频项目。

示例:

npx skills add remotion-best-practice

需求可以这样写:

帮我为一个 AI 电商图片处理工具制作中文宣传视频。
请先根据官网信息理解产品能力,再生成可下载的视频文件。

执行流程可以固化为:

flowchart TD
    A[用户提出视频需求] --> B[读取产品信息]
    B --> C[生成视频脚本]
    C --> D[创建 Remotion 项目]
    D --> E[实现分镜和动画]
    E --> F[本地渲染视频]
    F --> G[输出视频文件和修改建议]

这种 Skill 不只是告诉 AI “写视频脚本”,还会约束它选择合适技术栈、组织工程目录、处理依赖安装、生成分镜组件并完成渲染。

9.3 Java API 开发规范化

团队开发 API 时,经常会有一套标准要求:

  • 代码要实现接口逻辑
  • OpenAPI 文档要同步
  • 不能破坏已有接口兼容性
  • 测试框架要生成
  • 变更记录要更新

如果只靠普通对话,AI 很容易只完成代码部分。API Skill 可以把这些动作变成强制步骤。

创建 Skill 的需求可以这样描述:

帮我创建一个 Skill。
当我新增、修改或删除 Java API 接口时,必须完成:
1. 同步更新 OpenAPI 格式的 API 文档
2. 检查新接口不破坏现有接口兼容性
3. 生成对应的单元测试框架
4. 以 change log 格式记录本次变更

再加入一个确定性检查脚本:

请在这个 Skill 中添加一个 Python 脚本,
扫描项目内所有 API 接口,检查每个接口是否都有对应 OpenAPI 文档,
并以报告形式输出结果。

目录可以变成:

.qoder/skills/api-standard-check/
├── SKILL.md
└── scripts/
    └── check_api_docs.py

团队共享时,把项目级 Skill 提交到仓库:

git add .qoder/skills/api-standard-check
git commit -m "feat: add api standard skill"
git push

其他成员拉取后即可使用:

git pull

10. 复杂工作流的五种写法

简单 Skill 只需要列步骤。复杂 Skill 需要更明确的编排方式,否则 AI 可能无法稳定处理分支、循环和外部工具调用。

10.1 顺序工作流

适合必须按顺序执行的流程,例如客户接入、发布流程、审批流程。

## 工作流:新客户接入

### 1. 创建客户账户

调用客户系统 MCP,创建客户账户。

必须记录返回的 `customer_id`。

### 2. 设置支付方式

使用 `customer_id` 设置支付方式。

只有支付方式验证通过,才能进入下一步。

### 3. 创建订阅

基于 `customer_id` 和套餐类型创建订阅。

### 4. 发送欢迎邮件

调用邮件 MCP,使用 `welcome_email_template` 模板发送邮件。

### 失败处理

如果第 2 步失败,不允许创建订阅。
如果第 3 步失败,需要标记客户状态为 `pending_subscription`。

关键点是写清依赖关系和失败处理,不要只列动作。

10.2 跨 MCP 协调

适合一个流程涉及多个外部系统,例如 Figma、Drive、Linear、Slack。

sequenceDiagram
    participant U as 用户
    participant A as AI Agent
    participant F as Figma MCP
    participant D as Drive MCP
    participant L as Linear MCP
    participant S as Slack MCP

    U->>A: 交付设计稿给开发团队
    A->>F: 导出设计资产和规范
    F-->>A: 返回资产清单
    A->>D: 上传资产并创建共享链接
    D-->>A: 返回文件夹链接
    A->>L: 创建开发任务
    L-->>A: 返回任务编号
    A->>S: 通知工程频道
    A-->>U: 返回交付摘要

Skill 中需要说明每个 MCP 的职责、输入输出和交接字段。例如 Drive 返回的链接要写入 Linear 任务,再放进 Slack 通知。

10.3 迭代优化循环

适合报告、设计稿、代码审查等需要反复检查和修正的任务。

## 报告生成流程

### 1. 生成初稿

根据数据源生成第一版报告,并保存为临时文件。

### 2. 运行质量检查

执行:

```bash
python scripts/check_report.py --file report.md

检查项包括:

  • 是否缺少章节
  • 数据是否为空
  • 指标格式是否一致
  • 是否存在未解释的异常值

3. 修复问题

逐项修复检查脚本报告的问题。

4. 再次验证

重新运行检查脚本。

如果仍有错误,重复第 3 步和第 4 步,直到检查通过。

5. 输出正式版本

生成最终报告和摘要。


循环要有退出条件,否则 AI 可能只修一次就结束。

### 10.4 上下文感知的工具选择

适合同一个目标在不同场景下使用不同工具。

```markdown
## 文件存储决策

### 1. 判断文件类型和大小

- 大于 10MB 的文件:使用云存储 MCP
- 协作文档:使用 Notion 或 Google Docs MCP
- 代码文件:使用 GitHub MCP
- 临时中间产物:使用本地存储

### 2. 执行存储

调用对应工具完成存储。

### 3. 说明原因

向用户说明为什么选择该存储方式。

这类 Skill 的重点不是“执行”,而是把决策树写清楚。

10.5 领域知识内嵌

适合合规、金融、医疗、法务、企业流程等强规则场景。

## 支付处理合规流程

### 1. 处理前检查

获取交易详情,并检查:

- 制裁名单
- 司法管辖区
- 交易金额风险
- 历史欺诈记录

### 2. 决策

如果合规检查通过,调用支付处理工具。

如果检查不通过,禁止继续支付流程,并创建人工审核记录。

### 3. 审计记录

记录全部检查项、判断依据和处理结果。

这类 Skill 要把“不能做什么”写得非常明确,尤其是需要人工审核或禁止自动执行的场景。


11. 测试 Skill 是否可靠

Skill 写完后不能只跑一次。需要测试三个方面:触发是否准确、执行是否稳定、相比普通提示词是否减少沟通成本。

11.1 触发测试

准备应该触发的请求:

帮我新增一个用户登录接口。
这个 API 和现有接口会不会冲突?
帮我写接口文档。
删除这个旧接口前帮我检查兼容性。
给这个接口补单元测试。

准备不应该触发的请求:

帮我写一首诗。
旧金山今天的天气怎么样?
帮我做一个旅行计划。
解释一下二叉树遍历。
把这段话翻译成英文。

如果相关请求不触发,通常是 description 太模糊或缺少触发词。

如果无关请求频繁触发,通常是 description 范围太大。

可以直接问 AI:

你什么时候会使用 api-standard-check 这个 Skill?

AI 的回答会暴露它对 description 的理解。根据回答调整触发词即可。

11.2 功能测试

对同一个任务运行 3 到 5 次,检查:

  • 是否每次都执行关键步骤
  • 输出格式是否一致
  • 脚本是否能正常运行
  • MCP 调用是否成功
  • 错误处理是否符合预期

测试记录可以用表格保存:

测试项第 1 次第 2 次第 3 次结论
是否更新 OpenAPI通过
是否检查兼容性需要强化步骤
是否生成测试框架通过
是否输出 change log通过

11.3 与普通提示词对比

可以用同一个任务分别在无 Skill 和有 Skill 的情况下执行。

指标无 Skill有 Skill
用户需要补充说明的轮次10 到 15 轮1 到 3 轮
是否遗漏关键步骤容易遗漏可通过步骤约束降低遗漏
输出格式一致性依赖提示词质量由 Skill 固定
团队共享成本每个人复制提示词项目级目录统一维护
可脚本化程度

Skill 的目标不是让 AI “一次永远正确”,而是把问题修正沉淀到文件里。每次发现遗漏,都可以直接修改 Skill,让同类问题下次减少出现。


12. 迭代 Skill 的常见信号

现象可能原因修改方式
该触发时没有触发description 缺少用户真实表达增加触发词,覆盖技术术语和口语说法
不相关任务也触发description 太宽泛增加适用边界和排除场景
触发后没有按步骤执行正文太长、步骤不清晰缩短正文,关键步骤前置,给步骤编号
输出格式不稳定没有明确模板添加固定输出格式
检查结果不可靠只靠自然语言描述增加脚本或命令
MCP 调用顺序混乱依赖关系没写清明确每步输入输出和失败处理

可以用自然语言要求 AI 修改 Skill:

刚才执行 api-standard-check 时遗漏了 DELETE 接口的兼容性检查。
请把这个要求固化到该 Skill 中:
当接口删除时,必须检查调用方、OpenAPI 文档、错误码和迁移说明。

然后检查 SKILL.md 是否真的被更新,并重启会话测试。


13. 团队协作与版本治理

个人 Skill 可以放在用户级目录,团队规范更适合放在项目级目录。

.qoder/
└── skills/
    ├── api-standard-check/
    │   ├── SKILL.md
    │   └── scripts/
    │       └── check_api_docs.py
    └── release-checklist/
        └── SKILL.md

提交到 Git:

git add .qoder/skills
git commit -m "feat: add project skills"
git push

更新 Skill 时,提交信息要说明影响范围:

git commit -m "fix(skill/api-standard): check DELETE api compatibility"

版本号可以放在 metadata

metadata:
  version: 1.2.0
  owner: backend-team

如果某次变更会明显改变 AI 行为,例如增加强制审批、禁止自动发布、修改输出格式,需要在 references/CHANGELOG.md 中记录:

# Changelog

## 1.2.0

- 增加 DELETE API 兼容性检查
- change log 输出增加 `Migration Required` 字段
- 删除接口时必须生成迁移说明

团队级 Skill 建议遵守三条规则:

  1. 项目级 Skill 必须经过代码评审。
  2. 影响 AI 行为的变更需要写清楚原因。
  3. 每个 Skill 至少保留触发测试和不触发测试样例。

14. 常见问题排查

Q1:提示找不到 SKILL.md

检查文件名大小写:

ls -la your-skill-folder/

必须看到:

SKILL.md

这些都不符合要求:

skill.md
SKILL.MD
Skill.md

Q2:提示 YAML Frontmatter 无效

常见错误包括缺少分隔符、缩进错误、引号未闭合。

错误示例:

name: my-skill
description: Does things

正确示例:

---
name: my-skill
description: Does things
---

多行描述推荐使用 |

---
name: my-skill
description: |
  当用户需要整理会议纪要时使用。
  本 Skill 会提取决策、行动项、负责人和截止日期。
---

Q3:安装后没有自动调用

排查顺序:

1. 输入 `/`,确认 Skill 是否出现在列表中
2. 重启当前会话
3. 询问 AI 什么时候会使用该 Skill
4. 检查 description 是否包含当前任务的触发词
5. 临时使用 /skill-name 手动调用

Q4:Skill 触发太频繁

description 中加入边界条件。

description: |
  用于 CSV 文件的高级数据分析,包括统计建模、回归分析和聚类分析。
  不适用于简单表格查看、字段解释或普通数据查询。

Q5:Skill 被触发了,但 AI 没按步骤执行

处理方式:

  • 把最关键要求移到正文开头。
  • 使用 CRITICAL: 标记不可跳过的检查。
  • 删除冗长背景说明。
  • 把复杂检查改成脚本。
  • 给输出结果定义固定模板。

Q6:一个 Skill 能不能依赖另一个 Skill

可以,但要在说明中写清依赖关系。例如:

description: |
  当用户完成 API 变更后生成发布说明时使用。
  如果项目中安装了 api-standard-check Skill,应先读取其 change log 输出。

更稳妥的方式是让两个 Skill 通过文件产物协作,例如前一个 Skill 输出 api-change-log.md,后一个 Skill 读取这个文件生成发布说明。

Q7:参考文件是不是越大越好

不是。建议:

文件建议
SKILL.md保持清晰,放核心流程和关键规则
references/放长规范、示例、领域知识
scripts/放确定性检查和生成逻辑
外部链接只在确实需要联网读取时使用

如果所有内容都塞进 SKILL.md,AI 加载后上下文会变重,关键步骤反而容易被淹没。


15. 30 分钟最小实践路径

可以按这个顺序快速跑通闭环:

第 1 步:安装一个开源 Skill

npx skills add from-design

选择 Qoder、Global、copy。
第 2 步:测试触发

在 Qoder Quest 模式输入一个前端设计需求。
如果没有自动触发,使用 /from-design 手动调用。
第 3 步:修改 description

打开:

~/.qoder/skills/from-design/SKILL.md

增加符合自己常用场景的触发词,保存后重启会话。
第 4 步:创建项目级 Skill

mkdir -p .qoder/skills/my-first-skill
touch .qoder/skills/my-first-skill/SKILL.md
第 5 步:提交给团队

git add .qoder/skills/my-first-skill
git commit -m "feat: add first project skill"
git push

16. 上线前 Checklist

设计阶段

  • 明确 2 到 3 个具体使用场景
  • 确定 Skill 要解决的是工作流问题,而不是单次问答
  • 判断是否需要 MCP、脚本或参考文档
  • 规划好 scripts/references/assets/ 目录

开发阶段

  • 文件夹名使用 kebab-case
  • 主文件名严格为 SKILL.md
  • YAML Frontmatter 有开始和结束 ---
  • name 使用小写字母、数字和短横线
  • description 同时说明做什么和什么时候用
  • description 包含用户真实会说的触发词
  • 正文步骤编号清晰
  • 关键步骤放在前面
  • 高风险要求使用 CRITICAL: 标记
  • 包含至少 1 个示例场景
  • 长文档放到 references/
  • 可确定执行的检查尽量脚本化

测试阶段

  • 用至少 10 个相关请求测试触发
  • 用至少 5 个不相关请求测试不触发
  • 同一任务重复运行 3 到 5 次
  • 检查关键步骤是否遗漏
  • 检查脚本是否能正常运行
  • 如果集成 MCP,确认调用顺序和失败处理
  • 与普通提示词效果做一次对比

发布阶段

  • 项目级 Skill 已提交到 Git
  • 变更说明写清楚影响范围
  • metadata.version 已更新
  • 重大行为变化已记录到 CHANGELOG.md
  • 团队成员知道如何触发和反馈问题

17. 常用资源

资源地址用途
开放 Skill 市场https://skills.sh查找和安装社区 Skill
Anthropic Skills 示例库https://github.com/anthropics/skills学习 Skill 目录结构和写法
Qoder 文档Qoder 官网文档查看 Qoder 中 Skills 的安装和使用方式

Skill 的核心价值不是“写一个更长的提示词”,而是把可复用流程工程化。它把经验、规范、检查脚本和团队约定放进版本化文件中,让 AI 在合适的任务里按同一套标准执行。对于 API 开发、设计生成、报告产出、MCP 工具编排这类重复且容易出错的工作,Skill 是让 AI 从临时助手变成稳定执行单元的关键配置。


评论