技术规格
何时使用
写任一功能的 PRD、设计文档或实施计划时使用:规格是强制约束——所有功能的文档与实现都必须满足对应规格;发现冲突时先改规格,不得在单个功能里另立一套。
分层
| 层 | 位置 | 强制力 |
|---|---|---|
| 规格 | docs/specifications/ | 所有功能必须遵守;可在 CI 校验 |
| Feature / 设计 / 实施 | docs/capabilities/**/、docs/design/、docs/delivery/ | 每个功能只有一个 canonical 入口,按复杂度增加子页 |
| 流程标准 | docs/standards/ | 评审与验证流程 |
| 指南 · 运行 | docs/guides/ · docs/operations/ | 怎么做、怎么运维 |
判断一项内容该不该进规格:如果两个以上互不相关的功能都要各自定义它,它就该是规格。只服务单一功能的内容(例如某个协议的具体操作)留在该功能的设计文档里。
规格清单
| 规格 | 约束什么 | 状态 |
|---|---|---|
| 术语与命名 | 跨功能公共词汇的唯一含义 | 已定稿 |
| API 与传输 | 请求形状校验、幂等要求、作用域寻址、时钟权威 | 已定稿 |
| 数据与持久化 | 只追加、不可改写、修订单调、来源归属 | 已定稿 |
| 错误分类学 | 错误类别与客户端应对行为 | 已定稿 |
| 身份与权限 | 角色、作用域、判定时机 | 已定稿 |
| 状态与审计投影 | 状态轴分离、只追加审计、公开投影边界 | 已定稿 |
| 幂等与一致性 | 幂等身份、重放窗口、冲突优先级 | 已定稿 |
| 安全与数据处置 | 凭据分离、脱敏、敏感值禁入清单 | 已定稿 |
| 版本与兼容 | 兼容判定、旧客户端行为、退役下线 | 已定稿 |
| 可观测与证据 | 必须能观测什么、什么算证据 | 已定稿 |
| 非功能基线 | 时限、容量、并发、时钟口径 | 已定稿 |
规格模板
每份规格固定包含以下部分;缺失即视为未完成:
| 部分 | 内容 |
|---|---|
| 适用范围 | 约束哪些功能与哪些面;不约束什么 |
| 规范条款 | 用「必须 / 必须不 / 应当」陈述的条款,每条可判定 |
| 违反时的失败语义 | 违反该条款时系统必须怎么失败 |
| 校验方式 | 必须有可自动校验的约束:校验对象、判据、失败表现 |
| 相关规格 | 依赖或被依赖的规格 |
强制力
- 规格优先于功能:功能文档与规格冲突时,以规格为准;确需例外时先改规格,并在同一变更中说明理由。
- 每份规格必须可校验:不接受只有陈述、没有校验方式的规格。
- 退役即删除:被替代的条款从规格中移除,不留兼容说明与别名;追溯使用 Git 历史。