引言:在OpenCode中使用OpenSpec

最近我在OpenCode环境中尝试使用 OpenSpec,想分享一下这段体验。不熟悉OpenSpec的朋友,简单介绍一下:它是一个规约驱动开发(SDD)框架,为AI辅助编程工作流提供结构化支持。它现在支持与OpenCode集成,正好契合我的开发环境。
这篇文章里,我会聊聊我对规约驱动开发的理解、它如何与vibe coding结合,以及为什么我最终选择了OpenSpec而非Spec Kit。
什么是规约驱动开发?

规约驱动开发(SDD) 是一种在写代码之前先定义清晰规约的方法。不是直接跳到实现阶段,而是先明确你要做什么、为什么做、以及它应该如何工作。就像盖房子前先画好详细的设计图。
核心工作流
OpenSpec遵循一个简洁的三阶段流程:
- Propose(提议) — 描述你的想法,AI生成提案、规约、设计文档和任务分解
- Apply(应用) — AI按照任务清单一步步实现变更
- Archive(归档) — 完成的变更被移动到归档目录,保留清晰的记录
主要优势
- 实现前对齐:在写代码前,你和AI就方案达成一致
- 持续上下文:规约文件存放在代码库的
openspec/目录下,不会在会话间丢失 - 可追踪进度:任务以清单形式组织,方便监控和审查
- 审计轨迹:每次变更都有文档记录,便于理解历史决策
与Vibe Coding的结合
如果你喜欢 vibe coding(那种凭直觉快速迭代的流动状态开发方式),可能会担心SDD会不会太死板。从我的经验来看,它们其实相辅相成。Vibe coding适合探索和快速原型,SDD则在实现复杂功能或维护长期项目时发光发热。先用vibe coding探索想法,准备构建可持续的成品时再切换到SDD。
更换oh-my-opencode的模型

岔开话题一下:如果你看过我之前的发文,应该知道我在优化oh-my-opencode的模型配置。最近我又做了一个调整 —— 把主模型换成了 Kimi K2.5。
有趣的是,这正好和最近的一则行业新闻呼应:Cursor最近承认他们的新Composer 2模型是基于Kimi K2.5作为训练基座构建的。虽然Cursor在此基础上做了继续预训练和强化学习,但底座是Kimi K2.5。这印证了我的选择 —— 如果Cursor都押注Kimi做他们的编程助手,那我的配置里也该考虑它。
OpenSpec与Spec Kit的对比
在选定OpenSpec之前,我也评估了GitHub的Spec Kit。对比结果如下:
| 维度 | OpenSpec | Spec Kit |
|---|---|---|
| 方式 | 迭代式,提议优先 | 全面但重量级 |
| 最适合 | 存量项目、已有代码库 | 全新项目、新功能 |
| 工作流 | 灵活阶段(提议→应用→归档) | 严格的阶段关卡 |
| 配置 | 轻量(npm install) | 需要Python环境 |
| 文档 | Markdown格式,简洁 | 大量Markdown模板 |
| 变更追踪 | 内置(ADDED/MODIFIED/REMOVED) | 需手动协调 |
| 工具支持 | 20+ 智能体/IDE | 8+ 支持的智能体 |
关键差异
Spec Kit非常适合大型新功能开发,前期规划的投入能通过减少返工获得回报。它提供全面的模板和严格的阶段关卡确保完整性。但这种刚性在小任务或维护现有代码库时可能显得过重。
OpenSpec则是为存量项目设计的。它使用变更标记(ADDED/MODIFIED/REMOVED)追踪相对于现有功能的改动,非常适合迭代改进。工作流更灵活,可以随时更新任何文档,没有严格的阶段关卡。
我为什么选择OpenSpec
试用两者后,我因为几个原因选择了OpenSpec:
1. 维护存量项目
我的工作大多是维护现有项目,而非从零构建。OpenSpec的变更追踪方式(标记为ADDED、MODIFIED或REMOVED)非常契合这种工作流。
2. 团队协作考量
在团队环境中,不是所有人都会用OpenSpec。OpenSpec的灵活性意味着即使团队成员不用这个工具,也能理解和审查变更 —— 规约就是仓库里的Markdown文件而已。
3. 简洁性
OpenSpec更轻量、更易上手。不需要配置Python环境,也不需要研究复杂的模板。简单的npm install -g @fission-ai/openspec就搞定。
4. 个人开发工作流
对个人项目和小任务,OpenSpec恰到好处。既提供了足够的结构保持条理,又不会显得官僚。
OpenSpec使用方法和小技巧
开始使用
|
|
这会创建一个openspec/目录,包含:
AGENTS.md— 给AI智能体的指示project.md— 全局项目上下文specs/— 当前系统规约changes/— 活跃的变更提案
基本工作流

-
创建提案:
1/opsx:propose add-user-authenticationAI会生成:
proposal.md、design.md、tasks.md和变更规约 -
审查和优化:检查生成的文件,按需调整
-
应用变更:
1/opsx:applyAI按任务清单逐项实现
-
完成后归档:
1/opsx:archive完成的变更移到
openspec/changes/archive/
使用小贴士
- 从小做起:不要试图一次性规约整个项目,先从一个功能或bug修复开始
- 应用前审查:提案阶段是抓住误解的最后机会,趁代码还没写
- 版本控制规约文件:提交
openspec/目录,让整个团队受益 - 存量项目用
/opsx:onboard:这个命令扫描代码库生成初始规约
总结
在OpenCode中使用OpenSpec几周后,我确信规约驱动开发在现代AI辅助工作流中有一席之地。它不会取代vibe coding那种创造性、探索性的本质,但会在需要时增加一层有价值的结构。
OpenSpec的轻量方式和OpenCode的智能体架构天然契合。无论你是维护存量代码、团队协作,还是只是想更刻意地进行开发流程,我都建议试试。
如果你已经在用oh-my-opencode,集成是无缝的 —— 在项目中初始化OpenSpec,然后就开始使用斜杠命令。对我的模型配置历程感兴趣的朋友,可以看看我之前关于oh-my-opencode模型选择的文章。
你有没有试过用OpenSpec或Spec Kit做规约驱动开发?欢迎在评论区分享你的体验。