OpenSpec:先对齐规范再写代码,别让 AI 猜你的需求
OpenSpec 是一个面向 AI 编码助手的规范驱动开发(SDD)框架。它通过一层轻量级的规范文件,让你和 AI 在生成代码之前就先对齐需求、设计和任务。该项目在 GitHub 拥有 45.8k star,支持 25+ 种 AI 编码工具。
你的 AI 编码助手上周搭的功能,你到现在还在修。bug 不在 AI 的代码里,在你的 prompt 里。你用三条聊天消息描述了要什么,AI 用看似合理的假设填补了你没说的部分,而从头到尾没有人检查过那些假设是否成立。AI 辅助开发里最贵的 bug,就是正确地做了一件错误的事。
为什么基于聊天的编码不可靠
基于聊天的开发把需求当聊天记录用。这个做法写五行脚本没问题。当你在改支付系统、加多租户认证、或者跨三个服务重构数据管道的时候,它就不行了。AI 没有一份系统应该怎么运行的持久记录——它只有你最近几条消息,而等你切到下一个任务的时候,这些消息已经滚出上下文窗口了。
OpenSpec 加的是一层轻量级规范:一个 markdown 文件目录,你和你的 AI 在生成代码之前先对齐需求、设计和任务。每个变更一个独立目录,包含 proposal(为什么要做)、delta spec(相对于当前行为改了哪些)、design(怎么做)、tasks(步骤清单)。AI 读取这些 artifact 来理解你要什么;你审核它们来确认 AI 理解对了。核心工作流是:提交规范提案、按任务清单实现、归档时合并 delta 到主规范。
核心概念是 delta spec。不需要每次都重写完整规范,你只描述新增、修改、移除了什么。两个变更碰同一个 spec 不会冲突,只要它们改的是不同 requirement。当一个变更完成并归档,delta 会合并到主 spec 里——你的系统真理源随着每次变更有机生长。
OpenSpec 与纯聊天的对比
| 对比维度 | 纯聊天式编码 | OpenSpec(规范驱动) |
|---|---|---|
| 需求存储 | 聊天记录(随时滚出上下文) | 持久化的 markdown 文件 |
| 变更追踪 | 无(每轮会话从头开始) | Delta spec(新增/修改/移除) |
| AI 工具支持 | 限当前会话 | 25+ 工具,通过斜杠命令 |
| 代码前审核 | 无 | 先评审 proposal + specs |
| 审计历史 | 清除上下文即丢失 | 归档至 changes/archive/ |
| 并行变更 | 不支持 | 多变更目录,互不冲突 |
| GitHub stars | — | 45.8k |
| 协议 | — | MIT |
什么时候该用(什么时候不该用)
OpenSpec 最适合跨多个文件的功能开发,涉及你希望在提交前审核的行为变更。流程是:探索、对齐规范、实现、归档。它集成 Cursor、Windsurf、Claude Code、GitHub Copilot、Cline 等工具,通过 /opsx:propose、/opsx:apply、/opsx:archive 等斜杠命令操作。
它不替代代码审查、测试或 CI。如果你的团队瓶颈是部署速度而不是需求清晰度,它帮不上忙。对于每小时需求都在变的原型,artifact 的维护成本会拖慢你。当误解的成本超过文档的成本时再用它。
大多数 AI 编码工具优化的是速度。OpenSpec 优化的是正确性。需要前者的项目你一眼能看见。需要后者的项目,是那些活下来的。
安装与快速上手
需要 Node.js 20.19.0+。全局安装后,在项目目录初始化:
npm install -g @fission-ai/openspec@latest
cd your-project && openspec init
向 AI 助手发送指令发起变更:
/opsx:propose add-payment-webhooks
AI 会在 openspec/changes/add-payment-webhooks/ 下创建 proposal、specs、design、tasks。审核这些 artifact 后执行:
/opsx:apply
AI 按任务清单逐步实现。完成后归档:
/opsx:archive
Delta spec 合并到 openspec/specs/,变更目录移入 openspec/changes/archive/,你的规范现在描述的是更新后的系统。升级 npm 包后定期执行 openspec update 刷新 AI 引导指令。
常见问题
OpenSpec 是什么? OpenSpec 是一个面向 AI 编码助手的规范驱动开发框架。它用 proposal、delta spec、design doc、task checklist 等 markdown 文件对 AI 代码生成进行结构化约束。
支持哪些 AI 工具? 支持 25+ 种工具,包括 Cursor、Windsurf、Claude Code、GitHub Copilot、Cline、Codium、Continue.dev 等,不绑定特定 IDE 或模型。
需要改变现有工作流吗? 核心流程增加三步:propose(/opsx:propose 定义意图)、apply(/opsx:apply 逐步实现)、archive(/opsx:archive 合并规范)。现有代码审查和 CI 流程不变。
只能用于新项目吗? 不是。OpenSpec 专为已有代码库的修改场景(brownfield)设计。Delta spec 描述相对当前行为的变更,比全量重写更适合修改工作。
和传统规范工具比有什么区别? OpenSpec 强调灵活迭代而非刚性阶段。没有强制创建的 artifact 顺序,使用 markdown 文件,集成团队已在用的 AI 工具。
OpenSpec 不是项目管理工具。它是你和 AI 之间的一份合约——一种轻量级的、在代码诞生前就对齐”要建什么”的方式。如果你已经厌倦了在代码审查时才发现 spec 级别的 bug,你已经知道自己需不需要它了。
GitHub: https://github.com/Fission-AI/OpenSpec 许可证: MIT