Spec-Kit:规格驱动开发

3,256 字 · 预计阅读 9 分钟

Spec Kit 把先想清楚再动手拆成一串固定的步骤:先写要什么,再写怎么做,再拆任务,最后才写代码。

规格驱动开发(Spec-Driven Development,简称 SDD)把顺序倒过来:传统做法以代码为主,规格文档写完就扔;SDD 里规格是主角,代码从规格生成。


Spec Kit 是 GitHub 官方出品的规格驱动工具包,MIT 许可,写作时 GitHub 上有十几万 Star。它不绑定某一个 Agent:Claude Code、Copilot、Gemini CLI、Cursor、Codex 等很多工具都支持,你在初始化时选一个。

它和前两节不同的地方在于:先用一个命令行工具(CLI)在项目里搭好脚手架,再给 Agent 装上一组命令。每一步做什么、文件放哪、模板长什么样,都由它规定。


一、安装

Spec Kit 的 CLI 叫 specify,用 Python 写的,推荐用 uv(一个 Python 包管理工具)安装。需要 Python 3.11 以上。

bash
uv tool install specify-cli

然后在项目里初始化,指定用 Claude Code:

bash
specify init my-project --integration claude

已有项目就进入项目目录,用 specify init .。目录不是空的时,它会先提醒你:模板文件会和现有内容合并,可能覆盖同名文件,问你要不要继续。

在已有项目里运行 specify init

初始化之后,项目里会多出两个目录:

.specify/            ← Spec Kit 自己的东西
  memory/
    constitution.md   ← 项目宪法(下面讲)
  templates/          ← 各种文档模板
  scripts/            ← 创建目录、生成文件的脚本
.claude/
  skills/             ← speckit-specify、speckit-plan …… 每一步一个 Skill

以后要升级,运行 specify self upgrade。

💡 命令名在 Claude Code 里是 /speckit-specify、/speckit-plan 这样的形式,因为 Spec Kit 的命令是以 Skill 形式装的。

官方文档里常写成 /speckit.specify(带点),那是其他 Agent 的写法。以你的 Agent 补全菜单里实际出现的为准,下文统一写短横线形式。


二、整体概览

Spec Kit 的工作流:宪法一次,然后 specify → plan → tasks → implement

Spec Kit 的流程是一次宪法,加上每个功能的一串步骤。

步骤 命令 必须吗 交出什么
0 /speckit-constitution 项目只做一次 .specify/memory/constitution.md
1 /speckit-specify 必须 spec.md:要什么、为什么
2 /speckit-clarify 可选,推荐 把问答写回 spec.md
3 /speckit-plan 必须 plan.md、research.md、data-model.md、contracts/、quickstart.md
4 /speckit-checklist 可选 checklists/*.md:需求质量检查单
5 /speckit-tasks 必须 tasks.md
6 /speckit-analyze 可选,推荐 一份只读的一致性报告
7 /speckit-implement 必须 代码
8 /speckit-converge 必须 对比代码和规格,补上遗漏的任务

最短路径是 specify → plan → tasks → implement → converge。需求越模糊、风险越高,就越该把可选的步骤加上。

同一个功能的所有文件都放在 specs/<功能名>/ 下,订单导出走完一遍大概是这样:

specs/001-order-export/
├── spec.md              ← 要什么
├── plan.md              ← 怎么做
├── research.md          ← 技术选型的结论
├── data-model.md        ← 数据结构
├── contracts/           ← 接口定义
├── quickstart.md        ← 怎么验证它真的能用
├── checklists/
│   └── requirements.md  ← 需求质量检查单
└── tasks.md             ← 任务清单

这个结构在 plan 的模板里就有,连每个文件由哪一步生成都写着:

plan-template.md 里写明的功能目录结构

Spec Kit 的每一步都要你手动调用:上一步的产出审完、满意了,才运行下一步。关卡就是你自己,你不运行下一条命令,流程不会往下走。


三、精读:宪法和要什么

1. 宪法:项目的不可违背原则

/speckit-constitution 是第一步,每个项目只做一次。它写的是这个项目无论做什么功能都要遵守的原则,比如:

/speckit-constitution 本项目所有新接口必须沿用现有鉴权中间件;
任何导出功能必须流式处理,禁止一次性把结果集读入内存;
新功能必须先写集成测试。

本文是会员内容

全文 3,256 字,已试读约 28%。开通专业版可阅读全文,并解锁全部官方课程与后续更新。

开通专业版

支持 7 天无理由退款 · 早鸟价 99 元/年(售完恢复365/年)

课程中涉及的第三方项目,其著作权与商标归各自权利人所有;引用处的署名与许可见《开源与来源说明》。