为你的Vibe Coding引入软件开发模式:Superpowers VS OpenSpec

118 阅读10分钟

一、Vibe Coding的挑战及应对

2025年AI编程领域Vibe Coding火爆全球。虽然它能快速实现功能,但在代码质量、可维护性、安全性、团队协作等方面存在显著短板,尤其在生产级项目中风险突出。主要问题如下:

  1. 结构混乱,缺乏架构设计,导致依赖链混乱、重复代码多、缺乏复用性;
  2. 短期快速实现的代价是长期维护成本激增,后期修改可能需要大规模重构甚至重写;
  3. AI上下文记忆有限,会话过长时会出现 “幻觉与自我肯定循环”,输出质量指数级下滑;
  4. AI生成代码倾向于使用简单直接但低效的算法和数据结构,可能引入冗余计算、不必要的依赖和内存泄漏,影响系统性能。
  5. 代码风格不一致,增加团队代码审查难度,破坏项目编码规范;
  6. 安全漏洞高发,可能引入未知或不安全的第三方依赖,增加供应链攻击风险;
  7. 生成代码可能侵犯开源许可证或版权,引发法律纠纷;
  8. 团队协作困难,每个人各自vibe实现,缺乏统一规范,代码审查困难,版本控制冲突增加;
  9. 项目规模扩大时,技术债务和维护成本呈指数级增长,可能导致项目失控;
  10. 难以进行有效的需求管理和变更控制,需求变更可能引发连锁反应;
  11. 短期效率陷阱,表面上提升开发效率,但后期调试、重构和维护的时间成本往往超过前期节省的时间。

2025年10月16日Anthropic官方发布了Claude Skills功能。Skills的强大之处在于它能够方便的延展智能体的专业能力,为解决Vibe Coding的负面问题提供了一种可行的途径。对此,Anthropic的文章《Best Practices for Claude Code》介绍其最佳实践。在这篇文章里,Anthropic提出让编程智能体可验证地工作,比如运行测试、对比截图、输出验证等。这种灵活的软件开发模式,成为一种较为成功Vibe Coding的模式。与此同时,Jesse Vincent 创建了基于TDD的skills库Superpowers,Fission-AI创建了基于SDD的OpenSpec框架。软件开发模式的引入,使得Vibe Coding存在的风险和缺陷得到了有效的应对。

二、Superpowers:基于TDD的skills库

项目地址:github.com/obra/superp…

1、Superpowers是什么?

Superpowers 是为编码智能体打造的一套完整软件开发工作流,它基于一系列可组合的「技能」构建而成,并通过初始指令确保智能体规范使用这些技能。

2、Superpowers核心理念

  • 测试驱动开发 —— 始终先写测试
  • 系统化优于临时拼凑 —— 流程胜于猜测
  • 降低复杂度 —— 以简洁为首要目标
  • 事实胜于宣称 —— 成功先验证,再下结论

3、工作原理

从你启动编码智能体的那一刻起,这套机制就开始运行。当它察觉到你正在开发某个功能时,不会立刻埋头写代码,而是先停下来,问清你真正想要实现什么。

它会从对话中逐步梳理出规范,并以简短易读、方便消化的分段形式展示给你。

在你确认设计方案后,智能体会生成一份清晰易懂的实施计划,哪怕是一名热情但审美一般、缺乏判断力、不了解项目背景、讨厌写测试的初级工程师,也能照着完成。这套流程严格遵循:真正的红 / 绿 TDD、YAGNI(你不会需要它)、DRY(不要重复自己)

等你下达「开始」指令后,它会启动子智能体驱动开发流程:让多个智能体依次完成每个工程任务,检查并评审成果,然后继续推进。Claude 经常可以连续自主工作数小时,且完全不偏离你们一起制定的计划。

这套系统还有很多细节,但以上就是核心逻辑。而且因为所有技能都会自动触发,你不需要做任何额外操作。你的编码智能体,只是天生自带「超级能力」。

4、基础工作流

  • 头脑风暴 — 在编写代码前启动。通过提问细化粗略想法,探索备选方案,分段展示设计以供确认,并保存设计文档。
  • 使用 Git 工作树 — 在设计通过后启动。在新分支上创建隔离的工作区,运行项目初始化,验证干净的测试基准。
  • 编写计划 — 在设计通过后启动。将工作拆分为小任务(每个 2–5 分钟)。每个任务都包含精确文件路径、完整代码和验证步骤。
  • 子智能体驱动开发 / 执行计划 — 在计划确定后启动。为每个任务分配全新的子智能体,并进行两阶段评审(先合规性校验,再代码质量评审),或批量执行并保留人工检查点。
  • 测试驱动开发 — 在实现阶段启动。严格遵循 红–绿–重构:先写会失败的测试,确认失败,再编写最简代码让测试通过,然后提交。删除测试之前编写的代码。
  • 请求代码评审 — 在任务之间启动。对照计划进行评审,按严重等级报告问题。严重问题将阻塞进度。
  • 完成开发分支 — 在所有任务完成后启动。校验测试,提供操作选项(合并 / 提交 PR / 保留 / 丢弃),并清理工作区。

智能体在执行任何任务前都会检查相关技能。这些是强制工作流,而非可选建议。

5、竞品对比

Superpowers是面向编程智能体的基于TDD模式的软件开发流,它包含编程智能体进行软件开发所需要的各种Skills。

类似的有Anthropic Skills库(github.com/anthropics/…)。相比来说,Anthropic Skills库更灵活,没有固定的工作流,相关技能在用到时被自动激活。Anthropic Skills库适用于灵活的Vibe Coding。Superpowers适用于TDD的Vibe Coding。

6、快速安装到OpenCode

6.1 全局安装superpowers

打开OpenCode,输入:

Fetch and follow instructions from <https://raw.githubusercontent.com/obra/superpowers/refs/heads/main/.opencode/INSTALL.md>

或者输入:

Clone <https://github.com/obra/superpowers> to ~/.config/opencode/superpowers,

then create directory ~/.config/opencode/plugins,

then symlink ~/.config/opencode/superpowers/.opencode/plugins/superpowers.js to ~/.config/opencode/plugins/superpowers.js,

then symlink ~/.config/opencode/superpowers/skills to ~/.config/opencode/skills/superpowers,

then restart opencode.

6.2 项目安装superpowers

Just replace "~/.config/opencode/skills" with ".opencode/skills/"

使用方法:技能安装后,当智能体执行任务时,可能用到的技能会自动加载激活。

三、OpenSpec:基于SDD的轻量级智能体编程框架

1、OpenSpec是什么?

OpenSpec是一款面向AI编程智能体的轻量级的规范驱动开发框架。它支持团队定义机器可执行的交互规范与测试用例,提升生成代码的可靠性与可验证性。OpenSpec 可融入开发流程与持续集成(CI)工作流,确保AI编程智能体的行为符合预期。

核心特性:

规范驱动开发:为 AI 助手行为定义确定性、可执行的规范,降低输出结果的不确定性。

验证与测试:内置测试工具,支持在 CI 流程中自动进行断言与回归检查。

易集成:提供工具链支持,可将规范嵌入现有开发工作流。

2、为什么选择 OpenSpec?

AI 编码助手功能强大,但如果需求只存在于聊天记录(Vibe Coding)中,输出结果就会难以预测。OpenSpec 提供了一层轻量级规范层,让你在编写任何代码之前,先明确要构建的内容。OpenSpec适用于SDD的Vibe Coding。

  • 先达成共识,再进行开发—— 人类与 AI 在编码前就规范达成一致
  • 保持有序—— 每项变更都拥有独立文件夹,包含提案、规范、设计与任务清单
  • 灵活协作—— 可随时更新任意产出物,无僵化的阶段门槛
  • 兼容现有工具—— 通过斜杠命令支持 20 多款 AI 助手

3、工作原理

运行 openspec init 之后,你的项目会拥有如下结构:

openspec/
├── specs/ # 事实来源(系统当前行为)
│ └── /
│ └── spec.md
├── changes/ # 提议的更新(每个修改对应一个文件夹)
│ └── /
│ ├── proposal.md
│ ├── design.md
│ ├── tasks.md
│ └── specs/ # 增量规范(具体要修改的内容)
│ └── /
│ └── spec.md
└── config.yaml # 项目配置(可选)

包含两个关键目录:

specs/:事实来源。这些规范描述了系统当前的实际行为,按业务领域组织(例如 specs/auth/、specs/payments/)。

changes/:提议的修改。每一项修改都拥有独立的文件夹,包含所有相关产出物。当一项修改完成后,它对应的规范会合并到主规范目录 specs/ 中。

每个变更文件夹都包含指导开发工作的产出物:

产出物用途
proposal.md说明「为什么」和「做什么」—— 记录目标、范围和实现思路
specs/增量规范,标明新增 / 修改 / 移除的需求
design.md说明「怎么做」—— 技术方案与架构决策
tasks.md带勾选框的实现任务清单

这些产出物按顺序层层递进:

提议 ──► 规范 ──► 设计 ──► 任务 ──► 实现 

在实现过程中,你随时可以返回并完善前面阶段的产出物。

增量规范(Delta Specs)

增量规范是 OpenSpec 中的核心概念。它展示了相对于当前规范所发生的变更内容。

增量规范使用分区来标明变更类型:

# 权限模块增量变更 

## 新增需求(ADDED) 
### 需求:双因素认证 系统在登录时**必须**要求二次验证。 
#### 场景:需要一次性密码验证 - 假设 用户已开启双因素认证 - 当 用户提交有效凭据时 - 则 展示一次性密码(OTP)验证界面 

## 修改需求(MODIFIED) 
### 需求:会话超时 系统在**30 分钟无操作**后将会话过期。 (原规则:60 分钟) 
#### 场景:空闲超时 - 假设 会话已认证 - 当 30 分钟无操作 - 则 会话失效 

## 移除需求(REMOVED) 
### 需求:记住我 (已废弃,改用双因素认证)

4、基础工作流

OpenSpec 帮助你和你的 AI 编码助手在编写任何代码之前,先就要构建什么达成一致。整个工作流遵循如下可灵活变化的模式:

/opsx:explore ──► /opsx:new ──► /opsx:ff ──► /opsx:apply ──► /opsx:verify ──► /opsx:archive
┌────────────────────┐
│Investigate if │ /opsx:explore
│requirements   │
│are unclear.   │
└────────┬───────────┘
         │
         ▼
┌────────────────────┐
│ Start a Change │ /opsx:new
└────────┬───────────┘
         │
         ▼
┌────────────────────┐
│ Create Artifacts  │ /opsx:ff or /opsx:continue
│ (proposal, specs, │
│ design, tasks)    │
└────────┬───────────┘
         │
         ▼
┌────────────────────┐
│ Implement Tasks  │ /opsx:apply
│ (AI writes code) │
└────────┬───────────┘
         │
         ▼
┌────────────────────┐
│ Validates     │ /opsx:verify
│implementation │
└────────┬───────────┘
         │
         ▼
┌────────────────────┐
│ Archive & Merge │ /opsx:archive
│ Specs           │
└────────────────────┘

5、竞品对比

相较于 Spec Kit(GitHub)—— 功能全面但偏重,存在僵化的阶段门槛,需要编写大量 Markdown,还需配置 Python 环境。OpenSpec 更轻量,支持自由迭代。

相较于 Kiro(AWS)—— 功能强大,但会被锁定在其专属 IDE 中,且仅支持 Claude 模型。OpenSpec 可兼容你现有的全部工具。

相较于完全不使用规范工具 —— 没有规范的 AI 编码会导致提示词模糊、结果不可预测。OpenSpec 在无需繁琐流程的前提下,带来可预期的开发效果。

6、快速安装到opencode

要求 Node.js 20.19.0 或更高版本。

全局安装 OpenSpec:

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

然后进入你的项目目录并初始化:

cd your-project openspec init --tools opencode

基本用法:

/opsx:new xxx功能 # 增加新功能

/opsx:ff # 创建计划文件

/opsx:apply # 开始实施

/opsx:verify # 验证

/opsx:archive # 合并归档

openspec list # 查看所有变更

openspec show xxx功能 # 查看某个变更详情

openspec validate xxx功能 # 验证变更

openspec view # 看板

四、总结

本文介绍了Vibe Coding的负面作用,并介绍了三种有效的解决方案。

  1. Claude Skills:基于可验证工作的灵活软件开发技能库。
  2. Superpowers:基于TDD的软件开发工作流。
  3. OpenSpec:基于SDD的轻量级软件开发框架。

后续,我们将会进一步介绍它们的应用实践。