type
Post
status
Published
date
Apr 10, 2026
slug
VibeCoding-007
summary
OpenSpec
tags
Vibe Coding
category
Vibe Coding
icon
password
😀

SDD 三大框架对比

1 三大框架核心信息

框架名称
定位标签
背景与适用场景
核心流程/特点
特性
OpenSpec
最轻量
Fission-AI (YC) 出品 三步工作流 适合 Brownfield(遗留项目)+ 轻量变更
聚焦「为什么做这个变更」(变更上下文)
/verify 三维验证 ✅ Delta Spec 增量更新 ✅ 24+ AI 工具 零锁定
spec-kit
最完整
GitHub 官方出品 四步流程 适合 Greenfield(全新项目)大型项目
聚焦「该构建什么」(规格说明)
✅ Constitution 深度约束 ✅ 项目级规则强制执行 ✅ 完整需求→代码全流程
Superpowers
最自动
obra·Skills 框架 适合高质量交付场景
聚焦「代码写对了吗」(质量保证)
✅ 自动 TDD 纪律性执行 ✅ 行为驱动开发内置 ✅ Skills 自动化流程

2 三框架核心差异(互补不互斥)

  1. OpenSpec:负责「为什么做这个变更」——管理变更上下文,适配遗留项目与轻量迭代
  1. spec-kit:负责「该构建什么」——管理规格说明,为大型新项目提供完整流程与约束
  1. Superpowers:负责「代码写对了吗」——管理质量保证,通过自动化流程保障交付质量
notion image
notion image

OpenSpec

OpenSpec 项目架构 & 工作流

核心定位:类 Git 逻辑,管理需求规格变更

1 项目架构(src/ 目录)

模块
核心内容
cli/
Commander.js 命令行入口
commands/
命令实现层,封装子命令逻辑
core/(重点)
init.ts(29KB 核心文件)、archive.ts(归档+Delta 合并)、specs-apply.ts(Delta 合并算法)、Zod 验证、24 个 AI 工具适配器
prompts/
AI 交互 Prompt 模板
schemas/
内置工作流 Schema 定义
核心文件速记:init 控核心流程、archive 管归档、specs-apply 是 Delta 算法核心

2 核心工作流(标准四步)

步骤
操作
核心作用
1
openspec init
初始化项目,检测并配置 AI 工具
2
/opsx:propose
AI 生成提案(Why 变更原因+规格变更+任务清单)
3
/opsx:apply
按任务清单,落地规格变更至代码
4
openspec archive
Delta 合并入主规格,归档 Why/What/How 变更记录

3 两种工作流模式

模式
流程
特点
Core(默认)
propose → apply → archive
3 步完成,简洁高效,适配常规迭代
Expanded
new → continue → apply → verify → archive
5 步流程,支持精细控制,适配复杂变更

4 Delta 规格系统(类 Git diff)

变更类型
标识
核心说明
示例
新增
ADDED
新增需求条目(含 Given/When/Then 场景)
导出 PDF 功能
修改
MODIFIED
调整已有需求
登录超时 30min→15min
删除
REMOVED
废弃需求(历史完整归档)
旧版 API 过渡至 v2 后不再维护

OpenSpec 安装 & 目录拆解

核心定位:三步安装,快速搭建 AI 协作基础设施

1 安装三步流程

步骤
操作
核心说明
1
npm install -g openspec
全局安装,要求 Node.js ≥ 20.19
2
openspec init
交互式生成项目目录结构
3
config profile
配置单/多命令,适配不同工作流

2 目录结构拆解(openspec/

目录/文件
核心作用
config.yaml
项目配置,主动注入每次请求
specs/
系统当前行为的完整描述(源真相)
changes/
变更提案区,每个功能一个独立文件夹
🔗 Git 类比
  • specs/ ≈ main 分支 — 「当前系统长什么样」
  • changes/ ≈ feature 分支 — 每个功能独立开发
  • archive ≈ merge — 归档时合并变更到主 Spec

3 命令 Profile 类型

类型
包含命令
特点
core profile
propose / apply / archive
仅 3 个核心命令,简洁高效
custom profile
propose/apply / archive/verify / onboard/sync
共 11 个命令,支持更精细的流程控制
切换命令示例:

4 跨工具语法差异

工具
命令语法
说明
Claude Code
/opsx:propose
冒号分隔
Cursor / Windsurf
/opsx-propose
连字符分隔
所有工具
功能完全相同
仅语法形式不同,逻辑一致

config.yaml · 项目的「AI 宪法」

核心定位:替代传统 project.md,以 主动注入 替代 被动读取,保障 AI 协作确定性

1 为什么用 config.yaml?

对比项
旧方案(project.md
新方案(config.yaml)
读取机制
被动读取,AI 可能读不到
主动注入,100% 生效,无遗漏
稳定性
不确定(读/不读全看 AI)
100% 稳定,强制注入每个请求
定位
文档参考
AI 协作核心配置(项目的“宪法”)

2 三层结构(从基础到核心)

层级
作用
特点
schema
定义工作流类型
基础配置,一般不改
context
全局上下文,核心层
极度精炼,主动注入每个请求
rules
格式规则约束
按 artifact 类型分层(proposal/specs/design/tasks 各有标准)

3 context 三铁律(核心准则)

原则
核心要求
目的
✅ 极度精炼
只写 AI 不知道的项目特殊约定;通用最佳实践不用写
减少 token 消耗,避免冗余
✅ 活文档
AI 忽略了就加,膨胀了就剪
始终保持精炼、有效
✅ 超 10 行审视
context 每字都是 token 成本
控制长度,优化性能

4 核心结论

主动注入 > 被动读取 context 每一字节都是 token 成本 → 精炼是优化性能的第一步

CLAUDE.md 分阶段交互

核心目标:通过分阶段控制,防止 AI 「错上加错」,大幅降低修复成本

1 核心规则

CLAUDE.md 中写明交互规则:
每完成一个 Phase → 暂停总结 → 等待用户确认 → 再继续下一个阶段

2 两种交互模式对比

对比项
无分阶段规则(AI 默认行为)
有分阶段规则(CLAUDE.md 控制)
执行逻辑
AI 一口气写完所有 Phase,追求快速交付
每完成一个 Phase 必须暂停,先总结变更,等待确认再继续
偏差处理
Phase 1 出现理解偏差后,后续阶段在错误上继续堆叠
Phase 1 完成即可发现偏差,仅需修正约 50 行代码,损失最小
问题暴露时机
写 500-1000 行代码后,才发现方向根本错误
偏差早期暴露,可立即调整方向,后续阶段在正确基础上推进
修复成本
极高,几乎等于全部重写
极低,仅需修正少量代码,避免大规模返工
核心效果
错上加错,越走越偏
小步快跑,精准迭代,全程可控

3 关键结论

  • 分阶段控制是 AI 协作的“刹车”,能把错误扼杀在早期阶段
  • 修复成本差异巨大:50 行 vs 1000 行,本质是「小修小改」和「推倒重来」的区别
  • CLAUDE.md 规则的核心,就是强制 AI 进入「暂停-确认-继续」的循环,避免一次性写死

OpenSpec 三步核心工作流 + 四件制品

核心目标:用「先设计、后编码」的方式,把返工时间压到最低

1 完整工作流(含可选步骤)

  • 关键节点:propose 阶段生成全部四件制品,是整个流程的核心输入

2 四件制品详解(核心交付物)

制品
定位
核心内容
proposal.md
为什么做
意图:变更要解决的问题<br>范围:影响的模块<br>方法:大致实现思路<br>out-of-scope:明确不做什么,防止 AI 越界
specs/
做什么
Delta Spec 格式(只写变化部分):<br>• ADDED 新增需求<br>• MODIFIED 修改已有需求<br>• REMOVED 删除需求<br>(不重写整个文件,是 OpenSpec 高效的关键)
design.md
怎么做
技术方案选型<br>架构决策及理由<br>数据流描述<br>涉及的文件清单
tasks.md
执行清单
带 checkbox 的分阶段任务<br>按 Phase 分组,每个 Phase 有验证步骤<br>AI apply 时逐个标记 [x]<br>checkpoint 防止 AI 跑偏

3 效率对比:直接写代码 vs OpenSpec 流程

方式
时间投入
结果
直接写代码
2h 编码 + 1h 返工 = 3h ❌
返工成本高,方向错误代价极大
OpenSpec 流程
propose 5min + review 10min + apply 1.5h + verify 5min ≈ 2h ✅
省的不是编码时间,是返工时间

4 核心认知

  • propose 不是写代码,而是交出设计方案给你审查
  • 审查几十行的设计,比审查几百行的代码容易 10 倍
  • 上游花 10 分钟打磨 proposal,能省下下游 2 小时返工
  • 工程实践:先结构化需求 + 总结架构,再进行 propose

out-of-scope 关键点 & Review 不可跳过

核心原则:明确“不做什么” + 严格执行评审,杜绝 AI 越界与返工

1 AI 的「善意」陷阱

场景
风险表现
核心逻辑
需求不完整
只要求导航栏,AI 顺带引入动画库、搜索功能
AI 会基于“善意”补充未明确需求
后果
功能溢出,偏离预期
未声明“不做什么”,AI 无法判断边界
关键认知
告诉 AI「不做什么」,和告诉它「做什么」同等重要
双向定义才能精准控制范围

2 out-of-scope 实操

操作
具体示例
效果
proposal.md 中明确写出「不做」清单
✅ 不做动画效果<br>✅ 不做搜索功能<br>✅ 不接入后端 API
AI 严格遵守,绝不越界,100% 可控

3 Review 不可跳过

环节
内容
成本对比
时机
propose 阶段之后
-
审查对象
「设计方案」(几十行),而非直接看代码(几百行)
设计评审成本远低于代码返工
耗时
仅需 5-10 分钟
-
价值
发现问题 → 改设计方案,成本极低
避免后续生成 1000 行错误代码的大规模返工
核心结论
越早发现问题,修改代价越小
本质是“止损”,而非节省时间

4 反模式 #2:跳过提案打磨,直接 apply

反模式
形象类比
后果
不做 proposereview,直接执行代码生成
不看建筑图纸直接开工
最常见的反模式,代价最高,必然返工

5 完整 OpenSpec 闭环

完整 OpenSpec = in-scope 清单 + out-of-scope 清单 + review 通过 → AI 精准执行,绝不越界

/opsx:verify 三维验证 · 一页速记清单

核心定位:事后验证(代码写完后),通过 3C 模型查漏补缺,确保交付质量,而非“唯一防线”

1 三维验证框架(3C Model)

维度
核心问题
检查要点
Completeness(完整性)
所有任务完成了吗?需求都有对应代码吗?
✅ 全任务 Check 状态<br>✅ 全需求覆盖代码实现
Correctness(正确性)
实现匹配规格意图吗?边界条件处理了吗?
✅ 实现与 Spec 一致<br>✅ 边缘场景已处理
Coherence(一致性)
design.md 方案在代码中体现了吗?命名一致吗?
✅ 代码落地设计方案<br>✅ 命名/结构无冲突

2 真实输出样例

3 输出三级判定

等级
定义
处理策略
CRITICAL(必须修复)
阻断归档的致命问题
必须修复,否则无法归档
WARNING(建议修复)
不阻断归档的潜在风险
建议修复,不强制阻断
SUGGESTION(锦上添花)
优化建议,非硬性要求
按需采纳,提升质量

4 关键认知与边界

🚨 啊哈时刻
  • AI 跑完 apply 可能自认“搞定”,但 /opsx:verify 能快速暴露 WARNING
  • 验证的核心价值:在“以为做完”的瞬间,用规范判定实际未完成
🆚 与 /analyze 的区别
命令
阶段
定位
关系
/opsx:verify
事后验证
代码写完后,校验交付物
两者互补,不替代
/opsx:analyze
事前检查
文档/提案阶段,预排风险

5 核心原则

  1. verify 不阻止归档:即使存在 WARNING,用户仍可选择归档,拥有最终决定权
  1. 第一道防线verify 是质量把关的首要环节,但不是唯一防线
  1. 省返工:通过早期校验,把问题扼杀在归档前,降低后期维护成本

Delta Spec——只写变化,不重写整个需求

1 全量 Spec vs Delta Spec 对比

方式
操作
缺点
❌ 全量 Spec
每次改需求都要重读整个 spec 文件、重写全部章节内容
AI 需处理大量 token,容易「丢东西」
✅ Delta Spec
每个 change 只描述自己的变化,spec 文件很小
AI 精准处理,不容易「丢东西」

2 Delta Spec 三种变更类型

  • ADDED:新增需求
  • MODIFIED:修改已有需求
  • REMOVED:删除需求
实操场景示例
add-projects-section 变更为例:
  • ADDED: 新增 Projects 展示区域
  • MODIFIED: Hero CTA 按钮锚点改为跳转 → #projects

3 归档行为

  • ADDED:追加到主 spec
  • MODIFIED:替换对应部分
  • REMOVED:从主 spec 删除

4 为什么高效

  • 每个 change spec 文件很小 → AI token 消耗少
  • 不容易「丢东西」
  • 精准聚焦当前变化

5 MODIFIED vs 新建 spec 决策规则

  • 扩展已有模块 → 使用 MODIFIED
  • 全新业务域(首次) → ADDED 新文件
  • 判断依据:主 spec 里有没有对应内容?

6 核心结论

每个 Delta Spec 文件只有变化部分 → AI 精准聚焦 → 不丢需求,不错改

项目:开发一个可部署的个人品牌站

OpenSpec SDD 驱动开发工作流
🗒️
模版
config.yaml
CLAUDE.md

初始项目环境搭建+ OpenSpec 初始化

Step 1 全局配置 OpenSpec

Step 2 创建前端项目脚手架

Step 3 配置 OpenSpec 的 宪法

Step 4 创建项目宪法(CLAUDE.md

Change 1 :开发品牌站的 Hero-Section

Step 5 使用 Open Spec 的探索模式

/opsx:explore

Step 6 确定 Change 1的 提案

Step 7 开始分阶段执行Change 1的 代码生成

Step 8 针对 Change 1的apply 结果进行三维校验

Step 9 针对 Change 1 完成Spec归档

Change 2 :开发品牌站的 navigation

Step 10 确定 Change 2的 提案

Step 11 确定 Change 2的 提案并开始构建代码!

加快节奏

Step 12 针对 Change 2的apply 结果进行三维校验

Step 13 针对 Change 2 完成Spec归档

Change 3 :OpenSpec Delta Spec 的功能标记

Step 14 Change 3 提案 并 测试 修改的功能标记

Step 15 一次性完成 Change 3 的所有变更流程

Step 16 针对 Change 3 完成Spec归档

Change 4 : 配置 About Section + SEO优化 + 部署上线

Step 17 Change 4 继续丰富个人品牌站

Step 18 Change 4 添加网站的 SEO优化策略

Step 19 单次执行多步的提案文件

Step 20 个人品牌站部署上线

notion image

项目升级-全栈

项目初始化,OpenSpec 配置

Step 1 切换 OpenSpec 的配置模式
 
 

📎 参考文章

  • 一些引用
  • 引用文章
 
💡
欢迎您在底部评论区留言,一起交流~
 
 
上一篇
第一节 大脑:重新认识你自己
下一篇
Harness Engineering - 搭建Mini Harness
Loading...