Spec Kit:规范驱动的AI编程包

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

Spec Kit:规范驱动的AI编程包

如果您使用过 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

汇智网翻译整理,转载请标明出处