跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言Node.jsAI

OpenSpec 实战:用规范驱动开发优化 AI 编程协作

OpenSpec 是一种面向 AI 编程助手的规范驱动开源开发框架,通过共识规范、AI 执行、自动验证的闭环流程,帮助团队明确需求并降低指令歧义。文章介绍了其核心理念、适用场景及项目实战步骤,包括环境配置、初始化命令、文件结构说明以及使用斜杠命令进行需求提案、执行与归档的具体操作。最后阐述了规范驱动的原理,强调其核心价值在于建立规范、产生文档并记录变更,而非直接解决业务逻辑难题。

竹影清风发布于 2026/2/9更新于 2026/7/2447 浏览
OpenSpec 实战:用规范驱动开发优化 AI 编程协作

1. 前言

什么是规范 (Spec) 驱动开发?

我们可以了解规范驱动开发的流程。

文章配图

为什么要用 Spec?

文章配图

OpenSpec 是一种规范驱动(spec-driven)的开源开发框架,主要面向 AI 编程助手(如 Claude Code、GitHub Copilot、Cursor 等)而设计。它通过在「共识规范 → AI 执行 → 自动验证」的闭环流程,帮助团队在 AI 参与的代码开发过程中明确需求、降低指令歧义、提升代码可追溯性与可维护性。

核心理念与工作流
  1. 共识规范(Spec):先由人类与 AI 共同撰写结构化的需求规范(包括功能描述、输入/输出、边界条件、测试用例等)。
  2. AI 执行:AI 根据规范自动生成代码、文档或变更提案。
  3. 自动验证:框架内置的验证器会依据规范中的测试用例对生成的代码进行自动化检查,确保实现符合预期。
  4. 迭代与归档:通过审查、计划、实现、归档等步骤形成完整的变更历史,便于后续审计与迭代。

文章配图

它为 AI 编程工具(Claude Code、Cursor、Codex、OpenCode、windsurf 等)提供一种标准化的方式:

  • 让 AI 生成、跟踪、验证、归档 功能变更;
  • 把'功能需求 → 任务分解 → 实现 → 验收'全流程结构化;
  • 实现 AI 与人协同开发 的一致性。

🧠 核心理念:

'让 AI 先写清楚规范(spec)再写代码',而不是盲目凭 prompt 去写。

文章配图

适用场景
  1. 新项目
  2. 功能增强(迭代项目)
  3. 多人协作

该框架在功能增强和多人协作开发中价值较高,尤其是大型项目很多都是基于原有项目扩展和改造。之前由于模型上下文的问题导致很多企业级项目以及一些老旧项目升级改造 AI 就变得难以搞定。另外 AI 开发的项目多人协作也是比较难搞定的。这个项目刚好解决这两个问题。

2. 项目实战

安装 Trae IDE

访问 https://www.trae.cn/ 下载并安装到本地。

2.1 安装 OpenSpec

我们在终端命令行输入下面命令安装 OpenSpec。

先决条件

Node.js >= 20.19.0

步骤 1:全局安装 CLI

npm install -g @fission-ai/openspec@latest

验证安装:

openspec --version

文章配图

步骤 2:在项目中初始化 OpenSpec

导航到您的项目目录:

cd my-project

openspec init

初始化过程中会发生:系统会让你选择所用的 AI 工具(Claude Code / Cursor / OpenCode / Codex);自动在项目中创建 openspec/ 目录;生成托管文件 AGENTS.md,用于不同 AI 工具共享说明;为所选 AI 工具自动配置 /openspec 的斜杠命令(slash commands)。

这个文件夹主要有以下几个文件和内容:

openspec/
├── specs/ # 规范目录(存放各类正式规范文档)
│   └── auth/ # 认证相关规范子目录
│       └── spec.md # 当前认证规范文档(若存在)
└── changes/ # 变更目录(存放规范的修改提案与增量内容)
    └── add-2fa/ # 新增双因素认证(2FA)的变更子目录(由 AI 创建完整结构)
        ├── proposal.md # 变更提案文档(说明为何修改、修改内容)
        ├── tasks.md # 实施任务清单(记录需完成的具体开发/修改任务)
        ├── design.md # 技术设计文档(技术方案决策,可选)
        └── specs/ # 变更对应的规范增量目录
            └── auth/ # 变更涉及的认证规范子目录
                └── spec.md # 规范增量文档(仅展示新增/修改的内容,即差异部分)

看到 openspec 根目录下有 AGENTS.md、project.md。这就是项目修改变更的依据,有了它,AI 就不会乱输入,尤其是对于变更项目这个是比较友好的。

AGENTS.md、project.md 默认的这 2 个文件是英文的,我们把它翻译成中文。

OpenSpec 支持多种开发工具,我这里使用 Qwen Code。

这个目的主要是在项目中创建一个新的 openspec/ 目录结构,这个方便后面基于这个来控制项目。

显示的过程如下:

文章配图

文章配图

中文转换

我们输入下面提示词:

请帮我把 openspec 文件夹下 AGENTS.md、project.md 内容翻译成中文

文章配图

再把另外 2 个文件也转换成中文的:

请帮我把 AGENTS.md 和 QWEN.md 内容翻译成中文

文章配图

需求收集整理

openspec 主要的流程如下:

  1. 起草一份变更提案,明确你期望的规范更新内容。
  2. 与 AI 助手一同审核该提案,直至各方达成一致。
  3. 执行任务,过程中需参考已达成共识的规范文档。
  4. 对该变更进行归档,将已批准的更新内容合并回基准规范文档中。

文章配图

使用

  • 主动方式

使用 AI 编程工具的自定义命令,比如 cursor, windsurf, auggie 等:

/openspec:proposal 创建需求
/openspec:apply 执行需求
/openspec:archive 归档需求
  • 被动方式

使用关键词,比如 spec, proposal 等触发创建规格文件。

开发

接下来我们需要简单来完成一个需求:

/openspec:proposal 请基于雪花 id 的知识以及雪花.md 的内容,帮我完成功能开发。请不要先代码,先把需求整理好,结合原来的项目梳理项目新增的变革需求。

输出如下:

文章配图

再次执行:

/openspec:apply

文章配图

项目归档

上面的新增加的需求变更已经完成。接下来我们需要执行第三命令 /openspec:archive,对执行新增功能进行归档操作方便后面修改新功能对归档文档进行阅读。

我们同样执行下面命令:

/openspec:archive

文章配图

AI 执行完成后我们看到下面归档信息。

本次新增需求就开发完成了。上面的文档信息和修改的代码提交代码仓库,其他小伙伴也可以依据已经修改的功能继续开发新的功能点了。

什么时候该使用 Spec?

文章配图

OpenSpec 规范驱动的原理是什么?

怎么触发的

执行完 openspec init 之后会生成几个重要的文件 (命令/工作流):

  • Agents.md
  • openspec-apply.md
  • openspec-proposal

怎么使用

  • 使用关键词触发,比如 proposal, spec 之类的
  • 使用 slash command(需要 AI 编程工具支持)指定触发,claude code 比较特殊,'/'命令后,收入输入,不要直接 enter 键
  • 引用文件到对话框中,主要针对不支持 Agents.md、Claude.md 以及 slash command 的工具

生成格式

  • 执行 openspec init 命令后,会生成如下的目录结构:
openspec/
├── project.md # 项目约定
├── specs/ # 当前真实情况 - 已构建的内容
│   └── [capability]/ # 单一聚焦能力
│       ├── spec.md # 需求和场景
│       └── design.md # 技术模式
├── changes/ # 提案 - 应该变更的内容
│   ├── [change-name]/
│   │   ├── proposal.md # 为什么、什么、影响
│   │   ├── tasks.md # 实施检查清单
│   │   ├── design.md # 技术决策(可选;见标准)
│   │   └── specs/ # 增量变更
│   │       └── [capability]/
│   │           └── spec.md # ADDED/MODIFIED/REMOVED
│   └── archive/ # 已完成的变更

proposal.md:

## Why(为什么) [关于问题/机会的 1-2 句话]
## What Changes(变更内容)
- [变更项目列表]
- [用 **BREAKING** 标记破坏性变更]
## Impact(影响)
- 受影响的规范:[列出能力]
- 受影响的代码:[关键文件/系统]

spec.md

## ADDED Requirements(新增需求)
### Requirement: 新功能
系统应当提供...
#### Scenario: 成功案例
- **WHEN** 用户执行操作
- **THEN** 预期结果
## MODIFIED Requirements(修改需求)
### Requirement: 现有功能 [完整的修改后需求]
## REMOVED Requirements(移除需求)
### Requirement: 旧功能
**Reason(原因)**: [为什么移除]
**Migration(迁移)**: [如何处理]

如果影响多个能力,在 changes/[change-id]/specs/<capability>/spec.md 下创建多个增量文件 - 每个能力一个。

tasks.md:

## 1. 实施
- [ ] 1.1 创建数据库模式
- [ ] 1.2 实现 API 端点
- [ ] 1.3 添加前端组件
- [ ] 1.4 编写测试

在需要时创建 design.md:

如果满足以下任何条件,则创建 design.md;否则省略:

  • 跨领域变更(多个服务/模块)或新的架构模式
  • 新的外部依赖或重大数据模型变更
  • 安全、性能或迁移复杂性
  • 在编码前需要技术决策的歧义

最小 design.md 骨架:

## Context(背景) [背景、约束、利益相关者]
## Goals / Non-Goals(目标/非目标)
- Goals(目标):[...]
- Non-Goals(非目标):[...]
## Decisions(决策)
- Decision(决策):[什么和为什么]
- Alternatives considered(考虑的替代方案):[选项 + 理由]
## Risks / Trade-offs(风险/权衡)
- [风险] → 缓解
## Migration Plan(迁移计划) [步骤、回滚]
## Open Questions(开放问题)
- [...]
  • Spec 驱动不是帮你解决'业务/逻辑/算法'难题

它不是解决难题,是建立规范,产生文档,记录变更。

目录

  1. 1. 前言
  2. 什么是规范 (Spec) 驱动开发?
  3. 为什么要用 Spec?
  4. 核心理念与工作流
  5. 适用场景
  6. 2. 项目实战
  7. 安装 Trae IDE
  8. 2.1 安装 OpenSpec
  9. 中文转换
  10. 需求收集整理
  11. 使用
  12. 开发
  13. 项目归档
  14. 什么时候该使用 Spec?
  15. OpenSpec 规范驱动的原理是什么?
  16. 怎么触发的
  17. 怎么使用
  18. 生成格式
  19. Why(为什么) [关于问题/机会的 1-2 句话]
  20. What Changes(变更内容)
  21. Impact(影响)
  22. ADDED Requirements(新增需求)
  23. Requirement: 新功能
  24. Scenario: 成功案例
  25. MODIFIED Requirements(修改需求)
  26. Requirement: 现有功能 [完整的修改后需求]
  27. REMOVED Requirements(移除需求)
  28. Requirement: 旧功能
  29. 1. 实施
  30. Context(背景) [背景、约束、利益相关者]
  31. Goals / Non-Goals(目标/非目标)
  32. Decisions(决策)
  33. Risks / Trade-offs(风险/权衡)
  34. Migration Plan(迁移计划) [步骤、回滚]
  35. Open Questions(开放问题)
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Dify MCP-Server 插件:将工作流发布为第三方可调用服务
  • CCF-GESP 2025 年 12 月 C++ 二级认证真题解析
  • Qwen-Image-2512 免费本地部署实战指南
  • 【JavaEE01-前端部分】从零入门HTML:从基础到实战,手把手教你写第一个网页
  • Vue 3 异步组件与动态加载实战:defineAsyncComponent、glob 与 Suspense
  • Whisper 语音识别本地化部署实战指南
  • 大语言模型大 Batch 训练临界 Batch Size 经验测量与优化策略
  • GitHub 与 Google 第三方登录 OAuth 配置指南
  • Rust 异步 Web 框架 Axum 的深入原理与高级用法
  • Vite 自动导入与组件命名配置实战
  • 字节跳动前端开发工程师面试指南与高频考点
  • Spring 事务及其传播机制详解
  • SketchUp STL 插件使用指南:设计与 3D 打印流程
  • 开源轻小说机翻机器人:从部署到架构解析
  • MySQL 权限管理与 C/C++ 客户端接入实战
  • 护网行动与红蓝对抗详解
  • 在 VSCode 本地跑 DeepSeek 的实用配置
  • C++ 核心语法与实战指南
  • 从零开始构建大型语言模型:理解基础与架构
  • Axios 错误处理的设计与进阶封装,实现网络层面的数据与状态解耦

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online