企业 AI 开发转型指南:基于 Spec-Kit 的规范驱动开发
把 11 天的开发周期缩短到 1 天,每个功能节省 1.9 万元,需求变更成本降低 70%。
引言
在 AI 辅助开发时代,企业面临着前所未有的机遇:通过 AI 工具,小团队也能快速构建复杂的软件系统。然而,"vibe coding"(凭感觉编码)的方式虽然快速,却容易导致代码质量不稳定、需求理解偏差、技术债务累积等问题。
Spec-Kit 是 GitHub 开源的规范驱动开发(Spec-Driven Development, SDD)工具包,它颠覆了传统的开发模式:让规范成为可执行的源头,代码成为规范的表达。这不仅仅是方法论的改进,而是开发范式的根本转变。
什么是规范驱动开发(SDD)?
传统开发的困境
几十年来,代码一直是王者。我们编写 PRD 来指导开发,创建设计文档来告知实现,绘制架构图来可视化系统。但这些文档始终从属于代码本身。代码是真理,而规范充其量只是良好的意图。
这种模式存在根本性问题:
-
规范与实现的鸿沟:文档写得再好,实现时总会偏离
-
文档腐化:代码不断演进,文档却很少同步更新
-
需求变更成本高:每次调整都需要手动传播到文档、设计和代码
-
并行实现困难:想尝试不同技术方案?需要从头重写代码
SDD 的范式转变
Spec-Kit 颠倒了这种权力结构:规范不再服务于代码,而是代码服务于规范。
-
PRD 不是实现指南,而是生成实现的源头
-
技术计划不是告知编码的文档,而是产生代码的精确定义
-
规范成为可执行的,直接生成工作系统而不仅仅是指导它们
这种转变之所以可能,是因为:
-
AI 能力达到阈值:现代 AI 可以理解和实现复杂规范
-
结构化约束:Spec-Kit 通过模板和工作流提供必要的结构
-
持续验证:AI 分析规范的歧义、矛盾和缺口
Spec-Kit 核心工作流
Spec-Kit 通过四个核心命令实现规范驱动开发:
1. /speckit.specify - 创建功能规范
作用:将模糊的想法转化为结构化的功能规范
输入示例:
/speckit.specify 构建一个照片管理应用,可以按日期组织相册,支持拖拽重新排序。
相册不能嵌套,每个相册内以瓷砖式界面预览照片。
自动完成:
-
扫描现有规范,确定下一个功能编号(如 001, 002, 003)
-
从描述生成语义化分支名并自动创建
-
基于模板生成结构化规范文档
-
创建
specs/[branch\-name]/目录结构
生成的规范包含:
-
用户场景和测试:按优先级排序的用户故事(P1, P2, P3...)
-
独立可测试性:每个故事都可以独立实现、测试和交付
-
验收场景:Given-When-Then 格式的具体场景
-
功能需求:明确的 MUST 要求
-
成功标准:可测量的结果指标
关键特性:
-
专注于 WHAT(做什么)和 WHY(为什么),避免 HOW(怎么做)
-
使用
[NEEDS CLARIFICATION]标记所有不明确的地方 -
强制优先级排序,确保 MVP 思维
2. /speckit.plan - 生成实施计划
作用:将业务需求转化为技术实施计划
输入示例:
/speckit.plan 使用 Vite + 原生 HTML/CSS/JavaScript,尽量少用库。
图片不上传,元数据存储在本地 SQLite 数据库。
自动完成:
-
分析功能规范的需求和用户故事
-
确保符合项目宪法(constitution)和架构原则
-
将业务需求转化为技术架构和实施细节
-
生成支持文档:数据模型、API 契约、测试场景
生成��文档:
specs/001-photo-albums/
├── plan.md # 实施计划主文档
├── research.md # 技术调研(框架版本、最佳实践)
├── data-model.md # 数据实体和关系
├── contracts/ # API 规范、事件定义
│ ├── api-spec.json
│ └── events-spec.md
└── quickstart.md # 快速验证场景
MCP 集成增强:
在 /speckit.plan 阶段,可以集成多种 MCP 服务器来增强设计质量:
Figma MCP:
-
读取设计稿的组件规范
-
提取设计系统的 tokens(颜色、字体、间距)
-
生成对应的前端组件结构
-
确保设计与开发的一致性
技术文档 MCP:
-
查询最新的框架文档(如 React、Vue、Next.js)
-
获取 API 参考和使用示例
-
检索最佳实践和设计模式
-
验证依赖版本兼容性
配置示例:
{
"mcpServers": {
"figma": {
"command": "uvx",
"args": ["figma-mcp-server@latest"],
"env": {
"FIGMA_ACCESS_TOKEN": "your-token"
}
},
"docs": {
"command": "uvx",
"args": ["mcp-server-fetch@latest"]
}
}
}
实际应用流程:
# 1. 创建规范
/speckit.specify 构建一个任务管理看板,支持拖拽、评论、分配
# 2. 生成计划(AI 会自动调用 MCP)
/speckit.plan 使用 React + TypeScript,参考 Figma 设计稿 [链接]
# AI 自动执行:
# - 通过 Figma MCP 读取设计稿
# - 通过技术文档 MCP 查询 React 18 最佳实践
# - 生成符合设计系统的组件架构
# - 创建详细的实施计划
3. /speckit.tasks - 生成任务列表
作用:将实施计划分解为可执行的任务清单
输入:
-
plan.md(必需) -
spec.md(用于用户故事) -
data\-model.md、contracts/、research.md(可选)
自动完成:
-
从契约、实体和场景派生具体任务
-
标记可并行执行的任务
[P] -
按用户故事组织任务,支持独立实现
生成的任务结构:
# Tasks: 照片管理应用
## Phase 1: Setup(共享基础设施)
- [ ] T001 创建项目结构
- [ ] T002 初始化 Vite 项目
- [ ] T003 [P] 配置 ESLint 和 Prettier
## Phase 2: Foundational(阻塞性前置条件)
⚠️ 关键:所有用户故事必须等此阶段完成
- [ ] T004 设置 SQLite 数据库和迁移框架
- [ ] T005 [P] 实现基础数据模型
- [ ] T006 [P] 配置错误处理和日志
## Phase 3: User Story 1 - 创建相册(P1)🎯 MVP
**目标**:用户可以创建和查看相册
**独立测试**:创建相册 → 查看相册列表 → 验证相册存在
### 实现
- [ ] T007 [P] [US1] 创建 Album 模型
- [ ] T008 [US1] 实现相册服务
- [ ] T009 [US1] 实现相册 UI 组件
- [ ] T010 [US1] 添加验证和错误处理
**检查点**:此时用户故事 1 应完全可用
## Phase 4: User Story 2 - 添加照片(P2)
**目标**:用户可以向相册添加照片
**独立测试**:选择照片 → 添加到相册 → 验证照片显示
### 实现
- [ ] T011 [P] [US2] 创建 Photo 模型
- [ ] T012 [US2] 实现照片上传服务
- [ ] T013 [US2] 实现照片瓷砖 UI
- [ ] T014 [US2] 与用户故事 1 集成
**检查点**:用户故事 1 和 2 都应独立工作
## Phase 5: User Story 3 - 拖拽排序(P3)
...
关键特性:
-
按用户故事组织:每个故事可独立实现和测试
-
并行机会:标记
[P]的任务可同时执行 -
增量交付:完成 P1 就有 MVP,P2/P3 逐步增强
-
检查点验证:每个阶段都有明确的验证点
4. /speckit.implement - 执行实施
作用:按照任务列表执行所有任务,构建功能
执行策略:
/speckit.implement
AI 自动执行:
-
按顺序执行任务列表
-
遵循依赖关系(Phase 1 → Phase 2 → User Stories)
-
在检查点暂停验证
-
生成符合规范的代码
开发特点:
-
一次一任务:专注单一目标,避免范围蔓延
-
测试优先:先写测试,确保失败,再实现功能
-
增量验证:每个用户故事完成后独立测试
-
持续集成:代码始终与规范保持一致
质量保证:
// 示例:契约测试
/**
* Feature: photo-albums, User Story 1
* Contract: POST /api/albums
*/
describe('Album Creation API', () => {
it('should create album with valid data', async () => {
const response = await request(app)
.post('/api/albums')
.send({ name: 'Vacation 2024', date: '2024-01-01' });
expect(response.status).toBe(201);
expect(response.body).toHaveProperty('id');
expect(response.body.name).toBe('Vacation 2024');
});
it('should reject album without name', async () => {
const response = await request(app)
.post('/api/albums')
.send({ date: '2024-01-01' });
expect(response.status).toBe(400);
});
});
AI 编码助手集成指南
Spec-Kit 支持多种 AI 编码助手,包括 Claude Code、GitHub Copilot、Cursor、Windsurf 等。以下以 Claude Code 为例说明集成方法。
快速开始
1. 安装 Specify CLI
# 持久化安装(推荐)
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
# 或一次性使用
uvx --from git+https://github.com/github/spec-kit.git specify init <项目名>
2. 初始化项目
# 创建新项目
specify init my-project --ai claude
# 或在现有项目中初始化
specify init . --ai claude
# 支持的 AI 助手
specify init my-project --ai claude # Claude Code
specify init my-project --ai copilot # GitHub Copilot
specify init my-project --ai cursor-agent # Cursor
specify init my-project --ai windsurf # Windsurf
specify init my-project --ai gemini # Gemini CLI
3. 启动 AI 助手
cd my-project
claude # 或其他 AI 助手命令
此时你会看到可用的 Spec-Kit 命令:
-
/speckit.constitution- 创建项目宪法 -
/speckit.specify- 定义功能规范 -
/speckit.plan- 生成实施计划 -
/speckit.tasks- 创建任务列表 -
/speckit.implement- 执行实施
完整开发流程
参考其他 AI 平台集成
如果你使用的是其他 AI 平台(如智谱 GLM-4.6),可以参考其官方文档进行集成:
智谱 GLM-4.6 集成示例:
# 参考文档
https://docs.bigmodel.cn/cn/guide/develop/claude
# 配置 API
export GLM_API_KEY="your-api-key"
# 使用 Spec-Kit 工作流
# 1. 创建规范
glm chat "使用 /speckit.specify 命令创建功能规范"
# 2. 生成计划
glm chat "使用 /speckit.plan 命令生成实施计划"
# 3. 执行任务
glm chat "使用 /speckit.implement 命令执行实施"
关键集成点:
-
API 配置:设置 API 密钥和端点
-
命令支持:确保 AI 平台支持自定义斜杠命令
-
上下文管理:AI 需要访问项目文件和规范文档
-
MCP 集成:配置 MCP 服务器以增强设计能力
企业转型实施路径
阶段 1:试点项目(1-2 周)
目标:通过小型功能验证 Spec-Kit 价值
行动步骤:
-
选择一个独立的小功能(如用户反馈表单)
-
使用
/speckit.specify创建规范 -
使用
/speckit.plan生成计划 -
使用
/speckit.tasks和/speckit.implement完成实施 -
对比传统开发方式的时间和质量
成功指标:
-
规范文档清晰度:团队成员能否快速理解需求
-
开发速度:相比传统方式是否更快
-
代码质量:是否减少了返工和 bug
阶段 2:MCP 集成(2-4 周)
目标:提升设计和技术决策质量
行动步骤:
-
配置 Figma MCP(如果使用 Figma)
-
配置技术文档 MCP
-
在
/speckit.plan阶段利用 MCP 查询 -
验证生成的计划是否更符合设计规范和技术最佳实践
MCP 配置示例:
{
"mcpServers": {
"figma": {
"command": "uvx",
"args": ["figma-mcp-server@latest"],
"env": {
"FIGMA_ACCESS_TOKEN": "your-token"
}
},
"docs": {
"command": "uvx",
"args": ["mcp-server-fetch@latest"]
}
}
}
成功指标:
-
设计一致性:实现是否符合设计稿
-
技术决策质量:是否采用了最佳实践
-
文档完整性:是否自动生成了完整的技术文档
阶段 3:团队推广(1-2 个月)
目标:全团队采用 Spec-Kit 工作流
团队培训计划:
产品经理/需求分析师:
-
学习如何编写清晰的功能描述
-
理解用户故事优先级排序
-
掌握
/speckit.specify和/speckit.clarify命令
设计师:
-
了解 Figma MCP 如何连接设计和开发
-
学习如何在设计稿中标注组件规范
-
参与
/speckit.plan阶段的设计审核
开发者:
-
熟悉规范驱动开发流程
-
学习如何执行任务列表
-
掌握测试优先的开发方法
项目经理:
-
理解 Spec-Kit 的项目管理流程
-
学习如何跟踪任务进度
-
掌握增量交付策略
阶段 4:流程优化(持续)
目标:建立适合团队的最佳实践
优化方向:
-
模板定制:根据团队特点调整规范和计划模板
-
自动化增强:集成 CI/CD 流水线
-
质量门禁:在关键阶段设置自动化检查
-
知识沉淀:建立规范库和最佳实践文档
实际案例:从传统开发到 SDD
传统开发方式
场景:开发一个任务管理看板
时间线:
-
需求讨论和文档编写:2 天
-
设计评审和调整:1 天
-
技术方案设计:1 天
-
开发实施:5 天
-
测试和修复:2 天
-
总计:11 天
问题:
-
需求文档和实现不一致
-
设计稿和代码有偏差
-
技术债务累积
-
需求变更成本高
使用 Spec-Kit
时间线:
-
/speckit.specify创建规范:30 分钟 -
/speckit.clarify澄清需求:30 分钟 -
用户审核规范:1 小时
-
/speckit.plan生成计划(含 MCP 集成):30 分钟 -
用户审核计划:1 小时
-
/speckit.tasks生成任务:15 分钟 -
/speckit.implement执行实施:1 天 -
总计:1.5 天
优势:
-
规范即文档,始终同步
-
MCP 确保设计一致性
-
任务清晰,减少返工
-
需求变更只需更新规范并重新生成
效率提升:约 60%
核心价值总结
1. 范式转变
从代码驱动到规范驱动:
-
传统:代码是真理,文档是附属
-
SDD:规范是源头,代码是表达
2. 质量保证
结构化约束:
-
模板强制完整性
-
AI 分析歧义和矛盾
-
测试优先确保正确性
3. 效率提升
自动化工作流:
-
15 分钟完成传统需要数小时的文档工作
-
MCP 集成减少手工查询和对齐
-
增量交付降低风险
4. 灵活应对变化
需求变更不再可怕:
-
更新规范即可重新生成
-
支持并行实现探索
-
降低技术债务
开始你的 SDD 之旅
# 1. 安装 Specify CLI
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
# 2. 创建项目
specify init my-project --ai claude
# 3. 启动 AI 助手
cd my-project
claude
# 4. 开始第一个功能
/speckit.specify 构建一个用户反馈表单,包含姓名、邮箱、反馈内容和评分
参考资源
-
Spec-Kit GitHub:https://github.com/github/spec\-kit
Spec-Kit 不仅是工具,更是一种思维方式的转变。对于希望在 AI 时代保持竞争力的中小企业来说,掌握规范驱动开发将是一个重要的战略选择。