李锋镝的博客

  • 首页
  • 时间轴
  • 说说
  • 左邻右舍
  • 博友圈
  • 关于我
    • 关于我
    • 另一个网站
    • 我的导航站
    • 网站地图
    • 赞助
  • 留言
  • 走心评论
  • 系列文章
  • Now
  • 每日心情
  • 🚇开往
Destiny
自是人生长恨水长东
  1. 首页
  2. AI
  3. 正文

规范驱动AI编程:用OpenSpec实现100%可控开发,从需求到代码的全流程闭环

2025年12月15日 约 3,979 字14 分钟 33点热度 0人点赞 0条评论
本文最后更新于 2025年12月15日,距今已 237 天,其中的信息可能已经发生变化,请注意甄别。

AI编程的最大痛点,从来不是“生成代码太慢”,而是“生成代码不可控”——需求模糊导致AI猜着写、迭代中需求漂移、功能上线后无文档可查、团队协作时知识断层。当开发者还在反复修改AI生成的代码时,规范驱动开发工具OpenSpec已经给出了破局方案:在写代码前,先和AI把需求说透、定死规范,让AI成为“精准执行者”而非“猜测者”。

本文将从核心逻辑、完整工作流、进阶实战、场景适配四个维度,深度解析OpenSpec如何重塑AI编程流程,结合扩展案例与优化技巧,帮你彻底摆脱“AI写代码全靠猜”的困境,实现可控、可追溯、可协作的AI开发模式。

一、核心逻辑:为什么规范驱动能解决AI编程的不可控?

AI编程的不可控,本质是“需求传递的模糊性”与“开发流程的无结构化”。OpenSpec的核心价值,就是通过“规范先行、双向对齐、全程追溯”,把模糊需求转化为明确指令,让AI和开发者在同一频道协作。

1. AI编程的三大失控场景与解决方案

失控场景 典型表现 OpenSpec解决方案
需求理解偏差 要手机号登录,AI生成邮箱登录;要简单修改,AI重构整个文件 提前起草提案,AI主动询问关键细节,形成结构化需求文档
迭代中需求漂移 多轮对话后,AI忘记初始需求,代码越改越偏 规范文档作为“单一真相源”,所有迭代基于规范修改,不偏离核心目标
无文档可查 功能上线后,不清楚“为什么这么实现”“需求边界是什么” 自动生成提案、设计决策、测试用例,形成完整的开发档案
团队协作断层 新成员接手时,无法快速理解功能背景与实现逻辑 规范文档+变更记录,完整还原功能演进过程,降低知识传递成本

2. OpenSpec的核心设计理念

  • 轻量无侵入:无需复杂配置,几条命令即可上手,不影响现有项目架构;
  • AI原生兼容:深度适配Claude Code、Cursor、GitHub Copilot等主流AI工具,无需更换开发环境;
  • 聚焦现有项目:专为“1→N”的项目迭代设计,而非仅适用于“0→1”的新项目;
  • 规范即文档:开发过程中自动生成结构化规范,与代码同步演进,避免文档过时。

二、完整工作流:从需求到归档的四步闭环

OpenSpec的工作流遵循“提案→审查→实现→归档”的闭环,每一步都围绕“规范”展开,确保AI编程的每一个环节都可控。

1. 工作流拆解(以“给待办APP添加标签功能”为例)

Step 1:起草提案——把需求说透,不留模糊空间

这一步的核心是“让AI问透需求”,而非直接写代码。OpenSpec会引导AI围绕需求的核心维度提问,直到形成完整的结构化提案。

操作流程:

  1. 安装并初始化OpenSpec:

    # 全局安装(需Node.js ≥20.19.0)
    npm install -g @fission-ai/openspec@latest
    # 进入项目目录初始化
    cd todo-app
    openspec init

    初始化时需选择适配的AI工具(如Claude Code),完成后项目会生成openspec目录,包含项目信息文件、规范文档目录、变更提案目录。

  2. 填充项目背景:
    让AI分析项目代码,自动填充openspec/project.md,包含技术栈(如React+TypeScript+LocalStorage)、代码规范、现有功能模块,让AI充分理解项目上下文。

  3. 创建变更提案:
    在AI工具中输入命令:

    /openspec:proposal Add Tag Functionality for Todo Items

    AI不会立即写代码,而是围绕需求核心维度提问(以标签功能为例):

    • 标签支持哪些操作?(创建、编辑、删除、关联待办)
    • 标签是否支持颜色区分?最多支持多少个标签?
    • 一个待办可关联多个标签吗?标签是否支持搜索筛选?
    • 标签数据如何持久化?是否需要同步到云端?
    • 旧待办数据如何兼容?是否自动添加“默认标签”?
  4. 生成结构化提案:
    开发者回答完问题后,AI自动生成完整提案包,包含:

    • proposal.md:功能动机、核心需求、边界场景、向后兼容说明;
    • design.md:技术选型(如标签数据结构、存储方案)、核心算法(如标签筛选逻辑);
    • tasks.md:拆分后的实现任务(如“数据模型更新”“标签UI组件开发”“筛选功能实现”“测试用例编写”);
    • specs/:规范增量文件,明确功能的技术要求与交互标准。

Step 2:审查对齐——人和AI共同确认,避免偏差

提案生成后,开发者需和AI一起审查,确保需求、技术方案完全符合预期,这是避免后续返工的关键。

审查重点与操作:

  1. 需求完整性:是否覆盖所有核心场景(如标签重命名后,关联的待办是否同步更新);
  2. 技术可行性:技术选型是否适配现有项目(如LocalStorage存储标签是否满足性能需求);
  3. 边界情况:是否考虑异常场景(如标签名称重复、待办删除后标签的处理);
  4. 迭代修改:若发现问题,直接在AI工具中反馈,AI会自动更新提案,例如:

    请修改提案:1. 标签颜色支持6种预设颜色,不支持自定义;2. 一个待办最多关联3个标签;3. 旧待办默认无标签,不自动添加。

工具辅助审查:

# 查看当前活跃提案
openspec list
# 验证提案格式正确性
openspec validate add-tag-functionality
# 查看提案详情(含任务清单与规范)
openspec show add-tag-functionality

Step 3:实现任务——AI按规范执行,精准生成代码

提案审查通过后,AI将严格按照任务清单和规范文档,逐模块生成代码,避免“画蛇添足”或“遗漏功能”。

实现过程与优势:

  1. 任务化执行:AI按tasks.md中的步骤逐个实现,标记完成状态(如“✅ 数据模型更新完成”);
  2. 风格一致性:AI自动适配项目现有代码规范(如组件命名、注释格式),生成的代码无需手动调整;
  3. 实时反馈:若实现过程中发现问题(如数据结构设计不合理),可暂停实现,修改提案后再继续;
  4. 测试用例同步生成:AI不仅写功能代码,还会按规范生成单元测试、手动测试用例,确保功能可用。

示例:标签数据模型实现(TypeScript):

// 按提案中的数据结构规范生成
export interface Tag {
  id: string; // 唯一标识,UUID生成
  name: string; // 标签名称,非空且不重复
  color: 'red' | 'blue' | 'green' | 'yellow' | 'purple' | 'orange'; // 预设6种颜色
  createdAt: number; // 创建时间戳
}

export interface TodoItem {
  id: string;
  title: string;
  completed: boolean;
  tagIds: string[]; // 关联标签ID,最多3个
  updatedAt: number;
}

// 存储工具按规范使用LocalStorage
export const tagStorage = {
  saveTags(tags: Tag[]): void {
    localStorage.setItem('todo_tags', JSON.stringify(tags));
  },
  getTags(): Tag[] {
    const data = localStorage.getItem('todo_tags');
    return data ? JSON.parse(data) : [];
  },
  // 其他方法按规范实现...
};

Step 4:归档更新——规范固化,形成可追溯记录

功能测试通过后,执行归档命令,OpenSpec会自动更新项目规范,保存变更记录,形成完整的开发档案。

归档操作与效果:

  1. 执行归档命令:

    # 终端归档
    openspec archive add-tag-functionality --yes
    # 或在AI工具中执行
    /openspec:archive add-tag-functionality
  2. 归档后自动完成:
    • 变更提案移动到归档目录(按日期命名,如2025-10-20-add-tag-functionality);
    • 规范增量合并到项目主规范(openspec/specs/),形成最新的功能规范文档;
    • 验证所有规范的一致性,确保无冲突;
    • 生成归档报告,包含“新增文件数、修改文件数、完成任务数、未完成任务数”。

三、进阶实战:OpenSpec的深度优化与扩展场景

OpenSpec的价值不止于“单一功能开发”,还能适配复杂场景(如多模块联动、项目重构),通过进阶技巧进一步提升开发效率。

1. 多模块联动功能开发(以“电商APP购物车+优惠券联动”为例)

当功能涉及多个模块(购物车、优惠券、订单)时,OpenSpec可通过“跨模块规范关联”确保逻辑一致性:

  1. 提案阶段:AI自动识别关联模块,询问联动逻辑(如“优惠券是否仅适用于特定品类商品?购物车商品变更后优惠券是否重新计算?”);
  2. 规范设计:生成跨模块规范,明确数据流转规则(如“购物车商品总价≥100元才可使用优惠券”);
  3. 实现阶段:AI按模块拆分任务,先更新数据模型联动逻辑,再开发UI交互,最后编写集成测试;
  4. 归档阶段:自动更新购物车、优惠券、订单三个模块的规范文档,确保联动逻辑可追溯。

2. 项目重构场景的规范驱动

重构是AI编程的高风险场景,OpenSpec可通过“规范校验”降低风险:

  1. 提案阶段:明确重构目标(如“将Class组件改为Function组件”“优化接口请求性能”)、范围(如“仅用户模块”)、兼容要求(如“旧接口需兼容3个月”);
  2. 审查阶段:AI生成重构前后的规范对比文档,确认重构不破坏现有功能;
  3. 实现阶段:AI按“小步迭代”原则拆分重构任务,每完成一个模块就对照规范校验;
  4. 归档阶段:保存重构前后的代码快照、规范变更记录,便于回滚与审计。

3. 团队协作中的规范共享与权限控制

OpenSpec支持团队协作,解决多开发者与AI协同的问题:

  1. 规范共享:项目规范存储在代码仓库,团队成员共同维护,AI生成代码时优先遵循团队规范;
  2. 权限控制:通过Git权限管理,控制谁能创建提案、审查提案、执行归档,避免规范被随意修改;
  3. 冲突解决:多开发者同时修改同一规范时,OpenSpec会提示冲突点,需手动确认后合并;
  4. 协作记录:所有提案的审查意见、修改记录都保存在变更文件中,形成团队协作档案。

4. 规范文档的二次利用(自动化测试、用户手册生成)

归档后的规范文档可复用为其他资产:

  • 生成自动化测试用例:基于规范中的“场景描述”,AI自动生成Jest、Cypress等测试代码;
  • 生成用户手册:从规范中提取用户可见功能(如“标签创建步骤”“优惠券使用条件”),生成产品用户手册;
  • 生成接口文档:若功能涉及API开发,从规范中提取接口参数、响应格式,生成Swagger接口文档。

四、场景适配:OpenSpec的适用边界与优化建议

OpenSpec不是万能工具,需根据场景灵活使用,同时通过技巧优化流程效率。

1. 适用场景与不适用场景

场景类型 是否适用 原因
现有项目迭代(1→N) ✅ 高度适用 专为项目演进设计,规范可增量更新,不破坏现有功能
复杂功能开发(多模块、多逻辑) ✅ 高度适用 结构化规范确保逻辑一致性,避免遗漏场景
团队协作开发 ✅ 高度适用 规范共享+可追溯记录,降低协作成本
需长期维护的项目 ✅ 高度适用 规范文档与代码同步,便于后期维护
快速原型验证(0→1) ❌ 不推荐 流程稍繁琐,直接让AI写代码更快
一次性小脚本开发(≤100行) ❌ 不推荐 无需规范与归档,浪费时间
需求极度模糊(无明确目标) ❌ 不推荐 需先明确需求方向,再用OpenSpec落地

2. 效率优化技巧

  • 提案阶段:提前准备“需求清单模板”(如功能目标、用户场景、边界条件),减少AI提问次数;
  • 审查阶段:重点审查“核心场景”与“边界条件”,非关键细节可简化审查流程;
  • 实现阶段:对简单任务(如“添加字段”)让AI批量执行,复杂任务(如“核心算法”)拆分后分步实现;
  • 归档阶段:定期清理过期规范,合并重复规范,保持规范文档简洁。

3. 避坑指南

  • 不要过度设计规范:聚焦“必要条件”,避免冗余细节(如“按钮颜色为#1890FF”而非“按钮颜色为蓝色”);
  • 提案迭代不宜过多:建议迭代次数≤3次,过多迭代会导致需求漂移;
  • 测试后再归档:归档前必须手动测试核心流程,避免将有bug的功能归档;
  • 规范文档要活维护:定期回顾规范,删除过时内容,确保与代码同步。

四、总结:AI编程的下一个阶段——可控与高效的平衡

OpenSpec的核心不是“束缚AI”,而是“赋能AI”——通过规范让AI的强大生成能力精准落地,让开发者从“反复修改代码”中解放出来,聚焦“需求设计”“技术决策”“业务价值”。

从“猜着写”到“按规范写”,OpenSpec重塑了AI编程的流程:

  • 对开发者:需求更明确、迭代更高效、维护更轻松;
  • 对团队:协作更顺畅、知识更沉淀、交接更简单;
  • 对项目:质量更可控、文档更完整、风险更低。

如果你正在被AI编程的“不可控”困扰,或需要长期维护项目、团队协作开发,不妨试试OpenSpec——它可能不是最快的AI编程方式,但一定是最可控、最可持续的方式。

除非注明,否则均为李锋镝的博客原创文章,转载必须以链接形式标明本文链接

本文链接:https://www.lifengdi.com/ren-gong-zhi-neng/4648

推荐阅读

  • Claude Fable 5(claude-fable-5)深度详解
  • Everything Claude Code 详细使用文档
  • Claude Code全维度实战指南:从入门到精通,解锁AI编程新范式
  • LangChain + Zod 实战指南:构建类型安全的AI结构化输出系统
  • Gemini 3 Pro 深度测评:多模态AI编程的跨代际突破,从一句话到完整应用的全链路革命
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: AI编程 OpenSpec
最后更新:2025年12月15日

岁月同一天 8 月 10 日

回望过去的今天,你在写什么

  • 4 年前 2022年8月10日
    Linux开启FTP

    1、安装 vsftpd sudo yum install -y vsftpd 2、设置 vsftpd 开机自启动 sud…

相关文章
  • Claude Code全维度实战指南:从入门到精通,解锁AI编程新范式2026年2月11日
  • 9.9元解锁AI编程新体验:Doubao-Seed-Code 深度实测2025年11月28日
  • 从入门到精通:Qwen3-Coder 终端全攻略(环境搭建、高阶用法、实战案例详解)2025年11月5日
  • AI能写代码,却造不出软件:软件工程的核心竞争力从未改变2025年11月6日
  • Claude Fable 5(claude-fable-5)深度详解2026年8月5日

李锋镝

既然选择了远方,便只顾风雨兼程。

打赏 点赞
< 上一篇
下一篇 >
1234567891112131415161718192021222324252627282930313233343536373839404142434446474849505152535455575859606162636465666769727476777879808182858687909293949596979899
取消回复
…

文章评论

还没有评论,快来抢沙发吧~

生命中所有的灿烂,终要用寂寞偿还。

听点儿音乐吧 朋友~
文章目录
最新 热点 随机
最新 热点 随机
Kratos+ v1.1.14版本更新说明 Spring Boot 指定外部配置文件的方式 Spring Boot 配置加载优先级总结 Claude Fable 5(claude-fable-5)深度详解 如何通过命令查看Java应用内存中对象数量 关于服务的探活端口和业务端口不一致有什么问题
给主题增加了Now、每日心情、年度回顾、岁月同一天、随机漫步等功能AI时代,个人技术博客的出路在哪里?增加了两套复古皮肤-牛皮纸、千禧网页这个域名注册整整十年了,十年时间,真快啊WordPress实现用户评论等级排行榜插件WordPress网站换了个字体,差点儿把样式换崩了
内存屏障浅析 深入了解PostgreSQL TestNG基本注解 缓存架构实战指南:6大核心缓存技术深度解析与落地方案 Tomcat7.0配置CORS(跨域资源共享) 使用AbstractRoutingDataSource动态切换数据源
最近评论
Hary 发布于 11 小时前(08月09日) 我都想用了,但是是ty,转换有点麻烦
老张博客 发布于 2 天前(08月08日) 做的越来越精美了,好看。
Huo 发布于 2 天前(08月07日) 挺有特色的主题,还是感觉 WP 的确是强大
李锋镝 发布于 3 天前(08月07日) 没理解你想说啥
aboss 发布于 3 天前(08月07日) 你的后台web-login?
标签聚合
Claude AI WordPress 架构 SpringBoot AI编程 docker Spring 日常 ElasticSearch IDEA JVM 多线程 SQL MySQL JAVA 分布式 Redis K8s 数据库
友情链接
  • 老张博客
  • Mr.Sun的博客
  • 知向前端
  • 瓦匠个人小站
  • 皮皮社
  • 林羽凡
  • 志文工作室
  • 旧时繁华
  • 韩情脉脉
  • 拾趣博客导航
  • 临窗旋墨
  • 懋和道人
  • 哥斯拉
  • Honesty
  • Blogs·CN
  • 韩小韩博客
  • 搬砖日记
  • 风渡言
  • 彬红茶日记

COPYRIGHT © 2026 lifengdi.com. ALL RIGHTS RESERVED.

正在博友圈履约中

域名年龄

Theme Kratos+ By Dylan Li

津ICP备2024022503号-3

京公网安备11011502039375号