规范驱动开发完整指南:用Spec Kit把AI编程从"碰运气"变成"按流程交付"
【免费下载链接】spec-kit💫 Toolkit to help you get started with Spec-Driven Development项目地址: https://gitcode.com/GitHub_Trending/sp/spec-kit
一个让人崩溃的下午,你是不是也经历过
你坐在电脑前,把需求洋洋洒洒打了一大段,回车,看着AI代理飞快地敲出几百行代码。半小时后你开始review——发现它擅自选了数据库、接口设计得莫名其妙、安全校验完全缺失。你让它改,它改了这里又弄坏了那里。三个小时后,你得到一堆"看起来能用"却没人敢上生产的代码。
这不是你的问题,是整个"一次性提示词生成代码"模式的通病。Spec Kit这个开源工具包给出的解法很彻底:把"让AI写代码"升级为"规范驱动开发(Spec-Driven Development)"——先定义要构建什么(What)和为什么(Why),再谈技术方案(How),最后才动手实现。规范不再是写完后就被丢弃的文档,而是直接驱动代码生成的"可执行资产"。
这套方法论背后的工具链包括一条specify命令行工具和一组/speckit.*斜杠命令,支持35种主流AI编码代理。下面我们从四个层层递进的难题出发,看看它是如何一步步把AI产出拉回正轨的。
第一层难题:AI生成不可控,怎么把"一句话需求"变成"可执行的开发流水线"
从一条命令开始:装工具、建项目
先别急着想流程,把工具装起来。Spec Kit基于Python,用uv安装最省事:
uv tool install specify-cli specify init my-project --integration copilot第二条命令会按你选的AI代理(Copilot、Claude、Gemini、Codex等35种)自动生成对应的命令文件、目录结构和脚本。初始化完成后,你的代理就"学会"了一整套斜杠命令。下面这张动图展示的就是初始化后的终端操作,注意观察命令如何一步步生成规范文档:
核心闭环:五条命令,把AI从"自由发挥"变成"照图施工"
Spec Kit最核心的资产是一条可重复执行的命令链:
/speckit.specify → /speckit.plan → /speckit.tasks → /speckit.implement → /speckit.converge以做一个照片管理应用为例,实际跑一遍:
/speckit.specify 构建一个帮我把照片按日期分组成相册的应用,支持拖拽排序,相册内用缩略图预览 /speckit.plan 用Vite,尽量少依赖库,图片不上传任何地方,元数据存本地SQLite /speckit.tasks /speckit.implement关键区别在第一句命令:你只描述用户要什么,禁止提技术栈。第二步/speckit.plan才是谈技术方案的地方。AI会先把需求翻译成结构化规范文档(含用户故事、验收标准、[NEEDS CLARIFICATION]待澄清标记),再生成技术计划、数据模型、接口契约,最后拆解成带依赖顺序和并行标记的任务清单。整个链条上,每个阶段的产出都是Markdown文件,存在specs/目录里作为"唯一真相源"。
第二层难题:规范写不好、写不完整,AI照样跑偏
光有流程还不够——规范本身的质量决定了下游一切。Spec Kit用三层机制把"写规范"这件事从随缘变成工程化。
模板就是约束:让AI闭嘴猜谜
规范模板明确禁止AI在需求阶段脑补实现细节:只准写What和Why,一旦遇到没说明白的地方,必须标注[NEEDS CLARIFICATION: 登录用邮箱密码还是SSO?],而不是自作主张猜一个。这从根本上堵住了"AI编造合理假设"这个最大的坑。
三道质量闸门:先验证再动手
对于要上生产的功能,短链不够,需要加装三件质量工具:
| 命令 | 作用 | 何时运行 |
|---|---|---|
/speckit.clarify | 针对未明确之处最多提5个定向问题,并把答案回写进规范 | plan之前 |
/speckit.checklist | 生成"需求的单元测试"——检查规范本身是否完整、无歧义、一致 | tasks之前 |
/speckit.analyze | 只读地交叉比对spec、plan、tasks,报告冲突、缺口、歧义 | 实现之前 |
其中/speckit.analyze我建议你养成"每次实现前必跑"的习惯:它不修改任何文件,只输出一份分级报告,指出"某个任务没有对应需求""计划里的技术选型与规范矛盾"这类问题,让你回到源头修复,而不是带着错误往下游走。
项目宪法:把团队的"规矩"写进代码生成流程
/speckit.constitution命令生成一份constitution.md,相当于团队的开发宪法。它内置九条条款,比如"每个功能必须以独立库起步""严格测试先行,测试未通过不得写实现代码""最多3个项目结构,禁止过度设计"——每一条都会被下游的plan和implement当作硬性门禁强制执行。AI不再"自由发挥架构",而是按宪法施工。
第三层难题:需求一变更,规范和代码又脱节了
这是很多团队放弃规范驱动的原因:规范写好了,代码也交付了,可需求三个月一变,文档早就成了摆设。Spec Kit对此的态度很务实——它不规定唯一答案,而是把三种演化策略摆在你面前,让团队自己选:
| 策略 | 变更规则 | 适合场景 | 要当心的坑 |
|---|---|---|---|
| 流动前进 | 每次新需求新建功能目录,旧目录留作历史快照 | 需要审计追溯的合规项目 | 相关决策散落多处,需靠命名和交叉引用串联 |
| 动态规范 | 只改spec.md,再重新生成plan和tasks | 规范即合同的项目 | 重新生成的文档会丢掉旧的技术决策理由 |
| 回流 | 允许从代码或任务反推,改完再手动对齐全部工件 | 小团队快速迭代 | 容易静默漂移,没人知道该信哪份文档 |
配套的还有Git分支编号机制:每次/speckit.specify自动扫描现有功能编号,生成001-photo-albums、002-chat-system这样的语义化分支,团队切换上下文、跟踪进度都一目了然。下面这张图展示的是初始化后的项目目录结构,注意memory、scripts、templates的分层,规范文件就存放在类似的组织里:
第四层难题:团队要规模化,流程却僵化成了枷锁
当流程在一个小团队跑通后,你很快会面临两个新问题:一是想给流程加新能力,二是想让整个组织用同一套标准。Spec Kit用"扩展+预设+捆绑包"三层结构解决,并且设计了一条清晰的优先级覆盖链:
项目级覆盖 > 预设 > 扩展 > 核心内置- 扩展(Extension):加新能力。社区已有138个扩展、70多位作者贡献,比如Jira集成、实现后代码审查、项目健康诊断。
- 预设(Preset):改现有流程的形态。比如强制合规化规范格式、把整套流程本地化为中文、给计划加安全评审门禁。
- 捆绑包(Bundle):把扩展、预设、步骤、工作流打包成一个按角色配置的套装,产品经理、业务分析师、安全研究员各自一键装配。仓库
examples/bundles/下就有四个现成示例。
这套机制意味着流程本身是可编程的资产——团队不被锁定在SDD这一种方法论里,社区里甚至有人用它跑通小说创作、.NET框架迁移这样的非典型流程。
现在就能动手的五件事
规范驱动开发的价值不在于多了一套命令,而在于把"拍脑袋写代码"变成"先想清楚、再按图施工、最后验证闭环"。如果你决定试试,按这个顺序推进:
- 装工具建项目:执行
uv tool install specify-cli和specify init,选你正在用的AI代理,跑通五命令短链。 - 跑通一个真实小功能:挑一个两周内要交付的小需求,完整走
specify → plan → tasks → implement → converge,记录时间对比。 - 给流程加两道闸门:在下一个小功能上启用
/speckit.clarify和/speckit.analyze,感受"先澄清再动手"带来的返工减少。 - 写下你的团队宪法:用
/speckit.constitution把你们的技术底线(测试标准、架构约束、安全要求)固化成九条条款。 - 团队内部约定演化策略:对照三种持久化模型,开一次15分钟的会,决定你们的规范是"历史快照"还是"活的合同",写进团队手册。
从"让AI碰运气"到"让AI按流程交付",差的不是模型,而是一条把意图变成可执行产物的流水线。Spec Kit给的就是这条流水线——而且它开源、可定制、不锁定任何AI厂商。你的下一个功能,值得从一份规范开始。
【免费下载链接】spec-kit💫 Toolkit to help you get started with Spec-Driven Development项目地址: https://gitcode.com/GitHub_Trending/sp/spec-kit
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考