Spec-Driven Development 实战:用 GitHub Spec Kit 让 AI 先写规格再写代码
一套面向 2026 的 spec-driven development(SDD)落地指南:用 GitHub Spec Kit 的 specify CLI 走 Specify → Plan → Tasks → Implement 四阶段闭环,把规格而非聊天记录作为真相来源,治理 vibe coding 的失控。含安装命令、各阶段斜杠命令、constitution 用法与踩坑。
发布 2026-06-28更新 2026-06-28适用场景
这篇不是「要不要写文档」的争论,而是一套让 AI agent 先把规格写清楚、确认后再生成代码的可执行流程。适合:
- 被 vibe coding 坑过的人——agent 写了 400 行,一半解决了错的问题
- 要把 AI 编程从「玩具原型」推到「生产可维护」的团队
- 接手既有项目、要加功能但怕 agent 越改越乱的开发者
- 想让规格评审取代逐行 code review、把人力用在刀刃上的 tech lead
不适合:单文件脚本 / 一次性工具、需求已经在 Jira/Linear/Notion 里写全了不想重复、或者只追求最快出第一版原型的场景。
什么是 Spec-Driven Development
SDD 把传统的「先写代码、后补文档」反过来:规格是真相来源,代码是规格生成出来的产物,AI agent 是那台生成器。
vibe coding 的失败模式很具体:系统的「真相」活在一段会随上下文窗口填满而重置的聊天记录里。agent 忘、你也忘,新功能和旧功能互相矛盾。SDD 把真相变成磁盘上的一个文件。
来源说明:本文基于 GitHub 官方博客与 github/spec-kit 仓库、多份 2026 实操指南综合整理。Spec Kit 于 2025-09 公布、2025-11 首个 tag 发布,命令仍在迭代,请以仓库最新 README 为准。
四阶段闭环
每个 spec-driven 流程——无论用 Spec Kit、Kiro 还是自制模板——都跑同一个序列,每一阶段产出一个 markdown 文件供下一阶段读取:
| 阶段 | 斜杠命令 | 产出 | 关注点 |
|---|---|---|---|
| 1. Specify | /speckit.specify | 规格文件 | 「做什么」「为什么」——用户旅程、成功长什么样,不碰技术栈 |
| 2. Plan | /speckit.plan | 技术实现计划 | 给定技术栈后的架构与方案 |
| 3. Tasks | /speckit.tasks | 依赖排序的任务清单 | 把计划拆成可执行、有依赖顺序的小任务 |
| 4. Implement | /speckit.implement | 代码 | agent 按任务清单逐个执行 |
核心纪律:每一阶段都有明确检查点,当前阶段没验证通过就不进下一阶段。你的主要角色是「掌舵」,agent 干大部分写的活。
第一步:装 Specify CLI
需要 Python 3.11+、uv(官方推荐)或 pipx、Git、以及一个支持的 AI agent(Claude Code / GitHub Copilot agent 模式 / Gemini CLI / Cursor / Codex CLI / Qwen Code 等 24+ 集成)。
# 唯一官方包来自 GitHub 仓库——不要从 PyPI 装同名包(非官方维护)
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
# 新项目初始化(指定你的 agent)
specify init my-project --ai claude-code
# 或接入已有项目
cd existing-project
specify init . --ai copilot
specify init 会生成 .specify/ 目录:模板、配置、agent 集成都在里面。之后所有斜杠命令通过你选的 agent 界面驱动。
第二步:先立 constitution(项目宪法)
constitution.md 是 SDD 的一个关键补充——为项目立一组不可妥协的原则:测试约定、CLI-first 要求、设计系统标准、安全合规规则。立一次,后续每个阶段都引用它。
/speckit.constitution
例如写进去:
- 所有新功能必须带单元测试,覆盖率不低于现有水平
- 不引入新的运行时依赖,除非在计划阶段明确批准
- 对外 API 变更必须向后兼容
- 数据库迁移必须可回滚
这样后面 Plan / Implement 阶段 agent 都会受这些约束,而不是每次重新讲。
第三步:走完四阶段
# 1. 描述要做什么(高层、面向用户,别谈技术栈)
/speckit.specify
# 例:"做一个书签管理器,用户能按标签归类、全文搜索、导出 JSON"
# (可选但推荐)澄清欠规格的地方,减少返工
/speckit.clarify
# 2. 给定技术栈,生成实现计划
/speckit.plan
# 例:"Nuxt 4 + libsql + drizzle,全文搜索用 Pagefind"
# 3. 拆成依赖排序的任务清单
/speckit.tasks
# (可选)跨产物一致性与覆盖度分析
/speckit.analyze
# 4. 执行
/speckit.implement
辅助命令(提质量):
/speckit.clarify:在 plan 之前,用结构化追问把模糊点问清楚(强烈建议,省后续返工)/speckit.analyze:在 tasks 之后、implement 之前,做跨产物一致性和覆盖度检查/speckit.checklist:生成自定义质量检查清单,验证需求的完整性、清晰度、一致性/speckit.taskstoissues:把任务清单转成 GitHub issues 做跟踪
什么时候该用、什么时候别用
用 SDD:
- 会上生产、需要长期维护的功能
- 多人协作、需要规格作为共识
- 既有系统加功能 / 遗留代码现代化
- 复杂到「直接 prompt 会跑偏」的需求
别用 SDD:
- 单文件脚本 / 一次性工具
- 需求已在别的系统里写全、不想重复
- 纯原型,速度比可维护性重要得多
经验法则:原型用 vibe,生产用 spec。 先 vibe 探路,确认方向后切到 spec-driven 把它做扎实。
常见踩坑
- 跳过 clarify 直接 plan:模糊需求会在 implement 阶段以更贵的方式暴露,先问清楚。
- constitution 写成许愿池:只放真正不可妥协的原则,10 条以内,否则被稀释。
- 从 PyPI 装包:官方明确——只从 GitHub 仓库装,PyPI 同名包非官方。
- 一次 specify 塞太多功能:一个规格对应一个聚焦的功能集,太大就拆。
- token 预算没留余量:SDD 比直接编码多花约 20-40% token,但省下大量返工周期,整体更划算。
- 把规格写完就扔:规格是「活文档」,需求变了要回去改规格,而不是直接改代码让它和规格脱节。
与其他方案的关系
- vs Kiro IDE:Kiro 是 AWS 的专有 VS Code fork,把 SDD 烘进 IDE;Spec Kit 是开源、agent 无关的工具包,套在你已有的任何 agent 外面,跨 IDE 和 CLI 都能用。
- vs 纯 vibe coding:vibe 是「prompt 完照单全收」;SDD 是「先有批准的规格、计划、任务,再写一行代码」。
- 配合 终端 agent 工作流:SDD 定义「做什么」,终端 agent 栈定义「用哪个工具怎么执行」,两者叠加。
一句话总结
立宪法 → Specify(做什么) → Clarify(问清楚) → Plan(怎么做)
→ Tasks(拆任务) → Analyze(查一致) → Implement(执行)
规格会比聊天记录活得久。把真相写进磁盘,AI 才不会每次都忘。
延伸阅读
相关工具
Aider vs Claude Code:终端 AI 编程双雄怎么选
Aider vs Claude Code 2026 选型对比:开源 BYOK 多模型 vs Anthropic 订阅长任务 Agent,从编程能力、多模型支持、价格、Git 集成、国内可用性和适合人群判断,帮你选对终端 AI 编程工具。
Claude Code vs Cline:CLI AI Agent 怎么选?2026 对比
Claude Code vs Cline 2026 选型对比:Anthropic 官方闭源 CLI Agent vs Apache-2.0 开源 VS Code 插件。从模型绑定、工作流、MCP 支持、价格、隐私和适合人群 6 个维度帮你选对 CLI AI 编程工具。
Claude Code vs Codex CLI:终端 AI Agent 双雄对比
Claude Code vs Codex CLI 2026 选型对比:Anthropic 与 OpenAI 两大官方终端 Agent 的模型、长任务、MCP 生态、Windows 支持、订阅打包价格和国内可用性全方位对比,帮你判断该用哪个终端 AI Agent,以及能不能两个一起用。
Claude Code vs Crush:Anthropic 官方 vs 多模型 TUI(2026 实测选型)
Claude Code vs Crush 2026 选型对比:Anthropic 官方 CLI Agent(Claude only + 长任务最稳 + MCP 一等公民)vs Charmbracelet 开源 TUI Agent(多模型 mid-session 切换 + LSP + FSL-1.1-MIT)。从模型、长任务、生态、价格、国内可用性帮你选对终端 AI 编程工具。
Claude Code vs Gemini CLI:终端 AI Agent 怎么选?(2026 选型指南)
Claude Code 和 Gemini CLI 都是终端原生的 AI 编码 Agent。一句话结论 + 决策树 + 价格 + 国内可用性对比:长任务与 CLAUDE.md 生态选前者,免费额度与接入门槛选后者。
Codex CLI vs Gemini CLI:两家大厂终端 Agent 怎么选?(2026 选型)
OpenAI Codex CLI 与 Google Gemini CLI 的正面比较:一句话结论 + 决策树 + 价格 + 国内可用性。已有 ChatGPT 账号选 Codex,想零成本起步选 Gemini CLI。
AI 编程工具选型决策树:30 个场景告诉你该用哪个
整合 AI 之家 编辑部 11 篇深度评测的结论:按角色、预算、规模、网络环境四维度的 AI 编程工具决策树。Cursor / Claude Code / Aider / Trae / v0 / Lovable 等主流工具一图看完该选哪个,附 30 个真实场景对应表。
2026 年 AI 编程工具全景图:18 款实测排行
2026 年 AI 编程工具全景图:18 款工具按 IDE / CLI / 插件 / Agent / Builder / 本地 6 桶分类,综合 Top 10 排行,按国内/海外/JetBrains/终端/学生党场景推荐,5 维评分方法论,以及 2026 趋势(Agent 化、MCP、本地化、私有部署)。
Aider 深度评测:把 AI 编程当 git 工作流的极客派最爱
Aider 深度评测:git-native 心智的真实代价、Architect 双模型经济学、与 Claude Code 的决策边界、何时不该选 Aider。AI 之家 编辑部基于官方文档与社区公开反馈整合,非厂商付费内容。