2025年10月21日-OpenSpec 实战:用规范驱动开发破解 AI 编程协作难题

2025年10月21日-OpenSpec 实战:用规范驱动开发破解 AI 编程协作难题

1.前言

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

核心理念与工作流

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

适用场景

1 新项目、2 功能增强(迭代项目)3、多人协作。 这个项目最有价值的我个人觉的应该是功能增强 和多人协助开发,尤其是大型项目很多都是基于原有项目扩展和改造。之前由于模型上下文的问题导致很多企业级项目以及一些老旧项目升级改造AI 就变得难以搞定。另外AI 开发的项目多人协作也是比较难搞定的。这个项目刚好解决这个2个问题。今天小编就带大家通过一个实战的项目来体验感受一下这个规范驱动开发的框架。

2 项目实战

被修改项目下载

我们先下载一个开源项目下面就拿jimeng-free-api-all 项目作为案例介绍

使用git clone 这个项目

git clone https://github.com/zhizinan1997/jimeng-free-api-all 
image-20251021154740605

完成代码下载

image-20251021154806006

我们使用vscode 打开这个项目

image-20251021154846934

安装OpenSpec

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

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

输入下面命令确保安装成功

openspec --version 

如果按照失败出下面错误(一般是windows )

image-20251021155249048

我们可以切换使用pnpm 命令安装

pnpm install -g @fission-ai/openspec@latest 
image-20251021155341378
image-20251021155403813

按照上图方式我们就确保openspec安装完成。

openspec init

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

openspec init 

OpenSpec 支持多种开发工具,我这里使用claude code

image-20251021155650133
image-20251021155828402

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

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文件夹下AGENTS.md、project.md 内容翻译成中文 
image-20251021160937208

需求收集整理

openspec 主要的流程如下:

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

这个我们会用到比较关键的三个命令

/openspec:proposal 、/openspec:apply、/openspec:archive

那么我们先执行第一个 简单来说就是你把需求给它,它来帮你做拆解详细的计划任务。

接下来我们需要简单交代一下jimeng-free-api-all 项目,这个项目是即梦文生图、文生视频的接口是基于3.0的。目前最新的即梦支持4.0 了。所以我们需要实现即梦4.0 文生图,图生图,文生视频等功能。 这里我们还依赖一下其他的资料。关于这块资料我们就不做详细展开了。 新增加的2个文件是curl4.txt 、curl4.md

image-20251021164222855

提示词如下:

/openspec:proposal 请基于curl4.md内容以及jimeng-free-api-all\src\api\controllers\images.ts 代码,新增补充基于high_aes_general_v40模型功能,请修改images.ts 实现high_aes_general_v40模型能力。 请不要先代码,先把需求整理好,结合原来的项目梳理项目新增的变革需求。 

AI会更加上面的需求生成需求草案和计划

image-20251021171639172

包括生成的tasks.md文档,这样AI 就会乱写一通,我们在后面执行的时候/openspec:apply AI 就会更加这个文档的约束来实现功能了。此外如果碰到功能点没有写完或者是团队协作开发,这种方式就比较友好好了。我们可以把刚才生成的文档提交代码仓库(gitlab,github等)可以接着后面写。

代码开发执行

接下来我们在使用/openspec:apply 执行上面的功能新增

image-20251021172224498

接下来AI 就会延续之前的tasks.md文档 实现代码编写和测试等相关工作。

image-20251021172353521

经过一段时间的运行后 tasks.md里面的12个子任务已经执行完成,我们看一下执行后的结果

image-20251021174418615

我们查看一下tasks.md

## 1. 实施high_aes_general_v40模型支持 - [x]1.1 在MODEL_MAP中添加jimeng-4.0模型映射 - [x]1.2 更新DEFAULT_MODEL配置(如需要) - [x]1.3 验证模型参数配置正确性 ## 2. 优化图片生成参数支持 - [x]2.1 支持更高的分辨率配置(2560x1440) - [x]2.2 确保与现有参数的兼容性 - [x]2.3 添加分辨率比例验证 ## 3. 增强批量生成能力 - [x]3.1 优化generateImages函数支持批量生成 - [x]3.2 确保与现有API接口的兼容性 - [x]3.3 添加错误处理和日志记录 ## 4. 测试和验证 - [x]4.1 单元测试:模型映射功能 - [x]4.2 集成测试:图片生成流程 - [x]4.3 验证与curl4.md中描述的参数一致性 

看到12个任务已经执行完成了。

人工验证

接下来我们先人工方式审查一下它修改的代码

image-20251021174706007

的确是修改了代码。

我们使用Apifox 对这个接口进行验证测试。执行下面命令启动程序

npm install build npm run dev 

Apifox 测试

image-20251021175423031

接口成功返回请求信息。

image-20251021175336879

我们在即梦平台可以看到这个请求

img

这个时候新增修改的功能就初步完成了。当然这个后面还有其他功能扩展,这里就不做详细展开。 我们在回到需求整理再执行即

项目归档

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

我们同样执行下面命令

/openspec:archive 
image-20251021200959764

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

image-20251021201505283

这个时候我们在openspec \changes文件夹下看到新增加的需求已经归档了。

image-20251021201801743

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

3.总结

今天主要带大家了解并实现了 OpenSpec 框架的安装配置与实战应用完整流程,该流程以规范驱动开发为核心,结合 jimeng-free-api-all 项目改造场景,通过 OpenSpec 提供的规范管理、AI 执行与自动验证能力,搭配命令行工具的流程管控能力,形成了一套从需求定义到功能落地的规范化开发解决方案。

通过这套实践方案,团队能够高效应对 AI 参与开发时的协作难题 —— 借助简单的安装配置步骤(包括 OpenSpec 全局安装、项目初始化、规范文档生成),无需担心模型上下文限制或需求传递歧义,就能有序完成旧项目升级(如本次即梦 4.0 模型的功能扩展)。无论是基础的代码生成、测试用例编写,还是通过变更提案实现的多人协作、需求追溯,都能通过 proposal/apply/archive 等简洁命令完成,极大降低了 AI 辅助开发中的管理成本。在实际验证中,OpenSpec 能够稳定支撑规范与代码的一致性,特别是通过 tasks.md 任务清单和自动化验证机制,有效避免了 AI 生成代码的随机性,且适配性远优于传统的直接 prompt 开发模式。同时,方案具备良好的扩展性 —— 小伙伴们可以基于此扩展更多团队协作场景,如迭代式需求拆分、跨团队规范对齐、历史变更审计等,进一步发挥规范驱动开发在大型项目中的应用价值。

感兴趣的小伙伴可以按照文中提供的步骤进行实践,根据项目需求定制规范文档与变更流程。今天的分享就到这里结束了,我们下一篇文章见。

Read more

【C++】AVL树

【C++】AVL树

AVL树 概念 * AVL树是最先发明的⾃平衡⼆叉查找树,AVL是⼀颗空树,或者具备下列性质的⼆叉搜索树:它的左右⼦树都是AVL树,且左右⼦树的⾼度差的绝对值不超过1。AVL树是⼀颗⾼度平衡搜索⼆叉树, 通过控制⾼度差去控制平衡。 * AVL树得名于它的发明者G.M.Adelson-Velsky和E.M.Landis是两个前苏联的科学家,他们在1962 年的论⽂《Analgorithmfortheorganizationofinformation》中发表了它。 * AVL树实现这⾥我们引⼊⼀个平衡因⼦(balancefactor)的概念,每个结点都有⼀个平衡因⼦,任何结点的平衡因⼦等于右⼦树的⾼度减去左⼦树的⾼度,也就是说任何结点的平衡因⼦等于0/1/-1, AVL树并不是必须要平衡因⼦,但是有了平衡因⼦可以更⽅便我们去进⾏

By Ne0inhk

C++ 高效入门:从 C 语言到 C++ 的平滑过渡 (一)

C++ 高效入门:从 C 语言到 C++ 的平滑过渡 (一) * 引言 * C++ 高效入门系列链接 * 一、数据类型 * 1.1 整型 * 1.2 浮点型 * 1.3 字符型 * 1.4 字符串 * 1.5 布尔类型 * 二、数据的输入 * 2.1 关键字 cin * 三、运算符 * 3.1 加减乘除 * 3.2 赋值运算符 * 3.3比较运算符 * 3.4逻辑运算符 引言 本系列文章是笔者学习C++过程中的阶段性总结与心得,旨在为有需要的读者提供一份“

By Ne0inhk

从前序和中序遍历重建二叉树 —— C++ 递归 + 哈希表写法解析

从前序和中序遍历重建二叉树 —— C++ 递归 + 哈希表写法解析 一、题目背景 已知一棵二叉树的: * 前序遍历序列preorder * 中序遍历序列inorder 并且树中不存在重复节点值,要求 重建这棵二叉树,返回根节点 TreeNode*。 二、关键性质回顾 二叉树的遍历有这些性质(这里用到前序 + 中序): 1. 前序遍历(Preorder): 顺序是:根节点 -> 左子树 -> 右子树  所以 preorder[0] 一定是整棵树的 根节点。 2. 中序遍历(Inorder): 顺序是:左子树 -> 根节点 -> 右子树 在中序序列中,根节点左边的部分是“左子树”,右边的部分是“

By Ne0inhk