1产品定义契约
这一份回答:做什么、不做什么、做到什么程度、谁验收。它定不下来,后面两份都只是补救。
照这张表填,每项一句话;括号里是提示,不用照抄。
| 要做什么 | F1 【动词开头,一句话】;F2【】;F3【】(不超过三项) |
|---|---|
| 不做什么 | N1 【不接的需求,说明归谁接或不做】;N2【】 |
| 给谁用 | 角色【谁在用】;场景【什么时候用】;频次【每天/每周几次】 |
| 做到什么程度 | 性能【响应时间/并发数/数据量】;安全【权限要求/加密要求】;兼容【系统与版本范围】 |
| 约束 | 必须复用【已有系统/接口】;必须遵守【行业或公司规范】;不许动的数据【】 |
| 验收 | 谁来验【角色】;按什么标准【可判定的条件】;什么情况退回重做【】 |
交出去之前自检
- 每一项都能被第三方读懂,不需要我在旁边解释
- 「不做什么」写了具体请求,不是一句「按需支持」
- 硬指标都是数字,没有「尽快」「尽量」「高可用」这类形容词
- 验收标准可以当场判真假,不是「效果良好」
- 三项功能之外的需求,都写进了「不做什么」
2架构契约
这一份回答:怎么搭。分布式、多端系统,通信一项不能空——联调来回,多半是这里少了一半。
| 模块边界 | M1 职责【一句话】/不负责【】;M2 职责【】/不负责【】(模块之间不许共享内部数据) |
|---|---|
| 数据模型 | 核心实体【】;主键与唯一键【】;实体关系【一对多/多对多】;数据归属【哪个模块是唯一写入方】 |
| 通信契约 | 协议【HTTP/gRPC/消息队列,含版本】;密钥管理【生成、轮换、存放位置】;加密与防篡改【算法/校验方式】;两端场景【发起方做什么、接收方做什么、异常怎么回】 |
| 技术约束 | 选用【技术选型】及理由【】;禁用【不许引入的库或服务】 |
| 兼容与升级 | 版本策略【向前兼容范围】;回滚方式【】 |
| 评审 | 谁审【角色】;审什么【模块边界/数据模型/通信】;什么情况驳回【】 |
交出去之前自检
- 每个模块都写了「不负责什么」,不只是「负责什么」
- 每个数据只有一个写入方,没有两处都能改
- 通信写到了字段级:谁发起、谁接收、失败怎么回
- 密钥的轮换和存放写清了,不是「用的时候再说」
- 分布式或跨端的地方,两端场景都写了,不是只写一端
3质量契约
这一份回答:怎么算做到了。质量不是最后测出来的,是从任务拆解那天起就立好的闸门。
| 用例来源 | 每条用例标注它盖的是哪条契约:T01 ← F1;T02 ← M1;T03 ← 通信异常【】 |
|---|---|
| 四道闸门 | 自测【谁执行/看什么】;集成【谁执行/看什么】;系统【谁执行/看什么(含新老数据、升级、压力、安全)】;发布【谁执行/看什么】 |
| 准出指标 | 缺陷水位【未关闭 P0/P1 数】;用例覆盖【核心功能覆盖比例】;回归通过率【%】;性能达标【响应时间上限】 |
| 缺陷流转 | 发现【谁提】→ 修【谁改】→ 回归【谁验】→ 关闭【谁确认】;同一模块重复出现【几次】即回查架构契约 |
| 放行权限 | 谁签字【角色,不是智能体】;一票否决的情形【列出】;谁有权紧急放行【】 |
| 回流 | 超出产品定义范围的回【产品定义契约】;范围内的回【开发】;谁判定【】 |
交出去之前自检
- 每条用例都能回溯到产品定义或架构契约的某一条,没有凭空的用例
- 四道闸门都写了「谁执行」,不是只有「要测」
- 准出指标是数字,不是「质量达标」
- 放行是人的签字,智能体最多提交待放行
- 缺陷反复出现在同一模块时,有回查架构的动作
什么时候算「齐了」
六条都成立,才算三份契约立住;缺哪条,就去补哪一份。
- 产品定义里每一项都不用你在旁边解释,别人能读懂;
- 「不做什么」写的是具体请求,不是「按需支持」;
- 每个模块写了「不负责什么」;
- 通信写到了字段级:谁发起、谁接收、异常怎么回;
- 每条用例都能指回前两份契约的某一条;
- 放行是人签字,智能体只提交待放行。
契约写完以后:谁来批准、改了什么
三份填完只是起点。真正的风险在后面的往返:智能体改了哪一段、依据是哪条意见、谁点了头。三种做法,从轻到重:
| 做法 | 怎么留痕 | 适合谁 |
|---|---|---|
| 文件命名带版本 | 产品定义契约_v0.1.md、v0.2.md,每次改动在文件头写一行「改了什么、为什么」 | 一个人或两三个人,起步阶段够用 |
| Git 或带版本的工具 | 每次改动一条提交说明,谁改的、改哪条契约字段 | 有开发习惯的团队 |
| 专用评审器 | 智能体只能提交修订稿,人逐条裁决、点放行,版本不可回改 | 文档要给别人签字、要追责的团队 |
有新版本时,通知你一声
模板会随文章迭代。留个邮箱,只发两件事:这组模板更新了、配套文章发了。不转给第三方,不用作其他用途,回任意一封邮件即可退订。