我用AI编程工具也有段时间了——Claude、Cursor、Copilot都试过。它们写代码确实快,偶尔还能给你整出点惊喜操作……但毛病也很明显:太爱“自由发挥”了。你让它“加个个人资料筛选功能”,结果它给你鼓捣出个半成品,看着能用,实则处处是坑。
直到我发现了 OpenSpec 这个小工具——一个命令行工具,居然能把AI代码助手调教得像个靠谱队友。不用配置API密钥,不用折腾复杂环境,核心就一个:先定需求,再写代码。

痛点直击:聊天记录≠需求规格
大多数AI工具确实能记住你在对话框里说的话——但仅限于当前会话。一旦上下文重置,你之前聊的那些“宏伟蓝图”就全没了。
于是AI开始凭“感觉”写代码,
而我们就得花大把时间返工,收拾它留下的烂摊子。
这就是OpenSpec的用武之地。它提供了一套简单又结构化的工作流程,让AI精准get到你的开发需求。而且在它敲下第一行代码前,你就能确认双方达成的共识,再也不怕跑偏。
核心思路:用需求驱动开发
OpenSpec的精髓,就是给AI加了一套“需求先行”的工作流。
再也不用在对话框里长篇大论解释需求,盼着AI能听懂。现在你只需要四步走,轻量又高效:
就这么简单,四步搞定。
实操演示:给应用加个个人资料筛选功能
假设我要给应用加个筛选功能,让用户能按角色和团队搜索个人资料。
我只需要跟AI说一句:
帮我写一份OpenSpec需求提案,要实现按角色和团队筛选个人资料的功能。
唰的一下,它直接给我生成了一个文件夹:
openspec/ └── changes/ └── add-profile-filters/ ├── proposal.md ├── tasks.md └── specs/profile/spec.md
协作评审环节
接着我再补一句:
能不能给角色和团队筛选功能加上验收标准?
AI会立刻更新需求文档。我们可以反复沟通修改,直到需求描述完全符合我的预期。
确认无误后,我输入这条命令:
/openspec:apply add-profile-filters
AI就会严格按照敲定的方案,一步一步生成代码。没有天马行空的发挥,不会漏掉任何需求点。
收尾工作
测试通过后,我再跟AI说一句:
/openspec:archive add-profile-filters
这次的变更就会合并到主需求库——这里就是你项目的唯一需求真相源。
所有历史记录都存在 openspec/changes/ 目录里,全程可追溯,啥都丢不了。
这感觉,有点像给需求文档装了个Git版本控制系统。
再举一例:给项目加双因素认证(2FA)
给AI提需求要加2FA功能,它生成的需求文档长这样:
## 新增需求### 需求:双因素认证功能系统必须在用户登录时,强制要求进行二次验证。#### 场景:必须验证一次性验证码(OTP)- 当用户提交有效的账号密码后- 系统需触发一次性验证码验证流程
而 tasks.md 里的开发任务清单则清晰明了:
这哪里是单纯的代码任务,这分明是让开发和需求完美对齐的说明书!
两分钟搞定安装部署
你只需要确保电脑装了 Node.js 20.19及以上版本,然后执行三条命令:
npm install -g @fission-ai/openspec@latestcd my-projectopenspec init
它会自动创建 openspec/ 目录,配置好和AI工具的集成,直接就能用。
如果你用的是Cursor、Claude Code或Copilot,它会自动添加 /openspec:proposal 这类命令;就算不用这些工具,你直接跟AI说“创建一份OpenSpec需求提案”,它照样能工作。
我为啥偏爱这个工具
以前我都是把需求存在Notion或者零散的Markdown文件里,OpenSpec终于把需求和AI编程工具直接打通了。
它完全不搞“取而代之”那一套,而是做你现有工作流的神助攻。你照样能用顺手的AI代码助手,只是它再也不会给你写些莫名其妙的功能了。
划重点
OpenSpec就干好一件事,还干得特别棒:
让人和AI在写代码前,先就“要做什么”达成共识
安装命令再贴一遍:
npm install -g @fission-ai/openspec@latestopenspec init
然后直接跟AI说:
“帮我写一份OpenSpec需求提案,要实现深色模式功能。”
就这么简单——你的AI从此告别瞎猜,精准复刻你的需求。
如果你也被AI代码助手的“过度创作”折磨得够呛,真心建议试试OpenSpec。它没让AI变聪明,只是让它学会了听话。
有很多人用sdd的方法去推进项目,过程很痛苦。也有很多吐槽。
比如 : 走sdd我改个按钮,都要很多的时间,但是我自己手动改几秒钟就好了
这种情况下我是这样认为的。
1、有下面几种情况是有必要走sdd创建新的spec的
2、在修复问题的时候,如果是改变系统规则的,需要走sdd。如果不是改变系统规则的不需要spec
3、在调整样式,调试、临时poc的不需要spec
4、如果是性能优化,安全增强的时候,能量化出要求的走sdd,量化不出的也不需要spec
5、最终将所有改动归档。
最后,sdd不是银弹,他不能解决所有问题还是要视情况而定。