Skip to content

SpecKit 入手指南-概念篇

SDD(规范驱动开发)正在让 Vibe Coding 走在正确的方向上 中我们提到了 SDD 的诞生背景和核心理念, 强调了规范驱动开发的核心是使用规范来生成代码从而实现需求。

在这篇文章中我们将介绍如何使用 Cursor + SpecKit 进行规范驱动开发。

SpecKit 专注于对新项目的规范驱动开发, 如果你现在正在维护一些存量项目, 你可以参考 xxx, xxx。

简介

spec-kit 是由 GitHub 官方团队开发并维护的开源项目,全称为“💫 Toolkit to help you get started with Spec-Driven Development”(帮助你开始规范驱动开发的工具包)。它采用 MIT 开源协议,主要语言为 Python。 旨在帮助开发者和团队更高效地进行产品和技术开发。它通过“规范”来驱动需求、设计、开发和协作流程,将“需求文档”、“产品规范”与“代码实现”紧密结合起来。

解决的问题

  • 需求与实现割裂:解决了需求文档与代码实现脱节的问题,让所有流程围绕“规范”展开。
  • 协作低效:解决跨角色沟通(产品、开发、测试)低效、易混乱的问题。
  • 工程落地难:通过标准化工具和流程,降低规范落地的门槛,提高开发速度。
  • 智能化不足:引入 AI 助力,提升自动化程度,减少重复劳动。

核心概念

  • 意图驱动开发,其中规范在“如何”之前定义“什么”
  • 在组织原则指导下,利用保障措施创建详尽的规范说明
  • 多步骤细化,而非从提示中一次性生成代码
  • 对规范解释严重依赖高级 AI 模型能力

工作流

Spec Kit 的工作流旨在将模糊的需求通过一系列结构化的步骤,转化为高质量、可执行的代码,其核心在于“规范先行”。整个流程环环相扣,确保了开发过程的可控性与成果的可预测性。

结合 SDD 规范先行的本质, SpecKit 提供了一套完整的工作流, 包括:

1. 立宪法(项目原则) (Constitution)

这是工作流的基石。你需要在这里定义项目的“根本大法”,为后续所有工作设定护栏和方向。 注意这里还没有到需求层面, 只是一些项目原则和不可协商的规则。

  • 目的:确立项目在代码质量、安全、性能、架构等方面的核心原则和不可协商的规则
  • 命令:/speckit.constitution
  • 关键产出:.specify/memory/constitution.md 文件。例如,你可以规定:“所有代码必须用TypeScript编写,禁用any类型;必须编写单元测试;UI组件使用React函数式组件。”在后续所有阶段,AI都会严格遵守这些原则。

2. 编写规范(Specify)

在此阶段,你只关注“做什么”(What)和“为什么”(Why),而不是“怎么做”(How)。

  • 目的:将模糊的想法或需求转化为结构化的、无歧义的功能规格说明书,重点关注用户价值和验收标准。
  • 命令/speckit.specify
  • 关键产出specs/<功能名称>/spec.md 文件并触发内置脚本创建一个新的仓库分支,例如001-create-taskify。这份文档通常包含用户故事功能需求列表验收标准。例如,描述“用户可以将商品加入购物车”,而不是“需要创建一个addToCart的API接口”。

3. 做计划(Plan)

要将规格转化为具体的技术方案。这一阶段是连接需求与实现的桥梁。

  • 目的:基于规格说明书,制定具体的技术架构、数据模型、技术选型和实施策略。
  • 命令/speckit.plan
  • 关键产出specs/<功能名称>/plan.md,通常还会伴随产生 data-model.md(数据模型)、api.md(API合约)等文档。例如,决定使用Vite构建前端,数据存储在IndexedDB中,并设计出核心的数据表和组件结构。

4. 分解任务(Tasks)

将宏大的技术方案分解为具体、可执行、有优先级和依赖关系的开发任务清单。

  • 目的:创建一份清晰、原子化的开发路线图,使实现过程可控、可追踪。
  • 命令/speckit.tasks
  • 关键产出specs/<功能名称>/tasks.md 文件。这个文件会将工作分解为多个阶段(如设置、基础、功能实现、优化),每个任务都有唯一的标识符(如T001)、描述、预估时间和依赖关系。

5. 实现代码(Implement)

这里才到AI大显身手的阶段,它像一名严格的开发员,依据前序所有规划自动生成代码。

  • 目的:让AI代理按照任务清单自动执行编码任务,确保代码符合宪法和规格。
  • 命令/speckit.implement
  • 过程:AI会逐个读取tasks.md中的任务,并开始编写代码、创建文件、运行命令。它会在终端实时报告进度,并在完成后标记任务为完成。最佳实践是分阶段实现,每完成一个阶段就进行验证,确保项目始终处于可运行状态。

✨ 增强步骤(可选但强烈推荐)

为了进一步提升成功率,可以在关键节点插入以下增强步骤:

  • 澄清 (Clarify):在“写规格”之后运行/speckit.clarify,AI会主动识别规格中的模糊点,并以选择题或简答题形式向你提问(例如,“任务的优先级有几种?具体是哪几种?”)。这将需求歧义和返工风险前置解决。
  • 一致性分析 (Analyze):在“拆任务”之后、正式“实现”之前运行/speckit.analyze。AI会全面检查宪法、规格、计划和任务文档之间是否存在逻辑矛盾或违反原则的地方,充当一个自动化的质量闸门。
  • 质量检查清单 (Checklist):它通常在生成技术方案(/speckit.plan)之后、开始实现之前进行,扮演着“质量闸门”的角色

和 OpenSpec 的区别

Spec Kit 和 OpenSpec 虽然都致力于通过规范驱动开发来解决 AI 编程中的不确定性,但它们在设计哲学、工作流程和适用场景上有着显著的不同。

  1. 核心定位:
    • Spec Kit:企业级治理工具,强调流程标准化,
    • OpenSpec:轻量级敏捷框架,强调变更隔离与快速迭代。
  2. 设计哲学:
    • Spec Kit:规格即代码工件”:提供结构化、线性的工作流,
    • OpenSpec “变更隔离”:将当前事实规格与变更提案分离管理。
  3. 工作流程:
    • Spec Kit:严格的多阶段线性流程(如:宪法→规格→计划→任务→实现),
    • OpenSpec 灵活的三步敏捷循环(提案→应用→归档)。
  4. 流程特点:
    • Spec Kit:类似瀑布模型,每一步都有明确的产出和质量门禁,严谨但稍显繁重,
    • OpenSpec 类似敏捷冲刺,迭代速度快,侧重快速对齐和实现
  5. 理想场景
    • Spec Kit:大型团队、全新项目(绿地开发)、有严格合规和审计要求的场景
    • OpenSpec 小型敏捷团队、现有项目(棕地开发)、需要快速原型验证和迭代的场景
  6. 学习曲线​
    • Spec Kit:相对陡峭,需要理解多阶段流程和规范文档结构,
    • OpenSpec 相对平缓,适合敏捷团队快速上手。
  7. 适用阶段
    • Spec Kit:适合项目初期(宪法制定)和需求明确后的规范制定
    • OpenSpec 适合项目迭代中(变更提案与应用)和快速原型验证阶段

Spec Kit 像是一位经验丰富的资深架构师,为你规划好每一步的蓝图并确保万无一失;而 OpenSpec 则更像一位高效的敏捷开发者,能与你快速对齐意图并立即投入实战。


关注我, 下一篇我们将介绍 SpecKit 的实战案例, 敬请期待。

公众号会持续输出,欢迎关注。 如果对你有帮助,欢迎点赞、收藏、关注。