Progent Labs让人工智能服务于业务
← 返回官网
公众号读者免费件 · 可转发

三份契约 · 一页版

产品定义 / 架构设计 / 质量控制

把这三份填完,再让智能体动手。填法只有一条:每项一句话;写不出数字的那一格,就是你还没想清楚的地方。

下载 PDF(A4 · 4 页) 下载 Markdown 包(5 个文件)

v1.0 | 2026-11-01 | 配套文章《工程方法论没死,落地法得重做》(公众号「小火慢炖出滋味」· 周一 · 中小企业那些事)

在微信里打开的话,点右上角「…」→「在浏览器打开」,下载会更顺。

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 或带版本的工具每次改动一条提交说明,谁改的、改哪条契约字段有开发习惯的团队
专用评审器智能体只能提交修订稿,人逐条裁决、点放行,版本不可回改文档要给别人签字、要追责的团队

有新版本时,通知你一声

模板会随文章迭代。留个邮箱,只发两件事:这组模板更新了、配套文章发了。不转给第三方,不用作其他用途,回任意一封邮件即可退订。

邮箱仅用于发送本组模板的更新与配套文章通知,不作他用;回复任意一封邮件即可退订。模板本身可直接下载,不需要填写任何信息。