# 验收打穿的 5 条:经过检验的改写 + 可执行验证动作 > 作者:worker(收尾轮)。父会话已改写 4/6/7 条,本轮负责第 2 条与第 12 条改写、 > 把「已推翻」台账变成可执行验证动作、补第 10 条的第一次测量。 > 仓库只读。本文件只追加,不覆盖。 ## 0. 本轮读入与口径 - (占位) ## 1. 第 2 条:错在哪一部分 ### 1.1 拆解成两个可独立判决的部件 - (占位) ### 1.2 部件 A:五级分类本身对不对 - (占位) ### 1.3 部件 B:「只查三处」对不对 - (占位) ### 1.4 重做后的兜底落点分布(剔掉同书交叉引用后) - (占位) ### 1.5 改写后的第 2 条 - (占位) ### 1.6 第 2 条的验收方式 - (占位) ## 2. 五级判定顺序稳定性 ### 2.1 方法 - (占位) ### 2.2 结果 - (占位) ### 2.3 结论 - (占位) ## 3. 第 12 条:让方法文档通过它自己 ### 3.1 自测为什么不通过(结构性诊断) - (占位) ### 3.2 最少要改几处 - (占位) ### 3.3 DRAFT-V2.md 出稿与验收方式 - (占位) ## 4. 已推翻/已降级 → 可执行验证动作 ### 4.1 跨页本 39 份/12.1%/25,014 - (占位) ### 4.2 字体分母 1,159 - (占位) ### 4.3 星巴克 .375" 主语归属 - (占位) ### 4.4 Blod / supercedes 手册自身拼错 - (占位) ### 4.5 禁止猜/禁止近似 0/829 - (占位) ### 4.6 同页码不同内容(微软 P.81 / 港科大 P.102) - (占位) ### 4.7 小鹏 201/217 单向变短 + 15,974 字形丢失 - (占位) ### 4.8 台账总表 - (占位) ## 5. 第 10 条第一次测量(硬未读样本) ### 5.1 样本与分母 - (占位) ### 5.2 触发次数 - (占位) ### 5.3 错误答案次数(最重要一栏) - (占位) ### 5.4 三级判据排序在未读样本上还成立吗 - (占位) ### 5.5 改写后的第 10 条与验收方式 - (占位) ## 6. 交付摘要与未决项 - (占位) --- ## 0. 本轮读入与口径 | 件 | 读前 `wc -l` | 读后核对 | |---|---:|---| | `/tmp/vi-agents/PITFALLS.md` | **1193** | 读到第 1193 行(末条=78 · 渲染机缺字体),**一致** | | `/tmp/vi-agents/REPORT-ACCEPTANCE.md` | **440** | 读到 440 行末 | | `/tmp/vi-agents/REPORT-GOOD.md` | **834** | 读到 834 行末(§16 同页三问、§17 零命中台账) | | `aesthetics/brand-vi-appreciating-method.md` | **886** | 读到 886 行末(父会话改写后的版本,4/6/7 已改) | | `meta/brand-vi-research/situation-entries.md` | **6186** | 精读模式四十(4856–5017)、模式四十六(5366–5430) | **先落盘纪律执行**:读完 PITFALLS 后、读任何其他文件**之前**,已把全部章节标题与占位行写入本文件(首次 `wc -l` = **71 行**),其后每完成一节 `cat >> ` 追加一次。 **本轮沿用的硬口径**:排版元素 400–600dpi / 中文条文 200dpi(PITFALLS 67);禁止 OCR;多栏并置版面不做字符级统计(77);零命中必附有效分母与可打印率(28/55/四十六);批量用 Python 不用 `xargs -d`(27);脚本带 `__main__`(六十四)。 --- ## 1. 第 2 条:错在哪一部分 ### 1.1 拆解成两个可独立判决的部件 第 2 条由两个**互不依赖**的动作合成,它们必须分开裁决: | 部件 | 原文 | 上一轮判定 | |---|---|---| | **A · 五级判定顺序** | Q0 自认非终局 → Q1 让位 → Q2 外派 → Q3 请示 → Q4 转交 → Q5 自担,第一个「是」即定类 | 「不可裁决」(未读池 Q0/Q5 各仅 3 份、Q2 零命中) | | **B · 只查三处** | 落点在第五步之前,**只查版权栏/页脚、流程图、尾章** | 「裁决错」(F-Secure p21 在中段) | > **两者的失效方式完全不同**:A 的问题是**样本不够判**(稀薄),B 的问题是**规则本身把东西排除在外**(系统性)。 > 上一轮把两者并列写成一句「五级不可裁决+只查三处裁决错」,**掩盖了 B 的性质**——B 不是「样本不够」,是**清单本身划错了边界**。 ### 1.2 部件 A:五级分类本身对不对 **结论:本轮仍判「不可裁决」,但把理由换了。** 上一轮给的理由是「Q0/Q5 各仅 3 份、Q2 零命中」。本轮补测后的判断是: - **「稀薄」不是不能裁决的理由,「分布极稀疏」才是**(PITFALLS 五十四)。五类里有三类在两轮留出里几乎不出场,**分类覆盖不了现实**——这是比误分类率更严重的警报。 - **顺序稳定性至今无人测过**(见 §2)。在稳定性测出来之前,**A 不能被写成「可用但证据少」,只能写成「未经检验」**。 - 因此 **A 的处置是降级,不是改写**:它从「可当自检清单」降为「可当提问清单」,且**必须删掉那个未测的「第一个是即定类」**。 ### 1.3 部件 B:「只查三处」对不对 —— **裁决错,且这次拿到了它错在哪一步** **错在哪一步**:该清单把「**兜底条款的落点**」当成了「**版权页/尾章的落点**」,于是规定只去两个版式位置找。 **这个假设本身是错的,而且可以用未读样本证伪**:兜底条款的落点**由主题决定,不由版式位置决定**。 一份讲颜色的手册,把「以什么实物为准」写在**颜色那一节**;一份讲标志体系的,把审批权写在**标志那一节**。 **它们出现在中段不是偶然,是因为中段才是条款所在的位置。** ### 1.4 重做后的兜底落点分布(剔掉同书交叉引用后) #### 上一轮那个数是怎么造错的 上一轮 `pos.py` 有三个缺陷,每一个都会把数做大: 1. **按页计数,不按条款计数** → 一页里 20 条 `see chapter` 记成 1 事件,一页里 1 条真兜底也记成 1 事件。 2. **Q4 正则把同书导航算成了兜底** —— `refer to|see (section|chapter|…)` 里绝大多数是「答案在本手册内部」,**不是兜底**。手册没有把「这次该怎么办」交给自己以外的东西。 3. **裸 URL / `download` 会命中版权栏与网页语境** → 缺一个「处置动词」门槛。 **这三个缺陷合起来,就是「63% 偏大」的机制**——偏大不是因为「口径保守」,是因为**分母里混进了一整类不是兜底的句子**。 #### 重做:条款级 + 三档互斥分类 脚本 `/tmp/vi-fix/fb_locate.py`。分类规则:兜底条款必须**同时**含「处置动词」(`must/please/须/不得/应`…);否则裸 URL 不构成兜底。 **产出量自检(先验产出,再信数字)** | 项 | 数 | |---|---| | 硬未读池候选 | 130 | | 有效分母 | **109** | | 排除 符号密文(可打印率<0.60) | 0 | | 排除 零字节 | 0 | | **读入字符量** | **3,118,317** | | 可打印率 min/均值/max | 0.642 / 0.7845 / 0.853 | **脚本报比例前先在已知件上验证**(PITFALLS 78 同族):脚本第一遍**没有**检出 F-Secure 的 `Always consult your printer…`(被判成 XREF)。修正 Q3 判据的宾语约束后复跑通过。**这一条也顺带独立复核了「连续五页」**——p20/21/22/23/24 逐页命中,与前序报告一致。 **结果(条款级)** | 档 | 条款数 | 涉及份数 | EARLY | MIDDLE | TAIL | |---|---:|---:|---:|---:|---:| | **A 纯兜底条款** | **174** | 47 | 9 (5.2%) | **114 (65.5%)** | 51 (29.3%) | | B 一句两动作 | 0 | 0 | — | — | — | | **C 同书交叉引用(不是兜底)** | **362** | 36 | 26 | 295 | 41 | **新旧对照** | 口径 | MIDDLE 占比 | |---|---:| | 旧(把同书交叉引用也当兜底) | 409/536 = **76.3%** | | **新(剔掉同书交叉引用)** | 114/174 = **65.5%** | | **同书交叉引用被误计的量** | **295 条,占旧 MIDDLE 的 72.1%** | **真兜底按 Q 拆分** | Q | 条款 | EARLY | MIDDLE | TAIL | |---|---:|---:|---:|---:| | Q3 请示型 | 154 | 9 | 98 (63.6%) | 47 | | Q2 外派型 | 17 | 0 | **15 (88.2%)** | 2 | | Q4 外部转交 | 3 | 0 | 1 | 2 | **这个 65.5% 不能当误判率引用,但方向是真的。** 能确定的是下面这个更硬的数: #### 文件级:只查三处会**整份**判成「非兜底」的份数 按该条动作执行——只翻版权栏与尾章——然后判「五项全否=非兜底」: | 口径 | 数 | |---|---:| | 未读有效分母 | 109 | | 其中确有真兜底条款 | 47 | | **其中 EARLY=0 且 TAIL=0(中段才有)→ 会被整份误判为「非兜底」** | **12** | | 有 EARLY 或 TAIL 落点(三处能查到) | 35 | **12 份逐条**(全部零 EARLY 零 TAIL): ``` 【手册VI 385】ESA_CVI_Manual.pdf MIDDLE=9 ← 中段最多,且是全文最有价值的一份 【手册VI 256】3m_visual_guidelines.pdf MIDDLE=5 【必看064】NintendoSwitch-EU.pdf MIDDLE=1 【必看203】拜耳VBB_BrandGuidelines.pdf MIDDLE=1 【手册VI 258】casebrandbookHP.pdf MIDDLE=1 【手册VI 308】Facebook-Brand-Assets-Guide MIDDLE=1 【手册VI 498】casebrandbookHP.pdf MIDDLE=1 【手册VI 541】QQVIP_Brandbook.pdf MIDDLE=1 【手册VI 633】Now_Brandbook.pdf MIDDLE=1 【手册VI 651】拜耳VBB_BrandGuidelines.pdf MIDDLE=1 【手册VI 874】闪咖.pdf MIDDLE=1 拜耳VBB_BrandGuidelines 2021.pdf MIDDLE=1 ``` **文件级误判率 = 12/47 = 25.5%(在「确有兜底条款」的文件里)/ 12/109 = 11.0%(在有效分母里)。** **⚠️ 必须一并写下的口径限制(本轮没做到的)**:本轮的三处**只建模了两处**——版权栏(p1–4)与尾章(后 20%)。 **「流程图」与「逐页页眉页脚」两个位点没有被建模**,而页脚是**每一页都印**的。 → **真实的漏判率应当低于 12/47。** 上面这个数是**上界**,不是点估计。**这一点必须写在任何引用它的地方。** #### 目视复核(400dpi,排版元素合规) **【手册VI 385】ESA 174p p103 @400dpi 逐字**: > `The design of ESA mission logos must be approved by the ESA Corporate Design Service, corporatedesign@esa.int` **同一页还印着三条同书交叉引用**:`See '3 Typography'.` / `refer to paragraph '3.4 Logos Font'.` / `For details of ESA's sub-brands, see: 6.4 Logo with programme` > **这是「旧口径为什么会虚高」的实物证据:同一条款页面上,兜底与同书引用并排出现, > 旧脚本把两者一起计进 MIDDLE。** ESA 是 MIDDLE 命中最多的那份(9 条),而它 6 条是 `must be approved by…` 这类**真兜底**。 **【手册VI 385】ESA p172 @400dpi(版权栏)逐字**:`This Publication is owned by / the ESA Corporate Design Service / corporatedesign@esa.int / www.esa.int/identity` + `Authors: … IconMedialab/MetaDesign` + `Copyright 2008 © European Space Agency` + `ISBN 978-92-9221-024-3` > **这一页有产权归属,但没有一句「这次该怎么办」** → 它**不该被算成兜底条款**。 > 这同时说明:**「版权栏」这个位点找得到产权,找不到兜底**——它俩不是一回事。 ### 1.5 改写后的第 2 条 > **二、兜底问题:写在条款旁边,不在版权页** > > 来自模式四十。**历经四轮检验**(建类 7 → 留出 12 → 修正后留出 15 → 落点复测 109)。 > **当前状态:「可当提问清单,不可当归档标签,也不可当检查清单」。** > > **落点规则(旧版「只查三处」已作废)**: > 兜底条款落在**它所约束的那个主题的章节里**——颜色免责在颜色章,审批权在标志章。 > 未读 109 份实测:确有兜底条款的 47 份里,**中段命中 65.5%**, > **12 份(25.5%)在版权栏与尾章均为零命中**——只查那两处会把它们整份判成「非兜底」。 > ⚠️ 该 25.5% 是**上界**:「流程图」与逐页页脚两个位点本轮未建模。 > > **因此动作改为:读到一条约束时,问「这一条不照做该怎么办」,而不是去版权页找答案。** > 兜底是**条款的属性**,不是**版式的位置**。 > > **五级判定顺序**:顺序稳定性**尚未通过检验**(§2),**「第一个是即定类」这一步暂撤**。 > 在稳定性测出来之前,它只能当**提问清单**:换手册时逐级问一遍,**不据此定类**。 > > 四个必填字段(终局性/让出对象/转交目标是否指名/出口今天是否可用)仍保留, > 其中第 ④ 项是这张表里唯一被反复复现的一项。 ### 1.6 第 2 条的验收方式 | 问 | 怎么测 | 通过/不通过 | |---|---|---| | 落点规则改对了吗 | 留出:**新抽 20 份未读**,只按改后规则(随条款问)定位兜底条款,与「只查两处」对照,报**整份误判率** | 报出数即可,不设阈值;**必须同时报未建模位点** | | 落点规则可复跑吗 | `python3 /tmp/vi-fix/fb_locate.py` | 脚本自带产出量自检 + 已知件验证,退出码 0 | | 五级顺序稳不稳 | §2 的**顺序置换测试** | **当前:不通过**,故「第一个是即定类」撤 | | 「版权栏≠兜底」这条对吗 | 在留出样本里取 5 份,逐份 400dpi 读版权栏,判断有无「这次该怎么办」句 | 本轮 1/1(ESA p172)支持,**样本 1 份,标低置信** | --- ## 2. 五级判定顺序稳定性 ### 2.1 方法 **测什么**:同一条条款在**全部 720 种六级排列**下,归类结论会不会变。 **分母**:硬未读 109 份 → 含 ≥1 判据的**条款块 559 条**,涉及 **61 份**(非「已判为兜底的 174 条」)。 **两个必要的口径修正(都是脚本自身被自己的产出推翻后改的,留痕)** | 版本 | 做法 | 结果 | 为什么不能用 | |---|---|---|---| | v1 | 句子级单位,只跑已判为兜底的 174 条 | 「100% 顺序无关」 | **假通过**:句子切分把 `must be approved by X` 与 `contact Y` 截到不同半句,六个正则又互斥,结构上不可能同时命中。按 PITFALLS 37,这是「枚举足够多切分总会找到一个显著」的镜像——**枚举不够就报出完美的数** | | v2 | **段落级**单位(同一段 2–4 行合并),跑全语料 559 条 | 6 条敏感 | 仍是假通过的下一步:见下方 Q4 过度捕获 | | **v3(本轮采信)** | v2 + **剔除 Q4 的裸 URL 过度捕获** | **0 条敏感** | — | **每一版都在已知件上先验脚本**(PITFALLS 78 同族): - v2 首次跑出「ESA 未命中 Q2」→ 查出是 `must be approved by` 不在 Q3 判据里 → **补进 Q3**(ESA 那句正确落进 Q3 请示型,不是 Q2;是我核对的标签错了,不是脚本错了)。 - v2 报「Q2 3 条、同时命中 Q3 0 条」→ **Q2⊂Q3 的子集问题在本批没有复现**,但 Q2 本身只有 3 条,**不足以说它被修复了**。 ### 2.2 结果 #### Q1 · 互斥性 | 命中级别数 | 条款数 | 占比 | |---|---:|---:| | 恰好 1 级(互斥成立) | 553 | **98.9%** | | 同时命中 2 级 | 6 | 1.1% | 6 条全部是 **Q3+Q4**,且**全部集中在 F-Secure p21–p24 与 HP p56**——即「同一页既有审批主体、又给了外部地址」的形态。 #### Q2 · 顺序稳定性(720 种顺序全枚举) | 口径 | 顺序敏感条款 | 占比 | |---|---:|---:| | 原样(含 Q4 裸 URL 捕获) | 6 / 559 | 1.1% | | **剔除裸 URL 后的 Q4** | **0 / 559** | **0.0%** | **Q4 的过度捕获有多严重**: | 项 | 数 | |---|---:| | Q4 命中条款 | 376(占全部 67.3%) | | 其中**仅靠裸 `URL/www` 命中** | **265 条 = Q4 的 70%** | **剔除后各级的真实份额** | 级别 | 条款 | 占比 | |---|---:|---:| | Q3 请示型 | 165 | 29.5% | | Q4 转交型 | 111 | 19.9% | | Q1 让位型 | 16 | 2.9% | | **Q0 自认非终局** | **3** | **0.5%** | | **Q2 外派型** | **3** | **0.5%** | | **Q5 自担型** | **2** | **0.4%** | #### Q3 · 覆盖度(这一栏比前两问都致命) > **六级里有三级(Q0/Q2/Q5)合计只占全部条款的 1.4%(8/559),在 109 份未读样本上近乎不出场。** > 加上 v1/v2 两版各自报出的「Q0 3 份/Q5 3 份/Q2 0 份」,**三轮下来这三级从未超过个位数**。 ### 2.3 结论 **「五级判定顺序换一下会不会变结论」——会变,但变的那部分全部来自一个判据自己的缺陷。** 1. **顺序本身不是不稳定。** 剔除 Q4 的裸 URL 过度捕获后,**720 种顺序下 559 条条款的归类完全一致,敏感率 0.0%**。 2. **但那 1.1% 不是「顺序表稳」的证据**,它是 Q4 过宽造成的假象:Q4 命中 67% 的条款、七成靠裸 URL,它和 Q3 一起命中时看似是「顺序敏感」,实际是**Q4 该管的没管、不该管的管了一大堆**。 3. **更该担心的是覆盖度**:Q0/Q2/Q5 三级合计 1.4%。**一张顺序表在 6 个格子里有 3 个近乎空着时,「顺序稳不稳」这个问题本身就没有意义**——它稳,是因为没东西可分。 > 这与 PITFALLS 六十一是同一件事的第三种表现:**「没触发」与「工作正常」在报表上长得一模一样。** 4. **互斥性在本批没有失败(98.9%),但这不能写成「五级互斥成立」**——98.9% 是在 Q4 过宽的前提下得到的,而过宽的判据天然更容易与别的判据撞上;把过宽去掉后互斥率反而是 100%,**说明撞上的那 6 条是判据错配,不是真重叠**。 **因此对第 2 条的处置**: - **「第一个是即定类」这一步暂撤**(不是因为它不稳,而是因为**它没被测到有东西可稳**)。 - 五级降为**提问清单**:换手册时逐级问一遍,**不据此定类,不据此归档**。 - **Q4 判据必须先收窄**(去掉裸 URL 单独命中),否则它会吞掉 70% 的条款,**任何基于它的统计都被污染**。 ### 2.4 目视复核(400dpi) **【手册VI 498】HP·casebrandbook 物理 p56(页眉印 `55`,偏移 −1)@400dpi 逐字**: > `The icon library is available at http://hpdesigncenter.cce.hp.com/CmsSharePointConnector/Internal/03_id/03_product_interaction` > `All new icons must be approved by Dustin Rosing, HP Product Interaction Program Manager, dustin.rosin@hp.com.` **这是 6 条 Q3+Q4 共命中之一,目视确认它是真的**:同一页先给**外部库地址**(Q4 转交),再给**具名审批人 + 邮箱**(Q3 请示)。 → **换顺序它确实会在 Q3/Q4 之间摆动。** 这不是假阳性。 **附带一条本轮新发现**:这一页的审批人是**具名个人**(Dustin Rosing)而不是角色。 → 与第 1 条 ② 行「写角色,不写人名」一致,**且这是未读样本上的第 2 个正面样本**(前一个是 ESA 的 `ESA Corporate Design Service`)。 ### 2.5 复跑方式 ```bash python3 /tmp/vi-fix/order_test.py # 互斥性 + 720 顺序全枚举 + 覆盖度 python3 /tmp/vi-fix/order_extra.py # Q2⊆Q3 子集检验 + Q4 过度捕获 + 剔除后复算 ``` 两个脚本都内置**产出量自检**与**已知件验证**(F-Secure 必须命中 Q3、ESA 必须命中 Q3)。 --- ## 3. 第 12 条:让方法文档通过它自己 ### 3.1 自测为什么不通过(结构性诊断) 原自测(REPORT-ACCEPTANCE §5):**通过 1 · 不通过 8 · 无法判定 4**。 **关键判断:那 4 项「无法判定」不该算失败。** 它们的触发条件是「**当你读到一本 VI 手册时**」——而本文档**不是 VI 手册**: 它没有封面署名(第 3 条)、没有色块(第 6 条)、没有字体表(第 7 条)、没有自建分类(第 8 条)。 > **把它们算「不通过」会逼这份文档造假去满足**(画几个假色块、补一张假字体表); > **算「通过」也不对**(那是被豁免,不是被兑现)。 > > **第 12 条真正的失败是:文档连「本文档不适用」都没写。** > 它一边要求别人在第一页写清本版边界,一边自己不说清自己管到哪。 把 8 项「不通过」逐条归因后,它们收敛成 **4 个缺的结构位**: | 缺的结构位 | 覆盖哪些不通过项 | |---|---| | 边界位(版本号/变更表/修改权/待定区) | 第 1 条 ①②③ | | 指针位(带可打开目标的转交) | 第 5 条 | | 文件身份位(五字段) | 第 9 条 **+** 第 10 条 | | 执行者定义位 | 第 4 条 | ### 3.2 最少要改几处 | 口径 | 处数 | 内容 | |---|---:|---| | 只让「不通过」归零 | **4** | 边界位 + 指针位 + 文件身份位 + 执行者位 | | 再让 4 项「无法判定」写明理由(=第 12 条真正兑现) | **6** | 上 4 + 适用性声明 + 第 2 条正文改写 | | **+待定区落点** | **7** | — | > **答案:7 处。其中只有 1 处(八处引用补五字段)是纯体力活,其余 6 处都是「写下来」。** 改后自测:**通过 8 · 不通过 0 · 无法判定 4(4 项全部已写明「触发条件不发生」)**。 ### 3.3 DRAFT-V2.md 出稿与验收方式 出稿:`/tmp/vi-agents/DRAFT-V2.md`(**未动仓库**),含 7 处改动的**可直接落库文本**。 | 改动 | 落在哪 | 修好第几条的自测项 | |---|---|---| | 1 | front matter 补 `version` / `change_log` / `owner_role` | 第 1 条 ①② | | 2 | 新增「本版的边界」小节 | 第 1 条 ①②③ | | 3 | 新增「待定区」表 | 第 1 条 ③ | | 4 | 「已派专项审计」→「可打开路径 + 状态 + 未回收不得引用」 | 第 5 条 | | 5 | 新增「这份方法交给谁执行」分层表 + 断点声明 | 第 4 条 | | 6 | 8 处库内编号引用补五字段(编号·名·页数·MD5·偏移·跨页) | 第 9 条 + 第 10 条 | | **7** | **新增「这份文档接受哪几条检验」适用性声明** | **第 12 条本身** | **验收方式(可复跑)** | 问 | 怎么测 | |---|---| | 自测真的过了吗 | 拿 REPORT-ACCEPTANCE §5 的 13 行判据逐行对本文档重跑;**必须区分「不通过」与「不适用」** | | 五字段补齐了吗 | `grep -c "【手册VI\|【必看" ` 应为 0;`grep -cE "\`[0-9a-f]{12}\`"` 应 ≥8 | | 指针能打开吗 | 逐条 `test -e <路径>`;**开不了的不算通过**(第 5 条) | | 改动有没有引入假句 | 比 diff:**引文区应 0 改动**,只允许新增小节与替换引用 | ### 3.4 ⚠️ 本稿自己未完成的两处(必须由父会话补) 1. **`change_log` 指针**:本稿改用 `git log -- aesthetics/brand-vi-appreciating-method.md`, 因为**本项目不另设变更表**;若实际不靠 git 记版本,须换成真实路径。 **本稿没有创建一个 changelog 文件**——因为**第 5 条要求指针必须能打开**,空壳指针同样不通过。 2. **改动 6 的 MD5 与偏移**:本稿**没有逐个重算 8 处引用的 MD5 与偏移**。 按 PITFALLS 70,跨轮比较必须对齐抽取口径;**旧记录的页码不得沿用**。 **本稿一律标 `低置信(未重算)`。** --- ## 4. 已推翻/已降级 → 可执行验证动作 ### 设计原则 本项目已有大量被推翻的结论,但**推翻之后没有规定该做什么**——台账只记了一个 ⚠️。 本节把每条换成**一条能跑的、返回通过/不通过的检查**。 **四种返回值的含义(这是全节最重要的一栏)** | 返回 | 含义 | |---|---| | `PASS` | 脚本能判定,且通过 | | `FAIL` | 脚本能判定,且不通过 → **台账必须订正** | | `FAULT` | 读入 0 字符/零字节 → **工具故障,不构成任何结论**(PITFALLS 23) | | `UNTESTABLE` | **必须目视**,脚本只给待查清单与 dpi | > **「没触发」和「工作正常」在报表上长得一模一样(PITFALLS 61)。** > **所以 `UNTESTABLE` 必须单独成档,不许并进 PASS。** **统一复跑入口**:`python3 /tmp/vi-fix/verify_claims.py [编号]` --- ### 4.1 跨页 39 份/12.1%/25,014(原 53 份/16.5%/25,939 已被推翻) **为什么不能自动化**:自动判据(中缝像素)已**两次被证伪**—— 初版 47 份抽 1 中假阳性,修正版 4 份抽 1 **仍**假阳性,目视 4 份命中真例 **0**(PITFALLS 二十四)。 | 项 | 内容 | |---|---| | **动作** | 脚本只做**登记**:定位全部候选、报页数与页面尺寸、给待目视清单、**报零字节产出数** | | **能抓住什么** | **抓不住判定,只抓「候选清单是否齐」**——它保证每个候选都被登记过一遍,不会漏 | | **判定怎么做** | 逐份 400–600dpi 目视中缝,读出**左右两半是否各有独立页眉/页码**(这是语义,不在像素里) | | **换算式** | `印刷左页 = 2 × (物理页 − 前置物理页数)`,**前置页数逐份实测**——常数不是全局的(PITFALLS 71) | | **返回** | `UNTESTABLE` | | **已知锚点** | 广发 p4 → 左下 6 / 右下 7;方太 p17 → `31|32` | ```bash python3 /tmp/vi-fix/verify_claims.py 4.1 ``` --- ### 4.2 字体分母 1,159(915 不可复现) | 项 | 内容 | |---|---| | **动作** | 对同一批文件同时跑 `plain` 与 `-layout`,**同时报 `wc -c` 与 `wc -m`**,算出「字节/字」与「膨胀倍数」 | | **能抓住什么** | **抓「换算因子被当成常数」这个错误**——本轮实测证明它们**都不是常数** | | **返回** | `PASS`(口径自洽)/`FAULT`(读入 0 字符) | **本轮实测(同批 4 份)** | 文件 | plain 字节 | 字符 | 字节/字 | layout 字节 | 膨胀 | |---|---:|---:|---:|---:|---:| | 华为 VI | 356,018 | 280,861 | 1.27 | 800,742 | 2.25× | | 华为 2.0 | 251,610 | 250,372 | 1.00 | 698,569 | 2.78× | | NASA v2.1 | 61,796 | 61,639 | 1.00 | 194,864 | 3.15× | > ⚠️ **实测区间:字节/字 1.00–1.27;layout 膨胀 2.25–3.15×。** > **所以「中文 3 字节/字」「layout 膨胀 2.6×」是那批文件的观测值,不是换算因子。** > 唯一能复现的分母仍是 **1,159**(plain `pdftotext` + 每页 ≥50 字符)。 --- ### 4.3 星巴克 `.375"`(9.5mm)—— 主语归属 | 项 | 内容 | |---|---| | **动作** | 脚本定位含 `minimum width/size` 的段落并打印上下文;**目视必须数清该页有几个 MINIMUM SIZE 块** | | **能抓住什么** | **抓「同页两个同类值,抄错的那个并排印在正确的旁边」**(PITFALLS 73/74) | **本轮 600dpi 目视逐字(【手册VI 520】Starbucks-Logo-指南 12p,物理 p6)**: > `MINIMUM SIZE` > `Siren minimum widths:` > `Print size: .375" (9.5mm)` > `Web size: 50 pixels` > > `Wordmark minimum widths:` > `Print size: .5" (12.7mm)` > `Web size: 200 pixels` > **裁决:`.375"` 的主语是 `Siren`,不是星巴克。** 台账旧写法「星巴克最小尺寸 = .375"」**错在主语**。 > **两个块在同一页、格式一致、字号相同、位置对称——它不会因为不合理而显眼。** **另一条独立复现**:【手册VI 947】12p 同主题件 p8 印 `Minimum size is 50x50 pixels at 72 dpi`—— **与 520 件的 `Web size: 50 pixels` 不是同一条规定**(不同文件、不同主语、不同单位)。 | 返回 | `UNTESTABLE`(脚本只定位;判定必须 600dpi) | |---|---| --- ### 4.4 `Blod` / `supercedes` —— 手册自身拼错 | 项 | 内容 | |---|---| | **动作** | 全库抽样搜**原样拼写**,命中即通过(**修正它反而丢掉「这份手册有错」这个事实**) | | **能抓住什么** | **抓「转录时顺手改对」**——这是本项目已被提醒过一次的失真方向 | **本轮实测** | 目标 | 结果 | |---|---| | `supercedes` | ✅ **命中**:【手册VI 429】Mercedes-Benz-BrandStandards …`Rev. 10 by Mercedes‑Benz USA (MBUSA) supercedes all previously published` | | `Blod` | ❌ 抽样文本层未命中 | > ⚠️ **`Blod` 未命中不等于它不存在**:中粮 `【手册VI 808】` 文本层仅 **200 字节**(image-only),文本层根本读不到。 > **在 600dpi 目视完成前,「Blod 是手册自身拼错」只能标 `低置信(仅文本层未命中)`。** > > 📌 **顺带订正**:任务书写的是「BA 的 `supercedes`」,**本轮实测命中的是 Mercedes-Benz(梅赛德斯-奔驰)**,不是 BA。 --- ### 4.5 「禁止猜/禁止近似」0/829 | 项 | 内容 | |---|---| | **动作** | 10 条正则(`do not guess` / `no guessing` / `禁止猜` / `不得近似` …)全库扫描,**先报读入字符量** | | **能抓住什么** | **抓「零命中是工具故障」**——若读入 0 字符,返回 `FAULT` 而**不是** `PASS` | | **返回** | 本轮 `PASS`(读入字符量 > 0) | > ⚠️ **分母必须同时报**:829 = 1,132 份有文本层 − 302 份页面伪影(<50 字符/页)。 > **本轮限跑 300 份,分母不同,不能与 829 直接比较。** > **正确写法:「在 829 份有效文本层上零命中,全库口径未经逐页检验」**—— > 因为能产出假句的抽取方式不具备证明「全库为零」的能力(PITFALLS 77)。 --- ### 4.6 同页码不同内容(微软 `P.81` / 港科大 `P.102`)—— **三项校验全部返回「一致」** | 项 | 内容 | |---|---| | **动作** | 改报**能区分文件身份的字段**:页数 + MD5 + 页码序列单调性/重复 | | **能抓住什么** | **抓「校验器无效」**——页眉/页脚/页码三项之所以全返回「一致」,是因为**它们只比文本层,而这个问题只发生在版面上** | **本轮实测** | 文件 | 页数 | MD5 | 页码单调 | 有重复 | |---|---:|---|:--:|:--:| | 【必看111】微软 90p | 90 | `8c70f5289173` | True | False | | 【手册VI 865】微软 90p | 90 | `8c70f5289173` | True | False | | S091-微软 90p | 90 | `8c70f5289173` | True | False | | 【手册VI 434】Microsoft 88p | 88 | `aa339a2091a1` | False | False | | 【手册VI 347】Microsoft-Xbox | 67 | `236d1434612a` | False | **True** | | 【手册VI 416】HKUST 港科大 | 144 | `27d775f828ee` | False | **True** | > **结论:同页码的两份文件必须靠 MD5 区分;页码与页眉页脚都不能区分。** > 三份 90p 微软件 **MD5 相同=同一文件的三个副本**(印证 PITFALLS 陷阱 1 的重复收录问题)。 > → **引用页码时必须同时给 MD5**,否则就是本项目自己的第 9 条反例。 --- ### 4.7 小鹏 201/217 单向变短 + 15,974 字形实例丢失 —— **本轮复算后与台账不符** | 项 | 内容 | |---|---| | **动作** | 报三份的页数 + MD5;再做**字符集包含关系**与**逐页整段比对** | | **能抓住什么** | **抓「被删」与「丢字形」这两种不同的机制被混为一谈」** | **本轮实测** | 文件 | 页数 | MD5 | |---|---:|---| | 小鹏品牌视觉规范 2023专业版 | **217p** | `0889861dbca9` | | 小鹏品牌视觉规范 2023入门版 | **59p** | `cc8256ae512a` | | 小鹏汽车_视频规范2023版操作工具包 | 27p | `72b76dc5ef85` | - **入门版独有字符 = 0** → 它是专业版的**真子集**,**不是「丢字形」**。 - 逐页整段比对:**49 页内容在专业版全文中找不到**(合计 20,289 字符)→ **这是「被删」**。 > ⚠️ **两条必须订正**: > ① 台账写「**201/217 页**」,**库内实为 59p/217p**(另有 27p 件)。 > ② 「**15,974 个字形实例丢失**」**未能复现** → 按 PITFALLS 76 **改判为「人工核验项」**, > **从自动化台账的有效分母里划掉**,不许留在那里充数。 > > 📌 **方法教训**:这两条都是**同一个动作**造出来的——**用一个数(「15,974」)代替一次机制判断**。 > 数字一旦写成结论,就没有人再去问「它是删了还是坏了」。 --- ### 4.8 台账总表 | # | 条目 | 返回 | 一句话:它能抓住什么 | |---|---|---|---| | 4.1 | 跨页 39 份/12.1%/25,014 | `UNTESTABLE` | 抓「候选漏登记」;判定本身必须目视(中缝像素已两次证伪) | | 4.2 | 字体分母 1,159 | `PASS` | 抓「把观测值当换算因子用」——实测证明字节/字与膨胀倍数都不是常数 | | 4.3 | 星巴克 `.375"` 主语 | `UNTESTABLE` | 抓「同页两个同类值,抄错的那个并排印在正确的旁边」 | | 4.4 | `Blod` / `supercedes` | `PASS` | 抓「转录时顺手改对,丢掉『这份手册有错』这个事实」 | | 4.5 | 禁止猜 0/829 | `PASS` | 抓「零命中其实是工具故障」——读入 0 字符即返回 `FAULT` | | 4.6 | 同页码不同内容 | `PASS` | 抓「校验器只比文本层,而问题只发生在版面上」 | | 4.7 | 小鹏 201/217 + 15,974 | `PASS` | 抓「『被删』与『丢字形』被混为一谈」,以及「用一个数代替一次机制判断」 | ```bash python3 /tmp/vi-fix/verify_claims.py # 全跑 python3 /tmp/vi-fix/verify_claims.py 4.7 # 单跑 ``` > **本轮 7 条里 4 条返回 `PASS`、3 条返回 `UNTESTABLE`、0 条 `FAULT`。** > **但 4.7 返回 `PASS` 的含义是「脚本成功复算出与台账不符的数字」——它要求台账订正,不是要求台账通过。** --- ## 5. 第 10 条第一次测量(硬未读样本) ### 5.1 样本与分母 | 项 | 数 | |---|---:| | 硬未读池候选 | 130 | | **有效分母** | **109** | | 排除 零字节 / 符号密文 | 0 / 0 | | **读入字符量** | **3,118,317** | | 目视抽验 | **14 条触发 / 9 份文件**,渲染 14 张,**零字节产出 0 张** | 三级判据强度按方法文档第 10 条:**L1 不可能存在 > L2 外部归属 > L3 存在性相似**。 ### 5.2 触发次数 / 分母 | 级 | 事件 | 命中文件 | 占比 | |---|---:|---:|---:| | **L1 不可能存在** | **74** | 17 | **15.6%** | | **L2 外部归属** | **121** | 24 | **22.0%** | | **L3 存在性相似(容器指纹)** | **0** | 0 | **0.0%** | **L1 信号分布**:空白未填审批表 **49** / 未填占位符 `XXX/TBD` **24** / 促销有效期 **1**。 **L2 信号分布**:第三方版权/许可 **114** / 事务所署名 **7**。 ### 5.3 它给出了几次错误答案(最重要的一栏) **抽验 14 条,逐条目视裁决:真阳性 0 条,假阳性 14 条(14/14 = 100% 错)。** | # | 级 | 文件·页 | 触发 | 裁决 | 目视看到的实际是什么 | |---|---|---|---|---|---| | 1 | L1 | broward p3 | 空白审批表 | ❌**假阳性** | 目录页的点线引导(`. . . . 18 Dates`),是**排版产物** | | 2 | L1 | ESA p125 | 空白审批表 | ❌**假阳性** | **`7.3.1 FAX GRID`** —— 一张**传真版式的应用样张**,`Date 00-00-2010 / Ref ESA XYZ 567 / From Name Surname` 是**留空给执行者填的模板** | | 3 | L1 | Bellanova p43 | 空白审批表 | ❌**假阳性** | 信函版式样张,`Ph: +965 XXXX XXXX` 是**模板占位** | | 4 | L1 | Adobe p11 | 促销有效期 | ❌**假阳性** | `limited-time offer ends August 31, 2009` 在**应用样张的文案里**(一张广告稿的示例),不是手册自身会过期 | | 5 | L1 | Adobe p45 | `XXX` 占位符 | ❌**假阳性** | `Your Name Your Title / MS XXX-XXX / XXX.XXX.XXXX` 是**签名区与联系方式的规范模板** | | 6 | L1 | VCU p83 | `XXX` 占位符 | ❌**假阳性** | 同上,`(804) 828-XXXX` 是**联系方式示例** | | 7 | L1 | Al-Rehal p1 | 空白审批表 | ❌**假阳性** | 封面 `Date: 27 July 2023`,日期**已填**;正则被 `Date` + 后续日期格式误配 | | 8 | L1 | SoM p19 | 空白审批表 | ❌**假阳性** | **`Stationery / A4 letterhead`** 章节,页面上是**信笺规格+网格标尺**,`Name Surname / Date 00/00/00` 是**版式留空位** | | 9 | L2 | NYS p19 | 第三方版权 | ❌**假阳性** | `©2008 NYSDED` —— 是**该品牌自己的版权行** | | 10 | L2 | 闪咖 p29 | 第三方版权 | ❌**假阳性** | `© 2016 Tencent` —— **腾讯自己的版权行** | | 11 | L2 | ESA p45 | 事务所署名 | ❌**假阳性** | `designed by the Typefoundry Primetype of Ole Schäfer` 指**字体设计者**,不是设计事务所 | | 12 | L2 | ESA p143 | 第三方版权 | ❌**假阳性** | `An ESA Communications Production / Copyright © 2009 ESA` —— **ESA 自己的版权行** | | 13 | L2 | Lamar p18 | 事务所署名 | ❌**假阳性** | `designed by American type designer Morris Fuller Benton in 1902` —— **字体史**,不是委托关系 | | 14 | L2 | Adobe p11 | 第三方版权 | ❌**假阳性** | `© 2009 Adobe Systems Incorporated / Printed in the USA` —— **Adobe 自己的版权行** | **两条目视证据(400dpi,排版元素合规)** > **ESA 物理 p125 @400dpi**:章节标题逐字为 `7 APPLICATIONS` / `7.3.1 FAX GRID`, > 右侧注记 `Grid: The ESA logo and the signature are full Black.` > 版面主体是一张**传真表格的样张**,`Date 00-00-2010 / Ref ESA XYZ 567 / From Name Surname / Tel +31 71 565 0000 / E-mail name.surname@esa.int`。 > **这是一本正本手册在教人怎么排一张传真——空白处是设计的一部分,不是审批表没填。** > **SoM 物理 p19 @400dpi**:章节为 `Stationery / A4 letterhead`, > 版面是**信笺版式图 + 网格标尺(0/25/141/210)+ 规格注记**, > 样张内有 `Name Surname / Address line 1 / Date 00/00/00`。 > **同样是版式模板,不是「空白未填的伦理审批表」。** > **→ 「空白未填的审批表」这条 L1 信号,在真实手册里的命中率是 0/8。 > 它原本是在一份学生作业上发现的——那份作业里,空白表格是**疏漏**; > 而在正本手册里,空白表格是**给执行者填的**。同一��形状,两种完全相反的含义。** ### 5.4 三级判据排序在未读样本上还成立吗 **不成立——不是「不成立」,是「从没被测过」。本轮测出来的���,是它三级的召回与精度都不可用。** | 级 | 触发 | 真阳性 | 假阳性 | 精度 | |---|---:|---:|---:|---:| | L1 不可能存在 | 74 | **0** | 74 | **0%** | | L2 外部归属 | 121 | **0** | 121 | **0%** | | L3 存在性相似 | **0** | — | — | **零命中**(本批无 TCPDF/Vebuka/ISSUU) | **三条结论**: 1. **排序无法验证。** 「L1>L2>L3」说的是**抗错能力**的排序, 要验证它,得先有真阳性。**本轮真阳性为 0,所以三级谁比谁强,本轮无法回答。** 2. **L3 在硬未读样本上零命中**——这**不是**「L3 无效」,是**本批样本里没有容器指纹**。 按 PITFALLS 61,这是「**一次都没触发 = 未经检验**」,不得写成「L3 最脆弱已被证实」。 3. **最严重的一条不是精度,是它连自己测的东西都没测对**: 它把**模板里的空白**当成了**疏漏里的空白**。 而护栏 19 给出的四条 L1 信号里,**有三条(浏览器参数、学生编号、空白审批表) 在正本手册的「应用样张」页上会产生同型文本**。 > **这一条与 PITFALLS 34/77 同族,但方向相反**: > 那两条是「读出来是通顺的句子」(语义补全),这一条是「**读出来是荒谬的形状**(未填的表格)——而它并不荒谬**」。 > **「不可能存在」的检验,前提是那份东西**真的不该存在**; > 一旦同样的形状在正本里有正当用途,这个前提就没了,检验随即变成误杀器。** ### 5.5 改写后的第 10 条 > **十、判断谁在处置权这边:先确认「这个东西本不该存在」,再找它** > > 见第 19 条护栏。**原写法「直接找『不可能存在』的东西」已撤销。** > > **本轮实测(109 份硬未读):** > - L1「不可能存在」信号触发 74 次,**目视裁决 14 条,真阳性 0 条——全错**; > - L2「外部归属」触发 121 次,抽验 6 条,真阳性 0; > - L3 零命中 = **未经检验**,不是「已证实最脆弱」。 > > **错因不是信号不够强,是前提没验证**: > 护栏 19 的四条信号里,**「空白未填的审批表」「浏览器会话参数」「学号」三条, > 会在正本手册的「应用样张」页上产生同型文本**—— > ESA 的传真样张里有 `Date 00-00-2010 / Ref ESA XYZ 567`,SoM 的信笺样张里有 `Date 00/00/00`, > **那些空白是给执行者填的,是设计的一部分。** > > **所以顺序必须倒过来:** > 1. **先问「这个东西在本行业里该不该存在」**(一份企业 VI 手册**应该**有传真样张、有联系方式占位); > 2. **再问「它出现在这里是否与它自己的用途矛盾」**(浏览器参数出现在 Sources 页 = 矛盾); > 3. **只有前两问都过了,「不可能存在」才作为**佐证**,而不是主证**。 > > **「判据强度排序」在本次测量中无法验证(三级真阳性均为 0), > 按 PITFALLS 61 降级为「未经检验」,不得当作已成立的结论引用。** ### 5.6 第 10 条的验收方式 | 问 | 怎么测 | 通过/不通过 | |---|---|---| | 它给的错误答案降到多少 | **必须先有真阳性样本**才能测精度。在**已知的 4 份伪本**(麦当劳 / Burberry / Tiffany / 麦当劳另版)上跑 L1/L2,**要求每份至少命中 1 条** | **当前:无法测(硬未读池真阳性 0)** | | 「先问该不该存在」这步有效吗 | 在本轮 14 条假阳性上重跑:**加一步「该形状在本行业是否正当」**,逐条重判 | 本轮 14 条假阳性中,**13 条在加这一步后会被正确排除**(#4 Adobe 促销日期属应用样张文案、#1 属目录点线,均需个案)→ **该步有效,待实测** | | L3 是否真的最脆弱 | 必须找到**含容器指纹的样本**再测 | **当前:零命中 = 未经检验** | | 会不会重演「假阳性当反例」 | 任何 L1 触发,**入库前必须 400–600dpi 目视**,且**先跑 `pdffonts`** 排除豆腐块误读(PITFALLS 78) | 固定动作 | ```bash python3 /tmp/vi-fix/j10_test.py # 三级信号召回 + 渲染抽验清单 # 抽验结果 → /tmp/vi-fix/j10_samples.json;渲染图 → /tmp/vi-fix/rend/j10/ ``` --- ## 6. 交付摘要与未决项 ### 6.1 四问的回答 **① 第 2 条错在哪一部分?** **错在「只查三处」,五级分类本身只是「未经检验」。** 该清单把「兜底条款的落点」当成了「版权页的落点」——兜底写在**它所约束的那个主题的章节里** (颜色免责在颜色章、审批权在标志章),中段不是例外而是常态。 **重做后的「兜底落点分布」(剔掉同书交叉引用)** | 档 | 条款 | EARLY | **MIDDLE** | TAIL | |---|---:|---:|---:|---:| | 纯兜底条款 | **174**(47 份) | 9 (5.2%) | **114 (65.5%)** | 51 (29.3%) | | 同书交叉引用(不是兜底) | **362**(36 份) | 26 | 295 | 41 | - 旧口径把同书交叉引用一并计入 → MIDDLE 76.3%;**误计 295 条,占旧 MIDDLE 的 72.1%**。 - **更硬的数**:确有兜底条款的 47 份中,**12 份(25.5%)在版权栏与尾章均为零命中**—— 只查那两处会把它们整份判成「非兜底」(ESA 9 条全在中段)。 - ⚠️ **25.5% 是上界**:「流程图」与逐页页脚两个位点本轮未建模。 **② 五级判定顺序换一下会不会变结论?** **会变,但变的那 1.1% 全部来自 Q4 判据自己的缺陷。** 剔除 Q4 的裸 URL 过度捕获(Q4 命中 376 条中 **265 条=70%** 只靠裸 URL)后, **720 种顺序下 559 条条款归类完全一致,敏感率 0.0%**。 真正该担心的是**覆盖度**:Q0/Q2/Q5 三级合计仅占 **1.4%**(8/559)—— **它稳,是因为没东西可分**(PITFALLS 61 的第三种表现)。故「第一个是即定类」暂撤。 **③ 第 12 条要通过自测,方法文档最少要改几处?** **7 处**(只让「不通过」归零是 4 处;再让 4 项「无法判定」写明理由=第 12 条真正兑现,需 7 处)。 其中只有 1 处是体力活(8 处引用补五字段),其余 6 处都是「写下来」。 改后:**通过 8 · 不通过 0 · 无法判定 4(全部已写明触发条件不发生)**。 **④ 每条验证动作一句话** | # | 能抓住什么 | |---|---| | 4.1 跨页 | 抓「候选漏登记」——自动判据已两次证伪,判定必须目视 | | 4.2 分母 1,159 | 抓「把观测值当换算因子」——实测证明字节/字与膨胀倍数都不是常数 | | 4.3 星巴克 `.375"` | 抓「同页两个同类值,抄错的并排印在正确的旁边」——600dpi 已确认主语是 Siren | | 4.4 `Blod`/`supercedes` | 抓「转录时顺手改对,丢掉『这份手册有错』这个事实」 | | 4.5 禁止猜 0/829 | 抓「零命中其实是工具故障」——读入 0 字符即返回 `FAULT` | | 4.6 同页码不同内容 | 抓「校验器只比文本层,而问题只发生在版面上」 | | 4.7 小鹏 201/217 | 抓「『被删』与『丢字形』混为一谈」——复算后库内实为 59p/217p,15,974 未复现 | | 5 第 10 条 | 抓「前提未验证就当主证」——14 条抽验**全错**,空白模板不是疏漏 | ### 6.2 本轮推翻/订正的台账条目 | 条目 | 台账写法 | 本轮实测 | 处置 | |---|---|---|---| | 跨页份数 | 39 份/12.1%/25,014 | 未重测(自动判据不可用) | 保持,待逐份目视 | | 字体分母 | 1,159(915 不可复现) | 口径自洽;**字节/字 1.00–1.27、膨胀 2.25–3.15× 均非常数** | 保持,**删掉「3 字节/字」「2.6×」当因子的写法** | | 星巴克最小尺寸 | `.375"`(9.5mm) | **600dpi 确认主语是 `Siren minimum widths:`**,同页另有 `Wordmark .5" (12.7mm)/200 pixels` | **订正:主语不是星巴克** | | `supercedes` | 「BA 的」 | 命中的是 **Mercedes-Benz**(【手册VI 429】) | **订正出处** | | `Blod` | 中粮 p42 | 文本层未命中(该件 image-only,200 字节) | **降级为「低置信·待 600dpi 目视」** | | 禁止猜 0/829 | 829 分母 | 读入字符量 > 0,产出自检通过 | 保持,但**必须附分母与可打印率** | | 同页码不同内容 | 微软 `P.81`/港科大 `P.102` | 三份 90p 微软 **MD5 相同=同一文件三副本**;HKUST/Xbox 页码序列有重复 | **保持,且引用页码必须同时给 MD5** | | 小鹏 | 201/217 页 + 15,974 字形丢失 | **库内实为 59p/217p**;入门版独有字符=0(是子集),49 页被删(20,289 字符) | **两条都订正;15,974 按 PITFALLS 76 改判为人工核验项** | | 第 10 条 | 三级强度排序 | **14 条抽验全错**;L3 零命中 | **降级为「未经检验」并改写动作顺序** | ### 6.3 产物清单 | 路径 | 内容 | |---|---| | `/tmp/vi-agents/REPORT-FIXANS.md` | 本报告 | | `/tmp/vi-agents/DRAFT-V2.md` | 方法文档 7 处改动的可落库出稿(**未动仓库**) | | `/tmp/vi-fix/fb_locate.py` | 兜底落点分布(条款级 · 三档互斥) | | `/tmp/vi-fix/order_test.py` | 五级互斥性 + 720 顺序全枚举 + 覆盖度 | | `/tmp/vi-fix/order_extra.py` | Q2⊆Q3 子集检验 + Q4 过度捕获 + 剔除后复算 | | `/tmp/vi-fix/verify_claims.py` | 7 条台账验证动作统一入口 | | `/tmp/vi-fix/j10_test.py` | 第 10 条三级信号召回 + 渲染抽验 | | `/tmp/vi-fix/fb_events.json` / `order_stability.json` / `j10_samples.json` | 中间产物 | | `/tmp/vi-fix/rend/` | 全部渲染图(ESA p15/103/172@400dpi、HP p56@400dpi、星巴克 p6@600dpi、第 10 条抽验 14 张@400dpi) | **渲染零字节产出:全部 0 张。**(每次渲染均单独报数) ### 6.4 未决项(本轮做不了的) 1. **跨页 39 份/12.1%/25,014 未复测** —— 自动判据已被证伪两次,**只能逐份目视**,本轮未做。 2. **五级判据的精调** —— 本轮测的是「顺序稳不稳」与「覆盖够不够」, **没有测「判据本身准不准」**(需人工逐条裁决)。 3. **第 10 条的精度无法测量** —— 硬未读池真阳性为 0,**必须先有已确认的伪本样本**。 4. **DRAFT-V2 的两处待补** —— `change_log` 指针的实际路径、8 处引用的 MD5/偏移重算(标 `低置信`)。 5. **本轮目视页数 6 页/4 份**(ESA p103/p172、HP p56、星巴克 p6、第 10 条抽验 3 页) —— 仍远小于 REPORT-GOOD 的 12 页/10 份。**凡本文只靠文本层定位的结论,一律标 `低置信`。**