好的 👍 我来帮你把这份 Spec Kit 文档 翻译成中文,保持通俗易懂,同时保留专业名词,并在中英文之间加空格。翻译如下:


🌱 Spec Kit

更快地构建高质量软件

借助 Spec-Driven Development,让组织专注于产品场景,而不是编写那些没有差异化价值的代码。

🤔 什么是 Spec-Driven Development?

Spec-Driven Development 颠覆了传统软件开发的模式。几十年来,代码一直是核心 —— 规范 (specifications) 只是我们在写“真正代码”前搭的脚手架,随后便丢弃。而 Spec-Driven Development 不一样:规范本身可以执行,它们能够直接生成可运行的实现,而不是仅仅作为指导文档。

⚡ 快速上手

1. 安装 Specify

选择你喜欢的安装方式:

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

一次安装,到处可用:

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

然后直接使用工具:

  1. specify init <PROJECT_NAME>
  2. specify check

选项 2: 临时使用

无需安装,直接运行:

  1. uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>

持久安装的好处:

  • 工具会一直安装好并添加到 PATH
  • 不需要创建 shell alias
  • 可以通过 uv tool list, uv tool upgrade, uv tool uninstall 更好地管理工具
  • 保持更干净的 shell 配置

2. 建立项目原则

使用 /constitution 命令,为项目创建治理原则和开发规范,它们会指导后续的所有开发。

  1. /constitution Create principles focused on code quality, testing standards, user experience consistency, and performance requirements

3. 创建规范 (Spec)

使用 /specify 命令描述你要构建的东西。关注 whatwhy,而不是技术栈。

  1. /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.

4. 制定技术实现方案

使用 /plan 命令提供技术栈和架构选择。

  1. /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.

5. 分解任务

使用 /tasks 把实现方案拆分成可执行的任务列表。

  1. /tasks

6. 执行实现

使用 /implement 执行所有任务,按照方案构建功能。

  1. /implement

更多详细步骤请参阅我们的 完整指南

📽️ 视频介绍

想看看 Spec Kit 的实际效果?请观看 视频介绍

🤖 支持的 AI 代理

代理 支持 备注
Claude Code
GitHub Copilot
Gemini CLI
Cursor
Qwen Code
opencode
Windsurf
Kilo Code
Auggie CLI
Roo Code
Codex CLI ⚠️ Codex 不支持 斜杠命令的自定义参数。

🔧 指定 CLI 参考

specify 命令支持以下选项:

命令

命令 描述
init 从最新模板初始化一个新的 Specify 项目
check 检查已安装的工具(gitclaudegeminicode/code-insiderscursor-agentwindsurfqwenopencodecodex

specify init 参数与选项

参数/选项 类型 描述
<project-name> 参数 新项目目录的名称(如果使用 --here 则为可选,或使用 . 表示当前目录)
--ai 选项 要使用的 AI 助手:claudegeminicopilotcursorqwenopencodecodexwindsurfkilocodeauggieroo
--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 环境变量)

示例

  1. # 基本项目初始化
  2. specify init my-project
  3. # 使用特定 AI 助手初始化
  4. specify init my-project --ai claude
  5. # 使用 Cursor 支持初始化
  6. specify init my-project --ai cursor
  7. # 使用 Windsurf 支持初始化
  8. specify init my-project --ai windsurf
  9. # 使用 PowerShell 脚本初始化(Windows/跨平台)
  10. specify init my-project --ai copilot --script ps
  11. # 在当前目录初始化
  12. specify init . --ai copilot
  13. # 或使用 --here 标志
  14. specify init --here --ai copilot
  15. # 强制合并到当前(非空)目录且无需确认
  16. specify init . --force --ai copilot
  17. # 或
  18. specify init --here --force --ai copilot
  19. # 跳过 git 初始化
  20. specify init my-project --ai gemini --no-git
  21. # 启用调试输出以进行故障排除
  22. specify init my-project --ai claude --debug
  23. # 使用 GitHub 令牌进行 API 请求(适用于企业环境)
  24. specify init my-project --ai claude --github-token ghp_your_token_here
  25. # 检查系统要求
  26. specify check

可用的斜杠命令

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

命令 描述
/constitution 创建或更新项目治理原则与开发指南
/specify 定义你要构建的内容(需求与用户故事)
/clarify 澄清未明确的部分(必须在 /plan 之前运行,除非明确跳过;原 /quizme
/plan 使用你选择的技术栈创建技术实现计划
/tasks 生成可执行的任务列表以进行实现
/analyze 跨工件一致性与覆盖分析(在 /tasks 之后、/implement 之前运行)
/implement 执行所有任务以根据计划构建功能

环境变量

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

📚 核心哲学

Spec-Driven Development 是一个结构化过程,强调:

  • 意图驱动开发,规范在“怎么做”之前定义“做什么”
  • 使用护栏与组织原则创建丰富规范
  • 多步细化,而非一次性提示生成代码
  • 高度依赖高级 AI 模型能力进行规范解释

🌟 开发阶段

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

🎯 实验目标

我们的研究与实验聚焦于:

技术独立性

  • 使用多样化技术栈创建应用
  • 验证假设:Spec-Driven Development 是一种不绑定特定技术、编程语言或框架的流程

企业约束

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

用户为中心开发

  • 为不同用户群体与偏好构建应用
  • 支持多种开发方法(从 vibe-coding 到 AI 原生开发)

创意与迭代流程

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

🔧 前置条件

如果你遇到代理问题,请提 issue 以便我们改进集成。

📖 了解更多


📋 详细过程

点击展开详细逐步演练

你可以使用 Specify CLI 引导项目,它会将所需工件引入你的环境。运行:

  1. specify init <project_name>

或在当前目录初始化:

  1. specify init .
  2. # 或使用 --here 标志
  3. specify init --here
  4. # 目录已有文件时跳过确认
  5. specify init . --force
  6. # 或
  7. specify init --here --force

Specify CLI 在终端中引导新项目

系统会提示你选择正在使用的 AI 代理。你也可以直接在终端中指定:

  1. specify init <project_name> --ai claude
  2. specify init <project_name> --ai gemini
  3. specify init <project_name> --ai copilot
  4. specify init <project_name> --ai cursor
  5. specify init <project_name> --ai qwen
  6. specify init <project_name> --ai opencode
  7. specify init <project_name> --ai codex
  8. specify init <project_name> --ai windsurf
  9. # 或在当前目录:
  10. specify init . --ai claude
  11. specify init . --ai codex
  12. # 或使用 --here 标志
  13. specify init --here --ai claude
  14. specify init --here --ai codex
  15. # 强制合并到非空当前目录
  16. specify init . --force --ai claude
  17. # 或
  18. specify init --here --force --ai claude

CLI 会检查你是否安装了 Claude Code、Gemini CLI、Cursor CLI、Qwen CLI、opencode 或 Codex CLI。如果没有,或你希望在不检查正确工具的情况下获取模板,请在命令中使用 --ignore-agent-tools

  1. specify init <project_name> --ai claude --ignore-agent-tools

步骤 1: 建立项目原则

进入项目文件夹并运行你的 AI 代理。示例中我们使用 claude

引导 Claude Code 环境

如果看到 /constitution/specify/plan/tasks/implement 命令可用,说明配置正确。

第一步应使用 /constitution 命令建立项目治理原则。这有助于确保后续所有开发阶段决策一致:

  1. /constitution 创建专注于代码质量、测试标准、用户体验一致性与性能要求的原则。包括治理方式,说明这些原则应如何指导技术决策与实现选择。

此步骤会创建或更新 .specify/memory/constitution.md 文件,包含项目基础指南,AI 代理在规范、规划与实现阶段会引用。

步骤 2: 创建项目规范

建立项目原则后,即可创建功能规范。使用 /specify 命令并提供你要开发项目的具体需求。

[!重要] 尽可能明确说明你要构建的是什么以及为什么此时不要关注技术栈

示例提示:

  1. 开发 Taskify,一个团队生产力平台。它应允许用户创建项目、添加团队成员、
  2. 分配任务、评论并以看板风格在面板间移动任务。在此功能的初始阶段,
  3. 我们称之为“创建 Taskify”,支持多用户但用户需预先声明。
  4. 我希望有五个用户分为两类,一名产品经理和四名工程师。创建三个不同的示例项目。
  5. 使用标准看板列表示任务状态,如“待办”、“进行中”、“审核中”和“已完成”。
  6. 此应用无需登录,因为这仅是确保基本功能可用的最初测试。
  7. UI 中的每个任务卡片上,你应能在看板工作流的不同列间更改任务状态。
  8. 你应能在特定卡片上留下无限数量的评论。你应能从该任务卡片中
  9. 分配一个有效用户。首次启动 Taskify 时,会给出五个用户供选择。
  10. 无需密码。点击用户后进入主视图,显示项目列表。点击项目后
  11. 打开该项目的看板。你将看到列。你可以拖放卡片在不同列间移动。
  12. 你会看到分配给你(当前登录用户)的卡片以不同颜色显示,以便快速识别。
  13. 你可以编辑自己发布的评论,但不能编辑他人的评论。
  14. 你可以删除自己发布的评论,但不能删除他人的评论。

输入此提示后,你会看到 Claude Code 启动规划与规范起草流程。Claude Code 还会触发一些内置脚本以设置仓库。

此步骤完成后,应会创建一个新分支(例如 001-create-taskify),以及在 specs/001-create-taskify 目录中的新规范。

生成的规范应包含一组用户故事与功能需求,如模板中所定义。

此时,你的项目文件夹内容应类似如下:

  1. └── .specify
  2. ├── memory
  3. └── constitution.md
  4. ├── scripts
  5. ├── check-prerequisites.sh
  6. ├── common.sh
  7. ├── create-new-feature.sh
  8. ├── setup-plan.sh
  9. └── update-claude-md.sh
  10. ├── specs
  11. └── 001-create-taskify
  12. └── spec.md
  13. └── templates
  14. ├── plan-template.md
  15. ├── spec-template.md
  16. └── tasks-template.md

步骤 3: 功能规范澄清(规划前必须)

创建基线规范后,你可澄清首次尝试中未正确捕获的任何需求。

在创建技术计划之前,应运行结构化澄清工作流,以减少下游返工。

推荐顺序:

  1. 使用 /clarify(结构化)——顺序、基于覆盖的提问,将答案记录在“澄清”部分。
  2. 如有需要,可随后进行临时自由形式细化。

如你故意想跳过澄清(例如 spike 或探索性原型),请明确说明,以免代理因缺失澄清而阻塞。

示例自由形式细化提示(如需在 /clarify 后使用):

  1. 对于你创建的每个示例项目,应有可变数量的任务,每个项目 5 15 个任务,
  2. 随机分布到不同的完成状态。确保每个完成阶段至少有一个任务。

你还应让 Claude Code 验证审查与验收清单,勾选已验证/符合要求的项,未符合的留空。可使用以下提示:

  1. 阅读审查与验收清单,如果功能规范符合标准,则勾选每一项。不符合则留空。

务必利用与 Claude Code 的交互来澄清并提出关于规范的问题——不要将其首次尝试视为最终版本

步骤 4: 生成计划

现在你可以明确技术栈及其他技术要求。可使用项目模板内置的 /plan 命令,提示如下:

  1. 我们将使用 .NET Aspire,数据库用 Postgres。前端使用
  2. Blazor 服务器,支持拖放任务板与实时更新。创建 REST API,包括项目 API
  3. 任务 API 与通知 API

此步骤的输出将包含若干实现细节文档,你的目录树将类似:

  1. .
  2. ├── CLAUDE.md
  3. ├── memory
  4. └── constitution.md
  5. ├── scripts
  6. ├── check-prerequisites.sh
  7. ├── common.sh
  8. ├── create-new-feature.sh
  9. ├── setup-plan.sh
  10. └── update-claude-md.sh
  11. ├── specs
  12. └── 001-create-taskify
  13. ├── contracts
  14. ├── api-spec.json
  15. └── signalr-spec.md
  16. ├── data-model.md
  17. ├── plan.md
  18. ├── quickstart.md
  19. ├── research.md
  20. └── spec.md
  21. └── templates
  22. ├── CLAUDE-template.md
  23. ├── plan-template.md
  24. ├── spec-template.md
  25. └── tasks-template.md

检查 research.md 文档,确保根据你的指示使用了正确的技术栈。如有组件异常,可让 Claude Code 细化,甚至让它检查本地安装的版本(如 .NET)。

此外,如技术栈变化较快(如 .NET Aspire、JS 框架),你可让 Claude Code 研究细节,提示如下:

  1. 我希望你通读实现计划与实现细节文件,寻找可受益于额外研究的领域,因为 .NET Aspire 是一个快速变化的库。对于你识别出需要进一步研究的领域,
  2. 请在研究文档中更新我们正在 Taskify 应用中使用的具体版本的详细信息,并启动并行研究任务,使用网络研究澄清任何细节。

在此过程中,如 Claude Code 研究跑偏,你可这样引导:

  1. 我认为我们需要将其分解为一系列步骤。首先,列出你在实现过程中
  2. 需要做但不确定或会受益于进一步研究的任务清单。写下这些任务清单。然后对于每个任务,
  3. 我希望你启动单独的研究任务,以便最终我们并行研究所有这些非常具体的任务。我看到你做的是
  4. 看起来你在研究 .NET Aspire 本身,我认为这对我们没什么帮助。
  5. 研究过于宽泛。研究需要帮助你解决具体的、有针对性的问题。

[!注意] Claude Code 可能过于积极,添加你未请求的组件。请其说明理由及变更来源。

步骤 5: 让 Claude Code 验证计划

计划就位后,你应让 Claude Code 检查确保没有遗漏。可使用如下提示:

  1. 现在我希望你去审核实现计划与实现细节文件。
  2. 通读时,判断是否存在你需要执行的一系列显而易见任务。
  3. 因为我不确定是否有足够信息。例如,当我查看核心实现时,
  4. 引用实现细节中的适当位置会很有用,以便在执行核心实现或细化中的每一步时能找到信息。

这有助于细化实现计划,并避免 Claude Code 在规划周期中遗漏的潜在盲点。初始细化完成后,再次让 Claude Code 检查清单,然后进入实现。

如已安装 GitHub CLI,你还可以让 Claude Code 从当前分支创建拉取请求到 main,并附带详细描述,确保工作被妥善跟踪。

[!注意] 在让代理实现之前,也值得提示 Claude Code 交叉检查细节,看是否存在过度工程的部分(记住——它可能过于积极)。如存在过度工程的组件或决策,可要求 Claude Code 解决。确保 Claude Code 遵循 constitution 作为建立计划时必须遵守的基础文件。

步骤 6:实现

准备就绪后,使用 /implement 命令执行实现计划:

  1. /implement

/implement 命令将:

  • 验证所有前提条件已就位(constitution、规范、计划与任务)
  • tasks.md 解析任务分解
  • 按正确顺序执行任务,尊重依赖与并行执行标记
  • 遵循任务计划中定义的 TDD 方法
  • 提供进度更新并适当处理错误

[!重要] AI 代理将执行本地 CLI 命令(如 dotnetnpm 等)——请确保你本地已安装所需工具。

实现完成后,测试应用并解决任何运行时错误(如浏览器控制台错误),这些错误可能在 CLI 日志中不可见。可将此类错误复制粘贴回 AI 代理以解决。


🔍 故障排除

Linux 上的 Git 凭据管理器

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

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

👥 维护者

💬 支持

如需支持,请打开 GitHub issue。我们欢迎错误报告、功能请求以及有关使用 Spec-Driven Development 的问题。

🙏 致谢

本项目深受 John Lam 的研究与工作影响。

📄 许可证

本项目采用 MIT 开源许可证授权。请参阅 LICENSE 文件了解完整条款。