在前文《什么是SDD》中我们了解了规范驱动开发的重要性,本文将深入对比两款主流SDD工具——OpenSpec和Spec-Kit,帮助开发者根据自身需求做出选择。

OpenSpec与Spec-Kit概览

OpenSpec简介

OpenSpec 是由Fission AI开发的规格驱动开发(SDD)框架,专门为AI编程助手打造。

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

核心特点

  • 轻量级规格层,让人类和AI在写代码前对齐
  • 每个变更有独立文件夹,包含提案、规格、设计和任务
  • 支持20+种AI助手通过斜杠命令集成
  • 灵活迭代,无刚性阶段门控
  • 完整的变更生命周期管理

Spec-Kit简介

Spec-Kit 是由GitHub开发的规格驱动开发开源工具包。

项目地址:https://github.com/github/spec-kit

核心特点

  • 将规格文档变为可执行规范,直接生成可工作代码
  • 支持多种AI代理:Claude Code、Copilot、Gemini CLI、Codex、Cursor、Windsurf等
  • 完整的工作流程:Constitution → Specify → Plan → Tasks → Implement
  • 丰富的扩展生态:Jira集成、Azure DevOps集成、代码审查等
  • 支持Greenfield和Brownfield项目

安装与配置

OpenSpec安装

前置要求:Node.js 20.19.0或更高版本

1
2
3
4
5
# npm安装
npm install -g @fission-ai/openspec@latest

# 也支持pnpm、yarn、bun和nix
pnpm add -g @fission-ai/openspec

初始化项目

1
2
3
4
5
6
7
8
# 在项目目录初始化
openspec init

# 选择工作流配置
openspec config profile

# 刷新AI指导
openspec update

禁用遥测(可选)

1
2
3
export OPENSPEC_TELEMETRY=0
# 或
export DO_NOT_TRACK=1

Spec-Kit安装

前置要求:Python环境(推荐使用uv)

1
2
3
4
5
6
7
8
# 持久化安装(推荐)
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git

# 一次性使用
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>

# 升级
uv tool install specify-cli --force --from git+https://github.com/github/spec-kit.git

初始化项目

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 创建新项目
specify init <PROJECT_NAME>

# 在现有项目中初始化
specify init . --ai claude

# 指定AI代理初始化
specify init --here --ai claude

# 检查环境
specify check

核心功能对比

基础功能

功能 OpenSpec Spec-Kit
实现语言 Node.js Python
CLI工具 openspec specify
AI代理支持 20+种 10+种
变更结构 提案+规格+设计+任务 Constitution+Specify+Plan+Tasks
状态管理 完整生命周期 阶段式流程
扩展生态 基础 丰富(Jira、Azure DevOps等)
并行执行 基础支持 工作包模式

OpenSpec斜杠命令

命令 功能
/opsx:propose "想法" 创建新提案
/opsx:new 创建新变更
/opsx:continue 继续变更
/opsx:apply 执行任务
/opsx:ff 快进完成
/opsx:verify 验证变更
/opsx:sync 同步状态
/opsx:archive 归档已完成变更
/opsx:bulk-archive 批量归档
/opsx:onboard 新成员入门

Spec-Kit斜杠命令

命令 功能
/speckit.constitution 建立项目治理原则
/speckit.specify 定义功能需求
/speckit.plan 技术规划
/speckit.tasks 分解任务
/speckit.implement 执行实现
/speckit.clarify 澄清模糊需求
/speckit.analyze 一致性分析
/speckit.checklist 质量检查

工作流程对比

OpenSpec工作流

OpenSpec以变更为核心,每个变更有独立的文件夹结构:

变更文件夹结构:
├── proposal.md      # 提案描述
├── spec.md          # 规格说明
├── design.md        # 技术设计
├── tasks.md         # 任务清单
└── artifacts/       # 产出物

开发循环

1. 提出想法
   /opsx:propose "添加用户认证功能"

2. 创建变更
   /opsx:new
   # 创建变更文件夹

3. 编写规格
   编辑 spec.md

4. 技术设计
   编辑 design.md

5. 执行任务
   /opsx:apply

6. 验证完成
   /opsx:verify

7. 归档
   /opsx:archive

Spec-Kit工作流

Spec-Kit采用阶段式流程,强调规范文档的可执行性:

工作流程:
Constitution → Specify → Plan → Tasks → Implement

开发循环

1. 初始化项目
   specify init . --ai claude

2. 建立原则
   /speckit.constitution
   # 定义项目治理规范

3. 定义规格
   /speckit.specify
   # 描述要构建的功能

4. 制定计划
   /speckit.plan
   # 提供技术栈和架构

5. 分解任务
   /speckit.tasks
   # 生成可执行任务列表

6. 执行实现
   /speckit.implement
   # 按计划实现功能

AI代理支持对比

OpenSpec支持

  • Claude Code ✅
  • GitHub Copilot ✅
  • Gemini CLI ✅
  • 以及20+种其他AI助手

Spec-Kit支持

AI代理 支持 备注
Claude Code
GitHub Copilot
Gemini CLI
Codex CLI --ai-skills 参数
Cursor
Windsurf
Qoder CLI
Kilo Code
Generic 需指定 --ai-commands-dir

Spec-Kit扩展生态

Spec-Kit拥有丰富的扩展和预设:

扩展(Extensions)

扩展 功能
AI-Driven Engineering (AIDE) 7步结构化工作流
Jira Integration 与Jira同步任务
Azure DevOps Integration 与Azure DevOps同步
Review Extension 代码审查
Verify Extension 规格验证
Spec Sync 检测规格与实现偏差

预设(Presets)

预设 功能
AIDE In-Place Migration 技术迁移预设
Pirate Speak 海盗风格输出

适用场景对比

选择OpenSpec的场景

  • 需要完整变更追踪的项目
  • 重视提案→规格→设计→任务流程的团队
  • 多AI工具混合使用的环境
  • 喜欢灵活迭代而非严格阶段的项目
  • 需要频繁变更审查的团队

选择Spec-Kit的场景

  • 企业环境,需要Jira/Azure DevOps集成
  • 需要代码审查和质量门控
  • 重视规格文档可执行性的团队
  • 需要技术迁移支持的场景
  • 使用Claude Code、Copilot等主流AI代理

总结对比

┌─────────────────────────────────────────────────────────┐
│                      SDD工具对比                          │
├─────────────────────────────────────────────────────────┤
│                                                         │
│   OpenSpec                │         Spec-Kit             │
│   ─────────               │         ─────────             │
│   • Node.js实现          │         • Python实现          │
│   • 变更驱动             │         • 规格可执行          │
│   • 20+ AI助手支持       │         • 10+ AI助手支持      │
│   • 灵活迭代             │         • 阶段式流程           │
│   • 完整变更生命周期     │         • 丰富扩展生态         │
│                          │         • 企业集成支持         │
│                                                         │
│   适合:                    │         适合:                  │
│   • 变更追踪重要          │         • 企业环境              │
│   • 灵活迭代流程          │         • 质量门控              │
│   • 多AI工具混用          │         • 规格验证              │
│                                                         │
└─────────────────────────────────────────────────────────┘

最终建议

选择OpenSpec如果

  • 需要完整的提案→规格→设计→任务流程
  • 重视变更的历史追踪和审查
  • 喜欢灵活迭代的工作方式
  • 使用多种AI编程工具

选择Spec-Kit如果

  • 需要与企业工具(Jira、Azure DevOps)集成
  • 重视代码审查和质量验证
  • 需要规格与实现一致性检查
  • 使用Claude Code、Copilot等主流AI代理

可以结合使用:两个工具可以互补——使用OpenSpec进行快速变更探索,使用Spec-Kit进行企业级规范管理。