Spec已死,Skills万岁——OpenAI Codex团队正在抛弃你熟悉的开发流程
Site Owner
Published on 2026-04-19
OpenAI Codex团队只写10条bullet就开干,Skills取代Spec成核心入口。本文解析开发流程的代际更迭:从写清楚要做什么,变成组合已有的能力。
Spec已死,Skills万岁——OpenAI Codex团队正在抛弃你熟悉的开发流程
最近 OpenAI Codex 团队的一次访谈里,有个观点让很多工程师不舒服:只有问题复杂到很难装进一个人脑子里时,才写 spec,而且即便写,也就 10 条 bullet。
这跟过去十年我们被教导的软件工程哲学完全相反。
1. 传统开发流程的三个隐含假设
过去我们写 spec,是因为我们默认:
- 人类会犯错误:spec 是跨越时间传递意图的唯一可靠载体
- 代码是事实:最终代码和原始设计必然产生偏差,spec 是校准工具
- 模块需要预先定义:接口、边界、数据流在上线之前就需要锁定
这套逻辑在人类开发者主导的时代没问题。但当 AI 开始写 90% 的代码时,这些假设开始失效了。
2. 为什么 spec 成了浪费?
OpenAI Frontier 团队 5 个月写了 100 万行代码,1500 个 PR,零人类编写。负责人 Ryan Lopopolo 的解释是:
当 AI 能够实时补全和纠正代码时,提前写清楚"要做什么"的 ROI 趋近于零。
这不是说规划不重要,而是规划的形式变了:
| 传统方式 | 新方式 |
|---|---|
| 写 50 行的 SPEC.md | 写 10 条决策原则 |
| 定义模块接口 | 定义 Skill 的边界和入口 |
| 人工 review 代码 | AI 验证 + 人类抽查 |
Skills 是这一转变的核心抽象。
3. Skills 是什么,为什么比模块更好用
Codex 团队提出的 Skill,不是某个代码文件或函数,而是一个可复用的能力组。它包含:
- 触发条件:什么情况下调用这个 Skill
- 执行边界:Skill 内部自主决策,不外溢
- 接口契约:输入输出用自然语言描述,而非接口签名
传统的模块强调"是什么"(数据结构+函数),Skill 强调"能做什么"(能力+场景)。
举个例子:
# 传统模块
class UserAuth:
def login(username, password) -> Token:
...
# Skill