NeuralOS
GuideIntermediate

编写规格,而非代码 · 用 GitHub Spec Kit 实现规格驱动开发

几乎每个用 AI 构建东西的人都会重复一个模式:一开始你跟它说话,代码出现了,能跑,简直是魔法。但到了第五或第六个功能附近,魔法就破灭了——你让它做一个小改动,另一个东西就崩了;你第三次跟它解释登录是怎么回事「因为它忘了」;第二天打开项目时,你已经想不起来一半的文件为什么存在。根本问题不是 AI 笨:而是它没有意图的记忆,每次填空时都猜得不一样。Spec-Driven Development(规格驱动开发)把 vibe coding 的顺序反了过来:在 AI 写下一行代码之前,你先编写规格——用你自己的话说明应用应该做什么——而这份文档就成了唯一的真相来源,智能体从它生成计划 → 任务 → 代码,中间穿插着你的检查点。在这份指南里你会看到那个把它作为命令安装进你自己智能体的工具(GitHub Spec Kit,免费且开源)、真实的 4 阶段流程、精确的命令,以及一个用来启动任何 spec-first 项目的主提示词,全程不用你变成程序员。

Jul 19, 202614 min
这是给谁看的?
给那些靠着 「帮我做这个」 用 AI 构建、最后弄出一个科学怪人的人:每个功能都补丁般叠在上一个之上,没有人——不管是你还是 AI——记得这个应用到底该做什么,而且每次改动都会弄坏远处的某个东西。如果你感觉 AI 跑得飞快,却没有一个固定方向,那这就是给你的。你不需要是程序员:你需要学会编写 spec(规格),然后让智能体做剩下的事。它适用于 Claude Code、Copilot、Cursor、Gemini 以及 30 多个其他智能体。

那个时刻 · 当「告诉它你想要什么」不再够用

一开始 vibe coding 很神奇。你跟 AI 说话,出现一个界面,能跑,你鼓掌。但会到达一个点——几乎总是在第五或第六个功能左右——魔法破灭了。你要求一个小改动,结果一个你没碰过的东西崩了。你第三次跟它解释登录该怎么工作 「因为它忘了」。你第二天打开项目,连自己都不知道一半的文件为什么存在。那就是那个时刻:当对话不再足以作为真相来源,而你需要比一个记忆像金鱼一样的聊天更坚实的东西。

Spec-Driven Development(规格驱动开发,即 SDD)正是诞生于此。这个想法简单到几乎冒犯人:在 AI 写下一行代码之前,你先写下应用应该做什么——清晰、有条理,并保存在一个文件里。那份文档,即 spec,成为唯一的真相来源。智能体则从它出发,生成一个计划 → 一份任务清单 → 代码。就按这个顺序。中间穿插着你的检查点。

这个类比 · 图纸先于砖块
没有人会一边对泥瓦匠说 「从那个角开始,边做边看」 一边盖房子。首先要有一张图纸:墙、管道、窗户都在哪。泥瓦匠砌砖砌得很好——就像你的 AI 写代码写得很好——但没有图纸,每个人各自即兴发挥,房子就盖歪了。vibe coding 就是没有图纸地盖。SDD 就是先画图纸。而这里的图纸不是一份死掉的 PDF:它是可执行的——智能体读取它并直接从它开始构建。

那个痛点 · 科学怪人从哪里来

问题不是 AI 笨。而是AI 没有意图的记忆。在每条消息里它都为 那条消息 做出最佳决定,却没有一幅关于你在构建什么、为什么构建的完整图景。你脑子里有那幅图景——但脑子不是智能体能读取的文档。所以 AI 靠猜来填空,而且每次猜得都不一样。有一次购物车保存了税,另一次却没有。有一次用户可以编辑自己的资料,另一次这个功能在一次重构中消失了。没有人撒谎:只是从来就没有存在过一份说明什么才是正确的合同

为什么会这样(以及为什么随着时间会更糟)
聊天是线性的,而且会遗忘。到了对话的第 200 行,你一开始决定的东西已经溜出了上下文窗口。AI 从最后的碎屑里重建你的意图——而每次重建都离原版稍微远一点,就像复印件的复印件。项目越大,退化得越厉害。所以 vibe coding 在第 1 天感觉难以置信、到第 20 天却让人绝望:不是 AI 变差了,而是上下文在蒸发,而且从来就没有一个聊天之外的锚点。

如果你不解决这个问题会怎样?不是世界末日——是一场缓慢的事故。你最终得到一个 几乎 能跑的应用,无法向另一个人(或者下周的 AI)解释清楚,每次修补都有它自己弄坏别的东西的概率。而这些概率不会宽容你:在这同一系列的一篇博客里我们讲过 27% 的数学 ——一个每一步都有 85% 命中率的智能体,只有 27% 的概率完成一个八步的流程(0.85⁸),因为命中率是相乘的,不是相加的。盲目构建同样地把脆弱的步骤串在一起。规格正是打破这条脆弱链条的东西:它给 AI 一个固定的点,让它对照着验证每一步,而不是让每一步都依赖上一步的运气。

解决办法 · 把顺序反过来(先规格,后代码)

vibe coding 里流程是:说话 → 代码 →(有时候)写文档。在 SDD 里它被完全反了过来:编写规格 → 计划 → 生成任务 → 代码。文档不再是最后被遗忘的残余,而成了 起点。而且这不是官僚流程:每一个阶段都是智能体从上一个阶段几乎自动生成的产物,中间有一个你的检查点让你在继续前批准。你指挥;AI 执行。

这个类比 · 剧本先于开拍
一部电影不会一场戏一场戏地即兴拍摄。首先有一份剧本(发生什么),然后一份拍摄计划(怎么拍、按什么顺序拍),然后分镜表(当天的任务),到那时才打开摄影机。如果你改剧本,其他一切都会级联着改变——有条不紊地。SDD 就是这样:规格是你的剧本,计划是拍摄计划,任务是分镜表,代码是拍摄。AI 是一个才华横溢、终于有了剧本的制作团队。

那个工具 · GitHub Spec Kit

你不必手动发明这套流程。GitHub Spec Kit 是一个 open source 工具包——出自 GitHub,免费,MIT 许可——它把 SDD 作为一系列命令安装进你的 AI 智能体里。你用自然语言编写规格;它给你结构、检查点和命令,好让 AI 把它变成应用。它是增长最快的 AI 工具之一:GitHub 上 122,000 颗星,其最新稳定版本 v0.13.02026 年 7 月 17 日 发布。它集成了 30 多个智能体——Claude Code、GitHub Copilot、Cursor、Gemini CLI 以及你用的那个。

github/spec-kit
REPO

GitHub 官方的 Spec-Driven Development 工具包。它在你的 AI 智能体里安装一套命令流程(constitution → specify → plan → tasks → implement),让你从一份可执行的规格出发构建,而不是即兴发挥。Model-agnostic:适用于 30 多个智能体。

PythonMITView on GitHub
Model-agnostic,正如这个系列的理念
Spec Kit 不把你绑在某个模型上。有价值的是 spec,而它是纯文本——它存活在智能体之外。如果明天你从 Claude 换到 Gemini,或从 Copilot 换到 Cursor,你的规格仍然有效,新的智能体从它出发构建。合同比供应商活得更久。 这正是我们在整个资料库里反复强调的原则:你组织的东西(上下文、记忆、规格)是你的;模型是可替换的。

安装 · 两条命令你就进去了

Spec Kit 用 uv 安装,那是现代的 Python 包管理器(快,不折腾)。如果你没有 uv,先装它——一行。然后持久化地安装 Spec Kit 的 CLI,并选择你的智能体来初始化你的项目。别被终端吓到:就是这几条命令,按顺序来,而且真正的工作里你不用再碰它(真正的工作在你 AI 的聊天里进行)。

bash
# 1) 如果你没有 uv(Python 的包管理器),先装它:
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2) 持久化地安装 Spec Kit 的 CLI(固定到稳定版本):
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@v0.13.0

# 3) 看看你可以选哪些智能体(--integration 这个 flag 的确切取值):
specify integration list

# 4) 选择你的智能体来初始化你的项目(这里用 Copilot 作为例子):
specify init mi-proyecto --integration copilot

# 5) 检查有没有更新的版本(不改任何东西,只读取):
specify self check
`--integration` 这个 flag 就是选择你智能体的那个
specify init mi-proyecto --integration copilot 里,--integration 之后的值就是你的工具。Spec Kit 带了 30 多个集成,并且会在各版本之间调整它们,所以与其去记确切的名字,不如先跑一下 specify integration list,从那份列表里选你用的那个(Copilot、Cursor、Gemini、Claude Code 等)——就像点菜前先要菜单,这样你永远不会点一道没有的菜。那条 init 命令会创建文件夹,里面的 /speckit.* 命令已经接好线并接进你的智能体;从那时起,所有工作都发生在跟 AI 说话里,而不是在终端里。

这个协议 · Spec Kit 的命令,按顺序

一旦初始化完成,Spec Kit 给你一系列 slash commands,你在你的智能体里输入它们。它们不神奇:每一个都请求 AI 生成流程里的下一个产物。顺序很重要——这是一条级联,每一步都依托于上一步。这些是真实的命令,正如 v0.13.0 里的样子:

Spec Kit 的命令(每一个做什么)
`/speckit.constitution` — 定义你项目的 不可违背的原则:AI 永远不能打破的规则(例如「始终验证用户输入」、「日志里不放敏感数据」)。这是统治其他一切的宪法。
`/speckit.specify` — 那份 spec:你想构建什么,用自然语言。需求和用户故事。是一切的核心。
`/speckit.clarify` (可选) — AI 就你规格里含糊的地方向你提问,在计划之前。及早填补空缺。
`/speckit.plan` — 那份 技术计划:AI 提出技术栈、架构以及它将如何构建规格。你批准或纠正。
`/speckit.tasks` — 把计划分解成一份 可执行的任务清单,有序而具体。就是分镜表。
`/speckit.analyze` (可选) — 在构建前检查规格、计划和任务彼此 一致。抓出矛盾。
`/speckit.checklist` — 生成量身定制的质量检查清单,用来验证需求得到满足。
`/speckit.implement` — 执行所有任务并按照计划构建应用。到这里摄影机终于打开了。
顺序不是装饰
跳过 constitutionspec、直接跑 /speckit.implement,就是带着多几步的 vibe coding。这条级联之所以有效,是因为每个产物都约束下一个:宪法界定计划,计划界定任务,任务界定代码。如果你打破这条链,AI 又开始猜。纪律在于遵守检查点,而不在于拥有那些命令。

真实的流程 · 4 个阶段,穿插着你的检查点

把一切拼起来,一个项目从头到尾就是这个样子。注意在每一个边界上 你都审查并批准 才让 AI 前进。这就是诀窍:不是 AI 毫无制动地独自工作,而是它 在你控制的检查点之间 独自工作。

4 阶段流程,以及你在每个阶段的角色
阶段 1 · 宪法。 你跑 /speckit.constitution 并定义项目的黄金规则。检查点: 你阅读并确认那些原则是对的。写一次,永远统治。
阶段 2 · 编写规格(并澄清)。 你跑 /speckit.specify 并描述要构建什么。然后 /speckit.clarify,让 AI 通过向你提问来消除含糊。检查点: 规格准确无误地说出你想要的,没有空缺。
阶段 3 · 计划并分解。 /speckit.plan 给出技术计划;/speckit.tasks 把它变成任务;/speckit.analyze 验证一切连贯。检查点: 在写下代码之前,你批准技术栈和任务。
阶段 4 · 实现。 /speckit.implement 构建。AI 对照规格一个接一个地执行任务。检查点: 你用 /speckit.checklist 验证构建出来的东西满足需求。
这个类比 · 你是导演,不是摄影机操作员
在一个好的制作里,导演不扛摄影机,也不抡锤子。他读剧本、批准计划、审查每一场拍好的戏,然后说 「这条过,这条重拍」。用 SDD 你做的就是这个:你不写代码,也不跟语法搏斗——你在检查点批准产物。AI 全部的威力,加上你在要紧之处的判断力。这种平衡正是人们说 「我想让 AI 独自工作但又不失去控制」 时所追求的。

这个习惯 · 什么时候写规格,什么时候不写

SDD 不是万事皆用。一行的改动、一个按钮的颜色、一段文字——那些你正常跟 AI 说就行了。为那些写一份规格,就像为了挂一幅画去请建筑师画图纸。好的习惯是认出 那个门槛:在一个任务触及 多于一个文件、有业务规则、或者你下周还会回来碰它 的那一刻——那时候,先写规格。从那以后,每一个大的新功能都诞生于一份规格,而不是一时冲动。

它被激活的确切时刻
实用的规则:如果你发现自己第二次在向 AI 解释同一件事,或者你打开项目却想不起来某个文件为什么存在——那就是在提醒你缺了一份规格。 别自责:现在就写规格,哪怕代码已经存在了。Spec Kit 对全新项目(greenfield)和对一个已经乱成一团、要给它理理顺的项目(brownfield)同样管用。

那个主提示词 · 以 spec-first 启动一个项目

这里是你唯一需要记住的提示词。就是你交给你的 AI(Spec Kit 已初始化)的那一个,用来从第一分钟就开好头:它要求 AI 先定下宪法,然后跟你一起构建规格、缺什么就问,而且在你批准之前不写代码。复制它,填好 [方括号],在启动任何认真的项目时把它粘给你的智能体。

粘给你的 AI · 启动一个规格驱动的项目文本
我们要用 Spec-Driven Development 来构建这个项目,使用 GitHub Spec Kit,它已经初始化好了。先不要写代码。跟着我走这个流程,在每一个检查点停下来,等我批准了再前进。

我的项目是:[用 3-5 句话描述你想构建什么、给谁用]。
它不该做什么 / 我的界限:[例如 不保存信用卡、要能在手机上运行、日志里不放敏感数据]。

第 1 步 — 宪法。首先,跑 /speckit.constitution 并提出这个项目不可违背的原则(安全、输入验证、一致性,以及任何适用的)。把它们展示给我,等我点头。

第 2 步 — 规格。然后跑 /speckit.specify,根据我的描述起草规格:清晰的需求和用户故事。之后跑 /speckit.clarify,把消除含糊所需的所有问题都问我——不要猜,问我。在我说规格没问题之前不要继续。

第 3 步 — 计划和任务。规格获批后,跑 /speckit.plan 并提出技术栈和架构(用大白话跟我解释你为什么选每一样)。然后 /speckit.tasks 做分解,再 /speckit.analyze 验证规格、计划和任务不互相矛盾。把这一切展示给我,等我批准。

第 4 步 — 实现。只有在我授权时,才跑 /speckit.implement 并构建。完成后,生成一份 /speckit.checklist,验证构建出来的东西满足规格。

整个过程的黄金规则:规格是唯一的真相来源。如果代码里有什么偏离了规格,规格说了算——或者你提醒我,我们一起更新它。永远不要悄无声息地改变行为。
那个决定成败的细节
第 2 步里的那句 「不要猜,问我」 是整个提示词里最重要的。正是它把 AI 从 填空者 变成 协作者。大多数 vibe coding 的 bug 都诞生于一个你从未质疑过的、悄无声息的假设。/speckit.clarify 存在的意义正是如此:在那些假设变成代码 之前,把它们摆到明面上来。

最省事的路径 · 哪些用聊天做,哪些用命令做

为了让你不迷路:几乎一切都发生在 跟你的 AI 说话 里。终端你只碰一次(安装并初始化)。那些 /speckit.* 你在你智能体的聊天里输入,就像任何别的消息一样。而规格你用自己的话来写——不是用代码。这就是分工:

任务分工
用终端(只此一次): 安装 uv、安装 specify-cli、用 specify integration list 看智能体、跑 specify init mi-proyecto --integration <你的智能体>,以及 specify self check 检查你是否是最新的。就这样——你不用再回终端了。
用你 AI 的聊天(真正的工作): 所有命令 /speckit.constitution/speckit.specify/speckit.plan/speckit.tasks/speckit.implement。你把它们当作普通消息输入。
用你自己的话(你贡献的部分): 项目的描述、对 /speckit.clarify 提问的回答,以及每个检查点上的批准。你这边零代码。
把规格存进 git: 规格和宪法是文本文件。提交它们。它们是项目最宝贵的资产——比代码更宝贵,因为代码可以从它们重新生成。
别把快和有方向搞混
SDD 一开始 感觉 更慢——你在「写文档」而不是立刻看到代码。这是一种错觉。投在规格上的那点时间,为你省下了后面 vibe coding 里那五个回合的 「不对,不是这样」。你在第 1 公里更慢,从第 2 公里往后却快得多——而且不撞车。真正的速度不是 每分钟多少代码,而是 每周完成且正确的应用

这一切从何而来(这个系列的演进)

如果你一直跟着这个资料库,这对你不新鲜——它是下一个台阶。C-A-R 协议 教你把构建和审计分开,好不把 bug 发出去。设计系统 那份资源教你在第一个界面 之前 定下视觉规则。两者共享同一个想法:在执行之前决定合同。 SDD 把这个想法带到最纯粹的形式:规格就是合同,而且它是 整个 应用的唯一真相来源——设计、逻辑、行为。你从 「组织好你的上下文」 走向 「写好合同,让 AI 去履行它」

在 NeuralOS 里,你早已在对照一份合同构建
有一条统治 NeuralOS 内部如何构建的准则,它正是这套理念:前端是真相来源。设计和界面定义合同——什么应该存在、如何表现——而后端只 填充 那份合同;从不擅自发明。这是 SDD 应用到一个真实产品上:先规定用户所看到和所期待的,其他一切都为满足它而构建。当你跟 NeuralOS 的编排聊天对话来构建你的应用时,那套 合同优先 的纪律就在底层无形地工作,让你所要求的正是你所得到的——不用你自己去搭那套命令的级联。
C-A-R 协议 · 无 bug 地构建
这份资源的老大哥:把构建和审计分开。规格告诉你构建什么;C-A-R 确保构建出来的东西是对的。
在构建之前先创建你的设计系统
同一个想法应用到设计上:在第一个界面之前定下视觉合同。规格和设计系统是同一个原则的两面。
#spec-driven-development#spec-kit#github#vibe-coding#prompt#架构
Ready to build?

Start building in
under 3 minutes

Join 4,200+ builders. No credit card. Build your first app with AI in minutes.