AI 编程利器——Spec Kit

1. 🌱 Spec Kit

1.1. 更快地构建高质量软件

一个开源工具包,让你专注于产品场景和可预测的结果,而不是从头开始对每个部分进行氛围式编码。

2. 目录

3. 🤔 什么是规范驱动开发?

规范驱动开发颠覆了传统的软件开发方式。几十年来,代码一直是核心——规范只是我们搭建后、在开始编码的"真正工作"时就被丢弃的脚手架。规范驱动开发改变了这一点:规范变得可执行,直接生成可工作的实现,而不仅仅是指导它们。

4. ⚡ 快速开始

4.1. 安装 Specify CLI

选择你偏好的安装方式:

4.1.1. 选项 1:持久化安装(推荐)

一次安装,随处使用:

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

然后直接使用该工具:

specify init
specify check

要升级 Specify,请参阅升级指南获取详细说明。快速升级:

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

4.1.2. 选项 2:一次性使用

无需安装,直接运行:

uvx --from git+https://github.com/github/spec-kit.git specify init

持久化安装的好处:

  • 工具保持安装状态并在 PATH 中可用
  • 无需创建 shell 别名
  • 使用 uv tool listuv tool upgradeuv tool uninstall 更好地管理工具
  • 更清晰的 shell 配置

4.2. 建立项目原则

在项目目录中启动你的 AI 助手。助手将可以使用 /speckit.* 命令。使用 /speckit.constitution 命令创建你的项目治理原则和开发指南,这些将指导所有后续的开发工作。

/speckit.constitution 创建专注于代码质量、测试标准、用户体验一致性和性能要求的原则

4.3. 创建规范

使用 /speckit.specify 命令描述你想要构建的内容。专注于做什么为什么,而不是技术栈。

/speckit.specify 构建一个能帮助我整理照片到独立相册的应用程序。相册按日期分组,并且可以在主页通过拖放重新组织。相册从不嵌套在其他相册内。在每个相册内,照片以类似磁贴的界面预览。

4.4. 创建技术实施计划

使用 /speckit.plan 命令来提供你的技术栈和架构选择。

/speckit.plan 应用程序使用 Vite 并尽可能减少库的数量。尽可能使用原生的 HTML、CSS 和 JavaScript。图片不会上传到任何地方,元数据存储在本地 SQLite 数据库中。

4.5. 分解为任务

使用 /speckit.tasks 从你的实施计划创建一个可操作的任务列表。

/speckit.tasks

4.6. 执行实施

使用 /speckit.implement 来执行所有任务,并根据计划构建你的功能。

/speckit.implement

有关详细的分步说明,请参阅我们的综合指南

5. 📽️ 视频概览

想看看 Spec Kit 的实际运作吗?观看我们的视频概览!

6. 🤖 支持的 AI 代理

代理 支持 备注
Qoder CLI
Amazon Q Developer CLI ⚠️ Amazon Q Developer CLI 不支持斜杠命令的自定义参数。
Amp
Auggie CLI
Claude Code
CodeBuddy CLI
Codex CLI
Cursor
Gemini CLI
GitHub Copilot
IBM Bob 基于 IDE 的代理,支持斜杠命令
Jules
Kilo Code
opencode
Qwen Code
Roo Code
SHAI (OVHcloud)
Windsurf

7. 🔧 Specify CLI 参考

specify 命令支持以下选项:

7.1. 命令

命令 描述
init 从最新模板初始化一个新的 Specify 项目
check 检查已安装的工具 (git, claude, gemini, code/code-insiders, cursor-agent, windsurf, qwen, opencode, codex, shai, qoder)

7.2. specify init 参数与选项

参数/选项 类型 描述
参数 新项目目录的名称(如果使用 --here 则可选,或使用 . 表示当前目录)
--ai 选项 要使用的 AI 助手:claude,gemini,copilot,cursor-agent,qwen,opencode,codex,windsurf,kilocode,auggie,roo,codebuddy,amp,shai,q,bob, 或 qoder
--script 选项 要使用的脚本变体:sh (bash/zsh) 或 ps (PowerShell)
--ignore-agent-tools 标志 跳过对 AI 代理工具(如 Claude Code)的检查
--no-git 标志 跳过 git 仓库初始化
--here 标志 在当前目录初始化项目,而不是创建新目录
--force 标志 在当前目录初始化时强制合并/覆盖(跳过确认)
--skip-tls 标志 跳过 SSL/TLS 验证(不推荐)
--debug 标志 启用详细的调试输出以进行故障排除
--github-token 选项 用于 API 请求的 GitHub 令牌(或设置 GH_TOKEN/GITHUB_TOKEN 环境变量)

7.3. 示例

# 基本项目初始化
specify init my-project

# 使用特定 AI 助手初始化
specify init my-project --ai claude

# 使用 Cursor 支持初始化
specify init my-project --ai cursor-agent

# 使用 Qoder 支持初始化
specify init my-project --ai qoder

# 使用 Windsurf 支持初始化
specify init my-project --ai windsurf

# 使用 Amp 支持初始化
specify init my-project --ai amp

# 使用 SHAI 支持初始化
specify init my-project --ai shai

# 使用 IBM Bob 支持初始化
specify init my-project --ai bob

# 使用 PowerShell 脚本初始化 (Windows/跨平台)
specify init my-project --ai copilot --script ps

# 在当前目录初始化
specify init . --ai copilot

# 或者使用 --here 标志
specify init --here --ai copilot

# 强制合并到当前(非空)目录,无需确认
specify init . --force --ai copilot

# 或者
specify init --here --force --ai copilot

# 跳过 git 初始化
specify init my-project --ai gemini --no-git

# 启用调试输出以进行故障排除
specify init my-project --ai claude --debug

# 使用 GitHub 令牌进行 API 请求(对公司环境有帮助)
specify init my-project --ai claude --github-token ghp_your_token_here

# 检查系统要求
specify check

7.4. 可用的斜杠命令

运行 specify init 后,你的 AI 编码代理将可以访问这些用于结构化开发的斜杠命令:

7.4.1. 核心命令

规范驱动开发工作流的必备命令:

命令 描述
/speckit.constitution 创建或更新项目治理原则和开发指南
/speckit.specify 定义你想要构建的内容(需求和用户故事)
/speckit.plan 使用你选择的技术栈创建技术实施计划
/speckit.tasks 为实施生成可操作的任务列表
/speckit.implement 根据计划执行所有任务以构建功能

7.4.2. 可选命令

用于增强质量和验证的附加命令:

命令 描述
/speckit.clarify 澄清未明确说明的领域(推荐在 /speckit.plan 之前使用;以前称为 /quizme
/speckit.analyze 跨工件一致性 & 覆盖率分析(在 /speckit.tasks 之后、/speckit.implement 之前运行)
/speckit.checklist 生成自定义质量检查清单,验证需求完整性、清晰度和一致性(例如"英语的单元测试")

7.5. 环境变量

变量 描述
SPECIFY_FEATURE 覆盖非 Git 仓库的功能检测。设置为功能目录名称(例如 001-photo-albums),以便在不使用 Git 分支时处理特定功能。必须在您正在使用的代理环境中,在使用 /speckit.plan 或后续命令之前设置。

8. 📚 核心理念

规范驱动开发是一个强调以下方面的结构化流程:

  • 意图驱动开发,其中规范先定义"做什么",再定义"怎么做"
  • 创建丰富的规范,使用防护栏和组织原则
  • 多步骤精炼,而不是从提示词一次性生成代码
  • 高度依赖先进 AI 模型的规范解释能力

9. 🌟 开发阶段

阶段 重点 关键活动
0 到 1 开发 (“绿地开发”) 从零生成 从高层次需求开始生成规范
规划实施步骤
构建生产就绪的应用程序
创意探索 并行实施 探索多样化的解决方案
支持多种技术栈和架构实验
用户体验模式
迭代增强 (“棕地开发”) 棕地现代化 迭代添加功能
现代化遗留系统
适应流程

10. 🎯 实验目标

我们的研究和实验专注于:

10.1. 技术独立性

  • 使用多样化的技术栈创建应用程序
  • 验证规范驱动开发是一个不依赖于特定技术、编程语言或框架的过程的假设

10.2. 企业约束

  • 演示关键任务应用程序的开发
  • 整合组织约束(云提供商、技术栈、工程实践)
  • 支持企业设计系统和合规要求

10.3. 以用户为中心的开发

  • 为不同的用户群体和偏好构建应用程序
  • 支持各种开发方法(从氛围式编码到 AI 原生开发)

10.4. 创意与迭代过程

  • 验证并行实施探索的概念
  • 提供强大的迭代功能开发工作流
  • 扩展流程以处理升级和现代化任务

11. 🔧 先决条件

  • Linux/macOS/Windows
  • 一个受支持的 AI 编码代理
  • uv 用于包管理
  • Python 3.11+
  • Git

如果在使用某个代理时遇到问题,请提交 issue 以便我们改进集成。

12. 📖 了解更多

详见:github/spec-kit

13. 🔍 故障排除

13.1. Linux 上的 Git 凭据管理器

如果你在 Linux 上遇到 Git 身份验证问题,可以安装 Git 凭据管理器:

#!/usr/bin/env bash
set -e
echo "正在下载 Git 凭据管理器 v2.6.1..."
wget https://github.com/git-ecosystem/git-credential-manager/releases/download/v2.6.1/gcm-linux_amd64.2.6.1.deb
echo "正在安装 Git 凭据管理器..."
sudo dpkg -i gcm-linux_amd64.2.6.1.deb
echo "正在配置 Git 使用 GCM..."
git config --global credential.helper manager
echo "正在清理..."
rm gcm-linux_amd64.2.6.1.deb