要说2025年AI发展最快的应用场景,非编程场景莫属,Cursor、ClaudeCode等智能体结合大模型在编程场景的不断打磨,通过自然语言对话编程与多Agent并行协作,极大的降低了门槛、提高了开发效率,这使得非专业人士可以轻松入门编程,也让这个原盛产脱发人士的职业群体紧张起来,这种开发模式被称为“氛围编程(vibe coding)”。
Karpathy在命名时解释道:这种开发模式能让人完全沉浸在开发过程,并忘记代码的存在。然而,实际体验“氛围编程”时,我们常常会发现:初期轻松而优雅,但随着代码增多腐坏的味道慢慢地弥漫开来。大语言模型像火山一般将源代码源源不断地喷薄而出,如岩浆般四处涌动的代码若缺少有效治理,堆积成一座“屎山”指日可待,所以软件工程在AI时代仍然重要。
软件项目从底层往高层一般有三个层面:代码层、工程和业务,如果软件规模小,工程层面影响较小,最多形成“粪球”而非“屎山”,但对于中大型项目,软件工程则变得极为关键,当前“氛围编程”主要解决代码层面的问题,而Spec-Kit则是解决软件工程层面的问题。
Spec-Kit可以理解为软件工程的工作流,它按照软件工程阶段而设计:需求、设计、编码、测试和维护,重点就一点:过程文档,如果要避免代码腐坏,就要维护好规范的过程文档。
安装
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
项目初始化
在项目根目下执行: speckit init --here, 这条命令会将在项目目录下初始化.speckit,内含智能体和自动化脚本文件 。
Spec-Kit 命令汇总
| | | | | |
| | | | .specify/memory/constitution.md | |
| /speckit.specify | | | | |
| /speckit.clarify | | | 更新 spec.md 的 Clarifications 部分 | spec.md 存在 |
| /speckit.plan | | | plan.md, research.md, data-model.md, contracts/, quickstart.md | spec.md 存在 |
| | | | | plan.md 存在 |
| /speckit.tasks | | | tasks.md | plan.md 存在 |
| /speckit.analyze | | | | spec.md, plan.md, tasks.md 存在 |
| | | | 生成的代码和测试 | constitution.md, spec.md, plan.md, tasks.md 存在 |
- 五个核心指令遵循软件工程标准流程:需求(specify)-> 计划(plan)-> 任务(tasks)-> 实现(implement);
- 三个可选指令用于流程管控:需求澄清(clarify)、计划校验(checklist)、实现分析(analyze);
- 前置澄清 /speckit.clarify:在plan阶段前执行需求澄清;
- 中置校验 /speckit.checklist: 在plan阶段后执行计划校验;
- 后置分析 /speckit.analyze: 在tasks与implement之间执行实现分析;
- 各阶段文件可以利用如BMad等更专业的Agent完善文件内容;
- 不过早的实现细节,在plan之前不去谈论技术方案;
- 比如从Claude Code更换为Cursor,请先备份 .specify/memory/constitution.md,执行命令specify init . --ai cursor-agent后该文件会被覆盖,使用备份文件恢复。
大语言模型仍在持续的降低软件研发的门槛,Spec-Kit通过将软件工程的规范流程引入到“氛围编程”,为这种模式的软件开发过程提供了骨架,让通过自然语言规范能够可靠地生成可运行的代码,它创造了一个紧密的规范驱动(SSD)的反馈循环,其中规范、方案和代码共同演进,每一次迭代让理解和意图与实现之间更好的对齐。