AI编程 - OpenCode+OpenSpec 实战:AI 编程完整演示教程

文章目录

  • 前言
    • [AI编程 - OpenCode+OpenSpec 实战:AI 编程完整演示教程](#AI编程 - OpenCode+OpenSpec 实战:AI 编程完整演示教程)
      • [1. OpenCode](#1. OpenCode)
      • [2. OpenSpec](#2. OpenSpec)
      • [3. 配置初始化](#3. 配置初始化)
        • [3.1. 安装OpenSpec。](#3.1. 安装OpenSpec。)
        • [3.2. 初始化](#3.2. 初始化)
      • [4. AI 编程完整演示](#4. AI 编程完整演示)

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。

  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


AI编程 - OpenCode+OpenSpec 实战:AI 编程完整演示教程

1. OpenCode

OpenCode 是一款开源 AI 编程助手 / AI 代码编辑器 ,基于 VS Code 内核开发,支持桌面客户端、终端 TUI、IDE 插件三种使用形态,能对接 Claude、GPT、本地大模型等 75 + 种 AI 模型。

地址: https://github.com/anomalyco/opencode

桌面下载:

2. OpenSpec

OpenSpec 它是 npm 包,装好后 openspec init,然后用 /opsx:propose、/opsx:apply、/opsx:archive 这些命令推进。

最大的优点是它不会把一个小需求弄成大工程,你要改一个功能,它就帮你把这次改动说清楚:为什么改,改什么,任务怎么拆,做完怎么归档。

这对老项目特别有用,很多时候我们不是从零做产品,只是在一个已经跑起来的仓库里加功能。以前这些东西都躺在聊天记录里,过两天就找不到了,OpenSpec 可以把它放回项目里。

官网:https://openspec.dev/

github代码:

https://github.com/Fission-AI/OpenSpec

使用说明:

bash 复制代码
你输入指令:/opsx:explore
AI 回复:你想要调研开发哪块功能?
你:我想做深色模式,但不清楚怎么写一套整洁规范的实现方案。
AI:我先梳理下你的样式架构......
最优简洁方案:CSS 变量搭配轻量主题上下文,
同时自动读取系统明暗偏好,无需引入第三方依赖。需要细化方案范围吗?
你:好,细化一下。
你输入指令:/opsx:propose add-dark-mode
AI:已创建文档目录 openspec/changes/add-dark-mode/
✅ proposal.md --- 开发动因、本次改动说明
✅ specs/ --- 功能需求与交互场景文档
✅ design.md --- 技术实现方案设计
✅ tasks.md --- 开发落地任务清单
方案文档全部就绪,可开始开发!
你输入指令:/opsx:apply
AI:开始执行开发任务......
✅ 1.1 新增主题全局上下文容器
✅ 1.2 编写明暗切换按钮组件
✅ 2.1 定义全套主题 CSS 变量
✅ 2.2 对接本地存储 localStorage 持久化主题设置
全部开发任务已完成!
你输入指令:/opsx:archive
AI:已归档至 openspec/changes/archive/2025-01-23-add-dark-mode/
全局功能规范文档同步更新完毕,可开启下一个新功能需求。

3. 配置初始化

3.1. 安装OpenSpec。
bash 复制代码
npm install -g @fission-ai/openspec@latest

查看版本号:

bash 复制代码
openspec --version
3.2. 初始化

在项目文件夹下进行初始化。

bash 复制代码
openspec init

回车。

这里我使用OpenCode进行测试,所以选择OpenCode。

回车。

可以在项目根目录下,看到下面两个文件夹。

4. AI 编程完整演示

实现功能:

bash 复制代码
功能:做一个分布式锁注解。
需求:
1、参考当前pom,使用redisson 做一个分布式锁 + 看门狗续期机制的注解,同时看门狗设置最大锁持有上限,不可无限续期,防止线程卡死长期霸占锁。
2、参考项目中的controller,做一个测试接口。
3、启动项目,进行测试。

opencode工具有个好处,就是右边会显示代码的变更,可以看到下面的变更,全是使用openspec init 命令初始化生成的。

模型我这里就使用免费的来测试了,毕竟免费。

第一步使用 /opsx-explore 来探索需求。

如下,根据它的回复,回答对方的问题及修正对方梳理不恰当的地方。

就这样,经过多轮问答,直到觉得没有问题。输入 /opsx:propose add-yzy-mode-20260629 指令,

新增add-yzy-mode-20260629目录,在该文件夹下生成方案文档。

proposal.md --- 开发动因、本次改动说明

design.md --- 技术实现方案设计

tasks.md --- 开发落地任务清单

openCode 右侧选择上一轮变更,可以看到新增了这几个文件。

检查下面三个文件:

proposal.md --- 开发动因、本次改动说明

design.md --- 技术实现方案设计

tasks.md --- 开发落地任务清单

觉得不对的话,可以直接在openCode上编译。

没问题后,输入 /opsx:apply 指令,开始执行开发任务......

右边可以看到修改的代码。

现在是生成成功了,然后就是本地项目启动,测试验证。

失败了继续提问。

一直到你觉得没有问题为止。

给一个建议,如果觉得差不多的时候,建议手搓,要不然不停的问答太费时间了。

锁竞争测试成功:

锁超时测试成功:

最后执行下边这个命令进行归档:

/opsx:archive

已归档至 openspec/changes/archive/add-yzy-mode-20260629/

全局功能规范文档同步更新完毕,可开启下一个新功能需求。