# 量化诚信门（Integrity Gate）

把"诚实第一"从口号变成可执行配额。两道门：**初稿门**（写作中持续抽样）、**终稿门**（提交前全量）。
对接 self_review_checklist.md 的 M2/M3，对接 anti-leakage 的 `[MATERIAL GAP]` / `[RESULT GAP]` 标记。

---

## 1. Claim 核查抽样配额

把正文中的**事实性 claim**（任何"是/有/达到/优于/导致"的可证伪陈述）登记到 claim 台账。

| 阶段 | 抽样比例 | 下限 | 范围 |
|---|---|---|---|
| 初稿（写作中） | **≥30%** | 至少 10 条（少于 10 条则全查） | 全文事实性 claim 随机抽样，优先抽数字类与引用类 |
| 终稿（提交前） | **100%** | 全部 | 每条 claim + 每条引用都过一遍 |

抽样不是放过其余 70%——是分摊到各模块滚动抽，终稿必须收口到 100%。
高危类**不抽样、永远全查**：所有带数字的结果句、所有他人方法的性能数字、所有"first/SOTA/outperform"措辞。

---

## 2. 每条 claim 的核查动作清单（逐条勾）

对抽中的每条 claim：

- [ ] **分类**：是 ① 本文实验结果 / ② 引用的他人结论 / ③ 公认背景 / ④ 推断？
- [ ] **①实验结果** → 指向实际运行产物（日志/表格/脚本）？有 std/CI？单次结果不得写成定论。否则改 `[RESULT GAP]`。
- [ ] **②引用结论** → 见下"引用核查"五步。
- [ ] **③背景** → 是否真"公认"？存疑则补 1 条可核引用，否则降级措辞。
- [ ] **④推断** → 是否被标为推断（"we hypothesize/suggest"）而非事实？硬写成事实即触发改写。
- [ ] **溯源状态登记**：已验证 / 待核 / GAP（写进 Material Passport）。

---

## 3. 引用核查动作清单（对接 M2 幻觉引用）

对每条参考文献（终稿 100%）：

- [ ] **存在性**：curl 实测 DOI 内容协商或 Crossref/OpenAlex 命中，记 HTTP 码。
      - `curl -sI -H "Accept: application/vnd.citationstyles.csl+json" https://doi.org/<DOI>`（期望 200/302）
      - `curl -s "https://api.crossref.org/works/<DOI>?mailto=you@x.org"`（核题名/作者/年份）
      - 无 DOI 的 arXiv：`curl -sI https://arxiv.org/abs/<ID>`
- [ ] **字段一致**：题名、第一作者、年份、venue 与正文引用一致（防张冠李戴）。
- [ ] **支撑关系**：点开看，该文是否**真的支撑**你引用它的那句话？key/DOI 对≠论点被支撑。
- [ ] **不可达/对不上** → 删除或替换，绝不保留"大概是这篇"。
- [ ] **登记**：DOI + HTTP 码 + 核查日期记入 references 台账（符合 CONVENTIONS 第 4 条）。

> 端点真实性已在 references.md 调研记录；具体 DOI 必须逐条实测，不得凭印象。
> **端点实测（2026-06，DOI 10.1109/CVPR.2016.90 为例）**：DOI 内容协商 HTTP 302（重定向至出版商，正常）；Crossref `api.crossref.org/works/<DOI>` HTTP 200；arXiv `arxiv.org/abs/<ID>` HTTP 200；OpenAlex `api.openalex.org/works/https://doi.org/<DOI>` HTTP 200。换 DOI 时重测。

---

## 4. 无 DOI 中文文献核对协议（CNKI/万方/维普 等）

第 3 节的核查动作以 DOI/Crossref/arXiv/OpenAlex 为入口。**知网（CNKI）、万方、维普收录的大量中文期刊/学位论文/会议论文常无 DOI**，落不进上面的端点核查——但这**不是跳过诚信门的理由**。中文文献必须用本节的"题录三字段比对法"过门，核不到就标"待核查"，绝不因为是中文就放过 M2（幻觉引用）。

> **职责划分（双向声明，避免单向挂载）**：本节是**写作时的拦截方**——草稿里每出现一条中文引用，落笔即按此比对、留痕或标"待核查"。**核验执行方**是 m10（light-citation）references 的「CNKI 题录手工 .bib 核对清单」与「GB/T 7714-2015 中文条目核对要点」——把比对结果固化成规范 .bib 条目、做字段齐全性核对。两者口径必须一致：本节比对的三字段，就是 m10 清单里 .bib 必须齐全的字段。

### 题录三字段比对法（无 DOI 时的"存在性 + 一致性"替代）

DOI 核查靠"端点返回 200 + 字段一致"。无 DOI 时改为**在权威检索源里把题录三组字段逐字比对**：

- [ ] **字段一：题名**——与 CNKI/万方/维普检索结果页的题名**逐字**一致（含全角标点、副标题）。题名对不上即疑似张冠李戴或臆造。
- [ ] **字段二：作者 + 单位**——第一作者姓名一致；多作者注意"等"的展开（见 m10 清单）；同名作者用单位排歧。
- [ ] **字段三：刊名 + 年卷期（页码）**——刊名用**全称**（非缩写）、出版年、卷、期、起止页与结果页一致。中文刊"年卷期"是定位单篇的关键，比英文刊更依赖它（很多无 DOI）。
- [ ] **比对源**：优先**知网（CNKI）**，其次**万方**、**维普（CQVIP）**、**国家哲学社会科学文献中心（NSSD）**、刊物官网文章页。三字段须在**至少一个权威源**内同时命中同一条记录。
- [ ] **支撑关系**：与第 3 节同理——点开看该文是否**真的支撑**你引用它的那句话（key/题录对得上 ≠ 论点被支撑）。
- [ ] **核不到**：在权威源里检索不到、或三字段对不上 → 标 `待核查`（不得标"已验证"）；终稿门前仍核不到 → 按 M2 处理：删除或替换，绝不保留"大概是这篇"。

> 执行环境说明（2026-06-11 实测，见 `_verification_log/r3_chinese_chain.md`）：CNKI 直连脚本访问常不通、维普反爬 403，**本协议按"用户在浏览器里人工比对检索结果页"设计，不依赖脚本直连 CNKI/维普**。万方站点可达，可作辅助；但最终以人工逐字段比对为准。

### 留痕格式（写进 references 台账 / Material Passport）

每条中文文献核对后留一行，与第 3 节的 DOI 台账并列：

```
- [核对日期] 题名 — 比对源(CNKI/万方/维普链接) — 三字段一致 | 不一致(差异点) | 待核查(原因)
```

示例（真实条目，2026-06-11 实查，见 `_verification_log/r3_chinese_chain.md`）：

```
- [2026-06-11] 天然微藻水热炭理化特性及热解动力学研究 — 农业工程学报官网 http://www.tcsae.org/cn/article/doi/10.11975/j.issn.1002-6819.2019.14.030 — 三字段一致(刘慧慧等, 农业工程学报, 2019,35(14):235-242)
- [2026-06-11] 春小麦耐低氮种质资源的筛选与综合评价 — 中国农业科学官网 https://www.chinaagrisci.com/CN/10.3864/j.issn.0578-1752.2026.11.001 — 三字段一致(高亚峰等, 中国农业科学, 2026,59(11):2299-2313)
- [2026-06-11] 一次灌溉下耕作方式和氮肥用量对旱地小麦产量和品质的影响 — 作物学报官网 https://zwxb.chinacrops.org/CN/10.3724/SP.J.1006.2026.51088 — 三字段一致(胡川等, 作物学报, 2026,52(6):1830-1846)
```

> 上述三条恰好有 DOI（中文刊近年也在注册 DOI），但**核对走的是题录三字段而非 DOI 端点**——演示无 DOI 时同样的比对动作。真正无 DOI 的老文献/学位论文同此格式留痕。

---

## 5. 过门判据

- **初稿门**：抽样覆盖率达标 + 抽中 claim 无 M2/M3 未处理项 + 所有未核内容都已标 GAP；**中文引用按第 4 节比对，核不到的已标"待核查"**。
- **终稿门**：100% claim 已分类核查 + 100% 引用存在性与字段一致（DOI 文献过第 3 节、**无 DOI 中文文献过第 4 节三字段比对**）+ 0 个遗留 `[MATERIAL GAP]`/`[RESULT GAP]` + 0 条遗留"待核查"中文引用 + 必备声明齐全（见 mandatory_inclusions.md）。
- 任一不达标 → 不得标记"可提交"。机检用 `scripts/draft_lint.py`（查残留 GAP 与缺失声明），人判覆盖机检。