spec-kit 是 GitHub 官方的规格驱动开发(SDD)工具包。核心是一次刻意的反转:不再先写代码、把规格当成会腐烂的文档,而是让规格成为唯一真相源,把代码当作由规格生成的产物。支撑这个闭环的,是一个叫 Specify 的 Python CLI,加上一组你的 AI agent 来执行的斜杠命令。关键在于:spec-kit 本身不是 agent,它是脚手架,给你已经在用的任意 agent(Copilot、Claude Code、Cursor、Gemini CLI 等)一套结构化工作流。
它解决什么问题
多数 AI 编码会话会”跑偏”。你描述一个功能,agent 写了代码,再过三轮提问,没人说得清当初约定的行为是什么。spec-kit 用”代码之前先有产物”来治这种跑偏:一份设定项目原则的 constitution、一份捕捉需求的 spec、一份钉死技术方案的 plan、一份排出工作顺序的 task 列表。每一份都是仓库里的真实文件,能在 PR 里评审,现实变了就能重新生成。这是它耐久的价值,也是为什么一个”工具包”不自带模型也能冲到六位数 star。
工作流
命令对应各阶段:
/speckit.constitution写出.specify/memory/constitution.md,即项目的治理原则。/speckit.specify在specs/<feature>/spec.md下产出功能规格。/speckit.plan生成plan.md、data-model.md和contracts/。/speckit.tasks把 plan 拆成带依赖和并行标记的tasks.md。/speckit.implement执行这些任务。
中间的 /speckit.clarify 步骤可选,但对欠明确的地方推荐用。产物是一棵目录树(.specify/ 放 memory、模板和脚本;specs/NNN-feature/ 放各功能产物),通常会提交进仓库,让整个团队共享同一个真相源。
安装
spec-kit 通过 uv 安装,而非直接 pip:
# 持久安装
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
# 或临时运行
uvx specify init my-project --ai claude
--ai(或 --integration)选择你的 agent。支持清单很长:Copilot、Claude Code、Gemini CLI、Cursor、Cline、Windsurf、Roo Code、Codex CLI、Kiro、opencode、Qwen Code 等等,未列出的还有通用兜底。模板打包在 wheel 里,所以离线环境也能装。
为什么”agent 中立”的设计重要
这是最值得停留的角度。spec-kit 不押注哪个 agent 会赢。它通过每个宿主自己的扩展机制(Claude Code 的 skills、Copilot 的斜杠命令、Cursor 的 rules)把同一套 SDD 产物适配过去。你换 agent 时,spec、plan、tasks 跟着走。这种可移植性很少见,也是团队选它而不是选一个焊死在单一工具上的工作流的现实理由。
适合与不适合
适合:那种”对不齐就代价高昂”的多步功能、希望 AI 工作留下可评审痕迹的团队、有合规需求的场景(preset 系统能强制审计和模板)。对于单文件脚本或用完即弃的原型则是杀鸡用牛刀,仪式成本高于收益。它也不替你写代码:你仍要通过 clarify、plan、implement 和你的 agent 一起迭代。spec-kit 结构化这场对话,而不取代它。
横向对比
| 项目 | 是什么 | 背书 |
|---|---|---|
| github/spec-kit | SDD 工具包,agent 中立,斜杠命令工作流 | GitHub 官方 |
| BMAD-METHOD(bmad-code-org) | 带角色 agent 的敏捷方法 | 社区 |
| taskmaster(eyaltoledano/claude-task-master) | AI 编码的任务管理层 | 社区 |
| Kiro(AWS) | 规格驱动的 IDE/agent | 厂商产品 |
spec-kit 的差异点是 GitHub 官方背书,以及对 agent 的明确中立。BMAD 和 taskmaster 在”结构化工作”这一目标上有重叠,但绑定某一特定流程或工具更紧。
issue 里的坑
发版节奏很快(0.10.x 在 2026 年 6 月初多次发布),活跃 issue 集中在一个主题:扩展和模板在多 agent 间的状态同步。
- 把项目从 Copilot 切到 Claude 时,声明过的 git 扩展可能没装上,因为 skill 文件没落到
.claude/skills/。0.10.0 版本把 git 扩展改为 opt-in 来化解这点。 - 当团队自定义脚本被记录在 manifest 里时,
specify integration use可能把它们覆盖,因为 hash 校验并不总能区分”打包的默认值”和”刻意的自定义”。 - marketplace 模式下 preset 的 skill override 有时被跳过,导致 preset 命令悄悄失效。
规律是:spec-kit 在生成产物上很扎实,在保持多 agent 安装同步上较粗糙。如果你对同一仓库跑多个 agent,升级后请重新确认扩展是否正确注册。
相关阅读
spec-kit 面向 anomalyco/opencode 这类 agent,也天然搭配 anthropics/skills、obra/superpowers 这类 skill 合集:后者编码”怎么执行”,spec-kit 钉死”做什么”。