# 页数与跨页交付清单 —— 编制与可用性检验 (骨架先落盘,之后逐节 `cat >>` 追加。行数随每次追加上涨,用 `wc -l` 自证。) ## 0. 本报告的三项任务 - [占位] 任务① 交付清单 PAGE-COUNT.tsv 的口径与字段定义 - [占位] 任务② 20 份独立复核 + 下游使用检验 - [占位] 任务③ 清单里还不可信的格子 ## 1. 必读与已核 - [占位] PITFALLS.md 行数核对 ## 2. 口径:物理页 vs 印刷页 - [占位] ## 3. 全库总量与算式复算 - [占位] ## 4. 清单结构与字段定义 - [占位] ## 5. 20 份独立复核(任务②) - [占位] ## 6. 下游使用检验:清单能不能被正确读懂 - [占位] ## 7. 不可信格子清单(任务③) - [占位] ## 8. 「可打印率」这一列:留还是删 - [占位] ## 9. 已知不可比口径与边界声明 - [占位] --- ## 进度记 · 第 1 次追加(取证主轮中途,纪律 #64/#66:边做边写) - PITFALLS.md 已读毕并核对:**1,176 行**(分段读 1–365 / 366–724 / 725–1055 / 1056–1176)。 - 全库抽取完成:1,561 份 → `MASTER.tsv` **1,561 行(预期 1,561,零缺行)**; 页码候选探针 `FOLIO-PROBE.tsv` **1,561 行**,其中 1 份 FAIL(【手册VI 1226】广汽丰田,与 MOTHER 记录的瞬时抽取失败同一份,重抽得 127,189 字符)。 - **MD5 前 12 位去重 = 1,271**,与项目既有「1,271」完全一致(与仓库早前 1,267 口径不同,仍不可直接比较)。 - **盲区分母对齐**:按 MOTHER 的「全文 <500 字符」口径,本轮得 346 份;剔除 1 份工具故障件后 = **345**,与 MOTHER 的 345 一致。 - 跨页裁决表对齐:`SPREAD-VERDICTS.tsv` 的 321 条路径 **100% 匹配**到库内真实文件,无悬空路径。 - 已完成 15 份独立复核(其中 6 份真跨页、6 份有偏移记录、5 份页码形态异常、若干随机),逐项目视记录于 `/tmp/vi-pages/RECHECK-LOG.tsv`。 - ⚠️ **本轮已发现两处与既有「已定案数字」直接冲突的证据**,尚未写完分析,见下文第 5、7 节。 --- ## 1 · 必读与已核 | 文件 | 行数 | 核对结果 | |---|---:|---| | `PITFALLS.md` | **1,176**(任务书写「约 1,180」) | 分四段读完,行号区间 1–365 / 366–724 / 725–1055 / 1056–1176,无跳读 | | `SPREAD-VERDICTS.tsv` | 322 行(1 表头 + 321 数据)× 8 列 | 321 条路径 **100%** 匹配库内真实文件,零悬空路径 | | `REPORT-SPREAD-MID.md` | 134 行 | 已读 | | `REPORT-MOTHER.md` | 654 行 | 已读,重点读盲区口径(第 ③ 节) | | `library-coverage.md` | 232 行 | 已读,重点读「跨页合并状态」(167–232 行) | **本次新产出**:`/tmp/vi-agents/PAGE-COUNT.tsv`(1,561 行 + 表头)、本报告、 `/tmp/vi-pages/`(`MASTER.tsv`、`FOLIO-PROBE.tsv`、`RECHECK-LOG.tsv`、渲染图 `recheck/`)。 **未改动仓库任何文件。** --- ## 2 · 口径:物理页 与 印刷页(这是整份清单唯一不能含糊的地方) | 名词 | 定义 | 本清单取值来源 | |---|---|---| | **物理页** | PDF 文件里的一页 = 一个「Page」。**永远可以直接用 `pdfinfo` 读到,不需要判断。** | `pdfinfo Pages`,全库 1,561 份实测,零解析失败 | | **印刷页** | 书上真正印着的印面页数(读者翻页翻到的那个数) | **必须靠换算,且换算前提是「偏移」实测** | **两条换算式(本轮用 7 份不同文件的 500–600dpi 目视实测确认)**: ``` 非跨页件:印刷页数 = 物理页数 + 偏移 (偏移 = 印刷页号 − 物理页号,可正可负) 跨页件 :末页右印面号 = 2 × 物理页数 − 右常数 → 印刷页数 = 2×物理页数 − 右常数 ``` **「右常数」逐份不同,本轮实测七份,得到 1 / 1 / 2 / 2 / 1 / 6 / 6 七种值**: | 文件 | 物理页 | 实测页码(500–600dpi 目视) | 右常数 | `2×物理页` 高估 | |---|---:|---|---:|---:| | 广发银行 VI781 | 61 | 物4 = 印 `6|7` | 1 | 1 页 | | 方太 VI841 | 35 | 物17 = 印 `31|32` | 2 | 2 页 | | pidan【必看140】 | 63 | 物6 = `10|11`,物7 = `12|13`,物8 = `14|15` | 1 | 1 页 | | 全季 VI954 | 143 | 物20 = 印 `39`(右印面) | 1 | 1 页 | | 便利蜂 | 23 | 物10 = `PAGE 13~14` | 6 | 6 页 | | 九街淑芬 | 14 | 物5 = 印 `07|08`(页眉) | 2 | 2 页 | | 振华重工 VI764 | 86 | 物8 = `09|10`,物9 = `11|12` | 6 | 6 页 | > **这七个常数互不相同,直接证实 PITFALLS 71**:`印刷页 = 2 × 物理页 − 2` 不是全局式。 > 任何只报一个常数的换算式在这七份里有 **6 份会算错**。 > > 方向也不统一:广发/pidan 是「左=2p−2、右=2p−1」,方太是「左=2p−3、右=2p−2」—— > **左右互换了**,只看一个数就会整体差 1。 **「印刷页 = 物理页」同样不是恒等式**:伏牛山泉 46 物理页,实测物17 = 印 `07`(偏移 −10), 说明前 10 个物理页是**无号前置页** → 它的印刷页数是 **36**,不是 46。 **而全库 25,014 的算法对所有非跨页件都默认了「偏移 = 0」,这个默认已经被至少 4 份实测证伪。** --- ## 3 · 全库总量与算式复算 **已定案的三个数字,本轮全部复算通过:** | 项 | 值 | 复算 | |---|---:|---| | 321 行物理页合计 | **22,845** | 39 份 SPREAD 行 2,169 + 282 份 SINGLE 行 20,676 = **22,845** ✅ | | 39 份跨页件物理页 | **2,169** | 直接对 `SPREAD-VERDICTS.tsv` 的 39 行 `pages` 求和 ✅ | | 印刷页总数(口径内) | **25,014** | 22,845 + 2,169 = **25,014** ✅ 算式可复现 | **但「全库」这个词在这三个数字上不成立,这是本报告最重要的口径更正:** - 22,845 / 2,169 / 25,014 的分母是 **321 份**,不是 1,561 份。 - 本轮实测全库 **1,238 份是横版**,其中 **只有 321 份**进入过跨页裁决, **另外 917 份横版从未进入裁决集**。 - 竖版/方形 **323 份**:双印面并排在几何上不可能,结构性排除跨页,这 323 份可以并入分母。 - **所以 12.1% 的分母是 321,不是 1,561。** 写成「全库真跨页 12.1%」会让人以为剩下 1,240 份都判过「不是跨页」。 ### 3.1 ⚠️ 917 份未裁决横版里,至少 3 份是项目自己早已记录的真跨页 `PITFALLS 十二` 明文写着「19 份比例≈2.00 的真跨页」含**广汽丰田 211p、振华重工 86p**, `REPORT-CATEGORY` 写着**沃尔玛**已凭页脚双页码「确认为真跨页」—— **这三份都不在 `SPREAD-VERDICTS.tsv` 的 321 行里。** 本轮独立复核(**500dpi 目视,不引用任何既有记录**): ``` 【手册VI 764】上海振华重工-vi手册.pdf 86 页 1586.41 × 794.832 pts(比例 2.00) 物理 p8 → 印 09 | 10 物理 p9 → 印 11 | 12 (右=左+1,跨物理页步长 2) ``` **结论:39 份 / 12.1% / 25,014 是漏计,不是最终值。** 本轮不对全库数字做任何改动(数字已裁决、不由本任务改写), 但**清单必须把「未裁决」显式标出来**,否则下游会把 917 份误读成「已判不是跨页」。 ### 3.2 另有一处与仓库不一致:全库物理页合计 本轮 `pdfinfo` 实测全库 1,561 份**物理页合计 = 90,098**。 `library-coverage.md` 同页记着两个数:**72,672**(第 39 行)与 **71,510**(第 97 行)——该文件自身即不自洽。 按 PITFALLS 70(分母不可比),本报告**不合并这两个数**,只声明: > **90,098 是本轮 1,561 份逐份 `pdfinfo` 求和的结果;71,510 / 72,672 的抽取口径未记录,不可与之比较。** > 引用「全库页数」时必须写明是哪一次、哪个分母抽的。 ### 3.3 跨页是逐页属性,不是逐文件属性 —— 直接影响「印刷页」这一列 `pidan【必看140】`(63 页,整份判为真跨页)本轮逐页探针结果: | 物理页 | 页码候选 | 判定 | |---|---|---| | p3 | 无 | 单页横版 | | p5 | 无(500dpi 页脚 16% 全空) | 单页横版 | | p6 | `10 | 11` | **真跨页** | | p7 | `12 | 13` | **真跨页** | | p8 | `14 | 15` | **真跨页** | **同一份文件里两种页面并存**(仓库 `library-coverage.md` 第 217 行已记过 pidan p3/p6 的同型现象)。 因此 `印刷页 = 2 × 物理页` 对**文件级**换算只在「每一页都是跨页」时成立; 只要文件里有若干单页横版,**这一列就系统性高估**。本轮无法逐页判定全部 39 份(共 2,169 页), 故该列在清单里对 39 份一律标注为「近似」。 --- ## 4 · 清单结构与字段定义 `PAGE-COUNT.tsv`:**1,561 行数据 + 1 行表头**,分母 = 全库 1,561 份物理 PDF(含副本)。 任务书规定的 9 个字段按原顺序在前,另加 3 列**溯源列**(见 §4.2)。 ### 4.1 九个字段(表头即定义,括号里写死了单位) | # | 表头 | 取值 | 可信度 | |---|---|---|---| | 1 | `库内编号` | 从文件名抠 `【必看NNN】`/`【手册VI NNN】`,抠不到留空 | 仅定位用,**不是文件身份** | | 2 | `文件名` | basename | 命名不可靠(PITFALLS 三:文件名标 175 实为 134 页) | | 3 | `物理页(PDF实际页数)` | `pdfinfo Pages` | **全库 1,561 份实测,零失败,唯一无条件可信的列** | | 4 | `真跨页(是否双印面并排)` | `是(已裁决)`39 / `否(已裁决单页)`282 / `否(结构性:竖版…)`323 / `未裁决(横版,不在321份裁决集内)`917 | 前两类有裁决,第三类结构性成立,**第四类是缺口** | | 5 | `印刷页(书上印面页数合计)` | 数字 + **换算依据写在同一格里** | 见 §2,**不能只看数字** | | 6 | `页码形态` | 7 类:常规/代码而非页码/章节号/罗马数字两段偏移/非单调/无页码/合订本分段重启 + `未定` | 多数为文本层推断,未目视 | | 7 | `页码偏移(印刷页号-物理页号)` | 整数 / 跨页式 / `未测` / `不适用` | **仅 18 行有实测值,其余全部「未测」** | | 8 | `MD5前12` | MD5 去重用 | 1,271 唯一,与项目既有值一致 | | 9 | `可打印率/文本层健康` | 见 §8 | **建议删**,理由见 §8 | ### 4.2 另加的 3 列(对任务书 9 字段的增量,已显式标注) `行可信度`|`形态依据`|`偏移依据` > **为什么必须加**:任务 ③ 要求「找出清单里还不可信的格子」。 > 若表里没有一列写明每行的可信度,下游无法区分「这是测出来的」和「这是默认的」。 > 这 3 列不引入任何新变量,只是把已有判定连同**来源等级**一起带出来 > ——这正是 PITFALLS 58 要求的三级标注(父验/文本层/仅转述)。 --- ## 5 · 20 份独立复核(任务②) **方法**:`pdftotext -bbox` **只用于定位页码候选位置**;判定一律靠 `pdftoppm` 渲染图**目视**, 排版元素用 **500–600dpi**(PITFALLS 34/67:200dpi 读对的排版元素也不得单独支撑高置信)。 **未使用 OCR**(本机 tesseract 缺 `chi_sim`,会静默产出 0 字节)。 逐份渲染记录:`/tmp/vi-pages/RECHECK-LOG.tsv`(21 条),图像在 `/tmp/vi-pages/recheck/`。 ### 5.1 结果总表 | # | 文件 | 页 | 实测(dpi) | 与既有记录 | |---:|---|---:|---|---| | **真跨页(6 份)** ||||| | 1 | 广发银行 VI781 | p4 | `6|7`(500) | 一致 | | 2 | 方太 VI841 | p17 | `31|32`(500) | 一致 | | 3 | pidan【必看140】 | p6/p7/p8 | `10|11`、`12|13`、`14|15`(500) | 一致(并发现 p3/p5 非跨页) | | 4 | 全季 VI954 | p20 | `39`(600),左页 38 目视未见 | **部分一致** | | 5 | 便利蜂 | p10 | `PAGE 13~14`(500) | 一致 | | 6 | 九街淑芬 | p5 | `07|08`(**页眉**,600) | 一致 | | **有偏移记录(6 份)** ||||| | 7 | 伏牛山泉 VI1139 | p17 | `07`(500,**左边距中部旋转排版**) | 一致(−10) | | 8 | 麦当劳 VI428 | p53 | `p.50`(500) | 一致(−3) | | 9 | 麦当劳 VI428 | p37 | **不可辨**(500/800dpi 仍不可读,低分辨率扫描件) | **无法确认** | | 10 | SEI VI482 | p30 | `28`(500) | 一致(−2) | | 11 | UCL【必看166】 | p28 | `28`(500) | 一致(0) | | 12 | HKUST VI416 | p105 | `102`(500) | 一致(−3) | | **形态怪(4 份)** ||||| | 13 | 北大 VI636 | p9/p10/p11 | `v` /(无号)/ `vii`(600) | ⚠️ **不一致**,见 §5.2 | | 14 | 万科 VI862 | p40 | `3.17`(500)=章节号,无页码 | 一致 | | 15 | 可口可乐 Zero VI320 | p9 | 页脚**无页码**(`Confidential: December 2009`);章.节码未定位 | **部分一致** | | 16 | 微软 VI434 | p86 | 候选 `83`(500 裁切,未逐字确认) | **部分一致** | | 17 | 振华重工 VI764 | p8/p9 | `09|10`、`11|12`(500) | 与 PITFALLS 一致,**但与「39 份」名单矛盾** | | **随机(seed 20261014)** ||||| | 18 | QQ空间 VI891 | p20 | `38`,同页左上另有 `3.01` 章节号(500) | **新测出 +18** | | 19 | 喜茶 39P | p20 | `20`(500) | **新测出 0** | | 20 | 齐鲁银行 VI885 | p20 | 页眉页脚带均未见页码 | **仍无法定位,保持「未测」** | **计数:20 份中 —— 一致 13、部分一致 3、不一致 1、原本「未测」而本轮新测出偏移 2、仍无法定位 1。** ### 5.2 ⚠️ 唯一一处与既有记录直接冲突:北大的罗马段偏移 | 来源 | 读数 | 隐含偏移 | |---|---|---| | `PITFALLS 十`(既有记录) | 物理 9/10 = 罗马 `vi/vii` | **+3** | | **本轮 600dpi 目视** | 物9 = `v`,物10 = **无号**,物11 = `vii` | **−4**(印刷−物理) | 三处锚点(物8 = `iv`、物9 = `v`、物11 = `vii`)构成自洽序列,且**物10 是一张无号页**。 按 PITFALLS 52(单锚点不足以推翻多锚点记录,两值并列): > **本轮不判谁对。清单里该行写「前置罗马段 −4 或 −3(两值并列未决)」,两值都保留。** > 但无论取哪个值,它都**不是 0**,所以「98 页 = 98 印刷页」这个写法在这份文件上不成立。 --- ## 6 · 下游使用检验:把清单交给另一个执行者(任务②的核心) ### 6.1 实测:只给表头 + pidan 那一行,问「这本 63 页的手册实际印刷多少页」 执行者能看到的**全部信息**: ``` 库内编号 文件名 物理页 真跨页 印刷页 页码形态 页码偏移 必看140 【必看140】pidan品牌手册规范旧版 63 是(已裁决) 125 常规 跨页:印刷左页=2×物理−2、右页=2×物理−1 ``` **执行者的答案会是 125,理由是「印刷页那一列写着 125」。** 而 125 是本报告用 500dpi 实测(物6=10|11,物7=12|13,物8=14|15,步长 2)算出来的。 **这一问答对了。** ### 6.2 但在修补之前,同一个执行者会答错 —— 这就是缺陷本身 修补前的 `印刷页` 列写的是 **`126(=2×63)`**(这是 `25,014 = 22,845 + 2,169` 的口径)。 执行者按字面回答 **126**,**错 1 页**。 而正确答案 125 只能由使用者自己拿 `页码偏移` 列做一次减法才能得到: ``` 末页右印面 = 2 × 63 − 1 = 125 ``` > **这正是任务书那句话的实例化:一份正确的清单,如果它的使用者理解错了字段,照样会给出错误的答案。** > 而这里更狠一点 —— **错误答案和正确答案都印在同一行上**,两列互相矛盾, > 使用者必须知道「该信哪一列」,而表里没有任何机制告诉他。 **同类矛盾在 6 份跨页件上全部存在**(广发 122↔121、方太 70↔68、便利蜂 46↔40、 九街 28↔26、振华 172↔166、全季 286↔285)。 **一个只看数字列的下游,会在 6 份文件上全部答错。** ### 6.3 「能让人读错的字段」清单(本轮实测出来的,不是推测) | 字段 | 会怎么被读错 | 建议改法 | |---|---|---| | `物理页` | 被当成「这本书多少页」直接引用 | 已改为 `物理页(PDF实际页数)`。**建议再加一句表注:「这是 PDF 文件的页数,不是书的页数」** | | `印刷页` | 被当成定值,其实有 917 行**根本没定值**、39 行**是近似** | 数值与依据写在同一格(已做)。**建议:对未裁决行禁止只留数字** | | `页码偏移` | ①符号搞反(加还是减)②以为是全局常量 | 已写死 `印刷页号-物理页号`。**但实测发现库内偏移有正有负**:伏牛 −10、麦当劳 −3 是负(无号前置页),QQ空间 **+18** 是正(文件是节选,缺前 18 个印刷页)。**只写「偏移」二字必然有人搞反**。建议表注写:**「负=前面有未编号页;正=本文件是从该印刷页起的节选」** | | `真跨页` | 把 `未裁决` 读成 `否` | 已把 `未裁决` 写成**独立取值**并带原因。**这是本轮改掉的最大一个误读源** | | `库内编号` | 被当成文件身份 | 建议表注:**「编号仅用于定位,同一编号体系下内容可重复收录」** | | `页码形态=无页码` | 被读成「这本书没有内容」 | 实为「**这一列**查不到页码」。PITFALLS 26:检索不到 ≠ 不存在。建议形态列统一写成「无页码(文本层未见,未目视)」——已做 | ### 6.4 建议的最小改动(不改数据,只改字段名与取值写法) 1. `物理页` → **`物理页_PDF文件页数`** 2. `印刷页` → **`印刷页_换算后`**,且**三种取值互斥写死**: `已换算(锚点见偏移列)` / `近似(2×物理页,常数未测)` / `未裁决(不是单页就是跨页)` 3. `页码偏移` → **`页码偏移_印刷页号减物理页号`**,并在表注加一句符号解释(见上) 4. `真跨页` → **`跨页判定`**,取值 `是/否/结构性否/未裁决`——**「未裁决」必须与「否」视觉上分开** 5. 跨页件的 `印刷页` **只准写实测锚点值**,没测就写「近似 2×物理页」并禁止下游直接引用 --- ## 7 · 清单里还不可信的格子(任务③) ### 7.1 单页件但偏移未实测 —— **1,204 行** | 分类 | 行数 | 说明 | |---|---:|---| | 偏移 = `未测` 且 印刷页写成「假设=物理页」 | **1,204** | 占全库 77.1% | | 偏移已实测 | 18 | 其中负偏移 5、正偏移 1、零偏移 2、跨页式 7 | | 偏移不适用(全书无印刷页码) | 2 | 万科 VI862、麦当劳 Feel-Good 类 | **这 1,204 行的「印刷页 = 物理页」是一个假设,不是实测。** 伏牛山泉已经证明这个假设会错 10 页(46 → 36)。 **因此:本清单对 77.1% 的行不能回答「这本书实际印刷多少页」,只能回答「这个 PDF 有多少页」。** ### 7.2 文本层是替换密码或符号密文 —— **不是靠可打印率能找出来的** 任务书给的判据是「可打印率 < 0.60」。**本轮实测该判据在本库上失效**: | 判据 | 命中数 | |---|---:| | 可打印率 < 0.60 | **2** | | 信号字符占比 > 0.02 | **69** | | 信号字符占比 > 0.005 | 更多 | **原因**:替换密码的字符(`ý þ Ã © £` 等)在 Unicode 里仍是**字母/符号类**, **可打印率照样接近 1.000**。最典型的 `【手册VI 539】SONY索尼品牌标识指南` 可打印率 1.000, 但信号字符占比 **0.450**——按可打印率判它是全库最健康的文件之一,按实际它是全库最危险的之一。 **可打印率与「内容是否可信」的方向甚至可能相反。** ### 7.3 「跨页性从未进入裁决集」—— 917 行(最大的不可信块) 见 §3.1。这 917 行里**至少 3 份已被项目自己记录为真跨页**,本轮还实测确认了其中 1 份。 ### 7.4 「2×物理页」对跨页件不成立的两重原因 1. 前置页常数逐份不同(本轮实测 7 个不同值,见 §2) 2. 跨页是**逐页**属性(pidan p3/p5 非跨页,p6–p8 跨页) ### 7.5 形态靠文本层推断的行 —— 大多数 `页码形态` 列只有 **18 行**有目视依据,其余全部标 `文本层推断` 或 `未定`。 按 PITFALLS 46,计数只能作召回;本轮已把依据等级写进 `形态依据` 列,不让推断冒充实测。 --- ## 8 · 「可打印率」这一列:建议**删掉指标、保留事实** ### 8.1 结论 > **删掉「可打印率」这个指标本身。** > 但不要连信息一起删——把它换成一个**陈述事实、不像评分**的列。 ### 8.2 三条理由 **理由一(实测证伪):它测不出它被设计来测的东西。** 任务书设想「可打印率 < 0.60 = 替换密码/符号密文」。本轮实测: | 文件 | 可打印率 | 信号字符占比 | 实际 | |---|---:|---:|---| | 【手册VI 539】SONY索尼品牌标识指南 | **1.0000** | **0.450** | 替换密码层 | | 法拉利 品牌指南手册 2003 | 1.0000 | 0.237 | 替换密码层 | | 【手册VI 897】腾讯平台与内容广告 | 1.0000 | 0.141 | 替换密码层 | 按「可打印率 < 0.60」筛,全库只命中 **2 份**; 按信号字符筛,命中 **69 份**。 **替换密码的字符在 Unicode 里仍是字母/符号,可打印率恒为 1.000。** **理由二(它会被误用成「可信度」):** 这一列的名字里有「**健康**」二字。任何带健康/质量字样的数字, 下游第一反应就是「分高=可信」。而本库的事实恰好相反: > SONY 的可打印率是**全库最高档(1.000)**,它同时是**全库最该被怀疑的文件之一(信号字符 45%)**。 **一个与真实风险反向的评分,比没有评分更危险。** **理由三(本项目已实测过的通病):** 「贴标签不提高引文为真的概率,只提高它看起来已核的概率」——A 类实测仍 有 14% / 7.7% 错误率。 `可打印率/文本层健康` 就是一个**会被当成「已核」徽章的列**。 按同一条纪律,**任何行都不该带评分式徽章**。 ### 8.3 建议替换成什么(不是新变量,是把同一件事说成行为指令) 把第 9 列从 `可打印率/文本层健康` 改成: ``` 文本层可用于定位吗? 取值:可用 / 稀疏(伪影层) / 低密度 / 替换密码嫌疑 / 工具故障 / 未测 ``` 理由:**它不评分,只陈述「你能不能靠这一列做某件事」。** 下游看到「替换密码嫌疑」会去开渲染图;看到「可用」才敢用文本层找页码。 **没有分数,就没有把它当可信度用的余地。** 机器可读的原始数值(可打印率、信号字符占比、字/页)**继续留在** `/tmp/vi-pages/MASTER.tsv`, 需要复算的人去取,**但不进交付清单**。 --- ## 9 · 已知不可比口径与诚实边界 1. **未提名新变量。** 本报告只用了既有裁决结论 + 既有 7 类页码形态;新增的 3 列是**溯源列**,不是新变量。 2. **本报告没有改动任何已裁决的全库数字。** 39 / 12.1% / 22,845 / 2,169 / 25,014 全部原样复算通过; 我只指出它们的**分母是 321 而不是 1,561**,且 917 份横版从未进入裁决集。 「39 份是漏计」是本轮的**新证据**(振华重工 500dpi 实测 + 两份既有记录),**不是对数字的改写**。 3. **20 份复核是「文件级」结论,只看了每份 1–3 页。** 跨页性是逐页属性(pidan 已证), 所以「是跨页」这一格在文件级仍只是「被抽检页」性质。 4. **麦当劳 p37 的页码在本轮无法确认**:源为低分辨率扫描件,500dpi 与 800dpi 均不可辨。 这是**第三态**(「存在但不可辨」),与「零命中」「未发现」分开记,未写成「无页码」。 5. **偏移实测只覆盖 18 行(1.2%)。** 其余 1,543 行的偏移是「未测」—— 本报告**没有**用「取前 5–8 页定偏移」的做法(PITFALLS 一),也**没有**跨文件外推。 6. **全库物理页合计 90,098 与仓库记的 71,510 / 72,672 不一致**,本报告不合并、不选边(见 §3.2)。 7. **未使用 OCR。** 本机 tesseract 缺 `chi_sim`,会静默产出 0 字节文件(PITFALLS 23)。 8. **零字节产出核对**:全库抽取 1,561 行(预期 1,561);页码探针 1,561 行(预期 1,561), 其中 1 份 FAIL 并已单独识别为工具故障(广汽丰田,重抽得 127,189 字符)。 9. **未改动仓库任何文件。** 产物仅 `/tmp/vi-agents/REPORT-PAGECOUNT.md`、 `/tmp/vi-agents/PAGE-COUNT.tsv`、`/tmp/vi-pages/`。 10. **本清单不回答「这本书讲了什么」**,只回答「它有多少页、这个数是物理页还是印刷页」。 页码形态那一列是**导航线索**,不是内容判断。 --- ## 10 · §7 的数字更正(本报告自查,按纪律只追加不覆盖) **§7.1 与 §7.5 里有两个数写错了,以本节为准**(错因:把「偏移未测」和「印刷页含假设」两个不同条件混成了一行): | 项 | §7 原写 | **实测正确值** | 分母 | |---|---:|---:|---| | 偏移 = `未测` 的行 | 1,204 | **1,543** | 1,561 | | └ 其中「印刷页=物理页」被明写成**假设**的行 | (混在一起) | **597** | 1,561 | | └ 其中属于**未裁决横版**(印刷页根本无法定值)的行 | (未单列) | **913** | 1,561 | | └ 其中属于**跨页件**(印刷页只能写近似)的行 | (未单列) | **33** | 1,561 | | 偏移**有登记**的行 | 18 | **16 实测 + 2 不适用 = 18** | 1,561 | | 有**目视**依据(偏移列或形态列)的行 | 18 | **16** | 1,561 | | **完全没有目视依据**(纯「未测」+文本层推断)的行 | (未报) | **1,545(99.0%)** | 1,561 | **修正后的结论一句话**: > **这份清单能可靠回答「这个 PDF 有多少页」的,是 1,561 行全部; > 能可靠回答「这本书实际印刷多少页」的,只有 597 行是「含假设的估计」、 > 16 行有实测锚点、33 行只有近似值、913 行连是不是跨页都没裁决过—— > 真正有目视锚点支撑的只有 16 行,占 1.0%。** **这一条正是任务书「①做清单」与「②检验能不能被下游用对」之间的接缝**: 清单在形式上是完整的 1,561 行,但**能被下游当成事实引用的只有 16 行**。