
最近在项目中犹豫使用spec kit 还是使用 openspec,如果你也有这方面的需求,完整的看完这篇文章,就知道哪个更适合你。
一、介绍
Spec Kit
定位:GitHub 官方推出的、面向 AI 开发的规范驱动开发工具包。
核心目标:通过一套标准化、可执行的工作流,帮团队和个人构建高质量软件,减少 “从零开始的瞎写代码”。
特点:
- 提供了一套完整、严谨的开发流程,从需求定义到任务拆解、再到实现,每个环节都有规范指引。
- 更偏向 “流程型” 和 “规范型”,适合需要强约束、高可预测性的开发场景,尤其对新手友好。
- 生态和 GitHub 深度绑定,对企业级、大型团队项目的适配度更高。
OpenSpec
定位:轻量级、AI 原生的规范驱动开发框架,由社区驱动。
核心目标:解决 AI 开发中需求模糊、迭代失控、理解偏差的问题,让人和 AI 在 “要构建什么” 上先达成共识。
特点:
- 以结构化 Markdown 文件管理需求,用 Delta Spec 机制实现增量式变更,让需求演进清晰可追溯。
- 三层验证机制(格式、语义、业务逻辑)确保 AI 对需求的理解和预期完全对齐。
- 更偏向 “轻量型” 和 “灵活型”,上手快、无额外依赖,适合敏捷迭代、个人 / 小团队和存量项目改造。
二、使用方法
spec kit 使用方法:
# 安装specify命令行工具
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
# 验证安装
specify check
# 创建新项目(指定使用OpenCode)
specify init my-project --ai opencode
# 或者在当前目录初始化
specify init . --ai opencode
/speckit.constitution 创建项目开发原则:
- 代码优先使用Net
- 遵循函数式编程范式
- 功能必须完整实现
- 单元测试覆盖率不低于80%
/speckit.specify 开发一个问卷系统:
- 支持用户注册、登录、获取个人信息
- 支持问卷的增删改查
- 支持标签分类和全文搜索
- 实现基于JWT的认证机制
- API返回格式统一为 {code, message, data}
/speckit.plan 使用以下技术栈:
- vue.js + element ui框架
- .Net8 + SQLite(便于本地开发)
- JWT进行身份认证
- 使用标准的RESTful API设计
/speckit.tasks
AI会自动把大需求拆成可执行的小任务:
✅ 任务清单已生成:
任务1:项目基础结构搭建
├─ 创建Net应用入口
├─ 配置SQLite数据库连接
├─ 设置CORS中间件
└─ 配置环境变量
任务2:用户认证模块
├─ 实现用户注册接口
├─ 实现用户登录接口
├─ 实现JWT token生成和验证
└─ 添加路由守卫中间件
任务3:问卷CRUD模块
├─ 创建问卷实体模型
├─ 实现问卷增删改查API
├─ 实现标签分类功能
└─ 实现搜索接口
/speckit.implement
需求有疑问?用clarify!
/speckit.clarify
写完想检查?用checklist!
/speckit.checklist
想看有没有遗漏?用analyze!
/speckit.analyze
只想验证环境?
specify check
openspec使用方法:
1:安装
npm install -g @fission-ai/openspec@latest
2:进入你的项目
cd your-project
3:注入你的项目
openspec init
4:创建项目变更提案
/opsx:propose add-dark-mode
AI:已创建 openspec/changes/add-dark-mode/
✓ proposal.md — 为什么要做,改什么
✓ specs/ — 需求和场景
✓ design.md — 技术方案
✓ tasks.md — 实现清单
准备好实现了!运行 /opsx:apply
5:实现任务
/opsx:apply
AI:正在实现任务...
✓ 1.1 添加主题上下文提供者
✓ 1.2 创建切换组件
✓ 2.1 添加 CSS 变量
✓ 2.2 连接 localStorage
所有任务完成!
6:归档
/opsx:archive
AI:已归档到 openspec/changes/archive/2026-03-27-add-dark-mode/
规范已更新。准备好下一个功能。
7:验证:
/opsx:verify
AI:验证实现是否符合文档...
✓ 检查 tasks.md 中的任务
✓ 验证代码实现
✓ 检查测试覆盖
验证通过!所有任务正确实现。

三、各种问题
1:speckit过于严格,如果项目复杂,或者不是热门语言,它有点迟钝。
它更适合热门语言和热门框架比如:java、python、go,.net略微吃力
2:speckit不太适合旧项目改动,适合新项目,规范项目。
新项目没问题,尤其大项目,规范严格,更严谨,但现有项目改动使用成本有些高。
3:speckit的命令是否只能顺序执行。
建议按顺序来。SDD的核心是"先想清楚再动手",顺序是有工程逻辑的。
4:specify init失败怎么办?
升级到最新版本、忽略工具检查
5:为什么选择openspec?
它比speckit更适合小项目、改动现有项目,成本更低。
6:openspec安装失败怎么办?
更新node.js、用 sudo 安装 openspec(解决权限)
四、全方面对比

五:总结 哪个适合你
如果你是新项目,大型项目,需要完整的开发流程,严格的规范,那么你无脑冲speckit。
如果你是小项目,对现有项目进行更新,迭代,那么openspec更适合你,它的使用成功更低,速度更快,可控性更高。
如果你也是ai架构师,或者相关的使用者,那么可以留一个关注,会持续输出ai架构,使用方面的文章,大家少踩一些坑,大家也可以一起讨论。