OpenSpec:先对齐规范再写代码,别让 AI 猜你的需求

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 stars45.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

相关文章