Spec-Kit 规范驱动开发指南
从环境搭建到全自动代码生成的完整工作流
AI 编程
Spec-Driven
GitHub Tools
Spec-Kit 是 GitHub 推出的规范驱动开发工具包。它通过结构化的流程(规格 -> 计划 -> 任务 -> 实现),让 AI 编码更可控、更高效。
Step 1-2环境准备与安装
首先需要确保安装了最新版本的 Python,然后使用 uv 包管理器安装 Spec-Kit CLI。
# 1. 下载并安装最新版本 Python
# 2. 安装 uv 包管理器
pip install uv
# ⚠️ 注意:Windows 用户需添加环境变量
# 路径示例:$USER_HOME\AppData\Roaming\Python\Python313\Scripts
# 3. 持久化安装 specify-cli (推荐)
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
# 4. 验证安装
specify check
Step 3项目初始化
创建新项目或在当前目录初始化。您可以指定 AI 助手(如 Claude)和脚本类型。
# 创建新项目目录
specify init my-project
# 或在当前目录初始化 (指定 AI 为 Claude)
specify init . --ai claude
# 指定脚本类型 (Windows PowerShell)
specify init . --ai claude --script ps
Step 4创建项目宪法 (Constitution)
自动化程度:⭐⭐⭐⭐ 半自动 - 你描述原则方向,AI 负责扩展和完善
使用 /speckit.constitution 命令创建项目原则。这将生成 CONSTITUTION.md,AI 后续生成的所有内容都将遵循此规定。
/speckit.constitution 示例内容
语言规范:
- 所有项目文档、注释、提交信息必须使用简体中文
- 代码变量名和函数名使用英文,但注释使用中文
- 用户界面文本、错误提示和日志信息使用简体中文
代码质量:
- 遵循 Clean Code 原则
- 单元测试覆盖率 > 80%
- 使用 SOLID 原则
性能与安全:
- 页面加载 < 2秒,接口响应 < 500ms
- 遵循 OWASP Top 10,禁止硬编码密钥
Step 5编写功能规格 (Specify)
自动化程度:⭐⭐⭐⭐⭐ 全自动 - 你只需描述"做什么",AI 自动生成完整规格
使用 /speckit.specify 描述功能需求,AI 将生成 SPEC.md。
# 命令示例:构建照片相册管理应用
/speckit.specify 构建一个照片相册管理应用:
核心功能:
1. 相册管理 (按日期分组,拖放排序,扁平结构)
2. 照片展示 (瓷砖式预览,懒加载,支持 JPEG/PNG/WebP)
3. 数据存储 (本地存储,SQLite 元数据,支持导出导入)
用户故事:
- 作为用户,我想拖动相册来重新排序
- 作为用户,我想在网格布局中查看照片
- 作为用户,我想让数据保持私密(仅本地)
Step 6需求澄清 (Clarify)
自动化程度:⭐⭐⭐⭐⭐ 全自动
运行 /speckit.clarify,AI 会自动分析 SPEC.md,主动提问以澄清模糊想法(例如:是否需要离线模式?响应时间具体要求?)。
Step 7制定技术计划 (Plan)
自动化程度:⭐⭐⭐⭐⭐ 全自动
使用 /speckit.plan 提供技术实现细节,生成包含架构设计、数据模型的 PLAN.md。
技术实现方案示例
- 前端: Vite 5.x, 原生 HTML5/CSS3/ES2023, 无 UI 框架 (轻量级)
- 后端/数据: SQLite (sql.js), IndexedDB 存储二进制图片
- 性能优化: Intersection Observer 懒加载, 虚拟滚动, 缩略图策略
- 约束: 零外部运行时依赖, PWA 支持, 移动端适配
Step 8分解任务 (Tasks)
自动化程度:⭐⭐⭐⭐⭐ 全自动
运行 /speckit.tasks,分析规格和计划,生成可执行的 TASKS.md。
TASKS.md 预览
阶段一:项目搭建
阶段二:数据库层
阶段三:UI 组件
Step 9执行实现 (Implement)
自动化程度:⭐⭐⭐⭐⭐ 全自动 - 从需求到代码的最终落地
运行 /speckit.implement,AI 将读取任务列表,按顺序生成代码文件并更新任务状态。
进阶用法:
- 只执行特定阶段:
/speckit.implement --phase 2 - 执行单个任务:
/speckit.implement --task "创建相册组件" - 更新规格后重新生成任务:
/speckit.tasks --update - 代码审查:
/speckit.review - 检查测试覆盖率:
/speckit.test --coverage
最佳实践建议
Constitution 编写
- 具体可衡量: 定义 "覆盖率 > 80%"
- 技术无关: 关注原则而非具体技术栈
- 团队共识: 与团队共同制定
Spec 编写
- 用户视角: 描述用户能看到什么
- 避免技术细节: 不在 Spec 中指定技术栈
- 验收标准: 明确的完成标准
Plan 编写
- 技术选型理由: 说明为什么选择
- 架构图: 文字或 ASCII 图描述
- 数据流: 清晰描述数据流动