Spec Kit 是 GitHub 推出的开源工具包。它的核心目标并非仅仅是“让 AI 多写点代码”,而是试图将开发的重心从“直接编写实现代码”转向“先构建可执行的规格(Specification)”,再由 AI 依据清晰的规格来生成开发计划、拆解任务与最终代码。这一转变旨在形成一套可迭代、可追溯、可协作的现代化研发流程。
1. 项目概览
项目名称: github/spec-kit
定位: Spec-Driven Development(规格驱动开发)工具链与模板体系
协议: MIT
官方文档: https://github.github.com/spec-kit/
简而言之,它提供了一套“研发流程的操作系统”:包括 CLI 工具(specify)、规范化的 AI 命令(如 /speckit.specify、/speckit.plan、/speckit.tasks)、各类模板、脚本与约束机制。这套机制可以对接多个主流 AI Agent(如 Claude Code、Codex CLI、Gemini CLI、Copilot、Cursor 等),因此在技术上属于一种“与 AI Agent 无关”的方法论工程化实现。
2. 核心思想:为什么它被认为“很牛”
2.1 从“代码中心”到“规格中心”
在传统的开发模式中,需求文档(Spec)往往在编码开始后就迅速过时,与最终实现产生脱节。Spec Kit 倡导的理念是:规格成为第一性的、可执行的工程资产,而代码只是规格的一种表达与实现结果。这样,当需求发生变更时,团队可以优先更新规格与对应的技术计划,再由 AI 辅助生成新的实现,从而大幅减少“需求 -> 设计 -> 代码”这三层之间的信息漂移与不一致。
2.2 把 AI 的随机性,变成结构化产出
纯粹依赖聊天式(Chat-based)的开发,很容易产生“看起来能跑,但缺乏边界条件、缺少明确验收标准、代码风格不一致”的结果。Spec Kit 通过预设的模板和分阶段命令,强制 AI 必须按照结构化的方式输出:
- 先产出可供人工审阅的规格文档(明确 What 与 Why)
- 再产出具体的技术实现计划(明确 How)
- 接着拆解为可执行的任务图谱(Task Graph)
- 最后才进入具体的实施与验证阶段(Implement + Analyze)
2.3 把“开发动作”转成“可追溯链路”
从一条原始的需求描述,到最终的技术决策和代码任务,理论上可以通过 Spec Kit 建立的流程形成清晰的映射关系。对于团队管理和工程治理而言,这意味着:
- 更容易进行变更影响分析
- 更容易实现跨角色协同(产品、架构、开发、测试)
- 更容易在项目复盘时追溯“为什么当时要这样设计”
3. 工作流与命令体系(6 步)
| 阶段 |
典型命令 |
输出物 |
价值 |
| 1. 初始化 |
specify init |
项目骨架、脚本、命令模板 |
统一团队项目启动方式 |
| 2. 制定原则 |
/speckit.constitution |
项目开发“宪法” |
提前固化质量、测试、性能等非功能性边界 |
| 3. 生成规格 |
/speckit.specify |
spec 文档 |
对齐需求意图与验收标准 |
| 4. 消歧澄清 |
/speckit.clarify |
补充约束、消除歧义 |
减少因隐含假设导致的后期错误 |
| 5. 技术规划 |
/speckit.plan |
plan / data-model / contracts 等 |
把业务需求翻译为可落地的架构与技术方案 |
| 6. 拆任务与实施 |
/speckit.tasks + /speckit.implement |
可执行任务列表与实现结果 |
进入具体的工程落地阶段 |
命令特征: 结构化输出、分阶段上下文、多 Agent 支持、可并行任务、脚本跨平台(支持 sh/ps1)。
4. 实操指南:从 0 到 1 跑通 Spec Kit
下面是一套可以直接落地的最小实践路径,适合你拿一个新功能或小项目作为试点,预计 1~2 天就能跑通整个流程。
4.1 环境准备
# 1) 安装 uv(若未安装)
# macOS/Linux 常见安装方式(请以官方文档为准)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 2) 检查基础依赖
python3 --version
git --version
uv --version
4.2 初始化项目
# 新建项目并初始化(示例使用 codex 作为AI后端)
uvx --from git+https://github.com/github/spec-kit.git specify init my-spec-demo --ai codex
# 或者在当前已存在的目录中初始化
uvx --from git+https://github.com/github/spec-kit.git specify init . --ai codex
你会得到什么: 项目将生成标准的命令模板、自动化脚本、spec 文档目录结构,以及后续执行 /speckit.* 系列工作流所需的上下文配置文件。
4.3 一次完整功能实操
- 在 AI 对话中先定义项目基本原则:
/speckit.constitution
- 描述具体的需求目标:
/speckit.specify
- 对模糊点进行澄清:
/speckit.clarify
- 产出技术方案:
/speckit.plan
- 拆解为具体任务:
/speckit.tasks
- 执行并生成代码:
/speckit.implement
一个连贯的示例如下:
/speckit.constitution 本项目遵循:先测试后实现;接口变更必须有契约文档;关键路径需性能基线。
/speckit.specify 做一个团队知识库检索页面,支持关键词搜索、标签过滤、分页、收藏。
/speckit.clarify 重点澄清权限边界、分页上限、错误态和空态。
/speckit.plan 前端 React + Vite;后端 FastAPI;PostgreSQL;Redis 做热点缓存。
/speckit.tasks
/speckit.implement
4.4 产物检查清单(强烈建议)
- 规格文档是否可验收: 是否写清了“成功标准”和各类“边界条件”?
- 技术计划是否可执行: 是否包含了数据模型、接口契约、测试策略等关键要素?
- 任务列表是否可并行: 是否清晰标注了任务间的依赖关系,识别出了可并发执行的部分?
- 实现是否回写规格: 开发过程中产生的关键设计变更,是否同步更新了规格文档?
4.5 团队落地建议(避免只停留在 demo)
- 把
/speckit.plan 阶段作为开发启动前的强制关口,相当于一次轻量级的、可存档的技术设计评审。
- 把
/speckit.tasks 的输出同步到 Jira、Linear 或 GitHub Projects 等看板工具中,实现任务的可视化与看板化执行。
- 每周进行一次 spec 质量复盘,统计分析返工来源(是需求歧义、技术假设错误,还是场景遗漏?)。
- 先在一个明确的业务域或团队进行试点,沉淀出适合自身的技术栈与业务场景的模板后,再逐步推广到全团队。
4.6 常见坑位与规避
| 坑位 |
表现 |
规避动作 |
| 过早陷入实现细节 |
在 spec 规格阶段就讨论具体框架、库的选型 |
严格遵守阶段划分,spec 只谈 What/Why,How 留给 plan 阶段 |
| 需求未澄清就开工 |
因隐含假设导致后期反复返工 |
强制执行 /speckit.clarify 阶段,形成澄清记录 |
| 只生成不验收 |
AI 输出的文档看起来齐全,但落地时却发生偏航 |
为每个阶段设置检查清单,并加入必要的人工 review 环节 |
| 文档与代码脱节 |
几次迭代后,spec 文档严重过时,失去参考价值 |
将“回写更新规格”纳入任务完成的定义(DoD)中 |
5. 与传统 AI Coding 的本质差异
| 维度 |
传统“直接让 AI 写代码” |
Spec Kit / 规格驱动开发 (SDD) |
| 输入 |
一段即兴的、可能不完整的 prompt |
结构化的规格 + 项目宪法 + 澄清记录 + 技术计划 |
| 过程 |
单跳(One-shot)或有限轮次的聊天生成 |
多阶段、递进式的结构化流程 |
| 可追溯性 |
弱,难以追踪某个代码块对应的原始需求 |
强,建立了从规格到任务再到代码的完整可追溯链路 |
| 变更成本 |
高,常依赖人工打补丁或重新提示 |
相对较低,通过更新规格文档重新驱动整个流程 |
| 团队协作 |
高度依赖个人的 prompt 工程经验 |
依赖可复制、可继承的流程资产与团队知识 |
6. 适用场景
- 0 到 1: 启动新项目时快速成形,并希望从第一天起就具备良好的规格治理能力。
- 1 到 N: 持续迭代的成熟产品,强调需求变更的可控性与影响范围的可评估性。
- 存量改造(Brownfield): 对已有系统进行增量开发或重构,需要将系统内的隐性知识显性化、文档化。
- 多 Agent 协作: 需要让不同的 AI 工具或模型(如 Claude 做设计,GPT 写代码)协同参与同一工程项目。
7. 技术门槛与落地成本
7.1 基础依赖
- Python 3.11+
uv / uvx 工具
- Git
- 至少一个可用的 AI Agent(如 Claude、Codex、Gemini、Copilot)
7.2 真实挑战
- 纪律成本: 团队必须坚持“先规格,后实现”的新纪律,抵抗回到旧有即兴编码习惯的诱惑。
- 文档质量门槛: 初始的规格如果写得模糊或质量低下,后续全链路都会产生偏差,所谓“垃圾进,垃圾出”。
- 上下文治理: 在复杂项目中,需要精心控制规格文档的体量与颗粒度,避免导致 AI 上下文窗口过载,影响输出质量。
关键在于理解:Spec Kit 不是一个“替你思考”的自动代码生成机,而是将你的思考过程流程化、结构化的工具。团队能从中获得多大收益,取决于你是否愿意将“需求与设计质量”当作核心的工程资产来认真经营。对于追求高效协同与技术沉淀的团队,可以到 云栈社区 的后端与架构板块交流更多工程实践。
8. 典型落地建议(实操)
- 小步试点: 先选择一个中等复杂度的功能(耗时约2~4周)进行试点,切勿一开始就试图覆盖整个项目。
- 固化红线: 把
constitution 视为项目的工程红线,将测试覆盖率要求、性能预算、安全底线等原则提前写死。
- 人工把关: 在每次生成
/speckit.plan 后,进行一次简短的人工架构审查,防止 AI 产生过度设计或不切实际的方案。
- 工具集成: 将
tasks 输出与团队的看板系统(Jira/Linear/GitHub Projects)绑定,提升任务执行的可见性与协同效率。
- 闭环运营: 每个开发迭代结束时,执行“规格回写”操作,将运营中发现的痛点、故障复盘的经验反馈更新到规格库,形成知识闭环。
9. 一句话结论
Spec Kit 的核心价值,不在于“帮你多写几行代码”,而在于“帮助团队建立一套可持续、可协作的 AI 原生研发流程与工程纪律”。 如果你的长期目标是稳定的迭代节奏、高效的多人协作以及可审计的交付质量,那么它比任何单次的 prompt 技巧都更接近于一种“工程级”的底层能力提升。
10. 参考资料