OpenSpec:给 AI 编程加一层轻量规格契约

💡 原文中文,约9100字,阅读约需22分钟。
📝

内容提要

OpenSpec 是一个开源规格驱动开发框架,旨在解决AI编程中的需求对齐问题。它通过Markdown规格文档和变更文件建立“同意层”,让AI先规划再写代码。核心工作流包括探索、提议、实施和归档,支持30多种AI工具,特别适合存量项目,通过增量描述降低引入成本。

🔎

延伸解读

为什么“增量规格”对存量项目友好

OpenSpec 的核心技巧是只描述变化(delta),而不是重写整个规格。对于几十万行的老项目,你不需要先为整个系统写文档,只需为正在修改的那一小块行为(如 auth/session-expiry)写 ADDED/MODIFIED 增量。这样,一个 change 一个 change 地引入规格,降低了采用门槛,避免了“先写全量文档”的巨大成本。

“助推器而非闸门”的实践含义

OpenSpec 强调工作流是流动的,proposal → specs → design → tasks 的顺序只是建议,不是强制。实现中发现设计错误,可以直接修改 design.md 继续;范围需要调整,回头更新 proposal。这种设计避免了传统瀑布流程的僵化,但代价是需要开发者自律,保持 change 的聚焦,否则容易蔓延失控。

与 AGENTS.md 的区别:规矩 vs 现实

AGENTS.md 是仓库级别的静态规则,告诉 AI“本项目用 Prettier”等约定;而 OpenSpec 的 specs 是行为层面的、当前有效的规格,通过 archive 循环维护,描述系统“现在如何工作”。两者正交:AGENTS.md 管“规矩”,OpenSpec 管“现实”,可以同时使用。

工具适配的多样性

OpenSpec 支持 30+ 种 AI 工具,但不同工具的 slash 命令拼法不同:Claude Code 用 opsx:propose,Cursor 用 opsx-propose,Amazon Q 用 @opsx-propose。init 时会根据所选工具生成对应的命令文件,确保你在自己的工具里能直接使用。这种适配降低了切换工具的迁移成本。

Q&A

OpenSpec 是什么?它主要解决什么问题?

OpenSpec 是一个开源的规格驱动开发框架,由 Fission-AI 维护。它在人和 AI 之间增加一层轻量级的“同意层”,通过 Markdown 规格文档和变更文件,让 AI 在写代码之前先与人类对齐需求,解决 AI 编程中的需求对齐问题。

OpenSpec 的核心概念有哪些?

OpenSpec 的核心概念包括:Specs(规格)——描述系统当前行为的 Markdown 文档,按能力组织在 openspec/specs/ 目录;Changes(变更)——每项工作独立一个文件夹,包含 proposal、design、tasks、delta specs 四个产物;Delta(增量)——只描述 ADDED / MODIFIED / REMOVED 的差异,不重写整份规格。

OpenSpec 的工作流程是怎样的?

OpenSpec 的工作流程包括四个步骤:1. Explore(可选)——思考与选项;2. Propose——AI 起草 proposal、spec、design、tasks;3. Apply——按任务清单实现,可随时回改;4. Archive——将 delta 合并进主规格,变更归档。

OpenSpec 支持哪些 AI 工具?

OpenSpec 支持 30 多种 AI 工具,包括 Claude Code、Cursor、Codex、Gemini CLI、Copilot、亚马逊 Q、Devin、Kilo Code、Trae 等。

OpenSpec 如何适用于存量项目(棕地项目)?

OpenSpec 通过 Delta 规格机制适用于存量项目:不需要先写出整个系统的规格,只需为正在修改的那一小块行为写 ADDED/MODIFIED delta 即可。这样 50,000 行的老应用可以一个 change 一个 change 地引入规格,而无需先停下来写全量文档。

OpenSpec 与 Superpowers 有什么区别?

OpenSpec 和 Superpowers 都强调“先对齐再写代码”,但路径不同:Superpowers 侧重工程纪律(如 TDD、code review、worktree),载体是 Skills 和 bootstrap 自动触发;OpenSpec 侧重行为规格与 Delta 变更状态管理,载体是 Markdown 规格和 Slash 命令。两者可以组合使用:OpenSpec 管“做什么”,Superpowers 管“怎么做”。

如何安装和初始化 OpenSpec?

安装 OpenSpec 需要 Node.js 20.19.0 及以上版本。全局安装命令为 `npm install -g @fission-ai/openspec@latest`,然后在项目目录运行 `openspec init`,选择要集成的 AI 工具(如 claude、cursor、codex 等),初始化后即可在 AI 工具中使用 /opsx:* 系列命令。

OpenSpec 的规格文件格式是怎样的?

OpenSpec 的规格文件是纯 Markdown,无特殊语法。例如,新增需求使用 `## ADDED Requirements`,修改使用 `## MODIFIED Requirements`,删除使用 `## REMOVED Requirements`。需求使用 MUST/SHALL、SHOULD、MAY 等关键词表示强度,场景使用 Given/When/Then 格式。

🏷️

标签

➡️

继续阅读