做开发的朋友应该都有这体验:用AI写代码初期贼快,可需求藏在聊天记录里,改需求、加功能时AI写的代码要么跑偏,要么和现有代码揉成一团,最后越改越乱。而OpenSpec就是来解决这个问题的------它是轻量级的规范驱动开发工具,让人和AI先敲定"要做什么",再动手写代码。
核心就两点:openspec/specs/ 存当前系统的规范真相,openspec/changes/ 放待开发的变更提案,所有修改先提提案、定规范,再落地,全程可追溯、可评审。
核心工作流:四步走,简单不绕弯
不用记复杂步骤,核心就四步,全程AI能帮你生成大部分文件,不用手动敲:
- 写提案:告诉AI要加什么功能,AI自动生成变更文件夹,包含提案、任务清单、规范变更;
- 评审对齐:核对规范,和AI反复打磨,直到需求完全明确;
- 落地开发:AI按敲定的规范写代码,逐项完成任务;
- 归档更新:功能上线后,把提案归档,规范自动合并到主目录,更新系统真相。
实操例子:加个登录二次验证,5分钟定好规范
不用讲虚的,以给项目加登录OTP二次验证为例,看OpenSpec怎么用,全程用AI+几条命令搞定:
1. 初始化(项目首次用,一步到位)
bash
# 全局安装
npm install -g @fission-ai/openspec@latest
# 进入项目初始化
cd 你的项目
openspec init
选上你常用的AI工具(比如Cursor、vscode),工具会自动配置好快捷命令,项目根目录会多出openspec/文件夹。
2. 让AI生成变更提案
对着Cursor/Claude敲命令(不同工具命令稍不同,核心一致):
bash
/openspec:proposal 给登录加OTP二次验证
AI会自动在openspec/changes/下生成add-2fa/文件夹,里面包含:
proposal.md:说明为什么加、要实现什么效果;tasks.md:拆分好的开发任务(建表、写后端接口、改前端UI);specs/auth/spec.md:规范变更(只写新增/修改的内容,不是全量重写)。
如果想加验收条件,直接跟AI说:"给OTP验证加个场景:输错3次锁定5分钟",AI会自动更新规范和任务。
3. 让AI按规范写代码
敲命令启动开发,AI会按tasks.md逐项完成,还会标记进度:
bash
/openspec:apply add-2fa
4. 上线后归档,更新系统规范
sql
openspec archive add-2fa --yes
此时add-2fa的规范会合并到openspec/specs/auth/spec.md,后续谁看代码,都能从规范里清楚知道"为什么这么写"。
适合的场景:这些情况用,效率拉满
- 已有项目的功能迭代(1→n),尤其是跨模块修改
- 团队协作开发,需统一需求、追溯变更
- 团队混用多款 AI 编码工具,需统一输出标准
- 长期维护项目,需要可同步更新的 "活文档"
不适合的场景:别硬用,避免白忙活
- 0→1 的小 demo / 临时项目,需求简单
- 单人极短期开发,需求全在本地无需追溯
- 需求频繁无固定方向的快速迭代
- 小改动,要不然时间都花在生成文档上面了
总结
OpenSpec不是为了增加开发步骤,而是把"需求模糊"的坑提前填上------让AI和人在编码前达成共识,避免后续返工。它最适合做长期维护、团队协作的已有项目,能让AI编码的优势保留,同时解决"AI写的代码没章法、难维护"的问题。
如果你的项目正被AI编码的"不可控"困扰,不妨试试OpenSpec,先从一个小功能迭代开始,体验下"规范先行"的开发方式。