推荐路径

按路径掌握 Spec-First 开发

如果你刚认识 Spec Coding,或需要给同事一条从模糊需求到可评审规格的最短路线,就用这一页。

最近更新:2026-05-19

选择路径

理解方法

弄清从 spec.md 到任务、实现、证据和 AI 编码评审的 SDD 链路。

打开 SDD Hub

把规格放进仓库

当规格需要随代码评审、在 PR 中引用,并和测试证据绑定时,使用 Spec as Code 路径。

打开 Spec as Code

编写 API 契约

用于 schema、错误分类、兼容性、版本策略、Webhook、SDK 和客户端安全。

打开 API 契约 Hub

让验收可测试

把模糊成功描述改成 Given/When/Then、失败路径和发布证据。

打开验收标准 Hub

控制 AI 辅助编码

在代码合并前连接 Prompt、风险登记、允许文件、测试证据和评审门禁。

打开 AI 治理 Hub

五步路径

命名决策

写团队真正承诺的行为,而不是任务清单或 UI 偏好。

设定非目标

明确这次发布不会改变什么,避免实现过程中悄悄扩大范围。

让验收可观察

用示例、失败路径、fixture、日志、截图或指标,让评审者可以检查。

选择正确产物

按场景选择功能、API 或 DB 模板;生成器只用于快速起草第一版结构。

合并前附上证据

不要把“通过评审”当成证明。把测试、日志、上线门禁或人工检查链接到规格。

推荐资源

功能规格模板

用一页写清目标、非目标、验收标准、边界情况和回滚说明。

复制模板

Spec as Code 主题 Hub

学习 spec.md 应该放在哪里、如何随代码评审,以及如何连接 CI 证据。

阅读 Hub

规格生成器

把零散笔记转成可编辑 Markdown,再手动收紧证据和负责人字段。

打开生成器

规格评审清单

实现前检查范围、依赖、上线、回滚和测试证据。

使用清单

SDD 工具模式

在选择流程重量之前,对比 OpenSpec、Superpowers 和 GitHub Spec Kit 的可复用模式。

对比工具

什么时候值得写 Spec

当一个改动可能以多种合理方式失败时,就值得先写 Spec。典型场景包括客户数据、资金、权限、公开 API、数据库迁移、后台任务、发布开关,以及 AI 生成代码。简单文案修改可以只用清单;退款流程、schema 迁移、合作方接口、通知偏好模型和队列消费者,都应该先有一条书面决策路径。

最快的判断方法是:如果评审者即使通过 PR,仍可能对“期望行为”有不同理解,那就先写规格。Spec 不需要提前决定所有实现细节,但必须写清行为、边界、负责人,以及什么证据能证明这次变更可以发布。

谁负责看什么

产品或负责人

确认目标、非目标、用户可见行为,以及这次发布明确不接受哪些取舍。

研发

检查 API、数据、权限、兼容性、发布顺序、回滚条件和实现约束。

QA 或支持团队

把验收标准转成测试用例、fixture、人工检查和支持团队能识别的失败路径。

AI 编码评审者

检查生成代码是否只改允许文件、是否遵守非目标,以及是否交付了规格要求的证据。

示例:退款工作流

退款流程适合作为第一份练习,因为失败模式很具体。模糊 ticket 只会写“允许用户退款订单”;可评审 Spec 会决定退款窗口、重复请求处理、支付渠道超时状态、客服 override、事件发送、审计日志,以及什么上线指标应该触发暂停。

Spec-First 版本仍然可以很短:已捕获款项 90 天内可退款;同一个 idempotency key 重复请求返回同一个 refund id;支付渠道超时进入 pending confirmation;如果 15 分钟内重复退款尝试超过阈值,就暂停发布。这样产品、研发、QA、支持和 AI 编码工具都能在同一个边界内工作。

# 退款工作流验收切片

Given 一笔 90 天内的已捕获款项
When 使用新的 idempotency key 发起退款
Then 创建一条 refund 记录,发送一次 refund_requested 事件,
并写入包含 actor、charge_id、refund_id 和 reason 的审计日志。

Given 同一个请求用相同 idempotency key 重放
When 服务再次收到请求
Then 返回已有 refund_id,并且不再发送第二次事件。

AI 交接提示词

使用 AI 编码工具时,先贴规格,再要求写代码。边界要清楚到模型可以被评审:允许修改哪些文件,哪些行为不在范围内,哪些测试算作证据,如果规格不清楚时应该先提问还是自行假设。

请把下面的 Spec 作为唯一事实来源。

规则:
- 不要实现非目标之外的行为。
- 只修改 Allowed files 中列出的文件。
- 如果需求有歧义,先提问,不要直接实现。
- 每条验收标准都要有测试。
- 最后返回变更文件、测试命令和证据摘要。

Spec:
[粘贴已评审的规格]

第一次落地顺序

第一次推行时,不要要求团队一次性改掉所有流程。先选择一个真实但风险可控的需求,把 ticket 里原本最容易口头沟通的部分写成 Spec:目标、非目标、验收标准、边界情况和证据。评审时只问三个问题:行为是否清楚,失败路径是否可测试,合并前需要什么证据。

完成一次后,把最终 Spec、PR、测试结果和上线观察记录放在一起复盘。保留真正帮到评审的字段,删掉没人维护的字段。Spec-First 的重点不是多写文档,而是让团队在实现前先做出可检查的工程决定。

FAQ

第一篇应该先看什么?

如果你刚接触这个方法,先看 Spec-First 开发 Hub,然后根据眼前工作选择模板。

最小可用 Spec 要写到什么程度?

多数低风险工作只需要一页:目标、非目标、验收标准、边界情况、负责人和证据。

工具应该放在流程哪里?

工具适合快速起草结构,但输出后仍要人工补齐真实负责人、测试证据和发布边界。

如何和 AI 编码工具一起用?

把规格、非目标、允许修改的文件和验收证据交给 AI。评审边界不清楚前,不要直接要求实现。

下一张真实 ticket,先选模板,再在生成代码或实现前跑一遍评审清单。