你可能以为,写第一个 Skill 最难的是学会 SKILL.md 怎么写。
其实不是。
SKILL.md 看着像技术文件,但这部分最不用你操心。格式、字段、目录、排版,Codex 都会。真正难的是把你脑子里那套“我平时就是这么做的”,说成一组别人也能照着执行的规则。
先把一个误区拆掉:你会判断,不代表 Codex 会复用你的判断。
比如,一篇稿子哪里虚、会议纪要漏了哪个待办、prompt 为什么跑偏,你通常一眼能看出来。但写 Skill 不能只写结论,要把判断依据写出来:你看哪些信号、缺了什么就放进待确认、什么情况必须停下来问。
所以不要写这种规则:
帮我整理得清楚一点。
这句话太空。Codex 会按通用理解去整理,最后给你一份格式整齐、语气礼貌的东西。但哪些决定必须保留、哪些内容要放进待确认、哪些表达不符合你的习惯,它还是不知道。
这一篇只解决一个问题:把这套判断依据写进当前项目的 Skill 文件。不是让 Codex 在聊天里生成一段草稿,而是让项目里真的多出一个下次还能继续调用的 SKILL.md。
按下面五步走:
- 先定题目高度。
- 让 Codex 访谈你。
- 让 Codex 在当前项目里落文件。
- 立刻用 prompt-review 压一遍。
- 拿真实素材跑一遍。
别跳步。前面没定准,后面会写散;没有真实素材验证,Skill 看起来能用,实际使用时还是会跑偏。
第一步:先把题目高度定准
一个 Skill 最怕两种死法。
第一种是太窄。你把它写成“飞书会议聊天记录整理”,结果下次别人给你一段录音转写,Codex 想不起来用它。
第二种是太宽。你把它写成“资料整理”,结果会议纪要、读书笔记、销售线索、周报复盘全往里塞。最后这就不是 Skill,是大杂烩。
你要的是中间那一档:
| 题目 | 判断 |
|---|---|
| 飞书会议聊天记录整理 | 太窄 |
| 资料整理 | 太宽 |
| 会议记录整理 | 能用 |
先写三句话:
- 这个 Skill 处理:
[输入是什么] - 它产出:
[结果长什么样] - 它不处理:
[边界是什么]
比如:
- 这个 Skill 处理:会议录音转写、会议聊天记录、零散会议笔记
- 它产出:结构化会议纪要
- 它不处理:会议观点润色、战略判断、替负责人拍板
这三句话像给 Skill 画地盘。地盘太小,它出不了门;地盘太大,它开始乱跑。
判断标准很粗暴:
- 换一个同类输入,它还适用吗?
- 适用,就保留。
- 不适用,就太窄。
- 什么输入都适用,就太宽。
如果你卡住,别自己闷头想。直接把这一步丢给 skill-domain-framing。
安装 skill-domain-framing
安装 Tranfu 库中的 skill-domain-framing skill 到项目中安装 Tranfu 库中的 skill-domain-framing skill 到项目中
还是以之前的会议纪要为例,你只需要这样说
创建skill
---
凡是涉及多人协作的会议,纪要必须在会后 24 小时内整理出行动项,每个行动项都要包含负责人、截止时间、交付物和确认人;没有负责人或截止时间的事项不能进入待办列表,内容是当提到小王的时候,就合并进他的工作安排中,工作安排通常在项目路径下的week-jobs/xiaowang.md中创建skill
---
凡是涉及多人协作的会议,纪要必须在会后 24 小时内整理出行动项,每个行动项都要包含负责人、截止时间、交付物和确认人;没有负责人或截止时间的事项不能进入待办列表,内容是当提到小王的时候,就合并进他的工作安排中,工作安排通常在项目路径下的week-jobs/xiaowang.md中然后AI会加载对应的Skill

这时候你会发现它自动就帮你锁定比较合适的领域来定义你的skill了

第二步:让 Codex 访谈你
AI有一个毛病是做得太快想得太少,刚刚它直接全流程走完直接就生成了一个Skill,但实际上还有很多不清楚的地方
这个事情的时候就需要你对AI说
根据我最开始的描述,通过提问的方式帮我细化各种不明确的地方,在选项中你会帮我思考几个可能的选择和最推荐的选择以(推荐)为开头来标注根据我最开始的描述,通过提问的方式帮我细化各种不明确的地方,在选项中你会帮我思考几个可能的选择和最推荐的选择以(推荐)为开头来标注
跟AI一起思考把各个流程细化,越贴合你们的真实场景,这个Skill就越有用
第三步:确认 Skill 创建的位置
你可能注意到了,我们一路创建Skill下来,没有指定在哪里创建,那么这个Skill去哪了?
告诉我这个Skill在哪,路径是什么告诉我这个Skill在哪,路径是什么
路径在我们项目文件夹下的 .codex/skills/organize-meeting-actions
第四步:立刻用 prompt-review 测一遍
现在我们已经写好初始版本了,但是是以我们自己的视角,尽可能还原工作流等等约束来写的,这就一个问题
后面是AI读取它之后不一定会完全按照它的来,这就需要我们略微修改它里面的措辞和全篇的结构
这里我们直接用tranfu库中的prompt-review来帮我们做这一步即可
用tranfu skill 中的 prompt-review skill来审核它用tranfu skill 中的 prompt-review skill来审核它
没有安装这个Skill也没有关系,AI会自动帮我们安装,最后执行过是这样

具体的修改你可以点击这里已编辑Skill看到,你会看到它做的修改一般是:
- 一类改动是把具体的一些单词变成大写,这是因为关键的NOT这类单词大写之后在大模型读取的权重会更高一些,更能够听从指令
- 还有一类改动增加正例与反例,这是因为你告诉AI一些抽象约定它理解的意思可能和你表达的意思有很多不一致的地方,这个时候就需要正例与反例对齐你们的理解

第五步:拿真实素材跑
到这里,Skill已经写好了,也优化过一遍了。现在才轮到测试。
回顾一下我们的skill的目标
凡是涉及多人协作的会议,纪要必须在会后 24 小时内整理出行动项,每个行动项都要包含负责人、截止时间、交付物和确认人;没有负责人或截止时间的事项不能进入待办列表,内容是当提到小王的时候,就合并进他的工作安排中,工作安排通常在项目路径下的week-jobs/xiaowang.md中
那么当我们提供一个新的会议纪要的时候,AI应该识别里面小王的内容,然后把他对应的工作写进week-jobs/xiaowang.md中
下面是我们的案例:
会议案例:小程序改版排期讨论
小张:今天我们主要确认小程序改版的排期。首页、活动页和数据埋点都要同步推进,先听一下进度。
小丽:设计稿已经完成七成,首页结构没问题,但活动页的优惠规则还没最终确认。我需要运营在明天下午前给到完整文案和规则。
小王:开发这边可以先做首页和基础组件,活动页等规则确定后再接入。现在风险主要是接口字段不稳定,如果后端本周五前不能定稿,下周联调会被影响。
小张:后端我来协调。小王,你先按现有字段做 mock,不要等接口完全完成。
小王:可以。我今天会把组件拆分方案发出来,明天开始写首页,预计三天完成第一版。
小丽:我会在今晚补齐首页细节,包括空状态、加载状态和错误提示,避免开发时反复确认。
小张:很好。那结论是:小丽明晚前交完整设计细节,小王本周完成首页开发,我负责推动接口定稿。周五下午我们开一次短会,只看阻塞项,不重新讨论方案。会议案例:小程序改版排期讨论
小张:今天我们主要确认小程序改版的排期。首页、活动页和数据埋点都要同步推进,先听一下进度。
小丽:设计稿已经完成七成,首页结构没问题,但活动页的优惠规则还没最终确认。我需要运营在明天下午前给到完整文案和规则。
小王:开发这边可以先做首页和基础组件,活动页等规则确定后再接入。现在风险主要是接口字段不稳定,如果后端本周五前不能定稿,下周联调会被影响。
小张:后端我来协调。小王,你先按现有字段做 mock,不要等接口完全完成。
小王:可以。我今天会把组件拆分方案发出来,明天开始写首页,预计三天完成第一版。
小丽:我会在今晚补齐首页细节,包括空状态、加载状态和错误提示,避免开发时反复确认。
小张:很好。那结论是:小丽明晚前交完整设计细节,小王本周完成首页开发,我负责推动接口定稿。周五下午我们开一次短会,只看阻塞项,不重新讨论方案。
你会看到AI已经加载了我们的Skill,并正确修改了xiaowang.md,具体内容点击之后可以查看得到,

这一篇你真正完成了什么
你不是学会了写一个文件。
你是把一段每次都要重新解释的工作方法,搬进了当前项目。
以前你每次都要说:
- 这个会议纪要按我们那个格式来。
- 没有负责人别乱写。
- 没拍板的别写成结论。
- 不确定先问我。
现在这些话进了 SKILL.md。下次在同一个项目里,Codex 不需要你从头讲一遍。
这就是 Skill 和普通 prompt 最大的区别。
prompt 像一句临时吩咐,说完就散。
Skill 像贴在项目墙上的规矩。对话换了,任务换了,只要项目还在,那张规矩还在。
最后只记这条路径:
skill-domain-framing定高度- Codex 访谈你
- Codex 在当前项目落文件
prompt-review立刻优化- 真实素材跑两轮
写 Skill 不是把话说得更漂亮。
是把话说到下次不用再说。