Spec Kit:规范驱动的AI编程包
不要直接开始编码。从规范开始,清晰地描述你想要什么以及为什么。这就是Spec Kit做的事情。

如果您使用过 Copilot、Claude、Gemini 或 Cursor 等编程代理,您就会了解其中的规律。您给它一个提示,它就会生成一些代码,然后您会想:“太棒了,完成了。”
然后您运行它。
砰!错误。
或者更糟的是,它虽然能用,但不是您想的那样。
这并不是因为人工智能不擅长编程。
并非如此。
真正的问题在于我们如何提问。
我们大多数人都会提出模棱两可的问题,并希望得到最好的答案。
但人工智能不会读心术。
它更像是一个非常普通的初级开发人员。
它会遵循模式,但不会猜测你的想法。
所以,与其听天由命,不如选择另一种方法:规范驱动开发。

1、什么是规范驱动开发?
这个想法很简单。不要直接开始编码。从规范开始,清晰地描述你想要什么以及为什么。
这份规范将成为唯一的事实来源。
人工智能使用它来生成、测试和验证代码。
不再需要猜测。不再需要“感觉差不多”。
为了让生活更轻松,现在有一个名为 Spec Kit 的新开源工具包。
它可以帮助您以结构化的方式使用 AI 进行构建,而无需埋头于半途而废的代码文档中。
2、Spec Kit 的工作原理
它分为四个阶段:
- 指定:- 写下您正在构建的内容及其目标用户。专注于结果,而非技术。
- 计划:添加栈、架构和约束条件。这是您制定规则的地方。
- 任务:将计划分解为可测试的小任务。
- 实施:AI 一次编写一个任务。您可以审查、调整并继续执行。
诀窍是什么?在当前步骤完成之前,您不会继续执行。
3、示例
假设您想要一个相册应用。
与其说:
“为我开发一个相册应用。”
不如这样开始:
指定:
/指定 构建一个将照片整理到相册中的应用。相册按日期分组,可以通过拖放操作重新排序。没有嵌套相册。在每个相册中,以网格形式显示照片。
计划:
/计划 使用 Vite 并尽量减少库的使用。坚持使用原生 HTML、CSS 和 JS。将相册数据存储在 SQLite 中。不要上传图片到任何地方。
任务:
/任务
AI 将其分解为以下几个块:
- 创建相册 UI
- 添加拖放功能
- 在网格中显示照片
- 将相册详细信息保存到 SQLite 中。
实现:
/实现
现在 AI 会对每个块进行编码。您可以审查细微而有针对性的更改。
// drag-drop.js - Move albums around
const albumList = document.getElementById('album-list');
albumList.addEventListener('dragstart', (e) => {
e.target.classList.add('dragging');
e.dataTransfer.setData('text/plain', e.target.dataset.albumId);
});
albumList.addEventListener('dragover', (e) => {
e.preventDefault(); // Let it drop
});
albumList.addEventListener('drop', (e) => {
e.preventDefault();
const draggedId = e.dataTransfer.getData('text/plain');
const targetId = e.target.closest('.album').dataset.albumId;
// Update the database
const db = require('./db');
db.run(`UPDATE albums SET order_index = ? WHERE id = ?`, [targetOrder, draggedId]);
db.run(`UPDATE albums SET order_index = ? WHERE id = ?`, [draggedOrder, targetId]);
// Redraw the list
renderAlbums();
});
function renderAlbums() {
// Pull albums from DB, show them
// ...
}
4、为什么要这样繁琐呢?
模糊的提示纯粹是浪费时间。 AI 会填补你从未提及的空白,而且通常情况下,它会犯一些错误。
规范可以解决这个问题。
- 规范可以捕捉你的需求。
- 计划可以锁定构建方式。
- 任务可以使其易于管理。
AI 不再猜测,你也无需重写。
5、最有帮助的地方
- 新项目:深入研究之前,先理清思路。
- 添加功能:规范可以让新代码不会显得生硬。
- 遗留系统现代化:抓住意图,避免遗留过时的复杂性。
优点在于灵活性。如果你改变主意,只需更新规范,让 AI 自行调整。
6、入门指南
Spec Kit 是开源的。可与 Copilot、Claude、Gemini CLI 和 Cursor 配合使用。设置如下:
uvx --from git+https://github.com/github/spec-kit.git specify init my-project
然后,运行 /specify、/plan、/tasks,让 AI 完成构建。
创建规范:
/specify Build an application that can help me organize my photos in separate photo albums. Albums are grouped by date and can be re-organized by dragging and dropping on the main page. Albums are never in other nested albums. Within each album, photos are previewed in a tile-like interface.
制定技术实现计划:
/plan The application uses Vite with minimal number of libraries. Use vanilla HTML, CSS, and JavaScript as much as possible. Images are not uploaded anywhere and metadata is stored in a local SQLite database.
使用 /tasks ,列出需要完成的任务,然后让你的代理添加该功能。
规范驱动开发并非要取代 AI 或使事情过于复杂。它关乎指导。你负责“做什么”和“为什么做”。AI 负责“怎么做”。
原文链接:Spec Kit: The Open-Source Toolkit That Makes AI Coding Actually Work
汇智网翻译整理,转载请标明出处
