如何让AI先按OpenSpec规格,再写 Claude Code?
摘要:这两年,AI 编码工具越来越像一个“高产、聪明、执行力很强,但偶尔也会自作主张的新同事”。 你让它写个功能,它往往真能写出来; 但写出来的东西是不是你真正要的、边界是不是清楚、设计是不是一致、后续是不是好维护,就不一定了。 很多团队已经感受
这两年,AI 编码工具越来越像一个“高产、聪明、执行力很强,但偶尔也会自作主张的新同事”。
你让它写个功能,它往往真能写出来;
但写出来的东西是不是你真正要的、边界是不是清楚、设计是不是一致、后续是不是好维护,就不一定了。
很多团队已经感受到一种很现实的落差:
不是 AI 不会写代码,
而是 AI 太容易在需求还没对齐时,就把代码写得飞起。
于是,问题开始从“怎么让 AI 写得更快”,转向“怎么让 AI 写得更准、更稳、更可追溯”。
这正是 OpenSpec 的价值所在。
它不是再造一个 AI,也不是替代 Claude Code。更准确地说,OpenSpec 是一套面向 AI 编码助手的规范驱动开发工作流;Claude Code 则是把这套工作流真正执行起来的强执行代理。
一个更像“方向盘”,一个更像“发动机”。
放在一起用,目标不是让 AI 写更多代码,而是让 AI 少写那些方向看似对、其实需求没对齐的代码。
先给结论:
如果你只是想让 AI 帮你“写一段代码”,OpenSpec 可能显得有点正式;
但如果你已经开始用 Claude Code 做真实项目、改现有代码库、推进多人协作任务,那 OpenSpec 往往不是“锦上添花”,而是“避免反复返工”的那层护栏。
这篇文章适合谁看
这篇文章尤其适合下面几类人:
已经在用 Claude Code、Cursor、Windsurf 之类 AI 编码工具的人;
经常做真实项目改造,而不是只写 demo 的开发者;
想把“聊天式开发”升级成“有留痕、有规范、有归档”的团队负责人;
看过一些 OpenSpec 教程,但被旧命令、旧流程、旧截图绕晕过的人。
读完你能得到什么
这篇文章会尽量回答 5 个最现实的问题:
OpenSpec 到底解决什么问题?
它和 Claude Code 为什么适合一起用?
OpenSpec 1.2.0 之后,命令和工作流到底怎么理解?
不同场景下,应该怎么走 propose / explore / apply / archive?
团队如果想低成本落地,最小实践方案该怎么搭?
你不需要先接受一整套“新方法论”,再决定要不要用它。
更实际的方式是:先把文章读完,看看它能不能帮你解决下面这些老问题——
AI 总是抢跑,需求还没对齐就开始写代码;
功能确实做出来了,但设计决策留不下来;
聊天里讲过的约束,过几天就没人记得;
一旦多人并行或者跨会话继续,整个上下文就开始漂移。
如果这些问题你都遇到过,那 OpenSpec 大概率值得认真看一遍。
一、先说人话:OpenSpec 到底是什么
一句话解释:
OpenSpec 是一套把“需求、规格、设计、任务、实现、归档”串起来的 AI 协作工作流。
它强调的不是“想到什么就直接让 AI 开始改”,而是:
先把这次变更说清楚;
再把系统行为和边界写清楚;
必要时把技术方案定清楚;
再把任务拆成可执行清单;
最后才让 AI 进入实施阶段。
这套思路,本质上就是 Spec-Driven Development(规范驱动开发) 在 AI 编程时代的落地版本。
OpenSpec 的核心价值,不是多几个命令,而是把原本散落在聊天记录里的“共识”,沉淀成项目里的正式工件。这样一来,AI 的上下文不再只依赖会话记忆,而是开始依赖项目内可追踪、可审查、可归档的事实。
换句话说:
没有 OpenSpec 时,很多需求只存在于聊天里;
有了 OpenSpec 后,需求、设计和任务会变成项目内的正式资产。
这件事对个人开发者有帮助,对团队协作更重要。
因为团队最怕的不是 AI 写得慢,而是:
每个人都在用 AI,但每个人理解的范围不一样;
每个人都在提效,但结果不可复盘、不可审计、不可继承;
过几天回头看,只记得“改过”,却说不清“为什么这么改”。
OpenSpec 的意义,就是尽量把这种“聊天式开发”升级为“带工件留痕的工程式开发”。
二、为什么它和 Claude Code 很搭
Claude Code 的强项很明显:
能读取真实代码库上下文;
能连续执行多步任务;
能跑命令、查文件、改代码、补测试;
对真实工程改造比只会“补全一段代码”的工具更有行动力。
但工具越强,越需要约束。
因为越能干的代理式工具,越容易在下面这些场景里“用力过猛”:
需求边界没说清,就开始大范围改动;
设计方案还没定,已经先把实现铺开;
聊天里说过的关键限制,没有被固化进项目;
多任务切换后,前一次变更的上下文被新的目标冲掉;
最终代码能跑,但没人说得清“为什么这么实现”。
Claude Code 负责把事推进下去,OpenSpec 负责把事定义清楚。
