speckit-guide

5 阅读4分钟

Spec Kit 安装与使用指南

文档定位:Spec Kit 的安装、初始化、需求规格、技术计划、任务拆分、实现推进、测试 bug 修复和收尾说明。


1. Spec Kit 是什么

Spec Kit 是 GitHub 推出的规格驱动开发工具集。它通过 specify CLI、模板、脚本和 agent 命令,把需求先转成规格、计划和任务,再让 AI 或开发者按这些文件实现。

核心流程

Specify → Plan → Tasks → Implement

团队真实项目中建议扩展为:

Constitution → Specify → Clarify → Plan → Checklist → Tasks → Analyze → Implement → Converge → Self Test

与 OpenSpec / Superpowers 的关系:Spec Kit 管规格驱动项目模板(spec/plan/tasks);OpenSpec 管变更档案(proposal/spec/design/tasks);Superpowers 管 AI 执行纪律。三者搭配方式见 superpowers-guide.md §3

2. 安装 Specify CLI

推荐使用 GitHub 仓库来源安装,不要安装 PyPI 上非官方维护的同名包。

使用 uv(推荐):

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

临时试用:

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

使用 pipx

pipx install git+https://github.com/github/spec-kit.git
specify version

3. 初始化项目

进入项目根目录:

cd <project-root>

初始化 Codex skills:

specify init . --integration codex --integration-options="--skills" --script sh

如果目录非空且确认要合并模板:

specify init . --force --integration codex --integration-options="--skills" --script sh

如果只是想生成模板,不依赖本地 agent 检测:

specify init . --force --integration codex --integration-options="--skills" --script sh --ignore-agent-tools

初始化后常见目录

.specify/
.specify/memory/constitution.md
.specify/scripts/bash/
.specify/templates/
.agents/skills/speckit-specify/SKILL.md
.agents/skills/speckit-plan/SKILL.md
.agents/skills/speckit-tasks/SKILL.md
.agents/skills/speckit-implement/SKILL.md

4. 命令在哪里执行

Spec Kit 分两类操作:

类型执行位置示例
安装和初始化Terminalspecify init . --integration codex
需求、计划、任务、实现Codex 对话框$speckit-specify$speckit-plan

当前项目如果使用 Codex skills,命令通常写成:

$speckit-specify
$speckit-plan
$speckit-tasks
$speckit-implement

官网文档中常见 slash command(如 /speckit.specify),两者含义接近,只是当前 Codex 环境的触发方式不同。

5. 命令与产物

命令主要产物用途
$speckit-constitution.specify/memory/constitution.md创建或更新项目原则
$speckit-specifyspecs/<feature>/spec.md根据 PRD 生成需求规格
$speckit-clarify更新 spec.md澄清需求歧义
$speckit-planplan.mdresearch.mddata-model.mdcontracts/quickstart.md生成技术实现方案
$speckit-checklistchecklists/<domain>.md生成需求质量检查清单
$speckit-taskstasks.md生成可执行任务拆分
$speckit-analyze对话输出分析报告实现前检查 spec / plan / tasks 一致性
$speckit-implement业务代码、测试、SQL、配置等tasks.md 执行实现
$speckit-converge追加 convergence tasks实现后收敛缺口

6. 推荐流程

1. 切任务分支
2. 如项目首次接入或规则变化,执行 $speckit-constitution
3. 执行 $speckit-specify 生成 spec.md
4. 执行 $speckit-clarify 澄清歧义
5. 执行 $speckit-plan 生成技术方案
6. 执行 $speckit-checklist 检查需求质量
7. 根据 checklist 补齐 spec.md
8. 执行 $speckit-tasks 生成任务拆分
9. 执行 $speckit-analyze 做一致性检查
10. 根据 analyze 补齐 spec / plan / tasks
11. 执行 $speckit-implement
12. 执行 $speckit-converge
13. 如 converge 追加任务,再执行 $speckit-implement
14. 交付前 review 和自测

7. 常用提示词

场景提示词
生成 spec$speckit-specify PRD:<PRD 链接或内容>。请只生成需求规格,不进入实现。请明确 Out of Scope。
生成 plan$speckit-plan 请基于当前仓库技术栈、目录结构、数据库变更方式和测试框架生成实现方案。不要更换技术栈。
生成 tasks$speckit-tasks 请基于当前 spec.md 和 plan.md 生成可执行 tasks.md。任务必须包含具体文件路径、依赖顺序、测试任务和验证命令。
实现$speckit-implement 请按 tasks.md 顺序执行,并汇总完成项、阻塞项、验证命令和结果。

8. 如何调整需求

需求调整指业务范围、验收口径或非目标变化。

操作顺序

收到需求调整
→ 回到 $speckit-specify 或直接更新 specs/<feature>/spec.md
→ 如有歧义,执行 $speckit-clarify
→ 如果影响技术实现,重新执行或更新 $speckit-plan 产物
→ 更新 $speckit-tasks 产物
→ 执行 $speckit-analyze 检查一致性
→ 再进入实现

提示词

需求有调整:<说明调整内容>。
请先更新 spec.md,明确新增、删除或修改的验收口径。
如果影响技术方案,请同步更新 plan.md、research.md、data-model.md 或 contracts。
最后更新 tasks.md,并执行 analyze 检查一致性。
不要直接改代码。

9. 如何调整技术方案

技术方案调整指业务需求不变,但实现方式变化。

操作顺序

发现技术方案需要调整
→ 对照 spec.md 判断业务行为是否变化
→ 业务行为不变:更新 plan.md / research.md / data-model.md / contracts
→ 业务行为变化:先回到 spec.md
→ 更新 tasks.md
→ 执行 $speckit-analyze

提示词

技术方案需要调整:<说明原方案和新方案>。
请先判断 spec.md 是否受影响。
如果业务验收口径不变,只更新 plan.md、research.md、data-model.md、contracts 和 tasks.md。
如果验收口径变化,先更新 spec.md。
更新后执行 analyze 检查一致性。

10. 如何调整 Tasks

如果不改变需求和技术方案,只调整执行步骤、任务拆分、测试顺序或验证命令,主要改 tasks.md

操作顺序

发现 tasks 不合理
→ 判断是否影响 spec.md
→ 判断是否影响 plan.md
→ 不影响时,只更新 tasks.md
→ 调整任务拆分、依赖顺序、测试命令和验收步骤
→ 执行 $speckit-analyze

提示词

tasks 需要调整:<说明问题>。
请先判断是否影响 spec.md 或 plan.md。
如果不影响,只修改 tasks.md。
请把任务拆得更可执行,补上 TDD 步骤、验证命令和预期结果。

11. 实现阶段

$speckit-implement 请按 tasks.md 顺序执行,遵守现有代码风格;不要做 PRD 外功能。完成后汇总已完成任务、未完成/阻塞项、验证命令和结果。

实现后收敛:

$speckit-converge 请对照 spec.md、plan.md、tasks.md 和当前代码检查是否还有未实现、部分实现或超范围实现。如有缺口,只追加 convergence tasks 到 tasks.md,不要直接改业务代码。

12. 测试提 Bug 处理

测试提 bug 后,先分类,不要直接改代码。

12.1 Bug 类型判断

Bug 类型判断标准Spec Kit 操作
实现缺陷spec.mdplan.md 已覆盖,但代码没做到更新 tasks.md,增加 bug 修复和回归测试任务
需求遗漏测试提出的是 spec.md 没写的新行为先更新 spec.md,必要时重新 clarify / plan / tasks
技术方案偏差需求没变,但 plan.md 的方案有问题更新 plan.mdresearch.mddata-model.mdcontracts,再更新 tasks.md
测试用例问题实现符合 spec.md,测试期望不对修测试并记录依据,不改业务需求

12.2 未合并 Feature 的处理流程

收到测试 bug
→ 复现 bug
→ 对照 spec.md 判断是否已有验收场景
→ 对照 plan.md 判断是否是方案问题
→ 更新 tasks.md,增加 bug 修复任务
→ 如需求或方案变化,同步更新 spec.md / plan.md
→ 执行 $speckit-analyze
→ 执行 $speckit-implement
→ 执行 $speckit-converge

12.3 已合并 Feature 的处理流程

新建 bugfix feature
→ $speckit-specify 记录 bugfix 需求
→ $speckit-plan 生成修复方案
→ $speckit-tasks 生成修复任务
→ $speckit-implement 执行修复

12.4 推荐提示词

测试提了 bug:<bug 描述>。
请先对照 spec.md 和 plan.md 判断它属于实现缺陷、需求遗漏、技术方案偏差还是测试用例问题。
如果是实现缺陷,只更新 tasks.md,增加失败测试和修复任务。
如果是需求遗漏,先更新 spec.md。
如果是方案偏差,先更新 plan.md 和相关设计产物。
更新后执行 $speckit-analyze,再按 TDD 修复。

13. 交付前检查

请基于 spec.md、plan.md、tasks.md、quickstart.md 和当前代码做交付前 review:
1. 功能是否完整;
2. 是否还有未完成任务或阻塞项;
3. 需要执行哪些测试命令;
4. 当前分支是否可以提测。

14. 参考链接