星云点击:星空遥控器
120.47M · 2026-02-04
想象一个场景:两支篮球队比赛,队员都穿着自己觉得舒服的衣服上场。结果会怎样?传球时可能把对手误认为队友,配合变得混乱,甚至不敢传球,最终演变成各自为战,战术彻底失效。
软件开发亦是如此,尤其是在与AI协作时。我们常常发现,AI并不能完全理解我们模糊的需求描述,反而会基于自己的“猜测”去生成代码——这就是所谓的“AI幻觉”。这种不确定性,让AI生成的代码质量难以保证,后期维护成本剧增。
解决方案就是:引入“规范”。 这个规范,是用来明确告诉AI:要做什么、怎么做、用什么数据格式、遵循什么编码风格。而实现这一理念的工具,正是 OpenSpec。
OpenSpec 的核心思想很简单:先画草图,确认无误,再正式施工。
它在人与AI之间建立了一套标准化的协作流程:
这不仅提升了代码的可靠性,也让整个开发过程变得透明、可控。
确保你的系统已安装 Node.js(版本 >= 20.19.0)。
# 查看node版本,如果没有安装,需要自行安装node
node --version
接着,全局安装 OpenSpec CLI:
# 全局安装OpenSpec
npm install -g @fission-ai/openspec@latest
安装好之后,可能需要关闭命令行窗口,重新打开才会生效,也可能不用,我的mac是需要关闭才能生效的,最后使用查看版本的命令,来验证是否安装成功。
openspec --version
新建一个工程,类似这样:
然后在idea的命令行工具里面输入:
openspec init
你会看到类似这样的提示:
按下回车进入下一个画面:
这个页面是让你选择在电脑中使用的AI编码工具是什么,多数人应该用的是Claude Code,我用的IFlow,这是个免费开源的国产工具,所以我就输入‘iFlow’
选中iFlow后会高亮,然后按Tab键确认选择,确认之后openspec就开始初始化了,会在工程中生成两个文件夹,一个是.iflow,一个是openspec,iflow里面是这样的:
这些看看就好了,大致这些东西都是openspec为增强iFlow功能的,另外一个是openspec,结构这个样子:
changes里面都是变更提案,specs里面都是规范文档,现在刚刚初始化,所以这里面是空的。
我们打开iFlow,进入之后给它提示词,这一步的作用尽可能的描述清楚,最好大概包括这些内容:
我的提示词这么写的:
写到project.md中作用是遵循openspec的约定规范,这样是让AI充分理解你的项目背景。回车之后等待一会,代码就会写好,然后生成project.md文件,类似如下:
把这个工程的大致作用都描述清楚了,后续就方便AI理解整个工程,当然在搭建这个工程的时候,最好按照约定好的全部描述清晰完成,越细致越好。
工程建立好之后,后续就会有各种功能的变更和迭代了,假设我们要为项目“添加一个自定义专注时长的功能”。
我的回答类似这样:
确认无误后,执行提案:
openspec/changes/ 目录下,包含:- 一个 `.yaml` 文件:机器可读的配置。
- 一个 `.md` 文件:人类可读的需求说明。
到这里,我们的规范就制作完成了,我们可以通过openspec的命令来审核和检查这个规范是不是可以被AI执行,在命令行工具里面输入命令(不是iFlow对话框),如下:
# 查看活跃的变更,这里会列出变更单名字
openspec list
# 验证提案格式
openspec validate add-custom-interval
# 查看提案详情
openspec show add-custom-interval
到这里,我们制作完了一个新增功能的规范,这个规范是可以让AI直接执行的,我们也可以继续添加其他功能的规范,待我们的需求全部提完,再一并执行也可以,这里我们直接执行这个规范。我们在iFlow的命令行里面输入:
按回车之后,就开始执行了
执行完毕之后,会提示完成。至此,规范驱动AI成功完成了编码,执行之后成功输出内容:
功能开发完成后,别忘了归档,以便更新项目整体规范:s编辑
# 应用提案
openspec apply add-custom-focus-duration
或者在iFlow中执行:
/openspec:archive add-custom-interval
归档后,该功能的规范会被合并到主规范中,成为项目知识库的一部分,为后续开发提供坚实基础。
回车之后等待一会得到结果如下:
在通过几个确认之后,iFlow就开始给你执行,执行完毕之后如下
使用 OpenSpec 进行规范驱动开发,只需记住这四个核心步骤:
/openspec:propsal "你的功能名称"openspec validate <提案目录>/openspec:apply <提案目录>/openspec:archive <提案目录>AI 正在深刻改变软件开发,但它并非万能。它需要清晰的指令,更需要人类的引导。OpenSpec 的目标,就是让人与AI的协作变得更高效、更可靠、更可持续。