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

作者:磊磊落落日期:2025/11/18

大家好,我是磊磊落落,目前我在技术上主要关注: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 的版本。

1uv --version
2

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

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

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

1specify init spec-kit-demo
2

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

Spec Kit 初始化项目时选择 AI 助手

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

Spec Kit 初始化项目时选择脚本类型

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

Spec Kit 项目初始化后生成的文件

  • 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 来指定一下这个基本原则。

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

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

Spec Kit Constitution

2.2 Specify

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

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

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

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

Spec Kit Specify

2.3 Plan

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

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

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

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

Spec Kit Plan

2.4 Tasks

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

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

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

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

Spec Kit Tasks

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

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

Spec Kit Specs

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

2.5 Implement

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

1/speckit.implement
2

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

Spec Kit 生成的代码

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

3 运行和测试

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

1npm install
2npm run dev
3

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

Spec Kit Blog Demo

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…

[2] YouTube: GitHub 最火的 Spec Kit 项目深度解析 - www.youtube.com/watch?v=PtI…

[3] YouTube: The ONLY guide you'll need for GitHub Spec Kit - www.youtube.com/watch?v=a9e…


如何使用 Spec Kit 工具进行规范驱动开发?》 是转载文章,点击查看原文


相关推荐


FPGA工程师12实战项目-基于PCIe的高速ADC采集项目
第二层皮-合肥2025/11/17

目录 简介 项目内容 项目内容 实战内容 最后做总结 简介 最近新凯莱的高速示波器项目很火爆,于是计划做一高速示波器的实战项目,由于硬件电路设计已经安排了,在同步安排一篇关于FPGA的。(计划教学5名学员) 项目内容 本方案基于XINLINX的K7系列FPGA,ADC选用AD9226。 项目内容 FPGA段固件程序:负责采集前端ADC的信号,FPGA基本框架,数据协议 PCIe卡驱动:负责上位机测试程序与PCie采集卡的数据交互 PC段测试程序:


零信任架构下的 WebAIGC 服务安全技术升级方向
LeonGao2025/11/16

前言:我们已不再“相信”一切 在互联网江湖的旧时代,安全防线的哲学像是一座古城门: “只要进了城,全是自己人;只要在外面,全是坏人。” 这种“城内无敌”的逻辑简单粗暴,但当我们的 应用、用户和AI模型 分散到全球各地的云端节点上时,城门的概念变得像《三体》的面壁计划——看似防御,实则透明。 于是,新时代的口号变成了: 零信任(Zero Trust)——默认无信任,一切验证重启。 一、零信任理念的内核哲学 如果把计算系统比作一个社会,那么“零信任”就像是一个反乌托邦的理性国度: 公民(


[Unity Shader Base] RayMarching in Cloud Rendering
一步一个foot-print2025/11/14

基础知识: 1.SDF 有符号距离场,且通过正负可以判断在物体外部还是内部,通常外正内负 这是RayMarching的灵魂支撑,能够通过一个数学函数,输入一个空间中的点,输出这个点到物体表面的最短距离(带符号)。可以使复杂的几何形状可以通过简单的 SDF运算来组合。比如,两个球体的 SDF 可以通过 min() 操作来融合,通过 max() 来相交,通过 abs()和减法来创造出“镂空”效果。 RayMarching 区别于正常的射线求交,根据他的中文翻译名,光线步进,可以比较生动


DNS正反向解析&转发服务器&主从服务
firstacui2025/11/13

DNS正反向解析&转发服务器&主从服务 1. 正反向解析 主机角色系统IPclient客户端redhat 9.6192.168.72.7server域名解析服务器redhat 9.6192.168.72.181.1 配置服务端 1)修改主机名和IP地址 [root@localhost ~]# hostnamectl hostname server [root@server ~]# nmcli c m ens160 ipv4.addresses 192.168.72.18/24 [root@s


CV论文速递:覆盖视频理解与生成、跨模态与定位、医学与生物视觉、图像数据集等方向(11.03-11.07)
CV实验室2025/11/11

本周精选12篇CV领域前沿论文,覆盖视频理解与生成、跨模态与定位、医学与生物视觉、图像数据集与模型优化等方向。全部200多篇论文感兴趣的自取! 原文 资料 这里! 一、视频理解与生成方向 1、Cambrian-S: Towards Spatial Supersensing in Video 作者:Shusheng Yang, Jihan Yang, Pinzhi Huang, Ellis Brown, Zihao Yang, Yue Yu, Shengbang Tong,


软考 系统架构设计师之考试感悟4
蓝天居士2025/11/10

接前一篇文章:软考 系统架构设计师之考试感悟3 昨天(2025年11月8日),本人第四次参加了软考系统架构师的考试。和前三次一样,考了一天,身心俱疲。这次感觉和上一次差不多,考的次数多了,也就习惯了。仍然有诸多感悟,下边将本次参加考试的感悟写在这里,以资自己及后来者借鉴。 上一次参加考试是今年的5月24号,地点还是前两次那个地方(本次也是) —— 北京市商业学院(远大路校区),坐公交只需要30分钟、骑车只需要15分钟左右。上次考试结果是在今年的6月26号、即考试后的一个月左右的时间出的。


C++:类和对象---进阶篇
仟千意2025/11/8

1. 类的默认成员函数 默认成员函数就是我们没有显式实现,C++会自动生成的成员函数称为默认成员函数,C++11后,C++类的默认成员函数有8个(默认构造函数、默认析构函数、拷贝构造函数、赋值运算符重载、取地址运算符重载、const取地址运算符重载、移动构造函数(C++11后)、移动赋值运算符重载(C++11后)),我们此文只了解重要的前4个,后4个中前两个不常用,后两个之后再做讲解。 2. 构造函数 构造函数是特殊的成员函数,虽名为构造,但它完成的是成员变量的初始化工作,所以它可以完美的


90%前端面试必问的12个JS核心,搞懂这些直接起飞!
良山有风来2025/11/5

你是不是也遇到过这样的场景?面试官抛出一个闭包问题,你支支吾吾答不上来;团队代码review时,看到同事用的Promise链一脸懵逼;明明功能实现了,性能却总是差那么一点... 别慌!今天我整理了12个JavaScript核心概念,这些都是2024年各大厂面试的高频考点,也是日常开发中真正实用的硬核知识。搞懂它们,不仅能轻松应对面试,更能让你的代码质量提升一个档次! 变量与作用域 先来看个最常见的面试题: // 经典面试题:猜猜输出什么? for (var i = 0; i < 3; i++)


OpenAI Aardvark:当AI化身代码守护者
墨风如雪2025/10/31

想象一下,一个不知疲倦、聪明绝顶的数字侦探,夜以继日地巡视你的代码,在每一个新提交、每一行变更中嗅探潜在的危险。这不是科幻,而是OpenAI在2025年末悄然放出的重磅炸弹——Aardvark。这款以“土豚”命名的AI智能体,并非简单的代码扫描器,它标志着AI在网络安全领域,真正迈出了“自主思考”的第一步。 认识你的新安全伙伴 Aardvark,由OpenAI最先进的GPT-5模型驱动,被定位为一个“agentic security researcher”。你可以把它理解为一位全职的“白帽黑客


CoAlbum:多级缓存与性能对比
RealmElysia2025/10/29

目录 Target 1.多级缓存生效注解 2.缓存上下文 3.责任链 Hander接口 责任链初始化 5.切面Aop Coalbum项目 使用缓存 性能对比 Jmeter tips Target Caffeine+Redis构建多级缓存,采用责任链模式,使用aop+注解的方式增强目标方法。若缓存命中,返回命中值。若没命中,执行目标方法,将目标方法返回值依次存入缓存链。 1.多级缓存生效注解 /** * 多级缓存生效注解 */ @Target

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0