Spec Kit入门指南:GitHub开源的规格驱动开发工具包
简介
Spec Kit 是 GitHub 开源的规格驱动开发(Spec-Driven Development)工具包,帮助开发者更快地构建高质量软件。
项目数据:28K+ GitHub Stars | 11+ AI Agents | 2.3K+ Forks | MIT 开源
什么是 Spec-Driven Development?
Spec-Driven Development(规格驱动开发)颠覆了传统软件开发方式。
几十年来,代码一直是王 — 规格只是我们构建后就丢弃的脚手架,一旦”真正工作”的编码开始。Spec-Driven Development 改变了这一点:规格变成可执行的,直接生成可工作的实现,而不仅仅是指导它们。
| 传统开发 | Spec-Driven Development |
|---|---|
| 规格是脚手架,编码后丢弃 | 规格是可执行的第一类产物 |
| 从想法直接跳到代码 | 规格 → 计划 → 任务 → 实现 |
| AI 输出不一致,因为提示模糊 | AI 输出一致,因为上下文结构化 |
| 一次性代码生成 | 多步骤精细化流程 |
为什么需要 Spec Kit?
当你使用 AI 编码助手时,常见问题:
- AI 输出与你期望不符
- 每次生成的代码风格不一致
- 缺乏明确的技术计划
- 需求模糊导致实现模糊
问题不在 AI,问题在于你的原始提示模糊。 模糊的上下文产生模糊的输出。Spec Kit 强制你在代码生成之前产生结构化、无歧义的上下文。
核心价值
| 价值 | 说明 |
|---|---|
| 聚焦产品场景 | 关注要构建什么,而非从头编写每一段代码 |
| 可预测的结果 | 结构化流程确保一致的输出 |
| 规格可执行 | 规格直接生成可工作的实现 |
| AI 集成 | 支持 11+ AI 编码代理 |
| 技术无关 | 支持多种技术栈、编程语言和框架 |
快速入门 (5分钟)
系统要求
必需:
- Python 3.8+
- Git 2.20+
- 网络连接
推荐:
- VS Code 或 Cursor
- AI 代理订阅(Claude、Copilot 等)
- uv 包管理器
可选:
- Docker
- GitHub CLI
- Node.js(用于 Web 项目)
安装
推荐方式:使用 uv 持久安装
1 | # 使用 uv 安装(推荐) |
一次性使用(不安装)
1 | # 直接运行,无需安装 |
初始化项目
1 | # 创建新项目 |
支持的 AI 代理
| 代理 | CLI 选项 | 支持级别 |
|---|---|---|
| Claude Code | --ai claude |
✅ 完整支持 |
| GitHub Copilot | --ai copilot |
✅ 完整支持 |
| Cursor | --ai cursor |
✅ 完整支持 |
| Gemini CLI | --ai gemini |
✅ 完整支持 |
| Windsurf | --ai windsurf |
✅ 完整支持 |
| Codex CLI | --ai codex |
⚠️ 有限支持 |
| Qwen Code | --ai qwen |
✅ 完整支持 |
| opencode | --ai opencode |
✅ 完整支持 |
| Kilo Code | --ai kilo |
✅ 完整支持 |
| Auggie CLI | --ai auggie |
✅ 完整支持 |
| Roo Code | --ai roo |
✅ 完整支持 |
注意:Codex CLI 由于平台限制,不支持自定义斜杠命令参数。
核心工作流程
Spec Kit 将开发组织成结构化的阶段流程:
1 | constitution → specify → clarify → plan → tasks → analyze → implement |
工作流程图
1 | ┌─────────────────┐ |
斜杠命令详解
运行 specify init 后,你的 AI 编码代理将获得以下结构化开发命令:
1. /constitution - 项目宪法
用途:创建项目治理原则和开发指南。
何时使用:项目初始化时首先运行,建立项目标准。
使用场景:
- 定义代码质量标准
- 确定测试覆盖率要求
- 设定 UX 一致性原则
1 | /constitution Focus on code quality, testing, UX consistency |
产出:
- 项目编码规范
- 技术栈选择原则
- 架构决策指南
- 团队协作约定
2. /specify - 需求规格
用途:定义你要构建什么(需求和用户故事)。
何时使用:关注”做什么”和”为什么”,而非技术栈。
关键原则:
- 描述产品行为,而非实现细节
- 使用用户视角的语言
- 明确成功标准
1 | /specify Build a task management app with user authentication, |
产出:
- 功能需求文档
- 用户故事
- 验收标准
- 边界条件
3. /clarify - 澄清歧义
用途:通过结构化提问澄清未明确的区域。
何时使用:规格完成后,计划之前。必须运行(除非明确跳过)。
1 | /clarify |
常见歧义类型:
| 类型 | 模糊描述 | 澄清后 |
|---|---|---|
| 技术选择 | “使用数据库” | “使用 PostgreSQL 15” |
| 行为定义 | “快速响应” | “响应时间 < 200ms” |
| 边界处理 | “错误时处理” | “显示错误消息,记录日志” |
| 数据格式 | “返回用户信息” | “返回 JSON: {id, name, email}” |
4. /plan - 技术计划
用途:创建技术实现计划,指定架构、框架和技术决策。
何时使用:规格和澄清完成后。
1 | /plan Use React with TypeScript, Node.js backend, PostgreSQL database |
产出:
- 技术架构设计
- 组件分解
- 数据流设计
- API 设计
- 文件结构
5. /tasks - 任务列表
用途:生成可执行的任务列表,将计划分解为可执行步骤。
何时使用:计划完成后。
1 | /tasks |
产出:
- 顺序任务列表
- 每个任务的详细步骤
- 任务依赖关系
- 预估时间
6. /analyze - 分析验证
用途:交叉验证规格和计划的一致性与覆盖率。
何时使用:任务生成后,实现之前。
1 | /analyze |
检查项目:
| 检查类型 | 说明 |
|---|---|
| 规格覆盖 | 每个需求是否有对应实现计划? |
| 计划一致 | 技术计划是否与规格匹配? |
| 宪法遵守 | 是否遵循项目原则? |
| 完整性 | 是否有遗漏的边界情况? |
7. /implement - 执行实现
用途:执行所有任务,根据计划生成代码。
何时使用:分析和任务完成后。
1 | /implement |
工作方式:
- AI 代理逐任务执行
- 每个任务引用规格、计划和具体任务
- 输出一致,因为上下文一致
开发阶段详解
Spec Kit 支持三种主要的开发场景:
Phase 1: 0-to-1 Development(绿地开发)
焦点:从零开始生成应用
关键活动:
- 从高层需求开始
- 生成规格
- 规划实现步骤
- 构建生产就绪的应用
适用场景:
- 新项目启动
- MVP 开发
- 原型验证
Phase 2: Creative Exploration(创意探索)
焦点:并行实现探索
关键活动:
- 探索多种解决方案
- 支持多种技术栈和架构
- 实验 UX 模式
适用场景:
- 技术选型验证
- 方案对比
- 创新探索
Phase 3: Iterative Enhancement(棕地开发)
焦点:迭代增强和现代化
关键活动:
- 迭代添加功能
- 现代化遗留系统
- 适应流程
适用场景:
- 现有项目维护
- 功能迭代
- 系统重构
实际案例
案例 1:Taskify - 团队生产力平台
一个完整的看板式项目管理工具,支持多用户、拖放功能和实时协作。
1 | /specify Develop Taskify, a team productivity platform. Allow users |
特点:
- 全栈应用
- 实时协作
- 拖放界面
案例 2:Photo Album Organizer - 照片管理应用
一个本地照片管理应用,支持拖放组织、按日期分组和磁贴预览界面。
1 | /specify Build an application that can help me organize my photos |
特点:
- 本地存储
- 拖放功能
- 媒体管理
完整工作流程示例
构建用户认证系统
1 | # 1. 初始化项目 |
1 | # 建立项目原则 |
添加新功能到现有项目
1 | # 1. 确保已初始化 |
1 | # 定义新功能需求 |
CLI 命令参考
常用命令
1 | # 初始化项目 |
初始化选项
1 | specify init [项目名] [选项] |
环境变量
1 | # 覆盖功能检测 |
故障排除
Git 凭证管理器(Linux)
如果在 Linux 上遇到 Git 认证问题:
1 | # 下载并安装 GCM |
常见问题
| 问题 | 解决方案 |
|---|---|
| 安装失败 | 确保 Python 3.8+ 和 Git 2.20+ 已安装 |
| AI 代理未识别 | 使用 --ai 参数明确指定 |
| 命令不生效 | 检查是否在项目目录中运行 |
| Git 初始化失败 | 使用 --no-git 跳过或检查 Git 配置 |
核心哲学
意图驱动开发
规格定义”做什么”在”怎么做”之前。
- 先定义意图,再确定实现
- 规格是第一类产物,而非丢弃的文档
- AI 执行结构化计划,而非猜测需求
丰富的规格创建
使用护栏和组织原则创建规格。
- 遵循项目宪法
- 明确验收标准
- 定义边界条件
多步骤精细化
而非一次性从提示生成代码。
1 | 想法 → 规格 → 澄清 → 计划 → 任务 → 实现 |
每个阶段产生产物,喂养下一个阶段。
AI 能力依赖
严重依赖高级 AI 模型的规格解释能力。
- AI 理解规格意图
- AI 生成一致实现
- AI 遵循项目约束
实验目标
Spec Kit 的研究和实验聚焦于:
技术独立性
- 使用多种技术栈创建应用
- 验证 Spec-Driven Development 是流程,不绑定特定技术
企业约束
- 演示关键任务应用开发
- 整合组织约束(云提供商、技术栈、工程实践)
- 支持企业设计系统和合规要求
用户中心开发
- 为不同用户群体构建应用
- 支持多种开发方式(从 vibe-coding 到 AI 原生开发)
创意和迭代流程
- 验证并行实现探索概念
- 提供健壮的迭代功能开发工作流
- 扩展流程处理升级和现代化任务
常见问题
Q: Spec Kit 与传统开发有什么不同?
传统开发从想法直接跳到代码。Spec Kit 在想法和代码之间插入结构化阶段:规格、澄清、计划、分析、任务。这确保 AI 有明确的上下文,产生一致的输出。
Q: Spec Kit 支持哪些编程语言?
Spec Kit 是语言无关的工具。它生成结构化文档和任务,AI 代理可以用任何编程语言实现。验证了 Spec-Driven Development 是流程,不绑定特定技术。
Q: 必须使用所有命令吗?
推荐使用完整流程,但可以根据项目规模调整:
- 小项目:specify → plan → tasks → implement
- 大项目:完整流程(包含 constitution、clarify、analyze)
Q: /clarify 命令可以跳过吗?
可以明确跳过,但不推荐。/clarify 命令确保规格中的歧义被解决,避免后续实现出现问题。
Q: Spec Kit 是免费的吗?
是的,Spec Kit 采用 MIT 许可证开源。
Q: 如何获取帮助?
- 官方文档:https://github.github.io/spec-kit/
- GitHub Issues:https://github.com/github/spec-kit/issues
- GitHub Discussions:社区讨论和项目分享
- 视频指南:官方视频概述
总结
Spec Kit 是 GitHub 开源的规格驱动开发工具包,核心价值:
| 价值 | 实现方式 |
|---|---|
| 结构化开发 | 7 阶段顺序流程 |
| 一致输出 | 结构化上下文喂养 AI |
| 广泛支持 | 11+ AI 编码代理 |
| 技术无关 | 支持多种技术栈和框架 |
| 可扩展 | 扩展和预设系统 |
核心理念:
规格是可执行的第一类产物,而非丢弃的脚手架。
规格定义”做什么”,计划定义”怎么做”,AI 实现规格而非自由形式提示。
如果你正在使用 AI 编码助手,Spec Kit 是提升开发效率和代码质量的必备工具。