跳转到内容

审查清单

这就是内部一直在用的那套审查,这里把它写成你可以自己拿来对自己的构建使用的版本。完成一次大约需要一个小时;如果执行审查的人,不是这个构建的开发者,效果会好得多。

如何进行这项审查

  1. 把下面的评分表复制一份,放在你正在审查的构建旁边。
  2. 逐条过一遍每项原则下的问题,这些问题取自八项原则。
  3. 为每个问题打分:已达成、部分达成、未达成,或不适用。
  4. 每个分数都需要一个依据——某样具体的东西来证明它:一条具体的记录、一段你亲眼看到发生并粘贴下来的结果、一张实际行为的截图。一个背后什么都没有的分数,只是一个人的看法,算不上审查。
  5. 任何被打上未达成的项,要么在交付前修复,要么写一条带日期的书面说明,说明是谁接受了这个差距、为什么接受。

让这项审查真正值得做的几条规则

  • 评审人不是这个构建的开发者。 一个人审查自己的作品,往往只能发现自己本来就已经知道的问题。
  • 动手运行,不要只是看着推测。 不要因为一项测试看起来应该会通过,就认定它通过了。把它运行一遍,亲眼看着结果。
  • “不适用”需要一个理由。 这是一个正当的分数,但沉默不是——写清楚这个问题为什么在这里不适用。
  • 部分达成不等于通过。 它是一个被明确指出的差距,要有负责人,最好还要有一个重新审视它的日期。
  • 这审查的是构建,不是人。 目标是得到一个更好的成果,而不是对做出它的人下判断。

1. 可溯源性(Provenance)

#问题分数依据备注
1不借助他人帮助,你能否从输出里的一个数字,一路找到它背后的那条记录?
2这个答案是否带有一个截至日期?
3一句被引用的内容,是否能对照其出处得到证实,并给出具体位置?
4当数据无法回答这个问题时,一个人会看到什么?
5每一句被引用的内容,是否真正支持它所对应的结论,还是只是恰好出现在源材料里?

2. 确定性(Determinism)

#问题分数依据备注
1每一个数字,具体是在哪里算出来的?
2一个业务人员能否在不找开发者的情况下,自行修改一个阈值?
3同一个问题问两次,得到的答案是否一样?
4当系统遇到一条它尚未实现的规则时,会发生什么?

3. 模块化(Modularity)

#问题分数依据备注
1对任何被标记为“共享”的东西,说出两个真实存在、彼此独立的使用场景。
2是否存在这样的变体:它们之间的差异其实来自一次修改,而不是来自配置?
3一个部件能否脱离实际账号和网络,独立完成测试?
4这个构建里,是否存在没有真实、具名用户的部分?

4. 无领域内核(Domain-free cores)

#问题分数依据备注
1核心逻辑里,是否出现了公司名称或某个客户特有的细节?
2只靠修改配置,这个核心能否服务于另一家公司?
3配置里的每一项设置是否都被用到了,而每一个被用到的东西是否都在配置里声明过?
4是否有任何工作流程里,包含了某台机器的网络地址?

5. 人的治理(Human governance)

#问题分数依据备注
1展示最近一次决定的记录。谁决定的?决定了什么?什么时候决定的?
2如果审核人联系不上,还会有东西被发出去吗?
3这个关卡是自己算出答案,还是相信别人递给它的答案?
4审核人本来在哪里工作?那条路径是否曾以他们的身份端到端走通过?仅仅打开链接,会不会决定任何事?
5当同一个决定送达两次时,会发生什么?
6智能体能否写入用来记录决定的那些列?
7当一项检查还没有在记录上打下结论时,后面的步骤会怎么做?
8批准一项、拒绝一项、再留一项不做处理。每一次,流程是否都能自行继续往下走?

6. 原生优先(Native-first)

#问题分数依据备注
1一个不是开发者的人,能否读懂这个构建,并说出每一步在做什么?
2在构建里搜索,是否会找到任何看起来像凭证的东西?
3对每一段自定义代码,是否考虑过、又放弃了哪个内置能力?为什么?
4把这个构建搬到另一个账号下。什么会坏掉?

7. 可运维性(Operability)

#问题分数依据备注
1你是否亲自运行过这些测试,并亲眼看着它们通过?
2固定测试集在哪里,它上一次评分是什么时候?
3重置是否能把这个构建,恢复到完全相同的起始状态?
4有什么在独立核查这条主路径,它上一次与主路径的结果不一致是什么时候?
5一个素不相识的人,仅凭这个安装包和文档,能否把它装起来并运行?
6对每一步,哪条记录能证明这项工作确实发生过?

8. 安全与主权(Security and sovereignty)

#问题分数依据备注
1即将被分享出去的东西里,是否包含任何看起来像凭证的内容?
2任何 AI 工具能访问到的凭证,是否都是权限有限、可随时作废的?
3敏感字段的脱敏,是由平台强制执行的,还是由一个可能被跳过的步骤来做的?
4谁能看到未经脱敏的原始数据,又是什么在真正阻止 AI 被接入这些数据?
5你上一次分享出去的安装包,实际包含了什么?
6有哪些 AI 模型会读取这个构建的数据,其中是否有任何一个在部署范围之外?

已接受的差距

差距为什么目前可以接受接受人日期何时重新审视