把需求写成规格(Spec),再写代码

用规格驱动开发,
把交付写清楚。

Spec Coding 把决策从代码评审前移到编码前的设计阶段:在动手之前先定义验收标准、边界条件和反例——让产品、工程和 QA 在第一行代码上线前就对"完成"达成一致。

编码前明确 QA 可执行 跨团队对齐 抗漂移

从今天最需要的东西开始

把模糊需求变成可评审规格,先走最短路径:复制模板、生成初稿,或在实现前做一次检查。

复制

使用现成模板

从功能、API 或数据库规格结构开始,复制到项目仓库里再按团队习惯调整。

生成

把笔记变成规格

填写一个聚焦表单,生成包含目标、非目标、验收标准和边界条件的 Markdown。

评审

实现前先检查一次

用评审清单补齐范围、依赖、发布策略和测试证据,减少后面返工。

基础

Spec-First 开发路径

先理解方法,再进入范围、验收标准、评审门禁和发布证据。

契约

API 契约路径

用于 schema diff、兼容性、错误分类、版本策略、Webhook 和废弃计划。

测试

验收标准路径

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

AI 交付

AI 编码治理路径

把提示词、风险登记、验收标准和测试证据接起来,再让生成代码进入生产。

为什么要先写 Spec?

大多数返工不是因为代码写得差——而是因为假设没对齐。Spec 让隐藏的决策在实现之前变得可见,让每个人说"完成"时指的是同一件事。

减少返工

把边界条件提前写出来

不是写"应该可以",而是写"什么情况下必须成功/必须失败",返工率直接下降。

对齐验收

验收标准 = 测试用例

用 Given/When/Then 或 Checklist,把"可交付"变成可执行、可回归。

AI 更可控

让 AI 按"规格"生成代码

Spec 是稳定上下文。你给 AI 的不是聊天,而是可版本控制的事实来源。

3 步 Spec Coding 工作流

轻量流程,不搞复杂会议。每一步都能被复制、被审查、被复用。

步骤 1

写清楚:目标 / 非目标 / 验收

  • 一句话目标 + 反例(不做什么)
  • 验收标准(可测试/可复现)
  • 边界条件(空值、重复、并发、权限)
步骤 2

Spec → 任务拆解 → 测试清单

  • 把 Spec 拆成模块与接口
  • 先写测试/断言,再写实现
  • 每次只改一个模块,避免失控
步骤 3

让 AI "按规格"写代码,而不是"按心情"写

你把 Spec 当作唯一真实来源(Single Source of Truth),AI 只能在 Spec 约束范围内输出:不能擅自加功能、不能改字段、不能发散。这才是稳定的 AI 辅助开发方式。

团队如何把 Spec 放进日常流程

Spec Coding 最有价值的用法,不是多写一份文档,而是让一个短产物进入真实交付循环。

规划前

先找出第一个真实决策

从最小但最容易引发返工的问题开始:范围、权限、错误行为、数据迁移、上线方式或回滚判断。好的 Spec 会写清这个决策,并让负责人在排期前可见。

评审中

让评审者提交证据,而不是只发表意见

产品看非目标,研发看依赖和兼容,QA 把验收标准映射到测试,运维或客服检查失败路径。评审结束时,每个风险都应该有下一步。

发布后

把最终 Spec 留在代码和工单旁边

把交付后的规格链接到 issue、PR、发布说明或 Runbook。以后修改接口字段、边界条件或上线策略时,团队能看到当时为什么这样决定。

开箱即用的模板(复制就能用)

先用模板把”怎么写清楚”标准化,再慢慢长出你自己的团队规范。

功能规格

功能规格模板

Goal/Non-goals/Acceptance/Edge Cases/Output,一页写清。

打开页面
API 规格

接口规格模板

OpenAPI 结构 + 错误码约定 + 示例请求响应。

打开页面
数据规格

数据规格模板

字段、约束、索引、迁移策略、兼容性说明。

打开页面
一键复制区
template.md
点击上方任意「复制模板」按钮,这里会显示模板内容。

常见问题

你可能最关心的几个问题。

Spec 会不会太"文档化",拖慢节奏?

最贵的 spec 是你跳过的那份。一份短 spec 只要在代码评审前抓住一个范围歧义,就能省掉一周返工。从历史上给你造成最多生产问题的决策点开始写:验收标准、边界条件和回滚方案。

我已经用 AI 写代码了,还需要 Spec 吗?

越是用 AI,越需要 Spec。没有规格,AI 会发散:多写、多改、多加功能,最后更难收敛。Spec 是 AI 的"护栏"。

适合个人/小团队吗?

反而更适合。小团队最怕"上下文丢失"和"口头约定",Spec 让你过一周再回来也能秒捡起来。

需求中途变了怎么办?

更新 Spec 就好。Spec 本来就是活文档,不是刻在石头上的契约。用 git 管理版本,Spec 永远反映当前的真实需求。

Spec 和 PRD 有什么区别?

PRD 从业务视角描述产品该做什么;Spec 从工程视角描述代码必须做什么——包含验收标准、边界情况和可测试的契约。两者互补,不是替代关系。

精选文章

关于 Spec-First 交付的实践长文,覆盖从需求到上线的每个环节。

基础概念

什么是 Spec-First 开发

从"先写代码"到"先写规格"的完整转变:为什么这样做能减少返工,如何让 AI 编码更可控。

AI 编码

AI 编码前的规格包

先写清任务边界、允许修改的文件、验收标准和测试证据,再让 AI 开始生成代码。

AI 编码

如何编写遵守规格的 AI 提示词

让 AI 输出更可预测:写清允许修改的范围、禁止事项和测试证据要求,把规格变成 AI 护栏。

浏览全部文章

免费资源

可下载的模板、Checklist 和 Prompt 包——直接放进你的项目仓库。

规格模板

功能规格、API 规格和数据库规格的 Markdown 模板。复制到 /docs/specs/ 即可开始编写。

Checklist 与指南

规格评审清单、API 契约清单、边界条件识别指南和 PRD 转规格工作流。

规格生成器

填写表单,生成完整的功能规格 Markdown——包含验收标准、边界情况和非目标。免费使用,无需注册。

开始用规格清晰地交付
浏览 30+ 个免费模板、Checklist 和 Prompt 包——直接放进你的项目仓库。
浏览全部资源 复制上方模板