GitHub 开源的规范驱动开发工具包,通过结构化的规范和计划引导 AI 编码助手生成高质量代码

MITShellspec-kitgithub 42.4k Last Updated: October 23, 2025

GitHub Spec Kit 项目详细介绍

项目概述

GitHub Spec Kit 是由 GitHub 开源的一款规范驱动开发(Spec-Driven Development, SDD)工具包。它为 AI 编码助手提供了一套结构化的工作流程,通过先编写详细规范再生成代码的方式,改变了传统的"先编码后写文档"的开发模式。

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

核心理念

什么是规范驱动开发?

规范驱动开发是一种以规范(Specification)为核心的软件开发方法论,其核心思想是:

  • 规范优先: 在编码之前先创建详细的产品需求文档(PRD)和技术实现计划
  • 规范即真相: 规范成为项目的单一真相来源(Single Source of Truth)
  • 动态演进: 规范不是静态文档,而是随项目演进的"活文档"

为什么需要 Spec Kit?

在使用 AI 编码助手(如 Claude Code, GitHub Copilot, Gemini CLI)时,常见问题包括:

  1. 模糊的输入导致错误的输出: AI 助手只能根据提示词生成代码,缺乏项目整体理解
  2. 假设性编码: AI 可能做出不符合实际需求的假设
  3. 缺乏架构约束: 生成的代码可能与现有系统架构不匹配
  4. 质量不一致: 没有统一标准,代码质量参差不齐

Spec Kit 通过提供结构化框架解决这些问题,确保 AI 助手能够准确理解项目意图并生成高质量代码。

核心组件

1. Specify CLI

Specify CLI 是一个基于 Python 的命令行工具,用于快速初始化项目的 SDD 脚手架。

安装方式:

# 使用 uvx 安装(推荐)
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>

# 或者持久化安装
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git

主要功能:

  • 检查已安装的工具(git, claude, gemini, code, cursor-agent 等)
  • 自动下载适配的模板文件
  • 初始化项目的 SDD 结构
  • 支持多种 AI 编码助手

使用示例:

# 初始化新项目并指定 AI 助手
specify init my-project --ai claude
specify init my-project --ai copilot
specify init my-project --ai gemini

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

# 强制合并到非空目录
specify init . --force --ai claude

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

2. 模板和辅助脚本

Spec Kit 提供了一套完整的模板系统,包括:

Constitution.md (项目宪章)

项目的基本原则和不可协商的准则,例如:

  • 测试方法要求
  • 架构约定
  • 代码风格规范
  • 技术栈选择

这是一个强大的工具,帮助组织建立"有主见的技术栈"。

规范模板

定义了规范文档应该包含的内容结构。

技术计划模板

规定了技术实现计划的格式和必需要素。

任务分解模板

将大型功能拆解为可执行的小任务。

辅助脚本

位于 powershellbash 文件夹中,用于确保 SDD 脚手架的一致性应用。

工作流程

Spec Kit 遵循四步开发流程:

步骤 1: 定义规范 (/specify)

使用 /specify 命令提供高层次的项目描述,重点关注"做什么"和"为什么做",而不是技术细节。

示例:

/specify 
构建一个任务管理应用 Taskify,支持:
- 用户认证
- 实时协作
- 移动端支持
- 项目创建和任务分配
- Kanban 看板追踪进度

AI 编码助手会生成完整的产品规范文档(PRD),包括:

  • 项目动机和目标
  • 核心功能描述
  • 用户故事
  • 非功能性需求
  • 验收标准

步骤 2: 制定技术计划 (/plan)

使用 /plan 命令提供高层次的技术方向,AI 会生成详细的技术实现计划。

示例:

/plan
使用 React + TypeScript 前端
Node.js 后端
PostgreSQL 数据库

生成的技术计划包括:

  • 系统架构设计
  • 技术栈选择理由
  • 数据模型设计
  • API 设计
  • 安全考虑
  • 性能优化策略

步骤 3: 任务分解 (/tasks)

/tasks

将技术计划分解为可执行的小任务,每个任务包括:

  • 任务描述
  • 依赖关系
  • 预期产出
  • 验收条件

步骤 4: 实施 (/implement)

/implement

AI 编码助手根据规范、计划和任务列表生成代码,并遵循测试驱动开发(TDD)原则。

核心特性

1. 跨 AI 助手兼容

Spec Kit 支持多种主流 AI 编码助手:

  • Claude Code (Anthropic)
  • GitHub Copilot
  • Cursor
  • Gemini CLI (Google)
  • Windsurf
  • Qwen Code
  • OpenCode
  • Codex
  • 以及更多...

2. 测试驱动开发集成

内置 TDD 支持,确保:

  • 每个功能都有对应的测试
  • 优先使用真实环境测试而非 Mock
  • 合约测试(Contract Tests)在实施前必须完成

3. 审查和验收清单

每个阶段都有明确的验收标准,包括:

  • 规范是否完整?
  • 技术计划是否可行?
  • 任务是否可独立执行?
  • 代码是否通过所有测试?

4. 迭代优化机制

支持在任何阶段返回修改:

  • 规范不清晰?更新规范
  • 架构需要调整?修改技术计划
  • 任务太大?重新分解

适用场景

1. 绿地项目 (Zero-to-One)

从零开始的新项目,通过提前规划避免 AI 生成通用化解决方案。

2. 功能扩展 (N-to-N+1)

为现有复杂系统添加新功能,这是 Spec Kit 最强大的应用场景:

  • 明确新功能与现有系统的交互方式
  • 编码架构约束确保代码风格一致
  • 让新代码感觉像原生功能而非"补丁"

3. 遗留系统现代化

重构遗留系统时:

  • 在现代规范中捕获核心业务逻辑
  • 设计全新架构
  • 让 AI 从头重建系统,不带技术债

项目结构示例

使用 Specify CLI 初始化后的项目结构:

my-project/
├── .specify/              # Spec Kit 配置和模板
│   ├── templates/         # 规范、计划、任务模板
│   ├── scripts/           # 辅助脚本
│   └── config.json        # 配置文件
├── constitution.md        # 项目宪章
├── spec.md                # 产品规范文档
├── plan.md                # 技术实现计划
├── tasks/                 # 任务列表
│   ├── task-001.md
│   ├── task-002.md
│   └── ...
└── src/                   # 源代码目录

实际案例: Taskify 项目

Spec Kit 官方提供了一个完整的示例项目 Taskify,展示了如何使用规范驱动开发构建一个 Kanban 风格的项目管理工具。

功能特性:

  • 5个预设用户,无需密码登录
  • 多项目管理
  • Kanban 看板视图
  • 拖拽式任务管理
  • 任务分配和状态追踪
  • 评论功能(只能编辑/删除自己的评论)
  • 当前用户任务高亮显示

开发流程:

  1. 使用 /specify 命令描述 Taskify 的需求
  2. AI 生成详细的产品规范
  3. 使用 /speckit.clarify 进行细节澄清
  4. 使用 /plan 生成技术实现计划
  5. 验证审查和验收清单
  6. 生成并执行任务

优势与价值

对开发者的价值

  1. 减少猜测: 明确的规范消除歧义
  2. 提高质量: 结构化流程确保代码质量
  3. 便于协作: 规范成为团队沟通的共同语言
  4. 易于维护: 文档和代码同步演进

对团队的价值

  1. 统一标准: 通过 Constitution 建立团队规范
  2. 知识沉淀: 规范和计划成为可复用的资产
  3. 减少返工: 提前规划减少实施阶段的问题
  4. 可追溯性: 清晰的决策记录

对 AI 助手的价值

  1. 上下文理解: 完整的规范提供充足的上下文
  2. 约束引导: 技术计划提供架构约束
  3. 任务聚焦: 小粒度任务让 AI 更专注
  4. 质量保证: 内置的验收标准指导代码生成

局限性和注意事项

1. 学习曲线

对小型简单项目可能显得过于繁琐,需要权衡投入产出比。

2. 实验性质

Spec Kit 仍处于实验阶段,GitHub 团队明确表示还有很多问题需要回答。

3. 模板灵活性

内置模板基于 GitHub 团队的最佳实践,但可能需要根据组织需求调整。

4. 现有项目集成

目前主要面向新项目,对现有项目的支持还在探索中。

社区和生态

相关项目

  • SpecLang: GitHub 2023年的研究项目,探索自然语言规范作为代码生成的主要来源
  • AWS Kiro: AWS 的"代理式"IDE,让 AI 直接从规范构建软件
  • Codeplain: 使用专用规范语言 Plain 的初创项目
  • Tessl: 提供规范驱动框架和注册表的平台

社区反馈

社区对 Spec Kit 的主要讨论点:

  1. 标准化需求: 用户希望建立共享框架,避免 AI 辅助开发的碎片化
  2. 跨团队协作: 建议支持跨仓库共享规范和产物
  3. 自动生成: 希望能从现有代码库自动生成 Constitution
  4. 现有项目支持: 呼吁更好地支持已开发项目的集成

获取支持

总结

GitHub Spec Kit 代表了 AI 辅助软件开发的一个重要方向:从"即兴编码"(Vibe Coding)转向"有计划的构建"。通过提供结构化的规范驱动开发框架,它帮助开发者和 AI 助手建立了更有效的协作模式。

虽然还处于实验阶段,但 Spec Kit 已经展示了其在复杂项目开发中的价值。随着工具的不断完善和社区的持续贡献,规范驱动开发有望成为 AI 时代软件工程的重要实践方法。


许可证: MIT License

最新版本: 请访问 https://github.com/github/spec-kit/releases 获取最新发布版本

Star History Chart