用途
mo-review 是一个后端中立的双评审者协议技能,用于在已安装的 mo-herdr 或 mo-omnigent 功能工作流内部提供评审者判断、提示词、发现结果以及紧凑的评审交接。它在安装形态下是可读、可复用的协议工件,而不是可执行的评审产品;单技能安装不会自行运行评审,也不应借助环境子代理、私有记录、无头供应商命令或其他未声明依赖来临时拼凑直接模式。评审请求需经 mo-herdr 或 mo-omnigent 路由;若没有合格后端,则报告评审能力需要关注。
调用边界与前置条件
该协议只在外层后端已负责执行者、演员创建、供应商选择、生命周期等待、完整回合检索、不透明中继、发现应用、提交、端到端测试以及新一轮调度时使用。mo-review 只提供评审者视角、紧凑结果语义与收敛规则,不启动评审者、不选择后端、不以作者身份检查工作树、不应用发现,也不提供独立的修复循环。
评审对象是外层后端提供的完整、干净的候选 SHA。评审者 A 完成后评审者 B 才开始,B 获得相同的任务/规格定位器与候选项,但不接收 A 的输出。每位评审者独立阅读完整任务/规格、业务框架、词汇表、项目知识与候选项。至少一名评审者供应商需不同于作者,且 A/B 供应商互不相同;实际启动的进程种类决定供应商。评审者不得编辑或提交,各自运行 make mo-qc、make mo-smoke 以及每一项适用的已记录非变更性检查。可能变更受跟踪文件的诊断只能在隔离的一次性位置运行;若检查弄脏了冻结的工作树,需报告发现并给出 checks=FAIL,不得清理或隐瞒。
强制评审视角
协议规定多个必须覆盖的视角:整体用户意图(对比规格与逐字业务框架,再对比实现与验收)、正确性(失败路径、并发、安全与清理等)、验证(测试约束行为、QC 未被削弱、所需确定性/代理证据指向该 SHA)、架构(每个边界都出于业务理由、没有被拒绝的运行时组件换名回归)、复用决策(实现证据未使其失效)、持久知识(词汇表、架构、待办、验收与生成输出在其真实性改变的同一增量中更新)、用途语义(每个第一方模块/API/类/边界/重载都说明删除为何会破坏不变量,简单的访问器/生成胶水不承载仪式性说明)、多余工具(没有消费者时不得引入代理、自制解析器、重复来源所有者、收据、清单、基线或叙述)。对于候选项引入或修改的守护,需检查执行者的变更清扫,并在一次性副本中独立变更可疑守护;存活下来的非等价缺陷构成发现,不因普通套件通过而豁免。
问题正文
每个发现具有评审者归属的稳定 ID A-<n> 或 B-<n> 以及完整不透明的正文,包含严重级别与标题、证据(具体文件/行为/命令证据)、影响(什么会变得错误)、期望修复(要求的结果而不规定实现)。ID 在功能运行中单调递增,候选项使其失效后不复用。发现不被排名、过滤、合并、改写或在传输中语义缩短。
MO_REVIEW_V2 状态规则
每条消息的第一行需精确为 MO_REVIEW_V2 头部,字段按固定顺序出现一次,包括 candidate、reviewer、status、part、more、ids、open、closes、disputes、qc、smoke、checks、e2e、scenarios、unknown。候选值等于观察到的 HEAD。发现 ID 需匹配 ^([AB])-([1-9][0-9]*)$,唯一、以逗号分隔且无空格、无数字上限;按前缀分组,并以 BigInt 精确比较无界十进制后缀,后缀需严格递增。混合列表先包含完整 A 块再包含完整 B 块。scenarios 在 E2E 为 NA/UNKNOWN 时为 none,在 REQUIRED 时为非空规范升序且最多 64 个安全 ID 的列表,并且在每个部分中一致。
各状态规则概述:PASS 要求 ids=none、open=none、QC/smoke 为 PASS、checks 为 PASS/NA、E2E REQUIRED 且场景列表非空或 NA 且 scenarios=none、unknown=none,closes 为 none 或全部来源开放 ID,disputes=none。FINDINGS 要求在整个评估中至少引入一个新 ID,保留累计开放集与实际检查字段,这是首轮、可能多部分的状态。FOLLOWUP 是执行者响应后的一个部分,需有非空新 ID、每个被反驳 ID 关闭、disputes=none。OUTCOMES 是 ids=none 且 closes 与 disputes 均非空的一个部分,报告混合旧 ID 结果,规范校验后 open 与 disputes 逐字节相等。DISPUTED 是 ids=none、closes=none 且 disputes 非空的一个部分,每个被争议来源 ID 保持开放。UNKNOWN 是一个部分,无新 ID/closes/disputes,且恰有一个未知类别。closes 与 disputes 不相交;FOLLOWUP 不能 disputes;只有 FINDINGS 可多部分;完整的 FINDINGS 评估最多 61,440 字节,每个单部分响应结果最多 24,576 字节。部分从 1 开始连续,candidate/reviewer/status/check 字段保持一致并携带累计开放;只有最后一部分使用 more=no。限制为一到六个部分、每部分 180 行、总计 1000 行与 61,440 UTF-8 字节。若正文超限,则在发现边界结束当前部分并请求下一部分;允许一次紧凑重试,之后返回 transport UNKNOWN 而不丢弃发现。
独立性屏障、争议与收敛
A 在 B 开始前发出所有部分。A 之后重新检查候选 HEAD 与干净度。除 A 的检查已弄脏/使候选失效外,需在任一正文到达执行者前完成两次首轮评审。完整的 PASS/PASS 对进入适用 E2E 门而不中继任一正文;仅当至少一次首轮为 FINDINGS 时,所有 A 部分后跟所有 B 部分作为单独框定的不透明段一起释放。执行者依据仓库核实每个主张,修复或发出 MO_EXECUTOR_V1|type=RESPONSE 反驳;只有来源评审者可关闭发现。协议还规定裁决机制 MO_ADJUDICATION_V1、结果合并规则、聚合封套投影与体积上限、人类回答 MO_HUMAN_ANSWER_V1 及操作批准 MO_OPERATIONAL_APPROVAL_V1 的严格格式与生命周期,以及最终收敛要求:直到后端在同一未变更候选上取得两个独立 PASS 结果与适用 E2E 才停止。
通过条件
只有当同一未变更候选上的两份完整评审均为 status=PASS、unknown=none、QC/smoke 为 PASS、checks 为 PASS/NA、没有遗留开放 ID、供应商互不相同且两位评审者都评估了完整意图时,评审门才通过。任何提交都会使本轮过期并重启两次评审。评审证据是来自后端公共表面的临时当前运行数据;外层后端的封闭最终结果记录具有精确的顶层顺序与字段约束,包括 candidate、worktree、executor、gates、support、reviews、scenarios 等。
限制
资料未提供关于价格、平台支持、安装步骤、付费模式或具体使用命令的额外信息;该技能在单技能安装下不可直接运行,必须依赖 mo-herdr 或 mo-omnigent 后端。