Spec Kit 安装与使用全流程指南

5,929 阅读8分钟

Spec Kit 是 GitHub 官方开源的规范驱动开发(Spec-Driven Development, SDD) 工具包,通过“规范→计划→任务→实现”的结构化流程,将 AI 从“代码生成工具”转变为“软件开发伙伴”。以下是完整的安装与使用步骤,覆盖环境准备、安装、初始化、核心工作流实战技巧


一、环境准备

在安装 Spec Kit 前,需确保系统满足以下条件:

  1. 操作系统:支持 Linux、macOS(或 Windows 上的 WSL2);
  2. Python:版本 ≥ 3.11(需安装 uv包管理器,用于安装 Spec Kit CLI);
  3. AI 编程代理:选择一款支持的 AI 工具(如 Claude Code、GitHub Copilot、Cursor、Gemini CLI 等);
  4. 版本控制:安装 Git(用于项目版本管理)。

二、安装 Spec Kit

Spec Kit 的安装通过 uv工具完成,分为全局安装项目初始化两步:

1. 全局安装 Spec Kit CLI

打开终端,执行以下命令安装 specify-cli(Spec Kit 的命令行工具):

uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
  • 验证安装:执行 specify --version,若输出类似 specify-cli @ git+https://github.com/github/spec-kit.git的版本信息,则安装成功。

2. 解决“命令未找到”问题(可选)

若安装后执行 specify提示“command not found”,需将工具路径添加至系统 PATH

  • macOS/Linux:找到 uv工具路径(执行 uv tool list --verbose),将 bin目录添加至 ~/.zshrc~/.bashrc

    echo 'export PATH="/opt/homebrew/Cellar/uv/0.7.6/libexec/tools/specify-cli@0.1.0/bin:$PATH"' >> ~/.zshrc
    source ~/.zshrc
    
  • Windows:通过 WSL2 安装后,路径会自动添加至 PATH,无需额外配置。


三、初始化项目

Spec Kit 支持新项目现有项目两种初始化方式:

1. 新项目初始化

若从零开始创建项目,执行以下命令:

specify init <PROJECT_NAME> --ai <AI_AGENT>
  • •示例:specify init my-task-app --ai claude(创建名为 my-task-app的项目,使用 Claude Code 作为 AI 代理);
  • •效果:在当前目录生成 Spec Kit 项目结构(.specify/specs/等目录)。

2. 现有项目初始化

若在已有项目中集成 Spec Kit,进入项目根目录执行:

specify init . --ai <AI_AGENT>
  • •注意:使用 .表示在当前目录初始化,不会创建新子文件夹;建议先备份项目或使用 Git 版本控制,以防覆盖已有文件。

四、核心工作流:从“想法”到“代码”

Spec Kit 的核心流程通过5个斜杠命令驱动,覆盖“规范定义→计划生成→任务分解→代码实现→质量检查”全链路。以下以“任务管理应用”为例,演示完整流程:

1. 第一步:制定项目“宪法”(/speckit.constitution)

  • 作用:定义项目的最高准则(如技术栈、代码质量、性能要求),确保 AI 生成的所有内容符合团队规范;

  • 命令:在 VS Code 的 AI 助手里输入 /speckit.constitution

  • 实战示例(任务管理应用):

    “优先使用原生 Web API,避免非必要的第三方库;所有代码必须遵循 TDD(测试驱动开发)模式,测试覆盖率不低于90%;UI 响应时间保持在100ms以内。”

  • 输出:AI 生成 .specify/memory/constitution.md,记录上述原则,后续所有步骤均需遵守。

2. 第二步:定义功能需求(/speckit.specify)

  • 作用:将模糊的用户需求转化为可测试、无歧义的功能规格,包含用户故事、功能需求、成功标准

  • 命令:输入 /speckit.specify,描述功能需求;

  • 实战示例(任务管理应用):

    “构建一个任务管理应用,用户可以创建任务、分配优先级(高/中/低)、设置截止日期,并标记任务完成。任务可以按优先级和截止日期过滤。”

  • 输出:AI 在 specs/001-task-management/spec.md生成详细功能规范,包括:

    • 用户故事:“作为用户,我希望能创建任务,输入任务名称、优先级、截止日期,点击‘创建’后保存到列表中”;
    • 功能需求(FR) :“FR-001:系统必须允许用户创建任务;FR-002:任务必须支持优先级(高/中/低)设置”;
    • 成功标准(SC) :“SC-001:任务创建的响应时间应小于100ms;SC-002:任务列表必须正确显示优先级标签”。

3. 第三步:生成技术方案(/speckit.plan)

  • 作用:基于功能规范,AI 自动生成详细的技术实现计划,包括数据模型、接口契约、外部依赖、性能/安全要求

  • 命令:输入 /speckit.plan,指定技术栈(如“使用原生 JavaScript 和 Web Components 构建 UI,数据存储在 IndexedDB 中”);

  • 输出:AI 在 specs/001-task-management/目录下生成:

    • plan.md:架构决策(如“使用 Web Components 实现组件化开发”)、技术选型(如“IndexedDB 存储任务数据”);
    • data-model.md:IndexedDB 中 tasks表的结构定义(如“id(主键)、name(任务名称)、priority(优先级)、dueDate(截止日期)”);
    • quickstart.md:项目本地环境设置指南(如“运行 npm install安装依赖,npm run dev启动应用”)。

4. 第四步:分解任务列表(/speckit.tasks)

  • 作用:AI 将技术方案自动分解可执行的任务单元,每个任务包含前置条件、执行步骤、依赖关系

  • 命令:输入 /speckit.tasks

  • 输出:AI 生成 specs/001-task-management/tasks.md,包含分阶段任务:

    • 阶段1:项目设置:“创建项目目录结构、安装依赖(如 web-components库)”;
    • 阶段2:数据库初始化:“创建 IndexedDB 数据库、定义 tasks表结构”;
    • 阶段3:核心 CRUD 功能:“实现任务创建接口、任务列表展示组件、任务过滤功能”。

5. 第五步:执行任务生成代码(/speckit.implement)

  • 作用:AI 逐一执行任务列表中的任务,自动编写代码、创建文件、运行测试,并实时报告进度;

  • 命令:输入 /speckit.implement

  • 实战体验

    • •AI 自动创建 src/components/task-list.js(任务列表组件)、src/db/database.js(IndexedDB 封装)等文件;
    • •每完成一个任务,在 tasks.md中打勾(如“任务1:项目设置完成”);
    • •开发者只需审查代码是否符合规范,无需手动编写重复代码。

五、质量保障:避免“代码与需求脱节”

Spec Kit 提供3个辅助命令,确保代码质量与需求一致性:

1. /speckit.clarify:消除需求模糊点

  • 作用:AI 主动识别规范中的模糊点(如“任务过滤的逻辑”“优先级的显示方式”),通过选择题让用户澄清;
  • 示例:若规范中“任务过滤”描述模糊,AI 会提问:“任务过滤是否支持多条件组合(如‘高优先级+截止日期本周’)?”用户选择后,AI 将答案更新到规范中。

2. /speckit.analyze:检查一致性与完整性

  • 作用:分析规范、计划、任务之间的一致性(如“技术方案是否覆盖了所有功能需求”“任务是否遗漏了依赖关系”),生成一致性报告
  • 示例:若计划中的“数据模型”未包含“任务创建时间”字段,而规范中“成功标准”要求“显示任务创建时间”,AI 会提示“需补充‘created_at’字段到数据模型”。

3. /speckit.checklist:生成需求满足检查清单

  • 作用:基于规范生成需求满足检查清单(如“是否实现了任务创建功能?”“是否验证了任务优先级?”),辅助人工审查;
  • 示例:清单包含“FR-001:任务创建功能是否实现?”“SC-001:任务创建响应时间是否小于100ms?”等项目,开发者只需逐一勾选确认。

六、实战技巧:提升开发效率

  1. 1.优先使用“宪章”约束 AI:在 /speckit.constitution中明确“禁止使用未授权的第三方库”“必须支持本地存储”等原则,避免 AI “自由发挥”;
  2. 2.迭代优化规范:若生成的代码不符合需求,无需修改代码,只需更新规范(如“任务过滤需支持多条件组合”),然后重新运行 /speckit.plan/speckit.implement
  3. 3.开启“yolo 模式” :在 /speckit.implement时选择“yolo 模式”(全程托管),让 AI 自动执行所有任务,开发者只需在最后审查代码,进入“心流”状态;
  4. 4.利用“压缩视图” :对于老项目,先让 AI 文档化现有代码库(如“分析 src/目录结构、识别核心模块”),生成“压缩视图”(.specify/specs/000-existing-system/research.md),后续开发均参考该视图,避免“代码与需求脱节”。

七、常见问题解决

  1. 1.安装后“specify”命令未找到:参考“二、安装 Spec Kit”中的“解决‘命令未找到’问题”步骤,将工具路径添加至 PATH
  2. 2.AI 生成的代码不符合规范:检查规范是否明确(如“是否遗漏了测试覆盖率要求”),若规范模糊,使用 /speckit.clarify澄清;
  3. 3.需求变更后如何更新:修改规范(如“添加任务排序功能”),然后重新运行 /speckit.plan(生成新的技术方案)、/speckit.tasks(分解新任务)、/speckit.implement(生成新代码),实现“需求→代码”的同步演化。

总结

Spec Kit 的核心价值在于将“需求”转化为“可执行的规范” ,让 AI 从“代码生成工具”转变为“软件开发伙伴”。通过“规范→计划→任务→实现”的流程,开发者无需再纠结“如何写代码”,只需聚焦“做什么”(业务目标),AI 会自动完成“如何做”(技术实现)。无论是新项目还是老项目,Spec Kit 都能大幅提升开发效率,降低“代码与需求脱节”的风险。