惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
T
Threatpost
P
Palo Alto Networks Blog
NISL@THU
NISL@THU
O
OpenAI News
Project Zero
Project Zero
G
GRAHAM CLULEY
P
Privacy International News Feed
A
Arctic Wolf
Microsoft Azure Blog
Microsoft Azure Blog
H
Help Net Security
M
MIT News - Artificial intelligence
T
Threat Research - Cisco Blogs
S
Security @ Cisco Blogs
Google DeepMind News
Google DeepMind News
B
Blog RSS Feed
D
Docker
aimingoo的专栏
aimingoo的专栏
博客园 - 【当耐特】
N
Netflix TechBlog - Medium
云风的 BLOG
云风的 BLOG
雷峰网
雷峰网
W
WeLiveSecurity
P
Proofpoint News Feed
腾讯CDC
Cloudbric
Cloudbric
S
Secure Thoughts
C
Check Point Blog
博客园 - Franky
T
The Exploit Database - CXSecurity.com
T
Troy Hunt's Blog
GbyAI
GbyAI
Security Archives - TechRepublic
Security Archives - TechRepublic
Application and Cybersecurity Blog
Application and Cybersecurity Blog
月光博客
月光博客
C
Cyber Attacks, Cyber Crime and Cyber Security
I
Intezer
TaoSecurity Blog
TaoSecurity Blog
L
Lohrmann on Cybersecurity
V
Visual Studio Blog
F
Fortinet All Blogs
博客园 - 叶小钗
C
CXSECURITY Database RSS Feed - CXSecurity.com
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recorded Future
Recorded Future
C
Cisco Blogs
博客园 - 司徒正美
Stack Overflow Blog
Stack Overflow Blog
Y
Y Combinator Blog
Apple Machine Learning Research
Apple Machine Learning Research

磊磊落落

世間有大愛,世間有大我 - 磊磊落落 端午遊遼寧團山海洋公園 - 磊磊落落 為什麼要讀古文? - 磊磊落落 莊河老街 - 磊磊落落 春遊橫山寺 - 磊磊落落 莊河青堆子古鎮 - 磊磊落落 在日常生活中,可以用 OpenClaw 做哪些事? - 磊磊落落 如何在 CentOS Stream 9 上安装 OpenClaw,并接入企业微信? 当下人人都在养龙虾,这龙虾(OpenClaw)为啥突然就火了? - 磊磊落落 如何将 Spring Statemachine 作为一个轻量级工作流引擎来使用? - 磊磊落落 编写一个 VS Code 扩展:将 Copilot 支持的大模型通过 REST API 方式暴露出来 编写提示词需要遵循的五个原则(附实践案例) - 磊磊落落 關於 2026 年即將生效的「吸毒記錄可封存」法案 - 磊磊落落 Markdown 将成为 AI 时代的通用编程语言? - 磊磊落落 使用 FastMCP 编写一个 MySQL MCP Server Cursor 初体验:将 React 项目从 JavaScript 升级到 TypeScript 以自然语言的方式使用 Playwright MCP 进行浏览器自动化操作 - 磊磊落落 MCP 是什么?它是如何工作的? - 磊磊落落 2025 國慶假期總結 - 磊磊落落 週末逛泊霞灣與橫山寺 - 磊磊落落 如何在 Spring Boot 中使用 P6Spy 拦截 SQL 语句? Java 中如何使用 MapStruct 进行对象映射? - 磊磊落落
如何使用 Spec Kit 工具进行规范驱动开发? - 磊磊落落
磊磊落落 · 2025-11-16 · via 磊磊落落

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

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

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

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

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

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

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

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

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

specify init spec-kit-demo

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

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

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

Spec Kit Constitution

2.2 Specify

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

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

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

执行完成后,可以看到 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,然后细述各个页面的功能。

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

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

Spec Kit Plan

2.4 Tasks

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

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

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

执行完成后,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 进行实现即可。

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

Spec Kit 生成的代码

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

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 - https://github.com/github/spec-kit

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

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