AI 辅助软件开发中最大的问题不是代码质量——而是对齐。AI 编码助手在生成代码方面非常出色,但同样擅长生成实际上并未解决用户问题的代码。它们误解需求、幻觉功能,并为不存在的问题构建复杂的解决方案。OpenSpec 以一个规格驱动开发(SDD)框架正面解决这个对齐问题,该框架已吸引超过 37,000 个 GitHub 星标。
由 Fission AI 创建,OpenSpec 建立在一个简单但具变革性的前提上:开发者与 AI 助手应该在写下一行代码之前就对要构建的内容达成共识。该框架强制执行五步工作流——规格、计划、代码、审查、提交——这反映了专业软件工程的结构化思维,但以 AI 的速度执行。每个步骤都会产生人类与 AI 都能检查、批评与改进的产物。
OpenSpec 与其他 AI 编码框架的区别在于其强调「规格优先」的开发。OpenSpec 不是将规格视为在代码生成后消失的一次性提示,而是将规格视为一个持久文档,会持续存在、进化,并作为整个开发生命周期的事实来源。这种方法消除了困扰提示驱动开发的「幻觉税」,即 AI 自信地构建从未被要求的功能。
graph LR
A[规格] --> B[计划]
B --> C[代码]
C --> D[审查]
D --> E{通过?}
E -->|是| F[提交]
E -->|否| A
F --> G[Delta 规格]
G --> BOpenSpec 的五步工作流如何工作?
OpenSpec 的核心创新是其结构化、门控的工作流。每个步骤产生特定的产物,如果任何门失败,流程就会停止。
| 步骤 | 发生什么 | 产生的产物 | AI 角色 |
|---|---|---|---|
| 规格 | 与 AI 协作撰写详细规格 | spec.md,附带验收标准 | 提出澄清问题,建议边缘情况 |
| 计划 | 规划文件变更与架构 | plan.md,附带逐文件变更列表 | 分析现有代码库,提议实现顺序 |
| 代码 | 逐行执行计划 | 修改后的源文件 | 以自动护栏编写代码 |
| 审查 | AI 根据规格审查自己的输出 | review.md,每个需求标记通过/失败 | 自我批评,识别规格违规 |
| 提交 | 生成结构化提交信息 | 附带变更日志的提交 | 摘要变更,链接到规格章节 |
规格步骤是创造大部分价值的环节。OpenSpec 的引导式规格流程促使开发者在 AI 写任何代码之前思考边缘情况、错误处理与验收标准。这种前期投入通过防止 AI 编码最常见的失败模式——构建了错误的东西——而获得丰厚回报。
Delta 规格如何保持工作流的迭代性?
规格驱动开发的一个担忧是规格会变得僵化。OpenSpec 通过「delta 规范」的概念解决了这个问题——轻量级的更新,仅描述与上一份规格的差异。
flowchart TB
subgraph 初始[第一次迭代]
A1[撰写完整规格] --> B1[实现]
B1 --> C1[审查]
end
C1 --> D{需要变更?}
D -->|是| E[撰写 delta 规格]
E --> F[仅描述变更:\n内容、原因、影响]
F --> B1
D -->|否| G[部署]| 概念 | 完整规格 | Delta 规格 |
|---|---|---|
| 长度 | 全面文档 | 2-5 段落 |
| 范围 | 整个功能或模块 | 仅特定变更 |
| 上下文 | 提供完整需求 | 引用先前的规格章节 |
| 最佳用途 | 新功能、初始实现 | 错误修复、范围调整、改进 |
Delta 规格保持了工作流的敏捷性。开发者无需更新单一的整体规格文档,而是撰写小而精确的 delta 规格,描述变更的内容与原因。AI 会自动将 delta 合并到其对完整规格的理解中,无需手动重写文档即可维护完整的图像。
哪些 AI 工具可与 OpenSpec 搭配使用?
OpenSpec 故意设计为工具无关,可与任何能执行 shell 命令的 AI 编码助手配合使用。
| 工具 | 集成方法 | 与 OpenSpec 搭配的优势 |
|---|---|---|
| Claude Code | 基于 CLI,执行 OpenSpec 命令 | 最佳规格撰写辅助,自然语言改进 |
| Cursor | IDE 内的终端 | 在规格与代码之间无缝切换上下文 |
| Windsurf | CLI 搭配编辑器集成 | 搭配 OpenSpec 护栏的结对编程表现良好 |
| Aider | CLI 搭配 Git 集成 | 通过规格重构现有代码库表现突出 |
| 任何 LLM CLI | 手动编辑规格文件 | 可与任何工具搭配,无锁定 |
OpenSpec 通过基于文件的规范文档进行通信,而非依赖工具特定的 API。这意味着您可以使用 Claude Code 启动项目,切换到 Cursor 进行调试,并使用 Aider 完成——全程保持规格的连续性。仓库中的规格文件可作为所有工具与团队成员的共同事实来源。
OpenSpec 与其他方法相比如何?
AI 编码领域已分裂为相互竞争的方法论。OpenSpec 在严谨性与速度的交汇处占据了一个特定的利基。
| 方法 | 示例工具 | 规格严谨度 | 速度 | 最佳用途 |
|---|---|---|---|---|
| 提示驱动 | ChatGPT、直接提示 | 低 | 快 | 快速脚本、原型 |
| 代理循环 | Claude Code、Cursor Agent | 中 | 快 | 复杂多文件任务 |
| 规格驱动(SDD) | OpenSpec | 高 | 中 | 生产功能、团队项目 |
| TDD + AI | 测试驱动工作流 | 非常高 | 慢 | 关键任务系统 |
OpenSpec 的甜蜜点在于正确性重要但速度仍然关键的生产功能。该框架的结构化方法通过在规格阶段早期捕获错位,在写任何代码之前,就减少了 AI 编码的「来回」成本。
FAQ
什么是 OpenSpec? OpenSpec 是一个 AI 原生的规格驱动开发(SDD)框架,帮助开发者与 AI 助手在写代码之前就对要构建的内容达成共识。它拥有超过 37,000 个 GitHub 星标,使用结构化工作流:规格、计划、代码、审查与提交。该框架防止 AI 助手生成看似合理但实际上并未解决正确问题的常见失败模式。
OpenSpec 如何工作? OpenSpec 强制执行五步工作流:(1) 规格——与 AI 共同撰写详细规格,(2) 计划——生成包含文件变更映射的实现计划,(3) 代码——逐行执行计划,附带自动护栏,(4) 审查——AI 根据规格审查自己生成的代码,(5) 提交——生成结构化的提交信息。这种门控流程防止范围蔓延并捕获幻觉功能。
OpenSpec 支持哪些 AI 工具? OpenSpec 可与 Claude Code、Cursor、Windsurf、Aider 以及任何其他能执行 shell 命令的 AI 编码助手配合使用。该框架与 AI 工具无关——它通过基于文件的规范文档进行通信,而非依赖工具特定的 API。开发者可以在项目中途切换 AI 工具,同时保持规范的连续性。
如何安装 OpenSpec? 通过 npm 安装:’npm install -g openspec’ 或将其作为 CLI 工具使用。您也可以将其添加至项目:’npm install –save-dev openspec’。使用 ‘openspec init’ 初始化,并使用 ‘openspec start’ 开始会话。最低版本需要 Node.js 18+。
OpenSpec 中的 delta spec 是什么? Delta spec 是一种轻量级的规格更新,仅描述与上一份规格的差异。开发者无需为每次迭代重写整个规格文档,而是撰写 delta spec 来记录变更内容与原因。这保持了规格历史的完整性,并让 AI 能够理解需求的演变。
延伸阅读
- OpenSpec GitHub 仓库 – 源代码、问题与社区贡献
- OpenSpec 官方文档 – 完整工作流文档与最佳实践
- 规格驱动开发论文 – 支撑 SDD 方法论的学术框架
- Aider AI 结对编程 – 与 OpenSpec 有良好集成的互补 AI 编码工具
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!