Skip to content

GitHub Spec Kit 技术分析:规范驱动 AI 开发的未来

技术调研 | 2026-04-05


一、什么是 Spec Kit?

GitHub Spec Kit 是 GitHub 于 2025 年开源的规范驱动开发 (Spec-Driven Development, SDD) 工具包。它的核心目标很明确:用结构化的规范 (Specification) 替代传统的"vibe coding"(随意编码),让 AI 助手按照明确的规范生成代码。

核心理念

传统开发流程:

需求 → 脑内设计 → 编码 → 测试 → 发现偏差 → 返工

Spec-Driven 流程:

需求 → 编写规范 (Spec) → AI 根据规范生成代码 → 测试验证 → 规范与代码同步演进

Spec Kit 的关键创新在于:规范不再是文档,而是"可执行的契约"。规范本身可以生成测试、验证实现,甚至直接生成代码骨架。


二、为什么需要 Spec-Driven Development?

2.1 "Vibe Coding" 的问题

随着 AI 编码助手(Copilot、Claude Code、Cursor 等)的普及,开发者可以直接用自然语言让 AI 生成代码。这种方式被称为 "vibe coding" —— 凭感觉编码。

Vibe Coding 的典型问题:

  • 🚫 架构漂移:每次让 AI 加功能,架构逐渐偏离最初设计
  • 🚫 需求理解偏差:AI 理解的需求和你想要的不一致
  • 🚫 技术债务累积:快速迭代中忽略边界条件、错误处理
  • 🚫 难以维护:没有明确规范,后续迭代不知道"原本应该怎样"

2.2 Spec-Driven 的优势

维度Vibe CodingSpec-Driven
需求明确性模糊,依赖上下文结构化,显式定义
架构一致性容易漂移规范约束,保持一致
测试覆盖事后补充规范即测试
AI 输出质量不稳定按规范执行,可预测
团队协作知识在个人脑中规范即文档

三、Spec Kit 技术架构

3.1 核心组件

┌─────────────────────────────────────────────────────────┐
│                    Spec Kit Workflow                     │
├─────────────────────────────────────────────────────────┤
│                                                          │
│  ┌──────────┐    ┌──────────┐    ┌──────────┐          │
│  │  Spec    │ →  │  Plan    │ →  │  Generate │          │
│  │  Writer  │    │  Builder │    │  Tasks    │          │
│  └──────────┘    └──────────┘    └──────────┘          │
│       ↓               ↓               ↓                 │
│  ┌──────────────────────────────────────────┐           │
│  │         Living Spec (Markdown)           │           │
│  │  - Requirements                          │           │
│  │  - Architecture                          │           │
│  │  - API Contracts                         │           │
│  │  - Test Cases                            │           │
│  └──────────────────────────────────────────┘           │
│                       ↓                                  │
│  ┌──────────────────────────────────────────┐           │
│  │      AI Agent Integration Layer          │           │
│  │  - GitHub Copilot                        │           │
│  │  - Claude Code                           │           │
│  │  - Gemini CLI                            │           │
│  │  - Cursor                                │           │
│  └──────────────────────────────────────────┘           │
│                       ↓                                  │
│  ┌──────────┐    ┌──────────┐    ┌──────────┐          │
│  │  Code    │ →  │   Test   │ →  │  Verify  │          │
│  │  Gen     │    │  Runner  │    │  & Evolve │          │
│  └──────────┘    └──────────┘    └──────────┘          │
│                                                          │
└─────────────────────────────────────────────────────────┘

3.2 规范文件格式

Spec Kit 使用 Markdown 作为规范格式,但赋予其结构化语义:

markdown
# Feature: 用户认证系统

## Motivation
用户需要安全的登录和会话管理机制

## Requirements
- [ ] 支持邮箱 + 密码登录
- [ ] 支持 OAuth2 (Google, GitHub)
- [ ] JWT Token 有效期 24 小时
- [ ] 密码加密使用 bcrypt

## Architecture

┌─────────┐ ┌─────────┐ ┌─────────┐ │ Client │ ──→ │ API GW │ ──→ │ Auth │ └─────────┘ └─────────┘ └─────────┘


## API Contracts
### POST /auth/login
**Request:**
```json
{ "email": "user@example.com", "password": "***" }

Response:

json
{ "token": "jwt_xxx", "expiresIn": 86400 }

Test Cases

  • [ ] 正确密码返回 token
  • [ ] 错误密码返回 401
  • [ ] Token 过期返回 401

### 3.3 与 AI Agent 的集成

Spec Kit 不绑定特定 AI,而是提供**适配器层**:

| AI Agent | 集成方式 | 规范传递 |
|----------|----------|----------|
| GitHub Copilot | VS Code 扩展 | Spec 文件作为上下文 |
| Claude Code | CLI 工具 | Spec 作为 system prompt |
| Gemini CLI | 命令行 | Spec 作为输入文件 |
| Cursor | IDE 内置 | Spec 作为 project context |

---

## 四、Spec Kit 工作流详解

### 4.1 完整开发周期

Step 1: 编写初始规范 ↓ Step 2: AI 评审规范(发现模糊点、遗漏) ↓ Step 3: 生成实现任务列表 ↓ Step 4: AI 按任务生成代码 ↓ Step 5: 运行测试验证 ↓ Step 6: 规范与代码同步更新(Living Spec)


### 4.2 Living Spec(活规范)

Spec Kit 的核心理念是 **Living Spec** —— 规范不是一次性文档,而是随项目演进的"活文档":

- ✅ **代码变更 → 规范更新**:实现新需求时同步更新规范
- ✅ **规范变更 → 测试更新**:规范修改后自动生成/更新测试
- ✅ **测试失败 → 规范审查**:测试失败时检查是代码问题还是规范问题

---

## 五、实战案例:旅行规划器

根据 ScalablePath 的教程,Spec Kit 的典型应用案例是**旅行规划器**:

### 规范片段
```markdown
# Feature: 旅行路线规划

## Requirements
- [ ] 输入:起点、终点、预算、天数
- [ ] 输出:每日行程(景点、交通、住宿)
- [ ] 约束:总预算不超过设定值
- [ ] 集成:Google Maps API、Skyscanner API

## Test Cases
- [ ] 3 天北京游,预算 5000 元 → 生成合理行程
- [ ] 预算不足 → 返回错误提示
- [ ] 无直飞航班 → 推荐中转方案

AI 生成结果

AI 根据规范生成:

  • 数据模型(Trip, Itinerary, Budget)
  • API 接口(/plan, /optimize)
  • 业务逻辑(预算校验、路线优化)
  • 测试用例(Jest/Pytest)

六、Spec Kit vs 其他方案

6.1 竞品对比

工具出品方定位特点
Spec KitGitHub规范驱动开发工具包通用框架,支持多 AI
OpenSpec社区规范语言 + 工具链更形式化的规范语法
BMAD社区规范驱动方法论强调业务建模
Agent OSBuilder.aiAI 开发平台一体化平台,封闭生态

6.2 选择建议

  • 企业级项目 → Spec Kit(GitHub 背书,生态好)
  • 高可靠性需求 → OpenSpec(形式化验证)
  • 快速原型 → Vibe Coding + 后期补规范
  • 已有 AI 平台 → 评估平台内置方案

七、技术挑战与局限

7.1 当前挑战

挑战描述缓解方案
规范编写成本写规范比直接 coding 慢模板化、AI 辅助写规范
规范 - 代码同步容易不同步自动化验证工具
AI 理解偏差AI 可能误解规范规范评审 + 测试覆盖
学习曲线团队需要适应新流程培训 + 渐进式采用

7.2 适用场景

适合 Spec-Driven:

  • 中大型项目(需要架构一致性)
  • 多人协作(需要明确契约)
  • 合规要求高(需要可追溯)
  • 长期维护项目(需要文档)

不适合 Spec-Driven:

  • 快速原型验证
  • 个人小工具
  • 探索性/实验性项目
  • 需求极度不确定的项目

八、如何开始使用 Spec Kit?

8.1 快速开始

bash
# 1. 克隆 Spec Kit
git clone https://github.com/github/spec-kit.git
cd spec-kit

# 2. 初始化项目
npx spec-kit init my-project

# 3. 编写第一个规范
code specs/feature-auth.md

# 4. 让 AI 生成代码
npx spec-kit generate --spec specs/feature-auth.md --agent claude

# 5. 运行测试
npx spec-kit test --spec specs/feature-auth.md

8.2 推荐工具链

角色推荐工具
规范编写VS Code + Markdown 插件
AI 代码生成Claude Code / Cursor
测试运行Jest / Pytest / Vitest
规范版本控制Git + GitHub

九、总结与展望

9.1 核心价值

Spec Kit 代表了一种AI 时代的新开发范式

  1. 规范即代码:规范不再是文档,而是可执行的契约
  2. AI 是执行者:人类定义"做什么",AI 负责"怎么做"
  3. 持续演进:规范与代码同步更新,保持"单一事实源"

9.2 未来趋势

  • 🔮 AI 辅助写规范:用自然语言描述,AI 生成结构化规范
  • 🔮 规范自动验证:形式化方法 + AI 验证规范一致性
  • 🔮 规范即测试:规范直接生成测试用例
  • 🔮 跨 AI 协作:不同 AI 负责规范的不同部分

9.3 我的观点

Spec-Driven Development 不是银弹,但它解决了一个关键问题:在 AI 编码时代,如何保持代码质量和架构一致性?

对于严肃的软件工程项目,我强烈推荐尝试 Spec Kit 或类似的规范驱动方法。花 30% 时间写规范,可以节省 70% 的返工时间。


参考资源


下一篇预告: #11 将深入分析另一个热门 AI 开发工具,敬请期待!

如果这篇分析对你有帮助,欢迎在评论区分享你的 Spec-Driven 实践经验!

Built with VitePress