我来入职新公司两个月了:为什么只写了100行代码?
如题所见,为什么来这么久只写了100行代码,但是git统计我写了10000行代码呢?这期给大家带来了一个“工具”:openspec
openspec是个什么东西?
openspec介绍:lzw.me/docs/OpenSp…
OpenSpec 是 AI-Native 的规范驱动开发系统,为 AI 编码助手提供轻量级规范层。 在第一行代码编写之前,先与 AI 对齐需求,让开发过程更可预测、更高效。
他不是一个模型,也不是一个IDE,可以把他理解为一个框架,他能让ai输出更准确,规范ai的输出,让人与ai直接沟通更规范化,把平时的与ai直接的问答模式进行开发的模式改为使用命令+问答 的模式进行开发,让ai 更加理解人需要做什么,让人更加知道ai在做什么。
安装 Node.js
安装Node.js教程(linux)
官网下载安装包安装(Windows)
# 验证 Node.js 版本node --version
全局安装 OpenSpec
cmd命令执行
# 使用 npm(推荐)npm install -g @fission-ai/openspec@latest
验证安装
# 检查版本openspec --version
OpenSpec默认提供4个标准命令:/opsx:propose、/opsx:explore、/opsx:apply、/opsx:archive
如果还想要更多的命令,可以执行下面的配置向导(全局执行)
# 启动配置向导openspec config profile# 交互式选择配置: # 1. Delivery and workflows - 基础命令# 2. Both (skills + commands) - 创建技能和命令# 3. Custom Profile - 自定义配置(全选,使用↑↓+空格进行选择,[x]表示选中)
这个是针对电脑的openspec安装与配置,但是openspec是项目级别的,所以需要进入到项目中执行初始化 OpenSpec脚本
# 进入项目目录 cd your-project# 初始化 OpenSpec openspec init
按回车键继续下一步,上下键选择,空格键选定
选择好trae之后按回车键完成选择,这个时候进入到项目里面就会发现多了两个文件夹,一个是.traeskill 这个文件夹是因为执行了上面的init命令之后让trae拥有的skill能力,里面具体的命令就是上面运行配置向导的时候第三步选择的命令,这些命令即是在trae中能执行的命令。还有一个文件夹叫做openspec,这个就是openspec的主文件夹
初始化后的目录结构
openspec/├── specs/# 主规范(当前系统行为的权威基准)│ └── <domain>/│ └── spec.md├── changes/# 提议中的变更(每个变更独立文件夹)│ └── <change-name>/│ ├── proposal.md# 为什么做、做什么│ ├── design.md# 如何实现│ ├── tasks.md # 实现任务清单│ └── specs/ # Delta 规范(正在变化的部分)│ └── <domain>/│ └── spec.md└── config.yaml # 项目配置(可选)
openspec完整的流程图如下:
但是在trae中用到的命令分别是:第一步:openspec-propose,第三步:openspec-apply-change,第四步:openspec-verify-change,第五步:openspec-verify-change
但是如果你想让ai写出来的东西更精确更好,还可以在第一步之前执行:openspec-explore 命令(在提交变更之前,思考想法、调查问题、澄清需求。)这命令会做一些事情:理解需求,和你确认需求,甚至会扫描整个项目的代码等等操作,是比较耗费token的。
实战操作
会从一个需求的提出,到代码的结束完整演示少些代码或者说一行代码不写让ai完成需求的开发
openspec-explore
这个命令可用可不用,如果需求比较模糊,或者需求比较大,甚至说你自己都不理解这个需求,可以在执行第一步:openspec-propose前先执行这个命令,期间如果ai也理解不了你的需求之后,他会问我们和我们确定一些需求的细节,并且我们也可以进行补充(例如和产品经理和同事确认)
这个命令不会产生任何文件,他输出的结果也只会存在ai问答的上下文中,后面执行openspec-propose命令的时候会把确定好的问题代入到下一个命令中,让openspec-propose输出的产物更准确
示例:
You: /openspec-explore 这是我的需求文档,帮我为移动端应用处理身份验证 (贴上你的需求文档)AI:让我来研究你当前的认证设置... [分析代码库] 我看到你在 Web 端使用了基于 session 的认证。 对于移动端,我们有三种主要选择: 1. JWT 令牌(无状态,支持离线) 2. OAuth2(如需第三方登录) 3. 扩展当前 session(更简单,但需要连接) 你的 API 已经配置了 CORS。你对哪个方向感兴趣?You: 让我们用 JWT。能开始一个变更吗?AI:准备好了。运行 /opsx:propose add-jwt-auth 开始。
实战:如果在禅道上面有对应的需求并且已经配置好mcp服务之后,就可以直接使用下面的提示词让ai开始理解这个需求:
/openspec-explore mcp获取任务id:2213913,使用getUserTaskList新增两个接口:diff 和 log ,log用于列表的查询,diff用于详情的查询
如果禅道上面没有对应的需求或者任务,则直接把prd给ai,这里因为禅道上面有任务,我们直接用mcp去获取
它会扫描我们的项目的代码:
最后他会输出他的思考结果:
如果ai对我们的需求有疑问,他就会向我们提问,因为这个需求ai没有疑问,所以ai没有问我们,接下来他让我们创建 OpenSpec change proposal ,所以我们进入下一步。
openspec-propose
创建新变更并一步生成所有规划产物。
示例
You: /openspec-propose 自然语言AI:已创建 openspec/changes/add-dark-mode/ ✓ proposal.md ✓ specs/ui/spec.md ✓ design.md ✓ tasks.md 准备好实现。运行 /opsx:apply。
实战:
我们可以直接执行openspec-propose 命令,也可以和他补充一些东西,正常和他沟通就行了:
/openspec-propose 补充几个点:用户点击日志的时候调用log接口,就会进入到第二个图,点击查看的按钮就会调用diff接口
开始创建四个文件:
任务已完成:
输出已结束:
这个命令它会输出四个文件(proposal.md、specs/细项变更名称/spec.md(这里可以是多个)、design.md 、 tasks.md):

他输出的四个文件叫做变更 (Changes)。变更是对系统的提议修改,打包为一个包含理解和实现所需一切的文件夹:
变更文件夹结构
openspec/changes/cost-config-diff-log/├── proposal.md # 为什么做、做什么├── design.md # 如何实现(技术方案)├── tasks.md# 实现任务清单(带复选框)├── .openspec.yaml# 变更元数据(可选)└── specs/# Delta 规范└── cost-config-xxx/└── spec.md # cost-config-xxx/spec.md 中正在变化的内容
这个文档输出来主要是给我们看的,而看的顺序为:
如果我们看完之后对他的变更产物有疑问,我们可以和他补充:
变更的产物加几个补充点:1.编码的风格要按照现有的代码进行编码2.与数据库相关的操作都写在Repository类3.我问了产品经理,他说外面列表数据可能会有很多条变更记录
这里面可以使用自然语言描述,最终的目的是我们可以更加地去规范ai做什么以及怎么做,以及补充一些细节点,让下一步openspec-apply-change命令写出来的代码更加规范与精准
会改ai产生的变更文件,补充细节
还会根据我们之前提供的ui,生成我们自己都漏掉的细节:
最后输出修改文件结果,让我们进行下一步:
这里注意,创建变更的时候不要一次性创建一个很大的变更(即一次把一整个大功能让他创建一个变更)原因有以下几个点:
运行时间长,结果不可控
如果功能比较复杂会消耗巨量的token
后期维护,修改bug困难
......
所以每次只提一个小变更,把大需求人工分成a,b,c...几个小需求,让他颗粒度更小,例如一个小功能或者一个接口执行一个openspec-propose命令:
openspec-apply-change
实现变更中的任务。逐步处理任务列表,编写代码并勾选完成项。
示例:
You: /openspec-apply-changeAI:实现 add-dark-mode... 读取 tasks.md: - [ ] 1.1 创建 ThemeContext - [ ] 1.2 添加 CSS 自定义属性 - [ ] 1.3 实现 localStorage 持久化 处理 1.1: 创建 ThemeContext... [创建 src/context/ThemeContext.tsx] ✓ 1.1 完成 处理 1.2: 添加 CSS 自定义属性... [更新 src/styles/globals.css] ✓ 1.2 完成 ...
实战:
直接执行命令,如果还有补充的话,也可以在命令后面用自然语言告诉ai
然后他就开始自动执行这17个任务,这个时候尽量不要操作代码,等他自动完成
17个任务完成之后,openspec会自动进行编译并且修复:
最终会把tasks.md文件修改为每个任务都完成了:
这个时候可以看到代码已经改变了:
这个时候如果我们的代码有什么bug,或者要改什么东西,我们也可以通过自然语言和他讲:
openspec-verify-change
验证实现是否与变更产物匹配。从完整性、正确性和一致性三个维度检查。
示例
You: /openspec-verify-changeAI:验证 add-dark-mode... 完整性 ✓ tasks.md 中的所有 8 个任务都已完成 ✓ 规范中的所有需求都有对应代码 ⚠ 场景"系统偏好检测"没有测试覆盖 正确性 ✓ 实现与规范意图匹配 ✓ 场景中的边缘情况已处理 一致性 ✓ 设计决策在代码结构中有体现 ⚠ 设计提到"CSS 变量"但实现使用了 Tailwind 类 总结 关键问题: 0 | 警告: 2 | 可以归档: 是(有警告)
这个命令可用可不用,如果想检查一下代码与产物是否一致可以直接执行该命令,使用的时候建议再把prd再次丢给ai
openspec-archive-change
归档已完成的变更。完成变更并将其移至归档文件夹。
示例:
You: /openspec-archive-changeAI:归档 add-dark-mode... 产物状态: ✓ proposal.md 存在 ✓ specs/ 存在 ✓ design.md 存在 ✓ tasks.md 存在 (8/8 任务完成) Delta 规范: 尚未同步 → 现在同步?(推荐)You: 是AI:✓ 已将规范同步到 openspec/specs/ui/spec.md ✓ 已移至 openspec/changes/archive/2026-03-10-add-dark-mode/ 变更归档成功。
实战:
/openspec-archive-change openspecchangescost-config-diff-log
当我们确定这个需求已经完成的时候可以使用这个命令,如果想让openspec的产物更规范化的话,可以改了bug之后在对话框让ai改一下openspec的产物,然后再运行这个命令。这个命令会把openspecchangescost-config-diff-log 文件夹移动到 openspecchangesarchive2026-07-13-cost-config-diff-log 说明这个需求已经完成了,这个时候就可以推送到git上面或者push到远程仓库让团队小伙伴一起使用变更(可选)
其实也可以手动移动到openspecchangesarchive文件夹下面,和这个命令的效果是一样的,如果后期我们要改bug,直接和ai说:
openspecchangesarchive2026-07-13-cost-config-diff-log 有个bug:前端传入超长文本,后端报错
这个时候ai就会直接找到对应的变更产物,修改对应的bug:
至此,我们一行代码都没有写,完成了这个需求的代码层面的开发
拓展
mcp
文中用到的mcp服务,如果大家的公司有的话就这样配置:可以把他理解为自然语言去获取第三方系统的数据的服务,如果没有也没关系,直接把产品文档丢给openspec就行了,如果大家感兴趣,后期作者可以教大家开发mcp服务,欢迎关注
rule
我们可以使用工具级别的rules和skills,一般在放在 C:Users用户名.trae-cn 文件夹下,他就会根据使用的工具去生效对应的rules和skills
智能体
我们可以自己创建智能体,让ai输出跟专业化
其他编程软件
可以使用其他编程软件吗?前面我们也说了,openspec只是一个ai流程框架而已,市面上主流的IDE基本都支持。但是命令会不同,例如在trae中叫做 /openspec-apply-change 但是在其他软件中叫做 /opsx:apply ,具体就看初始化 openspec init 的时候选择的ide是啥,然后去对应ide项目文件中的skills文件夹下面的skill文件的名称最后,博主在深度使用openspec两个月以来,写过的代码不超过100行,这数据真的很夸张,现在已经完全改变了作者的开发模式,相信ai也会慢慢地改变大家的开发模式,如果没有openspec的话,可能还有openspring总会出现类似的工具或者框架,ai在慢慢的改变世界,学起来吧,少年。。
注:本篇文章非广告,很久没写博客了,只是想分享一些东西,感谢你观看,下次再见
-
07.15
一血敢死队阵营何时开放
-
07.15
红色沙漠开局如何发育
-
07.15
植物大战僵尸2泡泡机僵尸怎样攻击
-
07.15
宗师之上PVE玩法攻略
-
07.15
无尽冬日养什么专家好
-
07.15
罗马拓荒录沙漠优质建家选址点位在哪
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏