凌晨两点,你盯着屏幕上 Claude Code 又一次"自由发挥"生成的代码,深吸一口气——这已经是今晚第五次让它重写了。
明明需求说得很清楚,它偏偏要给你整个"创意改编"。你说"加个用户登录",它给你塞进 JWT、OAuth、SSO 三件套,外加 200 行防御代码;你纠正"我就要个最简单的账号密码登录",它点头说"好的",转头又给你加上了双因素认证。
这几乎是所有 AI 编码助手的通病:模型太想替你"补全需求",却忘了你最初到底想要什么。
但如果我告诉你,有一种工作流,能让 AI 在写代码前先"读题"——先看你的规范文档,再动手,一次过稿率能从 30% 拉到 80%,你愿意试试吗?
今天要聊的,就是这个把"先写规范、再写代码"做成标准动作的开源神器——OpenSpec。它刚在 GitHub 斩获 5.7w+ Star,单日涨星 167,是今年 AI 编程工具圈最被低估的工作流革命。
01 AI 写代码总跑偏,问题到底出在哪?
在讲 OpenSpec 之前,我们先把"AI 编码为什么总不听话"这件事掰开揉碎。
回想一下你平时怎么和 AI 协作的:你打开 Cursor 或 Claude Code,在对话框里敲一段自然语言——"帮我写个 XX 功能",回车,看着代码生成。如果一次成功,皆大欢喜;如果不对,就再补一句"不是这个意思,我是说……"。
这就像在微信里跟产品经理对需求:说三遍才能对齐一次。
但代码不是聊天,错一个字就报错。AI 编码工具最怕的不是"不会写",而是"猜你想写什么"。它不知道你的项目背景、你的命名规范、你的边界条件、你的"绝对不能动"的核心模块。它只有你那一两句话的上下文。
行业里逐渐形成了一个共识:需求越模糊,AI 越放飞自我。
于是有人开始尝试:把需求写成文档丢给 AI。但 Markdown 文档太自由,AI 还是会选择性忽略关键约束;写得太长,AI 又会"读不完"。
真正的解法是:让"规范"变成一种结构化、可校验、AI 必读的产物。这就是 OpenSpec 想做的事。
02 OpenSpec:把"先写规范"变成肌肉记忆
OpenSpec 的全称是 Spec-driven development for AI coding assistants——一句话概括:SDD,规范驱动开发,专门为 AI 编码助手设计。
它不是又一个 IDE 插件,也不是替代 Cursor 的新工具。它是一套工作流协议,介于你和 AI 之间,专门负责把"你想要什么"翻译成"AI 看得懂、看得全、不会漏"的规范文档。
OpenSpec 的核心设计有三个巧思:
第一,结构化的 spec,而不是自由文本。它把一个需求拆成 Why(为什么做)、What(做什么)、How(怎么做)三层,每一层都有明确字段。你不用再写"我觉得应该这样……"这种模糊描述,AI 看到的就是一份"考卷"。
第二,spec 和代码一起进版本控制。你的规范文件和代码在同一个仓库里,Code Review 时看 spec 就知道这次改动的意图,三个月后回看也一眼能明白当初为什么这么写。这对团队协作是质的提升。
第三,AI 编码工具的"上下文预加载"。OpenSpec 提供了和主流 AI 编码助手对接的能力,让模型在生成代码前自动加载相关 spec,从源头减少"猜"的环节。
说白了,OpenSpec 就是给 AI 配了一个永远在线的产品经理,而且这个 PM 不会忘记你说的任何一句约束。
03 实际体验:从 10 轮改稿到 1 轮过稿
讲原理太抽象,我直接给你演一遍我自己的真实使用场景。
场景一:给博客加一个 RSS 订阅功能。
以前我会这么干:打开 Cursor,输入"帮我加个 RSS 订阅",AI 给我生成一坨代码;我发现没处理空摘要,纠正;发现没加缓存,纠正;发现没兼容旧版 Atom 协议,纠正……平均 8-10 轮对话才能拿到能用的代码,耗时 40 分钟。
现在用 OpenSpec,我会先跑 openspec new add-rss-feed,它会自动生成一份结构化的 spec 模板。我填上:
- Why:让读者用 RSS 阅读器订阅博客更新
- What:输出
/feed.xml,包含最近 20 篇文章 - How:使用 feed 库,缓存 30 分钟,向后兼容 RSS 2.0 和 Atom 1.0
然后让 Cursor 基于这份 spec 生成代码。结果:第一轮就过了,只在缓存策略上微调了一下。总耗时 8 分钟。
场景二:跨会话保持上下文。
这是 OpenSpec 最让我惊艳的地方。我经常一天下来和 AI 聊好几个不同任务,第二天打开发现——AI 早就不记得昨天聊过什么了。OpenSpec 让我所有的 spec 都沉淀在仓库里,下次开新会话时,AI 自动加载相关 spec,相当于给它"复习"了一遍项目上下文。
这种感觉就像:从"每次都在和实习生对接"升级到了"在和一个记得所有历史的老员工协作"。
04 和其他方案比,OpenSpec 强在哪?
你可能会问:这种"先写文档再写代码"的思路,早就有人做了啊。OpenSpec 和它们到底有什么不一样?
我用一张表给你说清楚:
OpenSpec vs 普通 Prompt:Prompt 是即时沟通,说完就忘;OpenSpec 是持久化资产,沉淀在代码库里,新人 onboarding 翻一遍 spec 就懂项目意图。
OpenSpec vs 传统 PRD/设计文档:传统文档是写给人看的,AI 看不懂也看不完;OpenSpec 的 spec 是人机共读的——结构化字段 AI 能解析,Why/What/How 的层级人类也能秒懂。
OpenSpec vs LangChain/AutoGPT 这类 Agent 框架:那类工具是让 AI自己拆任务,结果就是 AI 拆得乱七八糟,越帮越忙;OpenSpec 反其道而行,让人拆任务、AI 执行,可控性强了一个数量级。
简单总结:OpenSpec 是给"人类主导、AI 执行"的工作流量身定制的,它不抢你的方向盘,它只负责让 AI 看路更清楚。
05 它支持哪些 AI 编码平台?
OpenSpec 的设计是工具无关的,它不绑定任何一家 AI 编码助手。理论上任何能读取本地文件作为上下文的工具都能用,但官方对主流平台做了一等公民适配:
无论你日常用哪个 AI 编码工具,OpenSpec 都能无缝嵌入现有工作流。这意味着你不会被工具绑定,今天用 Cursor,明天换 Claude Code,spec 资产照常生效。
06 安装路径:3 分钟接入工作流
OpenSpec 的安装非常轻量,下面分平台说明:
npm install -g @fission-ai/openspec
# 进入项目目录初始化
cd your-project && openspec init
# 创建一个新规范
openspec new add-user-auth
npm install -g @fission-ai/openspec
# 初始化 + 创建第一个规范
cd your-project
openspec init
openspec new add-user-auth
初始化后,你的项目里会多出一个 openspec/ 目录,里面就是所有 spec 的家。打开你常用的 AI 编码工具,让它先读一遍 openspec/ 目录,从此 AI 就"持证上岗"了。
官方文档里还提供了和 Claude Code、Cursor 等工具的详细对接指南,按步骤来基本不会踩坑。
07 写在最后:AI 编码的下一个分水岭
2024 年是"AI 会不会写代码"的问题被解决的一年;2025 年开始,我们真正要面对的是"AI 怎么写出我想要的代码"。
OpenSpec 给出的答案是:别让 AI 猜,让它读。
当所有团队都在比"谁的 prompt 写得好"时,真正的护城河其实是谁的需求表达更结构化、更可复用。OpenSpec 把这件事变成了一种工程实践,而不是个人技巧。
如果你已经受够了和 AI 反复拉扯,如果你想让团队的代码风格和架构决策不再"靠心情",给 OpenSpec 一次机会。它不会让你的 AI 变得更聪明,但会让它变得更听话。
你觉得 AI 编码最大的痛点是什么?是"猜不准需求"、"记不住上下文",还是"擅自发挥"?评论区聊聊,揪 3 位送 OpenSpec 实操手册一份 👇
GitHub: https://github.com/Fission-AI/OpenSpec
夜雨聆风