SuperAPI AI 工具集

tribunal

测试与质量

查看项目

更新于 10-13 15:21

技能介绍

Tribunal 是一个围绕交付物验证的编排式技能,其核心是“执行者(doer)→ 验证者小组(verifier panel)→ 共识(consensus)”的循环。编排者不构建任何内容、也不自行打分,它负责切分工作、派发独立执行者、召集独立验证者,并基于证据裁决。

用途与适用场景:用于多部分或高风险交付物,即“交付缺陷的代价高于一个验证小组”的场景。不适用于琐碎修改、任何一条验证命令即可证明的事项,或普通代码评审(对话式改进变更,与针对冻结产物的独立测量对比)。永远不要嵌套 tribunal——任何角色都不对自己的输出运行该协议。

主要能力与流程:

  1. 在实现之前冻结验收标准与验证命令;据其推导评分维度、权重与通过目标,并记录以便重新组组时复用评分表;识别相关的工作技能(影响产物构建或评判的技能,例如 production-grade),将其标准并入标准;纯编排技能与 tribunal 自身不纳入。仅验证入口(产物已存在)时,从原始请求书写标准,绝不逆向工程,冻结后从第 3 步开始。
  2. 派发一个独立的执行者代理(绝不由编排者自己充当),粘贴完整的切片规格(绝不用“读取计划文件”),指明工作技能并要求加载;若无法加载某命名技能,应如实说明而非继续。执行者实现、运行验证命令、将产物持久化(提交、推送或发布,使其存活于执行者会话之外),并报告 diff 摘要、逐字输出、可获取的产物地址,以及恰好一个状态(DONE、DONE_WITH_CONCERNS、NEEDS_CONTEXT、BLOCKED)。没有地址的 DONE 不算 DONE。编排者需亲自对照实际 diff 核查报告,然后并行派发上下文隔离的验证小组。
  3. 依据共识机制进行裁决;在台账中记录裁决、异议、警示与轮次。SHIP 则进入下一切片;ITERATE 则将发现转为修复清单,交给新的执行者,并用全新的验证者重新评分所有维度。

不变量(低自由度,这就是技能本身):

  • 上下文隔离:四个角色、四个独立会话——编排者(切分、派发、裁决、拥有台账,不产出交付内容、不打分)、执行者、每个验证者。一个代理绝不扮演两个角色(共享上下文=共享盲点=无法三角验证)。执行者先完成;随后验证者并行运行,每个验证者恰好收到:冻结的标准;通过可获取地址提供的产物(提交 SHA、分支或 URI,可由不同沙箱的验证者自行检索)以及内联 diff;参考资料;运行验证命令的许可;已知风险;工作技能(命名并要求加载)。验证者绝不收到:执行者的推理或自我评估、设计理由、彼此第一轮的观点或身份、预期或先前分数。
  • 证据锚定:高分需要来自产物的逐字引用;失败声明需要 file:line 或命令输出;无证据的发现被丢弃。共识计算之前,编排者会对每个驱动裁决的引用与产物和规格进行比对:无法逐字定位的引用将丢弃其发现;被事实证伪的分数会被排除并记录为被证伪的异议。依据证据裁决,绝不把分歧平均掉。
  • 明确反对:至少一名小组成员必须反对,以命名的失败场景构建最强的反对出货理由。攻击向量包括隐藏假设、过度工程掩盖缺陷、缺失约束、漂移风险、规格缺口、组合脆弱性。泛泛的怀疑毫无价值。任何成员提出的未被反驳的正确性或安全性场景绝不被默默推翻(ESCALATE)。
  • 标准先于产物:实现前冻结,或仅验证模式下从原始请求书写。
  • 无新的验证输出不得声称完成。“应该能通过”不是证据。
  • 有界迭代:每个切片最多 3 轮验证小组(每轮新验证者),加上单独的执行者派发预算(默认 5,按复杂度加权);任一先耗尽则连同完整证据包上报人类。两个计数器随交接或持久台账传递。

裁决类型与触发条件(SHIP、SHIP_WITH_CAVEATS、ITERATE、BLOCK、ESCALATE)在技能中有明确定义。校准要点:BLOCK 是结构性的;许多严重但各自属于局部修复的缺陷构成 ITERATE 而非 BLOCK;被阻断的维度(多数评为 3 或以下)绝不让整体通过溜过为 SHIP。发布 BLOCK 前做一致性检查:若报告本身将每个缺陷都描述为可局部修复,则 BLOCK 与证据矛盾,应发布 ITERATE。

验证小组组成:默认三个视角——质量(规格合规优先,其次正确性)、适用性(真实消费者、边界情况、集成)、对抗者(必须反对)。按风险规模调整:低风险小切片两名评审者,高风险不可逆切片五个视角。对抗者不得使用比小组其他成员更弱的模型;可用时,不同模型家族可带来不相关的盲点。技能包含验证者提示词骨架。

记录:交付物是 tribunal 运行产出的唯一持久产物。在收尾摘要中报告裁决、异议(含被证伪的,逐字)、警示(已修复|已推迟+原因)与验证小组轮次数,并并入 PR 描述或提交信息(若存在)。将报告通过请求到达的渠道交付给请求者是循环的一步,不是完成的副作用——没人收到的裁决不算裁决。绝不在工作树留下散落文件;若确需工作文件,全部放入单个被 gitignore 的 .tribunal/ 目录且绝不提交。绝不默默丢弃警示。

计划审查(同一机制,更早阶段):在执行非平凡计划之前,让其经过三个独立视角——它会奏效吗(检查是否具体?)、执行者能遵循吗、是否最省足量的路径。2/3 批准则继续;否则将批评合并为恰好一次细化,再审查一次,然后上报。计划审查会冻结验证小组之后审计的标准。

平台:有并行子代理时,在一条消息中并行派发验证小组;无并行派发时,将每个角色作为自己的顺序新上下文会话运行,仍为不同代理,通过各会话收到的内容执行隔离。一个代理扮演所有角色会丧失三角验证收益(测得等同于没有小组),仅在无分离会话选项时使用,并标注该裁决为“单上下文(无独立性)”。

分离式编排:当运行会存活于或挂起于任何单个回合之外时,传给等待原语的内容是记账而非通信;在交接中携带产物地址、轮次索引与剩余预算;恢复时,先确认请求者实际已收到什么,再决定下一步。

技能还提供端到端示例(worked-example.md)与失败目录(anti-patterns.md)。