基于 OpenSpec AI 编程落地案例实践
一、一句话概括OpenSpec 是专门配合 AI 写代码的轻量开源工具核心作用先定清楚要做什么再让 AI 写代码杜绝 “你说东AI 写西” 的返工问题属于「规范驱动开发SDD」工具链。二、它解决什么最烦人的痛点平时用 Cursor、Claude Code、Codex 等写代码普遍踩坑需求只存在聊天框里AI 记不全写出来功能跑偏改一次需求AI 乱改一堆无关代码越修 bug 越多做完的功能没有书面记录过几天忘了当初要实现的逻辑多人协作时每个人对需求理解不一样代码冲突严重。OpenSpec 相当于给 AI 套上缰绳所有需求、方案、任务全部写成标准化文档AI 严格按文档干活不能自由发挥。三、它的核心工作流程4 步超简单1.提案proposal说清楚「为什么要做这个功能」你输入一句话需求比如 “给后台加暗黑模式切换”一条命令自动生成提案文档写清业务目的、使用场景。2.定规范 拆任务spec tasks明确「做什么、怎么做、分几步」AI 自动产出两份文件spec.md硬性规范页面长啥样、接口字段、交互逻辑、边界限制白纸黑字tasks.md可勾选的待办清单把大功能拆成一个个小编码任务。 这一步你可以反复修改、核对人和 AI 完全达成共识再往下走。3.AI 执行代码apply确认规范没问题后执行命令AI 只按照 tasks 清单逐条写代码不会额外乱加功能。4.归档archive功能开发完成把整套规范归档到项目文件夹永久留存后续迭代、改 bug、新人接手都能直接看原始需求文档和代码永远同步。四、关键优势普通人能看懂轻量无门槛 npm一行命令就能安装不用复杂配置、不用填任何 API 密钥小项目、个人开发者都能用30 分钟就能上手。兼容绝大多数 AI 编码工具原生适配 Claude Code、Cursor、GitHub Copilot、Windsurf 等 20 多种 AI 编程助手不用换你现在的编辑器。变更可追溯、可审计每次新增功能单独存一套文档能清晰看到新增了什么需求、修改了哪些规则、删掉了哪些逻辑线上出问题方便复盘。不挑老项目不用推翻现有代码重构直接在已有项目上迭代新功能不像重型规范工具只能从零搭建项目。五、举个生活化类比把写软件比作装修房子不用 OpenSpec你口头跟装修师傅AI说 “客厅装灯带”师傅自由发挥尺寸、灯光、走线全凭理解装完大概率不合心意反复拆改用 OpenSpec先出书面装修方案spec灯带长度、色温、开关位置、布线要求再拆分施工步骤tasks确认图纸没问题再动工师傅严格按图纸施工几乎不会出错。接下来根据上面的介绍手把手带着大家基于 OpenSpect 开发项目六、阶段一完成项目的初始化1.全局安装 OpenSpec打开 GitHub 地址https://github.com/Fission-AI/OpenSpec在 AI 编程工具里执行帮我全局安装 OpenSpec 的最新版本。github 地址是https://github.com/Fission-AI/OpenSpec 使用 npm 的安装方式 注意你在安装完需要确认 nodejs 的版本必须大于等于 20.19.0, 如果版本不够请提醒我升级。2.创建项目目录创建好后用 Cursor 打开。3.创建前端项目脚手架帮我先创建一个 React Vite Typescript 的项目项目名叫做 my-website 创建完成后安装配置 Tailwind Css v4 然后确保项目可以正常启动通过 npm run dev 启动后告诉我启动地址4.项目纳入OpenSpec 管理使用 CLI 工具做项目初始化按 Enter 选择工具。选择你当前使用的 AI 编程工具我们使用的是 Cursor。空格用来选住初始化好 OpenSpec 的相关文件5.修改 config.yaml 文件请打开 openspec/config.yaml帮我优化它的内容。 我需要的配置 schema: spec-driven context: | 项目个人品牌站Personal Website 技术栈React 19 Vite 7 TypeScript Tailwind CSS v4 部署GitHub Pagesbase path 为 /my-website/ 设计风格科技感动态粒子风支持亮/暗切换 性能首屏加载 2 秒所有图片使用 lazy loading rules: proposal: - 必须明确写出 out-of-scope不做什么 - 必须评估对现有功能的影响 specs: - 使用 Given/When/Then 格式描述交互行为 - 每个 spec 必须包含至少一个边界/异常场景 tasks: - 每个任务粒度不超过 30 分钟 - 按 Phase 分组每个 Phase 结束后等待我确认 Languages: | Generate all artifacts in Simplified Chinese. Use English for code-related terms.6.创建项目宪法如果是 Claude Code 那就创建 CLAUDE.md 文件如果是 Cursor就用 rules 文件。根据 Cursor 的规范要求帮我创建一个 Rule包含内容如下 # OpenSpec 工作流规则 ## 核心纪律 1. **先读后做**执行任何 OpenSpec 命令前先读取 - openspec/config.yaml项目约束 - openspec/specs/ 目录下相关域的规范当前系统行为 - openspec/changes/ 当前活跃的变更如果存在 2. **不要猜测需求**如果 spec 中没有明确定义某个行为问我不要自行补充。 3. **out-of-scope 是红线**proposal.md 中标注为 out-of-scope 的功能严禁实现。 ## Apply 阶段规则 1. 每完成一个 tasks.md 中的 Phase停下来。 2. 总结当前阶段的代码变更改了什么文件、为什么这么改。 3. 等待我 review 并确认后再继续下一 Phase。 4. 严禁一次性实现所有任务。 ## 代码标准 - 所有组件使用 TypeScript 函数式组件 - 样式全部使用 Tailwind CSS禁止内联 style - 支持暗色模式dark: 前缀 - 所有图片使用 lazy loading - 组件文件名使用 PascalCase运行完Cursor 会产生一个 rule 文件模式选择Always Apply七、阶段二开发品牌站的 Hero-Section1.Explore 交互一下打算怎么干/explore 我要给个人品牌站添加 hero section 想法是 - 全屏高度的 hero 可以居中显示我的名字、职业 还有一句话介绍我 -CTA 按钮可以跳转我的项目 - 背景色是动态科技粒子感的渐变色 - 支持 明亮/暗黑模式切换 你帮我想一下你建议的技术方案 有没有遗漏的边界情况用了 explore 后Cursor 会了解一下当前的项目然后给出方案建议。2.确定 Changes 1 的提案/opsx:propose add-hero-seciton 现在为我的个人品牌站添加 Hero Seciton - 全屏高度的 hero 可以居中显示我的名字、职业 还有一句话介绍我 - 背景CSS 渐变底 Canvas 粒子叠加 - 支持 明亮/暗黑模式切换 out-of-scope严禁开发 - 不做动画效果 - 不做导航栏 - 不做后端的API生成四个制品查看文件我们目前是属于新增需求3.开始分阶段执行 Change 1 的 代码生成我们看一下 tasks.md 文件OpenSpec 帮我们规范的流程## Phase 1: 基础配置与主题 Token Phase 1 完成后暂停等待 review 确认再继续。 - [ ] 1.1 创建 src/content/hero.ts定义 name / role / tagline 占位文案 - [ ] 1.2 在 src/index.css 添加 theme 明暗配色 tokenHero 渐变与文字色 - [ ] 1.3 在 index.html head 添加防 FOUC 主题初始化内联脚本 ## Phase 2: 明暗模式系统 Phase 2 完成后暂停等待 review 确认再继续。 - [ ] 2.1 创建 src/hooks/useTheme.ts读取/写入 localStorage同步 html class含 try/catch 回退 - [ ] 2.2 创建 src/components/ThemeToggle.tsxfixed 右上角、aria-label、键盘可操作 - [ ] 2.3 验证主题切换light ↔ dark刷新后偏好保持localStorage 禁用时不崩溃 ## Phase 3: Hero 组件 Phase 3 完成后暂停等待 review 确认再继续。 - [ ] 3.1 创建 src/components/ParticleBackground.tsxCanvas 静态粒子ResizeObserver 重绘aria-hidden无 RAF - [ ] 3.2 创建 src/components/HeroContent.tsxh1 姓名 职业 介绍Tailwind 居中排版长文案换行 - [ ] 3.3 创建 src/components/HeroSection.tsxmin-h-dvh、CSS 渐变底层 ParticleBackground HeroContent 层级 ## Phase 4: 集成与验收 Phase 4 完成后暂停等待 review 确认再继续。 - [ ] 4.1 更新 src/App.tsx挂载 HeroSection ThemeToggle移除占位页内容 - [ ] 4.2 运行 npm run build 确认 TypeScript 与构建无错误 - [ ] 4.3 本地 npm run dev 验收全屏 Hero、双层背景、明暗切换、320px 窄屏、键盘 Tab 到 Toggle按照上面的规划生成代码opsxapply 请开始实现 add-hero-seciton 的变更 注意严格按照 my-website/.cursor/rules/openspec-workflow.mdc phase 就停下来等我确认后再继续完成的任务会打 x4.接下来不要直接归档先去校验针对 Change 1 的apply 结果进行三维校验opsxverify 请你对 add-hero-seciton 的变更进行三维验证 1. 完整性所有任务是否完成所有的需求是否有读经的代码实现 2. 正确性是否匹配 Spec 的规格意图是否正确处理边界条件 3. 一致性 我的 design.md 中的技术方案和技术细节是否逐一在代码中实现以及命名方式是否一致修复一下5.归档opsxarchive 请你给我归档 add-hero-seciton 的变更 归档完成后请向我介绍OpenSpec结构的变化情况对比归档前哪些文件被更新了八、阶段三开发品牌站的 navigation1.提需求可以按照前面的流程先进行探索我们这儿就不探索了直接提需求。/opsx:propose add-navigation 现在为我的个人品牌站添加顶部的导航栏 - 固定在页面的顶部 - 左侧可以显示个人的logo 或者名字 - 右侧的导航栏包括首页、项目、联系我 - 点击到导航栏中的链接可以平滑的切换到对应的 section - 切换的时候添加一下背景模糊的效果 out-of-scope严禁开发 - 不做搜索 - 不做多级的下拉菜单 - 不做用户登陆和注册2.开发请展示出 add-navigation 生成的所有制品让我进行审查 当我审查通过后 开始分阶段的执行 apply每完成一个 phase 就停下来等我确认后再继续3.校验三维校验opsxverify 请你对 add-navigation 的变更进行三维验证 1. 完整性所有任务是否完成所有的需求是否有读经的代码实现 2. 正确性是否匹配 Spec的规格意图是否正确处理边界条件 3. 一致性 我的design.md 中的技术方案和技术细节是否逐一在代码中实现以及命名方式是否一致4.归档opsxarchive 请你给我归档 add-navigation 的变更 归档完成后请向我介绍 OpenSpec 结构的变化情况对比归档前哪些文件被更新了九、阶段四体验一下 OpenSpec Delta Spec 的功能标记1.Change 3 提案并测试修改的功能标记/opsx:propose add-project-section 现在为我的个人品牌站添加项目的展示区 - 显示在Hero Section 的下方 - 卡片式的布局每个项目卡片的内容包括项目的截图项目的名称项目的简介Github链接 - 最少展示4个项目 - 特效鼠标悬浮时有微特效 同时呢你要进行功能修改 - Hero Section 的 CTA 按钮的 锚点现在要跳转到这个新的 Section out-of-scope严禁开发 - 项目的详情页 - 项目搜索功能2.一次性完成 change3 的所有需求请展示出 add-project-section 生成的所有制品让我进行审查 当我审查通过后 开始分阶段的执行 apply 同时请你对 add-project-section 的变更进行三维验证 1. 完整性所有任务是否完成所有的需求是否有读经的代码实现 2. 正确性是否匹配 Spec的规格意图是否正确处理边界条件 3. 一致性 我的design.md 中的技术方案和技术细节是否逐一在代码中实现以及命名方式是否一致 注意你不再需要每完成一个 phase 就停下来等我确认后再继续直接跑完所有任务3.针对 Change 3 完成 Spec 归档opsxarchive 请你给我归档 add-project-section 的变更 归档完成后请向我介绍OpenSpec结构的变化情况对比归档前哪些文件被更新了十、阶段五配置 About Section SEO 优化 部署上线1.Change 4 继续丰富个人品牌站/opsx:propose add-about-section 现在为我的个人品牌站添加 “关于我” 区域 - 左侧一张我帅气的照片 - 右侧个人简介3段文字 - 下方品牌标签xx空间 out-of-scope严禁开发 - 不要做联系我的表单2.Change 4 添加网站的 SEO 优化策略/opsx:propose add-seo 现在为我的个人品牌站添加 SEO 的基础优化和社交身份支持 - 设置HTML的 tagestitle/description - 语义化 HTML的审查 - 添加 robots.txt允许 google 爬虫索引可以多个需求同时做3.单次执行多步的提案文件开始自动的执行 apply同时完成三维验证 1. 完整性所有任务是否完成所有的需求是否有读经的代码实现 2. 正确性是否匹配 Spec 的规格意图是否正确处理边界条件 3. 一致性 我的 design.md 中的技术方案和技术细节是否逐一在代码中实现以及命名方式是否一致4.归档/opsx:archive 归档上面的任务。5.部署/上线我现在要部署我的个人品牌站上线请参考https://docs.github.com/en/pages 把我的应用品牌站部署上去 1. 你需要 vite.config.ts 中 配置 base‘my-website’ 2. 在 package.json 中添加 deploy 脚本 3. 确保这个项目可以关联 Github 远程仓库 如果没有你要引导我创建并 上传我的项目 4. 你需要执行部署并告诉我最终的访问地址学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

相关新闻

深入解析Stellaris ROM Boot Loader与ADC驱动:从原理到实战优化

深入解析Stellaris ROM Boot Loader与ADC驱动:从原理到实战优化

1. 项目概述与核心价值在嵌入式开发领域,尤其是基于ARM Cortex-M内核的微控制器项目里,我们常常会与芯片厂商提供的底层固件库打交道。这些库函数,如果每次都从Flash中调用,会占用宝贵的存储空间。德州仪器(TI&#xf…

2026/10/4 14:26:55 阅读更多 →
Codex 同时维护多个仓库,如何避免项目规则和上下文串线?

Codex 同时维护多个仓库,如何避免项目规则和上下文串线?

摘要同时维护前端、后端、脚本和旧项目时,Codex 容易混淆目录结构、测试命令和代码规范。本文介绍如何通过独立任务、分层 AGENTS.md、仓库检查清单和 Git Diff 审查,减少跨项目上下文串线,让多仓库开发更加稳定。很多开发者一天内需要切换多…

2026/10/9 13:54:39 阅读更多 →
反射性回忆循环:提升技术长期记忆的认知策略与实践指南

反射性回忆循环:提升技术长期记忆的认知策略与实践指南

在长期记忆研究中,如何将短期接触的信息转化为持久、可检索的知识是一个核心挑战。传统的学习方法往往侧重于即时输入,却忽略了信息在记忆系统中的巩固和整合过程。反射性回忆循环(Reflective Recall Cycle)作为一种认知策略&…

2026/10/3 8:31:12 阅读更多 →

最新新闻

第一次用Bambu Studio切片:从导入模型到出件的完整上手教程

第一次用Bambu Studio切片:从导入模型到出件的完整上手教程

第一次用Bambu Studio切片:从导入模型到出件的完整上手教程 【免费下载链接】BambuStudio PC Software for BambuLab and other 3D printers 项目地址: https://gitcode.com/GitHub_Trending/ba/BambuStudio Bambu Studio 是一款面向 Bambu Lab 及其他品牌 3…

2026/10/15 6:57:51 阅读更多 →
Docker部署Mycat:实现MySQL读写分离与主从复制实战

Docker部署Mycat:实现MySQL读写分离与主从复制实战

前几天一个后端朋友跑来找我,说他们的订单库最近扛不住了:单台 MySQL 读写混跑,查询一多,CPU 直接飙到 80%,关键业务写操作被拖得特别慢。这个场景太典型了,读多写少、数据库连接动不动被慢查询占满。当时我…

2026/10/15 6:57:51 阅读更多 →
DeepSeek大模型工程化落地:本地部署、接口调用与避坑指南

DeepSeek大模型工程化落地:本地部署、接口调用与避坑指南

简介:这份PPT资料围绕DeepSeek大模型展开系统介绍与前景展望,面向对大模型技术感兴趣的学习者、AI从业者及希望了解国产大模型发展现状的技术人员。内容从大模型概念与趋势切入,依次讲解DeepSeek的模型架构、多层神经网络与模块化设计&#x…

2026/10/15 6:57:51 阅读更多 →
HarmonyOS高精图像处理与头像裁剪持久化实战

HarmonyOS高精图像处理与头像裁剪持久化实战

开了几个项目之后,我对HarmonyOS开发里“图像处理”这块算是摸出了一些门道。尤其是高精图像处理与头像裁剪持久化,这两个词听起来不复杂,但真做起来,整条链路上全是细节:解码精度怎么保证、裁剪框跟不跟手、坐标怎么映…

2026/10/15 6:57:51 阅读更多 →
Zustand状态管理中实现计算属性的最佳实践

Zustand状态管理中实现计算属性的最佳实践

1. Zustand 状态管理中的计算属性需求在 React 生态中,Zustand 因其简洁的 API 和出色的性能成为越来越受欢迎的状态管理方案。但在实际业务开发中,我们经常遇到这样的场景:某个状态值需要基于 store 中的其他状态经过计算得到。类似 Vue 中的…

2026/10/15 6:57:51 阅读更多 →
Java反射机制原理、优化与实践指南

Java反射机制原理、优化与实践指南

1. 反射机制的本质与核心价值Java反射是运行时动态获取类信息并操作类成员的能力集合。与静态编码不同,反射允许程序在编译期未知具体类的情况下,通过Class对象完成方法调用、字段存取等操作。这种能力源于JVM的类型信息保留机制——即使经过编译擦除&am…

2026/10/15 6:56:51 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →