用途:编排整页(whole-PAGE)视觉一致性,使整页渲染与源站在同一宽度下达到像素级一致,并用可重放的日志记录语义化修复步骤,使工作能在页面重建(reconstruct)后存活。
主要流程与能力:PHASE 0 若存在 <outputDir>/parity-log.json,先按 band 顺序重放 applied/residual 条目的修复,并裁剪源截图与构建页对应区段逐一核对,再更新状态。PHASE 1 批量评估:先跑 parity 门禁,读取 <replicaShotsDir>/comparison.json(v2),若所有评分视口 status 为 ok、score>=0.995 且 heightMismatchRatio<=0.02 则跳过该页;随后用 identify 读取源截图宽度,用 npx tsx scripts/_shot.ts 在该宽度渲染一次构建页,再用 browser_evaluate 获取各 band 的 top/height,逐 band 从源与构建截图同区间裁剪并肉眼比对,输出分歧轴(背景色、标题字号字重、正文大小、对齐、间距、全出血、缺失内容等)。PHASE 2 仅对分歧区段按严重度排序迭代,逐段应用捕获值并重测该段,把修复以 upsert 语义写入 parity-log,含 band、divergence、sourceTarget、fix、axes、status、evidence 与可选的 promoteToEmitter。
使用方式:输入 outputDir、studioSitePath、themeSlug、page slug、sourceUrl、previewUrl、replicaShotsDir 等;日志格式与辅助函数见 src/lib/replicate/parity-log.ts。记录不是字面标记差异,而是可被 AI 重新施加的意图。
限制与边界:须以源截图而非捕获的 1440px 数值作为比较目标,避免误报;diff/padded 图只标记差异位置,不能从中读取颜色或字号。每 band 最多 3 次修复循环,整页有总循环上限,超出则记为 residual 并继续。不得改动导航模板、页脚部件或已标记 DONE 的 band,需保留全部内容。至少派发过 match-section 的页面须通过 liberate_refine_report 覆盖率检查;未派发的页面豁免。未在资料中说明的功能、收费或平台支持暂未提供。