--- name: jianying-verify description: 'Use when: 需要一套验收判据/口径时 / 设计验收判据 / 判据视野不够要自检 / 被问"这个怎么才算通过" / 审片要给验收口径时. 本 skill 是【库】—— 仅在其它 skill 引用它、或用户明确要验收方法时被使用,不主动触发. 触发词: 怎么算通过 / 验收判据怎么定 / 这个改动该怎么证明 / 判据视野够不够 / 判据自检.' displayNames: zh-Hans: 剪映·验收判据(库 · 仅被引用) license: Apache-2.0 compatibility: Requires nothing beyond the plugin's own verbs (verify_diff / grade_apply / draft_commit). No external dependency. metadata: author: antianqi version: "0.1.0" basis: "三层判定纪律 + 十条硬规矩 + negative-injection 自检(docs/OFFICIAL-REALTIME-PATH.md §68.3/§75.2/§76.7)" --- # 剪映验收判据(jianying-verify · 库 skill) > **一句话定位**:回答"**这个改动算不算成功、怎么证明**"——给出可执行的验收口径与判据自检方法。 > ★ **本 skill 是【库】**:不主动触发,只在其它 skill 引用它、或用户明确要验收方法时使用。 > 完整版:`references/verify-discipline.md`(本文件是它的入口摘要)。 ## 核心一条:**判据的视野必须覆盖被测对象** **只抽一帧 = 用抽样代替了被测对象** ⇒ 假 FAIL 和假 PASS 都会出。 实测(2026-10-21):单帧抽样选的第 5 帧 MAD=0.47(阈值 0.5)判 FAIL, 而同一批帧里第 74 帧 MAD=123.5 / maxAbs=255 / 100% 像素变化。 ⇒ **对策:`verify_diff` 一律取全帧最大(max-over-frames)。** ## ★★★ 核心两条(2026-10-21 §76.7 追加):**先量噪声底,再谈"可见"** **官方渲染器不是确定性的**:同一份草稿渲染两次,帧就已经不一样。 | 样本 | 不同的帧 | 最差 MAD | |---|---|---| | 抓帧容差 60ms | **14/108** | **48.19** @frame39 | | 抓帧容差 20ms | **17/108** | **123.55** @frame73/74 | ⇒ **噪声底(48~123)比任何"改动可见"阈值(0.5)高两个数量级** ⇒ **裸 MAD 不能证明"改动可见"**(历史上写下的 123.5 与噪声同量级,已作废)。 **⇒ 判据分三层,主判据必须落在确定的那一层:** | 层 | 判据 | 确定性 | 怎么用 | |---|---|---|---| | ① **语义** | 落盘草稿的**逐段字段差**(如 `volume` 0.99→0.2) | ✅ 完全确定 | **改草稿链的首选主判据** | | ② 像素(自有渲染器) | `grade_apply` 逐节点探针 + 全链 MAD | ✅ 确定 | 调色链的主判据 | | ③ 像素(官方渲染器) | `verify_diff` max-over-frames | ⚠️ 有噪声底 | **必须先校准**,否则只作参考 | **校准怎么用**:`verify_diff` 传 `noiseDir`(同一状态**再渲染一次**的帧), 判据线自动抬到 `max(threshold, noiseMad × 1.5)`;**不传就在输出里标 `calibrated:false`** ⇒ 不许装作可信。 ## 三层判定 ``` 协议层说支持 ≠ 契约层被接受 ≠ 渲染层生效 ``` | 层 | 判什么 | 怎么判 | 我们的工具 | |---|---|---|---| | **契约层** | 字段认不认 | 材料存活 / 回写明文 / 字段保留 | `draft_read`(解密回读) | | **渲染层** | 有没有效果 | 无头取帧 + **A/B 逐像素差分** + **阳性对照** | `render_frames` + `verify_diff` | | **机械层** | 危险动作被拦了吗 | 护栏断言 | `draft_commit`(真草稿 sha)/ `grade_apply`(逐节点探针) | ## 十条硬规矩 1. **判据视野覆盖被测对象** —— 用 max-over-frames,不用单帧。 2. **阴性对照必须存在** —— 每个"能跑"都要配一个"不能跑"的对照。 3. **输出必须能自证是"这次跑出来的"** —— 同一输出目录**不许并发跑两份**(会互相覆盖帧、污染证据); **基线也不许借用别的跑的残留目录**(⇒ 测的是两次不同的改动)。 4. **探针要能区分"没生效"和"没在测"** —— **数值整齐得不正常 ⇒ 探针没在测单节点**。 5. **参数形态不对 ⇒ 静默失效** —— 链的每个节点要么真生效、要么被整段跳过,**不会报错** ⇒ 必须逐节点探针。 6. **注入坏了必须失败** —— 每个判据都要能被"故意弄坏"而失败。 7. **★ 像素判据必须先量噪声底** —— 没有噪声底就不要报"改动可见";**基线必须本次自产**。 8. **★ 阳性对照必须与被测项【同路径、同对象】** —— 只换一个已知会生效的东西;它也"没变" ⇒ 是装置坏了,换装置再测。 9. **★ 判据的期望值必须先在【已知正确的实现】上成立** —— 判据与被测对象语义矛盾 = 自己判自己失败。 10. **★ 噪声底必须【逐帧】量** —— 官方渲染非确定:平均 MAD 可能 0.00000 也可能 0.01602(差 1 帧、maxAbs=255)⇒ 平均值会随机翻车。 ## 数字底线(我们复刻链的验收口径) | 对象 | 口径 | 实测 | |---|---|---| | 调色链(逐点) | maxAbs ≤ **1 LSB** | 1 LSB | | 调色链(65³ LUT) | maxAbs ≤ **2 LSB** | 2 LSB(对齐 §54 curves 的 65³ precedent 0.0086) | | 曲线恒等 | **字节完全一致** | 256/256 texel | | ~~改动可见性~~ | ~~max MAD > 阈值~~ | ⚠️ **作废**(123.5 与噪声底同量级)⇒ 改用语义判据或噪声校准 | | 真草稿 | sha 逐字节相同 | 64 files identical | | **改草稿生效(语义)** | 逐段字段差 + `expect` 断言 | `volume` **0.99 → 0.2**(其余 3 段不变)✓ | ## 调色的"生效"判据(三条同时成立) 1. **逐节点探针**:每个节点单开 ⇒ MAD > 0 2. **全链改变量**:`grade_change_mad > 0` 3. **空间分布合理**:改"亮"应该 mean 上升、**clip 比例不超阈值**(过曝是另一个问题,不是"调亮") ## 判据自检清单(写新判据时问自己) - [ ] 判据的视野覆盖被测对象了吗?(不是抽一帧) - [ ] 有阴性对照吗? - [ ] 故意弄坏它会失败吗? - [ ] 探针能区分"没生效"和"没在测"吗? - [ ] 输出能自证是这次跑出来的吗? - [ ] ★ **像素判据的噪声底量了吗?**(同一状态重渲染 ⇒ 差异有多大?没有噪声底就别报"可见") - [ ] ★ **基线是【这次跑】产生的吗?**(借用别的跑的残留目录 ⇒ 测的是两次不同的改动) ## ★ 边界(不做什么 / 为什么 / 替代) | 不做 | 为什么 | 替代 | |---|---|---| | **主动触发**(当任务型 skill 用) | 它是**库**:只在被别的 skill 引用、或用户明确要验收方法时用 | 由 `jianying-review` / `jianying-draft-edit` 引用 | | **直接下"通过 / 不通过"的终局结论** | 本 skill 给的是**口径**;结论要基于被测对象与证据边界 | 调用方拿口径去跑 `verify_diff`,自己结合范围下结论 | | **用单帧抽样当判据** | 抽样既会假 FAIL 也会假 PASS | max-over-frames(全帧最大) | | **用裸 MAD 阈值当"改动可见"** | 官方渲染器同态重渲染噪声底 48~123 ⇒ 没有判别力 | 语义判据(逐段字段差)· 或传 `noiseDir` 校准 | | **把不同维度合并成一个总评分** | 量纲不可比(像素 / dB / µs / 百分比) | 分维度给结论,每个维度标注证据强度 | ## ★ 官方对照:他们给方法论,我们给能跑的检测器 剪映官方的 `editing-review` skill 只有 47 行,且原文明确写着: **「这里列出的是检查方法,不是已实现或已运行的检测器」**。 ⇒ 官方是"告诉你该查什么",我们是"**已经查了,数字在这**"(像素差 / 逐节点探针 / sha 断言 / LUFS 测量)。 ⇒ 审片结论要带**数字与证据边界**,不要只给主观建议。 ## 参考 - 完整纪律:`references/verify-discipline.md` - 踩坑清单(含本项目的反面教材):`references/pitfalls.md` - 审片 skill:`skills/jianying-review/SKILL.md`