Claude 结合 spec-kit 使用指南

0 阅读6分钟

一、spec-kit 简介

spec-kit 是 github 开源的一个工具包,用于实现规格驱动开发(Spec-Driven Development)。它与 AI 编码工具(如GitHub Copilot、Claude Code、Gemini CLI)集成,帮助开发者构建更高质量的软件。

解决的核心痛点:

1)"氛围编码"问题:传统 AI 编码中,你描述目标,得到代码块,但往往"看起来对,但实际不工作"

2)缺乏结构化流程:从想法到实现缺乏清晰的步骤和检查点

3)质量不一致:生成的代码缺乏统一的质量标准和测试覆盖

主要功能:

1)规格优先开发:先写规格说明,再生成代码

2)四阶段工作流:Specify(规格化) → Plan(规划) → Tasks(任务分解) → Implement(实现)

3)强制测试驱动开发(TDD):必须先生成测试,再生成实现代码

4)与 AI 工具无缝集成:支持 Claude Code、GitHub Copilot 等

二、安装 spec-kit

官方文档:github.com/github/spec…

spec-kit 的安装通过 uv 工具完成,在 powershell 执行以下命令:

# 安装 uv,需要魔法访问到 GitHub,需要外网环境,不然会报错
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# 验证 uv
uv --version

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

# 验证安装
specify --help

通过 uv 直接安装时,可能会遇到 git 网络连接失败失败的问题

可以先手动克隆仓库,再本地安装:

1)在 git bash 执行以下命令

# 克隆仓库到E盘(路径可自定义)
git clone https://github.com/github/spec-kit.git E:\spec-kit

2)从本地仓库安装 specify-cli,在 powershell 执行以下命令,仓库路径要准确

uv tool install specify-cli --from E:\spec-kit\spec-kit

安装后执行specify --help出现各种信息,即表示安装成功

三、构建项目地基

项目初始化

spec-kit 支持新项目现有项目两种初始化方式:

  1. 新项目初始化

若从零开始创建项目,执行以下命令:specify init <PROJECT_NAME> --ai <AI_AGENT>

  • 示例:specify init my-task --ai claude,创建名为 my-task 的项目,使用 Claude Code 作为 AI 代理)
  • 效果:在当前目录生成 spec-kit 项目结构,如 .specify/、specs/ 等目录
  1. 现有项目初始化

若在已有项目中集成 spec-kit,进入项目根目录执行:specify init . --ai <AI_AGENT>

  • 使用 .表示在当前目录初始化,不会创建新子文件夹;建议先备份项目或使用 Git 版本控制,以防覆盖已有文件

初始化完成后,项目目录中会生成 .specify 目录,包含以下结构:

  • memory/:存储项目级原则和规范
  • scripts/bash/:spec-kit 的调用脚本
  • template/: 执行命令时使用的模板文件

制定项目宪章(/speckit.constitution)

在当前项目目录 claude 下,输入:

/speckit.constitution 阅读当前项目,根据以下要求和目前项目技术栈,创建一个中文的项目宪章
- 技术栈约定:语言版本、框架、数据库、ORM、测试框架、Lint 工具等
- 代码结构:目录划分(domain/application/infrastructure/presentation 等)
- 命名规则:类、接口、函数、常量、文件命名约定
- 错误处理规范:自定义错误类型、日志要求、禁止静默失败等
- 测试策略:单元/集成/E2E 测试要求及覆盖率门槛
- 安全基线:输入验证、认证、授权、密码存储、密钥管理、速率限制、CORS 等
- Git 工作流:分支策略、提交规范、PR 与评审要求
- AI 使用指引:模糊规范必须先澄清、遵守 TDD、优先可读性、标注 TODO 等
- MCP 使用指南:有哪些团队希望使用的MCP,什么场景使用什么MCP工具等

执行完成后自动创建中文的项目宪章,如果生成的内容中有不满意或者想修改的部分,可以指挥 AI 继续修改或者手动改一改。 PS:constitution.md 是spec 里最重要的内容之一,它是让后续迭代符合基本要求的保证。

核心命令参考

所有 spec-kit 命令都以/speckit.开头:

命令用途描述使用时机
/speckit.constitution制定或更新项目级开发原则和指南项目初始化或引入新规范时
/speckit.specify明确需求范围和用户故事开始新功能开发时
/speckit.plan基于技术栈创建实施方案需求明确后
/speckit.tasks生成可执行的任务清单方案确定后
/speckit.implement按计划执行所有开发任务任务分解完成后
/speckit.clarify澄清需求中的模糊领域制定计划前
/speckit.analyze跨工件一致性和覆盖率分析任务生成后,实施前
/speckit.checklist生成质量检查清单需求验证阶段

常用的核心命令包括:specifyplantasksimplement

constitution主要用于项目初始化阶段或引入新的技术规范时,clarify用于补充说明需求中的边界条件,checklist生成验证清单,类似于文本形式的测试用例。

四、核心工作流

1.定义功能需求(/speckit.specify)

描述需要实现的需求:

/speckit.specify 构建一个任务管理页面,任务列表展示的字段有任务名称、任务创建人、紧急程度、任务状态、创建时间,任务可以通过下拉框按紧急程度和任务状态过滤。

执行完成后,可以看到项目已经新建了 1-task-list 分支,并且已经有了 spec.md 和预生成的 checklist 文件夹。

spec.md 将模糊的用户需求转化为可测试、无歧义的功能规格,包含用户故事、功能需求、成功标准等。spec.md 是 AI 整理后对需求的理解,如果觉得描述有不完善的地方,可以使用/speckit.clarify着重阐述。

2.生成技术方案(/speckit.plan)

描述想要如何实现需求:

/speckit.plan 过滤下拉框在上,列表在下。列表使用el-table实现,支持分页器分页,默认填充10条静态数据。

执行完成后多了以下一些产物,基于功能规范,AI 自动生成详细的技术实现计划,包括数据模型、接口契约、外部依赖、性能/安全要求

plan.md             plan.md 是 AI 整理后对如何实现的计划(技术方案规格书)
research.md         记录“为什么不这么做”和“为什么选择这个”
data-model.md       # [规划] 数据模型
quickstart.md       # [规划] 快速开始指南,让人/AI-agent快速明白该做什么

此时可以查看 plan.md 中的规划与设想是否相同

3.分解任务列表(/speckit.tasks)

输入:

/speckit.tasks

产物是 tasks.md,它将技术方案(Plan)拆解为 AI 和开发者可以一步步执行、可跟踪、可闭环的任务单元,每个任务包含前置条件、执行步骤、依赖关系。

4.执行任务生成代码(/speckit.implement)

输入:

/speckit.implement

AI 逐一执行任务列表中的任务,自动编写代码、创建文件、运行测试,并实时报告进度。开发者只需审查代码是否符合规范,一般通过测试就没什么问题。