简介

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
2
3
4
5
6
7
8
# 使用 uv 安装(推荐)
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git

# 验证安装
specify --version

# 检查系统要求
specify check

一次性使用(不安装)

1
2
3
4
5
# 直接运行,无需安装
uvx --from git+https://github.com/github/spec-kit.git specify init my-project

# 指定 AI 代理
uvx --from git+https://github.com/github/spec-kit.git specify init my-project --ai claude

初始化项目

1
2
3
4
5
6
7
8
9
10
11
12
13
# 创建新项目
specify init my-project --ai claude

# 在当前目录初始化
specify init . --ai claude
# 或
specify init --here --ai copilot

# 跳过 Git 初始化
specify init my-project --ai gemini --no-git

# 启用调试输出
specify init my-project --ai claude --debug

支持的 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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
┌─────────────────┐
│ /constitution │ 建立项目原则和开发指南
└────────┬────────┘

┌─────────────────┐
│ /specify │ 定义需求规格和用户故事
└────────┬────────┘

┌─────────────────┐
│ /clarify │ 澄清歧义,解决未明确区域
└────────┬────────┘

┌─────────────────┐
│ /plan │ 创建技术实现计划
└────────┬────────┘

┌─────────────────┐
│ /tasks │ 生成可执行任务列表
└────────┬────────┘

┌─────────────────┐
│ /analyze │ 交叉验证一致性和覆盖率
└────────┬────────┘

┌─────────────────┐
│ /implement │ 执行任务,生成代码
└─────────────────┘

斜杠命令详解

运行 specify init 后,你的 AI 编码代理将获得以下结构化开发命令:

1. /constitution - 项目宪法

用途:创建项目治理原则和开发指南。

何时使用:项目初始化时首先运行,建立项目标准。

使用场景

  • 定义代码质量标准
  • 确定测试覆盖率要求
  • 设定 UX 一致性原则
1
/constitution Focus on code quality, testing, UX consistency

产出

  • 项目编码规范
  • 技术栈选择原则
  • 架构决策指南
  • 团队协作约定

2. /specify - 需求规格

用途:定义你要构建什么(需求和用户故事)。

何时使用:关注”做什么”和”为什么”,而非技术栈。

关键原则

  • 描述产品行为,而非实现细节
  • 使用用户视角的语言
  • 明确成功标准
1
2
3
/specify Build a task management app with user authentication, 
real-time collaboration, and mobile support. Users should be able
to create projects, assign tasks, and track progress with Kanban boards.

产出

  • 功能需求文档
  • 用户故事
  • 验收标准
  • 边界条件

3. /clarify - 澄清歧义

用途:通过结构化提问澄清未明确的区域。

何时使用:规格完成后,计划之前。必须运行(除非明确跳过)。

1
2
/clarify
# AI 会提出针对性问题

常见歧义类型

类型 模糊描述 澄清后
技术选择 “使用数据库” “使用 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
2
3
/specify Develop Taskify, a team productivity platform. Allow users 
to create projects, add team members, assign tasks, comment and move
tasks between boards in Kanban style...

特点

  • 全栈应用
  • 实时协作
  • 拖放界面

案例 2:Photo Album Organizer - 照片管理应用

一个本地照片管理应用,支持拖放组织、按日期分组和磁贴预览界面。

1
2
3
/specify Build an application that can help me organize my photos 
in separate photo albums. Albums are grouped by date and can be
re-organized by dragging and dropping...

特点

  • 本地存储
  • 拖放功能
  • 媒体管理

完整工作流程示例

构建用户认证系统

1
2
3
4
# 1. 初始化项目
specify init auth-system --ai claude

# 2. 在 Claude Code 中运行命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 建立项目原则
/constitution Focus on security, testing, clean code

# 定义认证需求
/specify Build a user authentication system with email/password login,
OAuth support (Google, GitHub), session management, and password reset.

# 澄清歧义
/clarify

# 设计技术架构
/plan Use React, Node.js, Express, PostgreSQL, JWT

# 生成任务列表
/tasks

# 验证一致性
/analyze

# 执行实现
/implement

添加新功能到现有项目

1
2
3
4
# 1. 确保已初始化
specify init --here --ai claude

# 2. 只对新功能运行流程
1
2
3
4
5
6
7
8
9
10
11
# 定义新功能需求
/specify Add a notification system that supports email, push, and in-app notifications

# 设计实现
/plan Use existing React frontend, add notification service

# 生成任务
/tasks

# 实现
/implement

CLI 命令参考

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 初始化项目
specify init my-project --ai claude

# 查看帮助
specify --help

# 查看版本
specify version

# 检查系统要求
specify check

# 列出支持的代理
specify agents list

初始化选项

1
2
3
4
5
6
7
8
9
specify init [项目名] [选项]

选项:
--ai <agent> 指定 AI 代理(必需)
--here 在当前目录初始化
--no-git 跳过 Git 初始化
--debug 启用调试输出
--preset <name> 使用预设模板
--extension <name> 安装扩展

环境变量

1
2
3
4
5
# 覆盖功能检测
export SPECIFY_FEATURE=001-photo-albums

# GitHub token(企业环境)
export GITHUB_TOKEN=ghp_your_token_here

故障排除

Git 凭证管理器(Linux)

如果在 Linux 上遇到 Git 认证问题:

1
2
3
4
5
6
# 下载并安装 GCM
wget https://github.com/git-ecosystem/git-credential-manager/releases/download/v2.6.1/gcm-linux_amd64.2.6.1.deb
sudo dpkg -i gcm-linux_amd64.2.6.1.deb

# 配置 Git
git config --global credential.helper manager

常见问题

问题 解决方案
安装失败 确保 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: 如何获取帮助?


总结

Spec Kit 是 GitHub 开源的规格驱动开发工具包,核心价值:

价值 实现方式
结构化开发 7 阶段顺序流程
一致输出 结构化上下文喂养 AI
广泛支持 11+ AI 编码代理
技术无关 支持多种技术栈和框架
可扩展 扩展和预设系统

核心理念:

规格是可执行的第一类产物,而非丢弃的脚手架。

规格定义”做什么”,计划定义”怎么做”,AI 实现规格而非自由形式提示。

如果你正在使用 AI 编码助手,Spec Kit 是提升开发效率和代码质量的必备工具。


相关链接