GitHub Spec Kit 解读:规格驱动开发的完整工具链

AI 编码 Agent 有一类高频翻车现场:需求一句话丢给模型,生成的代码看似完整,细节却全是模型自己的假设。登录功能没写明认证方式,它默认邮箱密码;相册应用没说存储策略,它直接上了云服务。GitHub 官方的 Spec Kit 项目针对的就是这个环节,把「先写清楚要什么」固化成一整套工具流程。这个 2025 年 8 月立项的项目现在拿到 128,198 个 star、11,456 次 fork,日增 star 数一度达到 1147。

Spec Kit 官方视频头图

规格驱动开发在倒置什么

Spec Kit 的方法论文档给这套实践起了个直接的名字:规格驱动开发(Spec-Driven Development,SDD)。它的核心主张是一次权力倒置。过去二十年,代码是软件项目的唯一真相,需求文档、设计稿、架构图都是代码的附属品,写完就被丢进归档,和实际实现逐渐脱节。SDD 把这个关系反过来:规格说明成为项目的主资产,代码降级为规格的一种表达,由规格生成,也可以随时重新生成。

文档里有一句概括:当规格和实现计划可以直接生成代码时,规格与实现之间的鸿沟就不存在了,剩下的只有转换。维护软件因此变成维护规格,调试意味着修正生成了错误代码的规格,重构意味着重组规格的清晰度。

这套主张能落地,前提是 AI 模型已经能可靠理解复杂规格并产出实现。Spec Kit 做的事情是在这个能力之上补结构:用模板和命令把「写规格」固定为有约束的流程。

七个核心命令串起的工作流

安装后,Spec Kit 会在项目里注入一组斜杠命令,覆盖从立规矩到交付的完整链路。以一个实时聊天功能为例,官方文档给出的完整流程是三步:

bash
/speckit.specify Real-time chat system with message history and user presence
/speckit.plan WebSocket for real-time messaging, PostgreSQL for history, Redis for presence
/speckit.tasks

第一条命令把一句话需求变成结构化规格文件,同时创建 003-chat-system 特性分支和 specs/003-chat-system/spec.md。第二条命令根据技术选型生成实现计划。第三条命令把计划拆成任务清单,并附带生成一批工程文档:research.md 存放 WebSocket 库的对比调研,data-model.md 定义 Message 和 User 的数据结构,contracts/ 目录放 WebSocket 事件和 REST 端点契约,quickstart.md 列出关键验收场景,tasks.md 是最终任务列表。

官方给过一个时间对比:传统流程写 PRD、设计文档、技术规格、测试计划合计约 12 小时,命令流程三步各 5 分钟。这个数字来自官方文档的自述场景,实际项目复杂度不同会有差异,但文档结构的变化是确定的:规格、计划、任务全部进 Git,随分支评审合并。

七个核心命令之外还有三个辅助命令。/speckit.clarify 在写计划前澄清模糊点,/speckit.analyze 在任务生成后、实现开始前做跨文档一致性和覆盖率检查,/speckit.checklist 生成自定义质量清单,官方称它为「给英文写的单元测试」。最新加入的 /speckit.converge 用于存量代码库:对照规格、计划、任务评估现有代码,把缺口追加为新任务。/speckit.constitution 则在最开始建立项目宪法,把代码质量、测试标准、性能要求写成所有后续开发的约束条件。

模板怎么约束模型

Spec Kit 的方法论文档专门用一章解释模板的运行机制。模板在这里的作用接近提示工程:通过结构化约束引导模型产出更高质量的规格。六个机制里,有两个直接针对 AI 编码的常见病。

第一个是强制的不确定性标记。规格模板要求模型把所有模糊点显式标注为 [NEEDS CLARIFICATION: 具体问题],并且明令禁止猜测。面对一个没写认证方式的登录需求,模型不能自行假设邮箱密码方案,必须标注「认证方式未指定:邮箱密码、SSO 还是 OAuth」。这个约束直接堵住了文章开头那类翻车现场的源头。

第二个是阶段门(Phase Gates)。实现计划模板内置了 Pre-Implementation Gates,每个门对应宪法里的一条条款。简洁门检查项目引用是否控制在三个以内、有没有为未来需求做提前设计;反抽象门检查是否直接使用框架能力、是否维持单一模型表示。门未通过时,模型必须在 Complexity Tracking 一节书面说明理由。这套机制让「避免过度工程」有了可检查的清单。

其余四个机制同样具体:规格模板要求只写用户需要什么和为什么,禁止出现技术栈、API、代码结构等实现细节;需求完整性清单让模型自检是否还有未澄清标记、需求是否可测试、成功标准是否可度量;分层细节管理要求实现计划保持高层可读,代码样例和算法细节必须抽到 implementation-details/ 独立文件;测试先行思维则把验收场景的编写嵌进任务生成阶段。

三层定制栈与角色捆绑

对团队用户,Spec Kit 提供了一套分层定制体系,优先级从高到低是四层:项目本地覆盖、预设(Presets)、扩展(Extensions)、核心默认。模板在运行时按这个顺序解析,取第一个命中项;扩展和预设的命令在安装时写入 agent 目录。

三者的分工有明确定义。扩展负责增加新能力:Jira 集成、实现后代码评审、V 模型测试追溯都属于扩展的范畴。预设负责改变现有流程的产出形态:合规导向的规格格式、组织内部术语、敏捷或领域驱动设计的方法论适配、把整套流程本地化到另一种语言。社区里有一个海盗黑话演示项目,把整个工作流的模板全部替换成海盗语气,用来演示定制的深度上限。

捆绑包(Bundle)是 2026 年新增的一层,把一组扩展、预设、步骤、工作流打包成面向角色的整体安装。一条 specify bundle install 命令可以给产品经理、业务分析师、安全研究员或开发者分别配置好整套组件。仓库的 examples/bundles/ 目录下有四个可以直接阅读的示例清单。Bundle 的设计带几个工程保证:info 命令展示的内容与 install 实际安装的内容完全一致,安装操作幂等且限定在项目根目录内,移除时不会动到其他 bundle 仍依赖的组件,所有命令支持离线运行。

生态位与版本节奏

Spec Kit 对 Agent 生态的覆盖广度是其采用曲线的关键。官方文档列出的集成对象超过 30 种编码 Agent,既包括 CLI 工具也包括 IDE 助手,Copilot、Codex CLI、Claude Code 都在支持列表里。specify integration list 可以列出当前版本支持的全部集成。对支持 skills 模式的 agent,安装时加 --integration-options="--skills" 可以改用 agent skills 而非斜杠命令文件。

版本节奏能看出项目的活跃度。2026 年 7 月 28 日至 8 月 14 日的 18 天里,项目连发 v0.14.3 到 v0.16.4 共十个版本。v0.16.0 于 8 月 5 日发布,同时变更了一项默认行为:Copilot 集成从此默认安装 skills(.github/skills/speckit-*/SKILL.md)而非命令文件,需要旧行为要显式传参。v0.16.2 于 8 月 10 日加入了对 Command Code 的集成支持,v0.16.4 把 SpecAssay 预设收进了社区目录。

项目定位上,Spec Kit 自述为一个可扩展的意图驱动框架,SDD 是它的默认流程但并非唯一流程,团队可以用同一套扩展机制搭建自己的过程。方法论文档承认目前实践 SDD 仍需要组合现有工具并保持流程纪律,模板约束的是产出质量,流程纪律仍然依赖团队自身。

上手门槛

安装路径已经足够短。Spec Kit 依赖 Astral 的 uv 做包管理(也可用 pipx),一条命令装好 CLI:

bash
uv tool install specify-cli --from git+https://github.com/github/[email protected]

包同时发布在 PyPI,uv tool install specify-cli 直接可用。系统要求是 Python 3.11 以上加 Git,支持 Linux、macOS 和 Windows。CLI 自带升级管理:specify self check 查看是否有新版本,specify self upgrade --tag vX.Y.Z 可以钉住特定版本。

MIT 许可证,无商业化绑定。对于已经在用 AI 编码 Agent 的团队,接入成本主要是学习七个命令的先后关系,以及为项目写第一份 constitution。对于被「一句话需求、一屏幕幻觉」困扰的个人开发者,/speckit.specify/speckit.clarify 两条命令就足以体验规格约束带来的差异。

来源:GitHub Spec Kit 仓库 · Spec-Driven Development 方法论文档 · Spec Kit 文档站