你跟 AI 说"加个暗黑模式",它改了一堆文件,跑起来发现只改了按钮颜色,页面背景还是白的。你说"不对,是整个页面都要变暗",它又改一轮,结果把文字颜色也改黑了,黑底黑字完全看不见。
来回折腾五六轮,AI 都迷糊了,你也忘了最初想做成什么样。
问题出在哪?需求只存在于聊天记录里,没有形成清晰的规范。AI 每次都在猜你想做什么,猜错了就返工。
今天介绍的 OpenSpec,就是专门解决这个问题的。
Github:
什么是 OpenSpec
简单说,OpenSpec 是一个规范驱动开发框架,让你在写代码之前,先把需求、设计、任务清单都写清楚。AI 按照规范执行,而不是边聊边猜。
它被称为"最受喜爱的规范框架",核心理念是五个"而非":灵活而非僵化、迭代而非瀑布、简单而非复杂、适合存量项目而非只限新项目、从个人到企业都可用。
最新版本推出了 OPSX 工作流,把整个开发过程从"阶段锁定"改成了"行动驱动"。什么意思呢?以前是一旦开始写代码就不能回头改设计,现在是可以随时调整,持续迭代。
为什么需要规范驱动
传统的 AI 编程就像这样:
你在聊天框里描述需求,AI 一边理解一边写代码。聊着聊着,AI 忘了前面说的某个约束条件。或者你突然想到一个新需求,AI 又得重新理解上下文。最后代码改了一堆,但跟你想要的总有差距。
OpenSpec 的做法是先把规范写下来,让 AI 和人类在"动手写代码"之前就达成共识。
具体来说,每个功能变更都有一个独立的文件夹,里面包含:
- proposal.md —— 为什么要做这个,要解决什么问题
- specs/ —— 详细的需求规范和场景说明
- design.md —— 技术方案和设计思路
- tasks.md —— 具体的任务清单,拆成可执行的小步骤
AI 先读这些文档,理解清楚后再动手。如果中途发现设计有问题,直接改 design.md,然后继续执行,不需要从头来。
OPSX 工作流:从阶段到行动
OPSX 是 OpenSpec 最新重构的工作流,最大的变化是不再锁定阶段。
传统的工作流是这样的:规划阶段 → 实现阶段 → 完成。一旦进入实现阶段,想回头改设计就很麻烦。
OPSX 改成了行动驱动:提案 → 规范 → 设计 → 任务 → 实现。每个环节都可以随时回头修改。比如在实现过程中发现设计不合理,直接改 design.md,然后继续执行,AI 会从中断的位置继续,不会丢失进度。
这种设计的好处很明显:
- 渐进式生成 —— 不用一次性生成所有文档,先看提案,觉得方向对了再生成规范
- 更容易迭代 —— 发现问题随时调整,不用推翻重来
- 高度可定制 —— 工作流通过 YAML 和 Markdown 模板定义,团队可以根据自己的习惯调整
- 过程透明 —— AI 生成的内容不满意,可以直接改模板里的提示词
核心命令一览
OpenSpec 提供两种工作模式。默认是简化模式,只有四个核心命令:
/opsx:explore —— 探索式调研。当你不确定要做什么,只是有个模糊想法时,用这个命令让 AI 帮你梳理思路。
/opsx:propose —— 一键创建完整规划。输入你想做的功能,AI 自动生成提案、规范、设计、任务清单四个文档。
/opsx:apply —— 按任务清单执行开发。AI 读取 tasks.md,逐个完成任务,你可以看到进度和中间结果。
/opsx:archive —— 归档完成的功能。把变更记录存档,更新项目规范,为下一个功能做准备。
典型的工作流是:propose → apply → archive,三步完成一个功能。
如果你想要更细粒度的控制,可以切换到扩展模式,会有更多命令:
/opsx:new—— 创建变更脚手架/opsx:continue—— 逐步创建下一个文档/opsx:ff—— 快速创建所有规划文档/opsx:verify—— 验证实现是否完整/opsx:sync—— 手动合并规范更新
实际使用示例
来看一个完整的开发流程。
你想给网站加个暗黑模式,在 AI 对话框里输入:
/opsx:propose add-dark-mode
AI 会创建一个文件夹 openspec/changes/add-dark-mode/,里面包含:
- proposal.md —— 解释为什么要加暗黑模式,用户可以在亮色和暗色主题间切换
- specs/ —— 详细规范,包括切换方式、默认主题、持久化存储等
- design.md —— 技术方案,用 CSS 变量存储颜色值,通过 React Context 管理主题状态
- tasks.md —— 任务清单,拆成 4 个小任务:添加主题上下文、创建切换组件、添加 CSS 变量、接入 localStorage
你看完文档,觉得设计没问题,输入:
/opsx:apply
AI 开始逐个执行任务:
✓ 1.1 Add theme context provider
✓ 1.2 Create toggle component
✓ 2.1 Add CSS variables
✓ 2.2 Wire up localStorage
All tasks complete!
功能完成了,输入:
/opsx:archive
AI 把变更记录存档到 openspec/changes/archive/2025-01-23-add-dark-mode/,更新项目规范,准备开发下一个功能。
整个过程清晰可控,你知道 AI 在做什么,为什么这么做,做到了哪一步。
快速开始
安装 OpenSpec 很简单,需要 Node.js 20.19.0 或更高版本。
全局安装:
npm install -g @fission-ai/openspec@latest
进入你的项目目录,初始化:
cd your-project
openspec init
现在就可以告诉 AI 你的需求了:
/opsx:propose <你想做的功能>
如果你想用扩展模式,可以切换配置:
openspec config profile
openspec update
更新后会启用完整的命令集。
与其他方案的对比
OpenSpec 不是唯一的规范驱动方案,来看看它和其他方案的区别。
相比 Spec Kit(GitHub):Spec Kit 很全面但也很重量级,有严格的阶段门槛,需要 Python 环境。OpenSpec 更轻量,让你自由迭代。
相比 Kiro(AWS):Kiro 功能强大,但只能在他们自己的 IDE 里用,而且只支持 Claude 模型。OpenSpec 支持 20+ 种 AI 助手,用你习惯的工具就行。
相比没有规范:纯聊天的 AI 编程,需求全靠口头描述,结果不可预测。OpenSpec 带来了可预测性,但又不会像传统规范那样繁琐。
适合谁用
OpenSpec 的定位是让 AI 编程更靠谱,适合这些场景:
独立开发者 —— 一个人做项目,容易陷入"边想边做"的混乱。用 OpenSpec 先想清楚再动手,返工更少。
小团队 —— 多人协作时,规范文档是沟通的基础。每个人都能看到需求是什么,技术方案是什么,减少误解。
存量项目 —— OpenSpec 专为 brownfield(存量)项目设计,不需要重构现有代码,从下一个功能开始规范就行。
需要可维护性的项目 —— 如果你希望三个月后回头看代码,还能记得当时为什么这样设计,OpenSpec 的文档就是最好的注释。
Github:
写在最后
AI 编程工具越来越强大,但"强大"不等于"可控"。
OpenSpec 的价值在于在灵活性和规范性之间找到平衡。它不像传统规范那样僵化,也不像纯聊天那样随意。你可以随时调整规范,但调整是有记录的、可追溯的。
对于复杂功能,先写规范再写代码,看似多了一步,实际上省去了大量返工时间。更重要的是,它让 AI 从"猜你想做什么"变成了"按规范执行",结果更靠谱。
项目完全开源,免费使用。如果你也在用 AI 写代码,不妨试试这个框架,让开发过程更可控。
关注
如果这篇文章对你有帮助,欢迎点赞、收藏、转发。我会持续分享实用的开发工具和技术教程,关注我,一起提升开发效率。