1. 为什么要把 SDD、OpenSpec、SuperPowers 放在一起用
大家有没有发现,2025 年的 AI 编程圈,聊得最多的已经不是“提示词写得好不好”,而是“怎么让 AI 别把项目改乱”。我自己的项目从 vibe coding 一路走过来,最后收敛到一套组合:SDD(Spec-Driven Development,规范驱动开发)作为方法论,OpenSpec 作为规范仓库和流程骨架,SuperPowers 作为编码 Agent 的技能增强层。今天这篇文章就把这套搭配的完整玩法和踩坑记录整理出来。
先说结论:这不是某个玩具框架的试用报告,而是一套已经能在真实全栈项目里稳定交付的协作方式。适合谁?适合被 AI 写出来的代码反复返工的个人开发者,也适合想让 AI 参与交付的 3 到 10 人小团队。整套东西没有一个环节依赖玄学,安装成本也不高,后面我会一步步演示。
1.1 从 vibe coding 到“写得越多,返工越多”
2025 年初我还挺迷 vibe coding 的,打开编辑器,给 Claude 丢一句话,看着它噼里啪啦生成几百行代码,那种爽感确实上头。但项目一复杂,问题就来了。你让 AI 加一个“用户备注”字段,它可能顺手改了列表页的排序逻辑,或者把另一个接口的返回结构给动掉,而且它不会主动告诉你。返工几次之后你会发现,问题不在于 AI 能力不够,而在于缺少一个约束它的“基准线”。
这个基准线,就是规范。规范不是写给人看的文档,而是给 AI 的行动边界。你定义好输入、输出、验收条件,它才不会在自由发挥的道路上越走越远。SDD 做的事情,就是把“先写规范,再写代码”这件事变成工程纪律,而不是靠运气。
我见过不少团队一开始对“写规范”特别抵触,觉得是流程绑架。但放到 AI 编程的场景下,规范其实是帮 AI 节省上下文、帮人节省返工时间的东西。AI 的上下文窗口再大,也装不下整个项目。如果有一个结构良好的规范文件,它只需要读那一个文件,就知道该动哪些文件、不该动哪些文件、做到什么程度算完成。
1.2 Birgitta Böckeler 的三级分类框架
SDD 不是新概念,但因为 AI 编程,它重新火了起来。今年我认真读了一遍 Thoughtworks 工程师 Birgitta Böckeler 提出的 SDD 三级分类框架,收获其实挺大。这个框架把“写规范”从“凭感觉”变成“分级别”,让团队可以根据功能风险选择到底写多细。
第一级,把“要做什么”写清楚。这是最基础的描述型规范,解决的是业务需求到功能列表的翻译问题。对 AI 来说,这一级能让它不跑题。比如“增加用户备注功能”,背后要包含字段、接口、页面入口,这些写清楚,AI 就不会把备注做成一个独立模块。
第二级,把“怎么实现”定下来。包括技术选型、模块划分、接口约定、数据模型。这一级解决的是多个文件、多个服务之间的协作问题。尤其在全栈项目里,AI 经常出现“前端调用的接口路径和后端定义的不一致”这类问题,根本原因就是实现层面的规范缺失。
第三级,把“怎么验收”变成可执行的检查。具体到测试用例、契约测试、性能指标。AI 实现完之后,可以自己跑检查,而不是靠人肉 Review 猜它有没有做对。我在实际操作中的习惯是:内部工具页面用第一二级,核心支付链路用第三级,甚至会把验收条件直接写成测试用例的标题。
1.3 SDD 到底解决了什么工程问题
SDD 这套方法论之所以在 AI 编程时代变得重要,是因为它精准踩中了几个痛点。
第一,上下文窗口有上限。AI 看不到整个代码库,它只能看到你喂给它的内容。规范文件相当于一张地图,让 AI 知道当前任务在全局中的位置。没有地图的 AI 就像只拿了几个文件就开始施工的装修队,很容易拆错墙。
第二,验收标准常常缺失。传统开发里,“做完”的定义经常在人的脑子里。AI 写代码时,如果 spec 里没有明确的验收条件,它就会用“看起来对”来代替“确实对”。比如字段长度限制、鉴权逻辑、边界条件,这些不写清楚,AI 基本不会主动处理。
第三,变更历史不可追溯。代码 diff 只能告诉你改了什么,不能告诉你为什么这么改。SDD 的 spec 文件记录了决策过程,将来 AI 再改这块代码时,可以直接读当时的 proposal,避免把别人有意设计的逻辑当成冗余代码删掉。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. OpenSpec:把规范变成可维护的工程资产
2.1 OpenSpec 是什么,为什么选它
OpenSpec 是一个基于 Markdown 的规范驱动开发框架,准确说是围绕 SDD 方法论打造的一套工程工具。它把规范文件组织成有结构的目录,再用命令行工具提供创建、校验、汇总的能力。你用纯文本写规范,它帮你管理规范的版本和流转。
我一开始也犹豫过,为什么要多引入一个工具,直接用 Markdown 文件夹
