如何使用 Spec Kit 工具进行规范驱动开发?

大家好,我是磊磊落落,目前我在技术上主要关注:Java、Golang、AI、架构设计、云原生和自动化测试。欢迎来我的博客(leileiluoluo.com)获取我的最近更新!

由上文「Markdown 将成为 AI 时代的通用编程语言?」可以知道,规范驱动开发可能成为 AI 时代的开发新范式。

在传统软件开发流程中,规范只是编码前的临时脚手架,开发者一旦进入编码阶段,便将规范束之高阁。而进入 AI 时代,「规范驱动开发」想彻底改变这一现状,即让规范贯穿整个软件开发生命周期、让规范变得可执行、让规范成为代码。

上文也简单介绍过,规范驱动开发的工作流一般有三个阶段:需求 -> 设计 -> 任务,如果每一阶段的规范都依赖人工完成,会给人带来不小的负担。所以,业界推出了相应的工具来自动化规范的编写和流程的管理,从而为开发者减轻负担。

本文即介绍一个「规范驱动开发」工具的使用,它叫 Spec Kit,由 GitHub 推出,与市面上流行的 AI 助手(如 Cursor、VS Code、Claude、Windsurf 等)均能很好的集成。

1 安装 Spec Kit 和初始化一个项目

安装 Spec Kit 前,首先要安装 uvuv 命令安装成功后,可以使用如下命令查看 uv 的版本。

shell 复制代码
uv --version

接着,就可以使用 uv 命令安装 Spec Kit 了。

shell 复制代码
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git

Spec Kit 安装成功后,可以使用 specify init 命令来初始化一个项目。

shell 复制代码
specify init spec-kit-demo

然后,Spec Kit 会让我们选择对应的 AI 助手,我想在 Copilot 中使用它,所以选择 Copilot。

接着,Spec Kit 让我们选择生成脚本的类型,因为我使用的是 Mac OS,所以选择 Shell。

选择完成后,项目开始初始化。初始化完成后,Spec Kit 会在项目 spec-kit-demo 下生成一个 .specify 文件夹,其下又会生成 memoryscripts/bashtemplates 三个子文件夹。

  • Memory

    Spec Kit 的记忆目录,包含一个 constitution.md 文件。Constitution 意为宪章,所以该文件用于指定整个开发流程中不可违背的根本原则。

  • Scripts/bash

    一组 Shell 脚本,供大语言模型调用来生成 Spec Kit 工作流中各个阶段的规范文件。

  • Templates

    生成规范文件时的参考模板。

2 在 Copilot 中使用斜杠命令来生成规范

Spec Kit 的工作流包含五个阶段:Constitution、Specify、Plan、Tasks、Implement,分别用于指定宪章(根本原则)、需求(不包含技术栈)、细化需求(包含技术栈与架构)、具体任务、实现。

下面我们使用 VS Code 打开上一步初始化完成的项目 spec-kit-demo,然后尝试使用 Spec Kit 来做一个博客聚合网站。

2.1 Constitution

Constitution 阶段用于指定整个项目生命周期都不可违背的根本原则。

为了简便起见,这个博客聚合网站暂时不想做后端,所以数据需要使用 JSON 的方式存在前端。下面在 Copilot Chat 中使用斜杠命令 /speckit.constitution 来指定一下这个基本原则。

text 复制代码
/speckit.constitution 该项目为一个纯前端的演示项目,暂不涉及后端服务,若有请求 API 获取数据的场景,一概使用本地 JSON 模拟。

执行完成后,可以看到 .specify 文件夹下的 memory/constitution.md 文件被更新,我们的要求被更加细化的写进了「宪章」。

2.2 Specify

下面进入 Specify 阶段,该阶段需要进行需求概述,不需要指定开发所使用的技术栈。

在 Copilot Chat 中使用斜杠命令 /speckit.specify 来指定一下这个博客聚合网站的页面和功能。

text 复制代码
/speckit.specify 帮我创建一个博客聚合网站,有博客提交、博客审核、审核状态和博客展示功能。该网站的使用者有两类,一类是管理员,另一类是访客。访客无需登录即可进行博客提交、查看所有博客、查看审核状态;管理员需要登录才能进行博客审核。

执行完成后,可以看到 Spec Kit 会在项目 spec-kit-demo 的同一级生成一个 specs 文件夹,然后在其下生成一个 002-blog-aggregation 子文件夹,子文件夹下会生成一个 spec.md 文件,然后将我们的需求自动拆分为一个个 Story 并写入该文件。

2.3 Plan

下面进入 Plan 阶段,Plan 阶段是对需求的近一步细化,以及对所用技术栈和架构的指定。

在 Copilot Chat 中使用斜杠命令 /speckit.plan 来指定这个前端项目的技术栈为 TypeScript + React,样式库为 Tailwind CSS,然后细述各个页面的功能。

text 复制代码
/speckit.plan 请基于 TypeScript 和 React 实现该项目,样式库请使用 Tailwind CSS。请严格遵照 TypeScript 标准语法和最佳实践,遵照 React 标准项目结构、路由配置和组件设计规范,实现的页面要美观、大方、易用。博客提交是一个表单页面;博客审核是一个管理员页面,展示博客的名称和通过状态;审核状态是一个展示博客是否通过的页面;博客展示是一个列表页面,按照提交时间倒序展示所有已审核通过的博客。

执行完成后,可以看到,specs/002-blog-aggregation 文件夹下生成了一个新文件 plan.md,技术栈、代码结构被写入了该文件。

2.4 Tasks

下面进入 Tasks 阶段,该阶段用于指定具体的实现步骤。

在 Copilot Chat 使用斜杠命令 /speckit.tasks 来指定这些页面的基本实现步骤。

text 复制代码
/speckit.tasks 请首先为管理员实现一个登录页面,登录后可以对所提交的博客进行管理,如审核通过和驳回。然后实现访客可以浏览的页面:博客提交、博客展示、审核状态。访客提交博客时需要填写博客名称、博客创建时间、博主名称和博客地址。访客提交博客后,管理员可以在后台看到新提交的博客,并进行审核或驳回;审核通过后,博客会显示到博客展示页面;驳回后,博客的被驳回状态会在审核状态页面显示。

执行完成后,specs/002-blog-aggregation 文件夹下生成了一个新文件 tasks.md,详细实现步骤被写入了该文件。

至此,所有需要人工介入的步骤都以完成。

下面我们将 Spec Kit 生成的、与项目 spec-kit-demo 同一级的 specs 文件夹拷贝到 spec-kit-demo.specify 目录下。

拷贝完成后,进入 Spec Kit 的第五步,实现阶段。

2.5 Implement

这一步无需提示词,直接在 Copilot Chat 使用斜杠命令 /speckit.implement 进行实现即可。

text 复制代码
/speckit.implement

可以看到,代码结构、包管理文件 package.json 、打包配置文件 vite.config.ts 等先被自动创建;接着,main.tsxApp.tsx、各个页面组件、可服用组件、工具类等被依次创建。

几分钟后,整个项目编码完成,Copilot Chat 提示我们可以安装和运行了。

3 运行和测试

下面,按照提示的命令进行依赖安装和项目运行。

shell 复制代码
npm install
npm run dev

还算顺利,没有错误,项目被成功启动。浏览器访问相应地址,可以看到,一个博客聚合网站被使用「规范驱动开发」的方式实现了。

4 小结

综上,本文首先初始化了一个 Spec Kit 样例项目;然后以实现一个博客聚合网站为需求,在 VS Code 的 Copilot AI 助手中依次执行了 Spec Kit 的 Constitution、Specify、Plan、Tasks、Implement 阶段;最后生成了完整的项目代码并进行了启动和测试。

总体感觉,使用 Spec Kit 开发一个新项目(0 到 1)比 Vibe Coding 要靠谱一些,但 Spec Kit 这种「规范驱动开发」的模式能否胜任真实的项目演进(1 到 N),还有待进一步的探索。

本文完整样例工程已提交至 GitHub,欢迎有需要的同学参考。

参考资料

1\] GitHub: Spec Kit, a toolkit to help you get started with Spec-Driven Development - [github.com/github/spec...](https://link.juejin.cn?target=https%3A%2F%2Fgithub.com%2Fgithub%2Fspec-kit "https://github.com/github/spec-kit") \[2\] YouTube: GitHub 最火的 Spec Kit 项目深度解析 - [www.youtube.com/watch?v=PtI...](https://link.juejin.cn?target=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DPtIGaAPzCR0 "https://www.youtube.com/watch?v=PtIGaAPzCR0") \[3\] YouTube: The ONLY guide you'll need for GitHub Spec Kit - [www.youtube.com/watch?v=a9e...](https://link.juejin.cn?target=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Da9eR1xsfvHg "https://www.youtube.com/watch?v=a9eR1xsfvHg")

相关推荐
小霖家的混江龙2 小时前
AI 为啥能回答你的问题?大模型 5 步工作流程,看完秒懂!
人工智能·llm
GoldenSpider.AI3 小时前
AI对话到视频的零编辑革命:NotebookLM与Lemon Slice的深度整合与未来洞察
人工智能·notebooklm·nanobanana·aivideo·lemon slice
草莓熊Lotso3 小时前
C++ STL set 系列完全指南:从底层原理、核心接口到实战场景
开发语言·c++·人工智能·经验分享·网络协议·算法·dubbo
大千AI助手5 小时前
代价复杂度剪枝(CCP)详解:原理、实现与应用
人工智能·决策树·机器学习·剪枝·大千ai助手·代价复杂度剪枝·ccp
zl_vslam6 小时前
SLAM中的非线性优-3D图优化之李群李代数在Opencv-PNP中的应用(四)
人工智能·opencv·算法·计算机视觉
whaosoft-1436 小时前
51c视觉~3D~合集8
人工智能
澳鹏Appen8 小时前
数据集月度精选 | 高质量具身智能数据集:打开机器人“感知-决策-动作”闭环的钥匙
人工智能·机器人·具身智能
q***710110 小时前
开源模型应用落地-工具使用篇-Spring AI-Function Call(八)
人工智能·spring·开源
极限实验室10 小时前
Coco AI 参选 Gitee 2025 最受欢迎开源软件!您的每一票,都是对中国开源的硬核支持
人工智能·开源