OpenSpec:让AI按规矩写代码,告别AI乱来时代

作者:

你有没有遇到过这种情况?

让AI帮你写代码,它倒是写得快,但:

  • 需求理解错了,白写
  • 代码风格不统一,东一块西一块
  • 没有文档,过两周自己都看不懂
  • 改个需求,整个推倒重来

今天介绍一个神器——OpenSpec,它能让AI”按规矩”写代码。

一句话总结:AI编码的规范驱动开发框架,让AI先想清楚再动手。

一、传统AI编码的问题

我们先看看传统AI编码的流程:

`

用户:帮我写一个用户注册功能

AI:好的![噼里啪啦写了一堆代码]

用户:等等,我没说要支持手机号注册

AI:哦,那我重写

用户:等等,密码加密要用bcrypt

AI:好的,再改

用户:等等,还要支持邮箱验证

AI:……

`

这个流程有什么问题?

  1. 需求不明确:AI猜着写,猜错了就返工
  2. 没有规范:每次生成的代码风格不一样
  3. 缺少文档:为什么这么设计?没人知道
  4. 难以迭代:改一个地方,其他地方跟着崩

二、OpenSpec的解决方案

OpenSpec的核心理念是:先写规范,再写代码。

它的流程是这样的:

`

  1. 用户提出需求
  2. OpenSpec生成规范文档(Spec)
  3. 用户确认规范
  4. OpenSpec根据规范生成代码
  5. 代码可验证、可追溯

`

这不是什么新概念,软件工程早就这么教了。但问题是:以前写规范比写代码还累,没人愿意干。

OpenSpec用AI解决了这个问题:让AI帮你写规范,然后让AI按规范写代码。

三、OpenSpec是什么?

OpenSpec是一个开源的规范驱动开发框架,专为AI编码助手设计。

它的核心特性:

  • 规范管理:自动创建、维护、归档规范文档
  • 变更追踪:每次修改都有完整记录
  • 多工具支持:Claude Code、Codex、Cursor、OpenCode等
  • Brownfield友好:特别适合已有代码库的持续迭代

四、快速开始

4.1 安装

`bash

# 全局安装

npm install -g @fission-ai/openspec@latest

# 初始化项目

openspec init

`

初始化后,OpenSpec会在项目中创建以下目录结构:

`

your-project/

├── openspec/

│ ├── config.yaml # 配置文件

│ ├── specs/ # 主规范文档

│ ├── changes/ # 变更记录

│ └── archive/ # 归档的变更

├── .claude/ # Claude Code配置

├── .cursor/ # Cursor配置

└── .opencode/ # OpenCode配置

`

4.2 基本使用

`bash

# 创建新的变更提案

openspec propose “添加用户注册功能”

# 探索和规划

openspec explore

# 实施变更

openspec apply

# 归档完成的变更

openspec archive

`

五、核心工作流

5.1 Propose(提议)

当你有一个新需求时,先创建一个提案:

`bash

openspec propose “添加用户注册功能,支持手机号和邮箱”

`

OpenSpec会生成一个规范文档,包含:

  • 需求描述
  • 技术方案
  • 影响范围
  • 测试策略

5.2 Explore(探索)

在实施之前,先探索一下:

`bash

openspec explore

`

这个阶段会:

  • 分析现有代码库
  • 识别可能的影响
  • 提出技术方案
  • 评估风险

5.3 Apply(应用)

确认规范后,开始实施:

`bash

openspec apply

`

AI会严格按照规范文档来写代码:

  • 代码风格一致
  • 命名规范统一
  • 注释完整
  • 测试覆盖

5.4 Archive(归档)

变更完成后,归档:

`bash

openspec archive

`

归档后:

  • 变更记录永久保存
  • 主规范文档更新
  • 新会话自动加载历史规范

六、为什么OpenSpec有效?

6.1 外部长期记忆

AI的上下文窗口是有限的,聊着聊着就忘了之前说了什么。

OpenSpec把规范写到文件里,成为AI的”外部记忆”:

  • 每次新会话自动加载相关规范
  • 历史变更随时可查
  • 不会因为上下文窗口限制而丢失信息

6.2 变更可追溯

每个变更都有完整记录:

  • 为什么要改?
  • 改了什么?
  • 谁批准的?
  • 测试通过了吗?

这在团队协作中特别重要。

6.3 代码质量保障

AI按规范写代码,而不是”自由发挥”:

  • 命名规范:团队统一的命名风格
  • 架构规范:不破坏现有架构
  • 测试规范:每个功能都有测试
  • 文档规范:代码即文档

七、与其他工具对比

特性 OpenSpec Superpowers Spec-Kit

|——|———-|————-|———-|

核心定位 规范管理 执行纪律 流程骨架
适合场景 已有代码库 新项目 项目初始化
上手成本 中等 低-中 中等
Token消耗 中高 中等
变更追踪 中等
TDD强制

7.1 OpenSpec vs Superpowers

  • OpenSpec:管”做什么”——需求、规范、设计
  • Superpowers:管”怎么做”——流程、纪律、质量

两者不冲突,可以组合使用。

7.2 OpenSpec vs Spec-Kit

  • OpenSpec:增量变更管理,适合已有项目
  • Spec-Kit:项目初始化规范,适合新项目

八、实战案例

8.1 案例:给现有项目添加新功能

假设你有一个电商项目,要添加优惠券功能:

`bash

# 1. 创建提案

openspec propose “添加优惠券系统,支持满减、折扣、固定金额”

# 2. 探索现有代码

openspec explore

# 输出:分析了商品模块、订单模块、支付模块的影响

# 3. 确认规范后实施

openspec apply

# AI严格按照规范生成代码

# 4. 完成后归档

openspec archive

# 变更记录永久保存

`

8.2 案例:团队协作

多人协作时,OpenSpec的价值更大:

  1. 规范先行:新人加入项目,先读规范
  2. 变更审核:每个PR都有对应的规范文档
  3. 知识沉淀:离职的人带走的是代码,留下的是规范

九、OpenSpec的哲学

OpenSpec背后有一个深刻的哲学:AI编码不应该是”对着干”,而应该是”一起干”。

传统AI编码:

  • 用户提需求 → AI猜 → 用户纠错 → AI改 → 循环

OpenSpec编码:

  • 用户提需求 → AI生成规范 → 用户确认 → AI按规范写代码 → 完成

区别在哪?规范文档是中间层,它让AI和用户在同一个频道上对话。

十、不足与展望

当前不足

  • 需要一定的学习成本
  • 小项目可能觉得”多此一举”
  • 依赖AI工具的质量

未来展望

  • 更多AI工具支持
  • 更智能的规范生成
  • 团队协作功能增强
  • 与CI/CD深度集成

十一、我的使用建议

  1. 从小需求开始:别一上来就搞大重构,先用小需求熟悉流程
  2. 规范要具体:越具体,AI写出来的代码越符合预期
  3. 定期归档:别让changes目录堆积太多
  4. 团队统一:如果团队使用,先统一规范风格

总结

OpenSpec解决了一个核心问题:如何让AI”按规矩”写代码。

它不是要限制AI的能力,而是给AI一个”导航仪”,让它知道该往哪走。

如果你:

  • 受够了AI乱写代码
  • 想要可维护的AI生成代码
  • 需要团队协作的规范管理

那OpenSpec值得一试。

项目地址:https://github.com/Fission-AI/OpenSpec


你用过OpenSpec吗?或者你有什么让AI”听话”的技巧?欢迎评论区分享!

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注