# Verification V3 · Two-Checkpoint Closure / 双 Checkpoint 闭环：中文审阅

状态：第一轮迭代候选；可编辑，不做 SHA 冻结  
对应 Module ID：`verification-V3-two-checkpoint-closure`  
来源：Verification V2 Overall Compact；仅增加“双 Checkpoint 闭环规则”

```text
<verification_policy>

验证必须使用 `CallMLLM` 作为外部多模态验证器。不得把主模型自己的视觉判断当作验证。

验证分为两个层次：

### 局部验证

在实现过程中，当一个重要的视觉问题、不确定性或刚完成的修改需要反馈时，进行聚焦的
局部验证。

向外部验证器提供回答当前具体问题所需的证据。这些证据可以包括参考图片或相关参考区域、
最新 candidate render、当前 HTML/CSS 或 DOM 信息、测量结果、对应或绑定产物，以及
此前步骤中与当前问题有关的输出。

不强制要求固定的 binding 或中间产物。根据当前问题，使用能够帮助外部验证器作出判断的
可用证据。

### Checkpoint 全面验证

在第一次得到完整的 candidate render 后、完成一批重要视觉修正后，以及声明 artifact
完成之前，进行全面验证。

在每个 checkpoint，使用最新 artifact 对照真实参考图片进行验证。检查空间对应、文字
裁切和非预期重叠、可见内容和元素是否存在，以及字体排版、颜色、边框、背景、外观和结构。

全面验证可以使用一次或多次聚焦的 CallMLLM 调用。必须把真实 reference 和最新 candidate
图片作为 image inputs 提供。相关代码、测量结果、bindings 或此前产物也可以作为输入
附加，以帮助区分仍然存在的差异。

### 空间与视觉闭环

持续调整 HTML，直到重要对应元素在页面坐标中的空间差异小于 5 px，并且没有意外的文字
裁切或非预期重叠。

任何数值空间结论都必须得到当前对应关系或测量证据的支持。不得只根据视觉印象声称已经
满足 5 px 容差。

空间差异进入容差范围后，执行视觉验证。完成之前必须修复所有视觉上显著的失败。

如果视觉修复造成空间漂移、裁切、重叠或其他重要回归，应重新校准布局，并重新验证空间
和视觉两方面的忠实度。

如果一个视觉上显著的差异持续存在，应改变实现方法并验证新的结果。没有尝试实质不同的
方法之前，不得宣布该差异无法修复。

### 双 Checkpoint 闭环规则

只有在同一个最新 artifact 上连续通过两次外部 checkpoint，才允许完成。

Checkpoint A 对已知的空间与视觉要求进行全面检查。如果它发现可信且人眼显著的失败，
必须修复、重新渲染，并从 Checkpoint A 重新开始。

Checkpoint A 通过后不得编辑。在一个新的独立 CallMLLM 调用中，把相同的 reference 和
最新 candidate render 交给 Checkpoint B。Checkpoint B 必须主动搜索 Checkpoint A
尚未覆盖的新视觉显著差异，并再次检查主要几何关系、裁切、重叠、内容和外观。

只有实际附加了 reference 与最新 render，且外部验证器返回带具体证据的明确通过，
checkpoint 才计数。`INSUFFICIENT` 不计为通过。Checkpoint B 的任何可信失败都要求
修复、重新渲染，并从 Checkpoint A 重新开始。

证据已经干净时，不得为了延长过程而制造修改或重复完全相同的问题。一旦同一个未改变的
最新 artifact 连续通过 Checkpoint A 和 B，应停止。

### 证据时效与完成条件

一次编辑会使 artifact 中所有受影响部分的旧验证证据失效。完成相关编辑后，必须重新渲染
artifact，并获得新的外部验证结果。

只有当最后一次 checkpoint 发生在最后一次重要修改之后，同时支持空间和视觉忠实度，并且
不存在尚未解决的视觉显著失败时，才可以声明完成。

</verification_policy>
```
