你现在已经学过几层能力:

  • 当前对话提示词:控制这一次任务。
  • AGENTS.md:沉淀项目长期规则。
  • config.toml:配置 Codex 自身怎么运行。
  • MCP:连接外部工具和资料。

接下来是 Skills。

> 前置教程:第一次配置只读文档 MCP

> 如果你还不清楚 MCP 和外部资料的关系,先看前置教程。Skills 后面经常会和 MCP 配合使用。

核心定义

``

Skill 是一套可复用的工作流程说明。

`

它解决的问题是:

`

有些任务你已经摸索出稳定做法了,不想每次重新写一大段提示词。

`

比如:

  • 修 Bug 的标准流程。
  • 发布前检查的标准流程。
  • 做代码审查的标准流程。
  • 排查构建失败的标准流程。

这些都适合沉淀成 Skill。

场景举例

你每次让 Codex 修 Bug,都会重复提醒:

`

先复现问题,不要直接改。

先判断影响范围。

只做最小修复。

改完后让 Codex 自己运行已有检查。

最后用中文汇报改了哪些文件、检查结果和风险。

`

如果每次都复制这段,很累,也容易漏。

Skill 可以把这套流程保存起来。

以后你只要说:

`

用 Bug 修复流程处理这个问题:登录页手机号输入 11 位后按钮仍然不可点击。

`

或者显式指定某个 Skill:

`bash

$bugfix-flow 修复登录页手机号校验问题。

`

Codex 就能按照那套流程工作。

Skill 和提示词的区别

| 项目 | 适合什么 |

| :--- | :--- |

| 当前提示词 | 这一次任务的目标、范围、验收 |

| Skill | 一类任务的固定流程 |

比如:

当前提示词:

`

这次只修登录页,不要改注册页。

`

Skill:

`

修 Bug 时先复现,再定位,再最小修复,再验证,再汇报。

`

一个是当前任务限制,一个是长期流程。

Skill 和 AGENTS.md 的区别

| 项目 | 适合什么 |

| :--- | :--- |

| AGENTS.md | 当前项目的规则 |

| Skill | 某类任务的流程 |

AGENTS.md 适合写:

`markdown

本项目使用 npm run build 做构建检查。

教程文案使用简体中文。

不要修改 dist 目录。

`

Skill 适合写:

如果这个流程跨多个项目都能用,更适合 Skill。

Skill 和 MCP 的区别

| 项目 | 作用 |

| :--- | :--- |

| MCP | 给 Codex 外部工具和资料 |

| Skill | 告诉 Codex 怎么按流程做事 |

比如:

  • MCP 能查询 GitHub issue。
  • Skill 规定“修 Bug 前先读 issue、总结复现步骤、确认影响范围”。

MCP 是能力,Skill 是流程。它们可以配合,但不是同一个东西。

Skill 的物理结构

一个 Skill 通常是一个目录。

目录里至少有:

`

SKILL.md

`

也可以有:

`

references/

scripts/

assets/

`

最小结构:

`

bugfix-flow/

SKILL.md

`

SKILL.md 里必须有:

`markdown

name: bugfix-flow

description: 修复 Bug 时使用。适合用户提供现象、复现步骤、错误日志或失败截图,并要求 Codex 做最小修复和验证。

Bug 修复流程

这里写 Codex 应该遵守的流程。

`

name 和 description 为什么重要

Codex 不会一开始把所有 Skill 的完整内容都塞进上下文。

它会先看到每个 Skill 的:

  • 名称。
  • 描述。
  • 文件路径。

当任务匹配时,再加载完整 SKILL.md

所以 description 关键。不要写:

`

帮助写代码。

`

太泛了。更好的写法:

`

修复 Bug 时使用。适合用户提供现象、复现步骤、错误日志或失败截图,并要求 Codex 做最小修复、运行项目已有检查、用中文汇报风险。

`

这样 Codex 才知道什么时候该用。

触发方式

常见有两种:

| 方式 | 说明 |

| :--- | :--- |

| 显式触发 | 用户在提示词里点名或用 $skill-name |

| 隐式触发 | Codex 根据 description 判断当前任务适合某个 Skill |

新手建议先显式触发。比如:

`bash

$bugfix-flow 修复登录页手机号校验问题。

`

等你确定 Skill 描述写得足够准确,再依赖隐式触发。

什么时候适合做成 Skill

适合:

  • 高频出现。
  • 步骤稳定。
  • 验收标准明确。
  • 能跨多个任务复用。
  • 不依赖当前一次任务的临时细节。

比如:

| 任务类型 | 是否适合 Skill |

| :--- | :--- |

| 修 Bug 标准流程 | 适合 |

| 发布前检查流程 | 适合 |

| 代码审查流程 | 适合 |

| 只把一个按钮改成蓝色 | 不适合 |

| 当前页面的临时文案要求 | 不适合 |

总结

读完后你应该能说清楚:

  1. Skill 解决什么问题。
  2. 2. Skill 和提示词有什么区别。

    3. Skill 和 AGENTS.md 有什么区别。

    4. Skill 和 MCP 有什么区别。

    5. 为什么 description` 很重要。

    下一篇看:什么时候应该做 Skill,什么时候继续用提示词。