GitHub官方出品!spec-kit:项目开发的瑞士军刀

cover

AI编码正在飞速发展,每周都有能让我感到吃惊的AI编码工具出现。

还记得上次给大家分享了AI编程的工作流吗?最近我又找到了一个更好的工具,可以更好的生成初创项目的代码实现,那就是9月份 github 开源的 spec-kit。今天,我们就来一起盘一盘它到底有多神。

什么是规则驱动开发(Spec-Driven Development)?

某某驱动开发”这个词,在软件开发行业都快听出茧子了,从 TDD (测试驱动开发) 到 BDD (行为驱动开发),核心目标都是为了提升效率和质量。

那么现在这个 Spec-Driven Development 又是什么新花样呢?

Spec-Driven Development 的核心思想是,让规范变得可执行,直接生成企业级的代码实现。换句话说,规范本身就应该是能跑起来、能直接生成代码的“活”蓝图。

github 开源的 spec-kit 项目包含了哪些内容?

spec-kit 正是 GitHub 为实践这一理念给出的官方答卷。

它本质上是一整套为项目开发量身定制的“提示词工具箱”,并巧妙地包装成了命令行工具,能无缝适配各种编程助手(比如 Claude Code)。

你可以把 spec-kit 想象成是给 AI 配备了一位专业的项目经理和一套完整的SOP(标准作业程序)。你只需要跟这位‘项目经理’沟通好目标,剩下的事情它会安排得明明白白。

整个流程主要包含下面这几个步骤:

1. 立个“宪法”:建立项目原则

是的,你没听错,就是‘宪法’(Constitution)!

通过 /speckit.constitution 命令,我们可以为项目创建一套最高指导原则和开发指南。它的优先级极高,后续 AI 生成的任何内容,都必须回头对照“宪法”,不符合要求的还得“回炉重造”。

在这里,你可以定下各种规矩,比如:

2. 定个目标:创建项目需求

第二步,我们需要用 /speckit.specify 命令来描述我们到底想做什么(What)和为什么做(Why)

这一步的产出是一个 spec.md 文件,它就像一份高质量的 PRD (产品需求文档),里面包含了开发背景、用户故事、功能需求等。

强烈建议你仔细读一遍生成的 spec.md。感觉 AI 生成的需求还是有点空泛?别担心,spec-kit 还提供了一个‘灵魂拷问’神器:/speckit.clarify 命令。它会向你提问,帮你把模糊的想法澄清,并将答案补充回文档里,这个过程本身也是一次绝佳的需求梳理。

3. 画个蓝图:决定技术栈与架构

需求明确后,就该用 /speckit.plan 命令来规划技术实现了。

这一步,你需要告诉它你的技术选型偏好。然后,它会为你生成一整套技术文档,包括:

等等,这简直是保姆级服务!

4. 列个清单:生成任务列表

第四步需要生成任务清单,主要专注于任务清单和任务分解。

蓝图画好了,接下来就是把大象放进冰箱——分解任务!

使用 /speckit.task 命令,AI 会自动将需求和技术方案分解成一份详细的任务清单 task.md

在我自己的实践中,它居然帮我把一个不算复杂的项目分解出了 7 个大阶段,80 个子任务!虽然越往后的任务可能会有些许偏差,但整体的规划能力已经相当惊人了。

5. 开干!执行任务

万事俱备,只欠执行。/speckit.implement 命令会根据 task.md,逐一执行开发任务。

我个人的习惯是让 Claude Code 按阶段执行,每个阶段完成后,用 git 做好版本控制。稳扎稳打,步步为营。

实战演练:用 spec-kit + Claude Code 从零构建项目

理论说再多,不如上手搞一波!

首先,通过 uv 安装 spec-kit 的命令行工具:

uv tool install specify-cli --from git+https://github.com/github/spec-kit.git

然后,用 specify init <PROJECT_NAME> 初始化项目。

specify init ./TinyCodeBase

specify 初始化界面

specify 初始化界面

接下来,我们完整走一遍流程(以下演示基于 Claude Code):

然后我们从头来走一遍使用 spec-kit 进行开发的流程。本次演示是基于 Claude Code 进行开发的。

第一步:立“宪法”

/speckit.constitution
构建项目开发原则:
1. 所有文档、注释、提交信息均使用中文编写。
2. 采用深度思考模式,确保代码质量。
3. 请你根据通用最佳实践,适当补充其他原则。

AI 生成的项目“宪法”

AI 生成的项目“宪法”

第二步:定目标并澄清

/speckit.specify
产品需求:
核心目标是构建一个轻量版的 AI 代码知识库工具。它能读取一个 Git 仓库或本地代码文件夹,自动分析代码并生成结构化的文档(包含项目目录树和每个文件的代码解析)。最终,让开发者能通过一个简单的可视化界面,在5分钟内完成“导入代码 → 生成文档 → 查阅结构”的全流程。

AI 会产出 spec.md。接着,我们用 /speckit.clarify 进行“灵魂拷问”,让需求更具体。

它向我提出了多个问题,这里再放两张”拷问“的过程:

通过问答澄清需求细节

澄清 spec.md 文件 澄清 spec.md 文件

第三步:画蓝图

/speckit.plan
技术实施计划:
1. 后端采用 NodeJs 方案,数据库采用 SQLite 保存本地的方案,
2. 大模型需要支持配置 API_ENDPOINT、apikey、模型名称,以支持第三方模型厂商(通过 .env 来实现)
3. 前端方案采用简单的 html + css + js 的技术方案
4. 项目需要创建的根目录为 speckit-mvp,不影响该仓库其他的已有代码

AI 随即产出了 plan.md 和一系列配套的技术设计文档。

技术实施计划

技术实施计划

第四步:列清单

/speckit.task
开始生成开发任务清单

然后它帮我产出了 task.md 文件。

开发任务清单

开发任务清单

第五步:开干!

/speckit.implement
开始执行阶段1和阶段2

看着 AI 一行行地敲出代码,项目从无到有,这种感觉太棒了!

执行阶段1和阶段2

执行阶段2

执行阶段3

执行阶段3

到这里,一个项目的 MVP 版本就基本完成了!

当然,由于本次开发完全放手交给AI,在开发完成后,验收遇到了很大的阻力。由 spec-kit 很难进行bug修复和功能优化。

这部分工作,我最后交给了 cursor 来完成。这又涉及到 cursor 最近开放出的另一个王炸功能 Browser,这个我们下次再说。

总结

回顾全文,spec-kit 表面上是一套提词命令,但其背后,是一种全新的“规则驱动开发”思维。它就像一位专业的项目经理,引导我们先想清楚“为什么”和“是什么”,再动手“怎么做”,从而保证了 AI 生成代码的质量和方向。

如果你也厌倦了和 AI “鸡同鸭讲”的低效沟通,不妨亲自上手体验一下 spec-kit 带来的改变!

本项目所有代码均已开源,后面我们也会基于这个项目继续完成 TinyCodeBase 的开发。欢迎大家来我的 GitHub 仓库 TinyCodeBase 围观!

如果觉得有帮助,别忘了 Star 哦!你的反馈是我持续探索的最大动力!✨