研究 Alpha · 门禁 v2:正式发布 0 条(含专家复核;专家网络未建立)· 52 条为「部分来源已核」研究档案(总编辑批准)· 0 条来源可定位 —— 均不应作为事实结论引用 · 门禁说明
← 方法文档

design-v2 · publication-gate-v2.md

Markdown 原文逐字发布,未经渲染加工。版本 8508aeb

# EXO-TRACE 发布状态机 v2(publication-gate-v2)

> 状态:设计稿,待站点所有者批准 | 依据:审计 §P0-1、§P0-2、§15.1、§十四阶段 P0 | 日期:2026-08-02
> 替代对象:`schema/case.schema.json` 中 7 态 `publication_status` 与 `scripts/validate.mjs` 中的 v1.1 published 门禁。
> 本文只定义状态机与角色;机器强制细则见同目录 `validation-rules-v2.md`(GATE-* 规则)。

---

## 1. 设计原则

1. **状态 = 核验进度,不是真伪结论**。`status`(已证伪/存在争议/…)与本状态机正交:一条已证伪案例同样要走完核验链才能标 `published`。理由:审计 §P0-1 的核心批评是「published 被当成证据链闭环的证明」,把两轴分开才能根治。
2. **只进不跳,回退显式**。主链 12 态线性推进,不允许跳级;任何回退(清单变更、来源撤销、复核失败)必须留 ReviewEvent。理由:跳级正是 v1.1「部分核验即 published」问题的机制根源。
3. **徽章只能低于或等于实际状态**。任何页面、首页统计、分享卡不得使用高于当前态的措辞(「证据链闭环」只允许出现在 ≥ claim_complete 的页面)。理由:审计 §P0-5「文案跑在功能与证据前面」;由 GATE-020 构建期强制。
4. **机器可打工,不可签字**。AI(含 Claude 起草 + Codex 互查)可以产出草稿、定位来源、提交检查报告,但所有状态晋级签字 `actor_type` 必须为 `human`。理由:审计 §P0-2——两个模型共享训练材料与系统性错误,机器互查不构成独立审核。

---

## 2. 十二态定义

状态存储字段仍名 `publication_status`;每次变迁必须写入一条 ReviewEvent(见 §5)。

| # | 态 | 进入条件(全部满足) | 退出条件(→ 下一态) |
|---|---|---|---|
| S1 | `lead` | 有题名 + 至少一条初步出处指向(可以是待查线索) | 成文 → S2;或直接放弃(删除线索,不留页面) |
| S2 | `ai_draft` | 成文;`review.ai_involvement` 与 `model` 已标注(章程 §7.3) | 全部引用来源可追溯定位 → S3 |
| S3 | `source_located` | 每条 source 满足可追溯性(url / doi / source_identity / locator 至少一项,章程 §3.2);无需人工核实 | ≥1 条来源经人工核实且 ≥1 条原子主张核验通过 → S4 |
| S4 | `partially_sourced` | ≥1 条 `url_confidence=verified` 来源 + ≥1 条 `verification=verified` 原子主张 + 具名人工复核(= v1.1 全部 published 门禁,如实降格) | 必要子主张清单批准(§3)且逐条核验完毕 → S5 |
| S5 | `focal_claim_checked` | `focal_claim_zh` 存在且已按 §3 拆解为必要子主张;每条必要子主张均有核验结论(verified/unverified/disputed/refuted 任一,但不得留空) | 全部必要子主张 verified → S6;若有必要子主张被 refuted → 修改核心命题并回退 S4,或转 `status=已证伪` 后继续走链 |
| S6 | `claim_complete` | 全部必要子主张 `verified` 且各自绑定 ≥1 条已核来源与精确 locator;反证与局限已登记(counter_explanations 非空且 R4 确认无已知遗漏)(审计 §P0-1 末段) | R9 批准 → S7 |
| S7 | `editor_approved` | R9 总编辑逐页签字;条件角色 R5–R8 中被触发者(§4.3)全部完成签字 | R3 签字 → S8 |
| S8 | `expert_reviewed` | ≥1 名领域相关专家(R3)签字,ReviewEvent 记录其专业领域、是否查看原始材料、个人/机构身份(章程 §6.5) | R4 签字 → S9 |
| S9 | `method_reviewed` | R4 反方审查签字:提交替代解释覆盖检查与「试图证伪」记录 | 校验器 0 error 且无未豁免 GATE 违例 → S10 |
| S10 | `published` | S9 完成 + 权利/敏感性全绿(RGT/SEN 无 open 项) | 实质修订 → S11;撤回 → S12 |
| S11 | `revised` | published 后发生实质修订:评分改判、结论变化、来源被撤销、必要清单变更(章程 §10.4) | 增量复审(R9 必须;R3/R4 视修订范围,由 R9 判定并公示)→ 回 S10 |
| S12 | `withdrawn` | 任一态可进入;须有撤回原因 ReviewEvent | 终态。页面保留原文 + 置顶撤回说明(章程 §10.5),不删除 |

**理由(整体)**:S4 精确等于现行 v1.1 门禁,使 51 条存量案例可以无损、如实地落位,不需要伪造任何新核验记录。

---

## 3. 「核心命题必要子主张」判定规则

审计 §P0-1 要求 published 的前提是「核心命题必要子主张均闭环」。定义与流程:

1. **必要性标准**:一条原子主张是必要子主张,当且仅当**删去它之后核心命题不再成立**(逻辑必要性测试)。清单必须覆盖核心命题涉及的层:存在性(L1)、发生性(L2),以及命题若含异常/归因判断则含 L3/L4(章程第二条)。理由:给「必要」一个可争辩的操作定义,防止只挑好核的外围主张充数——这正是审计 §P0-1 点名的漏洞。
2. **数据表达**:`atomic_claims[].necessity` 取 `essential | supporting | context`;`focal_claim` 升级为对象并持有 `essential_claim_ids[]`。理由:v1 的 focal_claim_zh 是自由文本,与原子主张零绑定,机器无法检查闭环(这是本次 51 条无法自动晋级 S5 的直接原因,见 §7)。
3. **三签流程**:R2 事实编辑起草清单 → R4 方法反方审查清单有无遗漏(专查「把难核的排除在必要之外」的选择偏差)→ R9 总编辑批准。AI 可以生成建议清单,但三个签字均须人工。理由:清单本身就是最大的作弊面,必须有对抗性审查。
4. **防篡改**:批准后的清单变更 = 自动回退到 S4 重走 S5 核验。理由:不允许靠删减必要子主张达标。

---

## 4. 审核角色(审计 §P0-2 的 9 种)

### 4.1 角色定义

| ID | 角色 | 职责 |
|---|---|---|
| R1 | 来源核验 | 打开/调取来源,确认其存在且内容支持所绑定主张;设置 `url_confidence=verified` 的唯一授权者 |
| R2 | 事实编辑 | 正文事实性、原子主张拆解、必要子主张清单起草 |
| R3 | 领域专家 | 与案例学科相关的专业审核;资质须可公开核查 |
| R4 | 方法反方 / 怀疑性审查 | 替代解释完备性、评分逻辑、必要清单对抗审查、试图证伪 |
| R5 | 翻译与版本核验 | 原文—转写—译文一致性、版本与卷页(审计 §13.2) |
| R6 | 媒体取证 | 文件代际、哈希、变换链、C2PA(审计 §八、§9) |
| R7 | 版权审核 | 逐项权利判断,rights 记录签发(审计 §9.5) |
| R8 | 隐私与文化敏感性审核 | 在世人物、原住民与神圣材料、医疗与创伤内容(审计 §13.3–13.4) |
| R9 | 最终编辑批准 | 总编辑签字与对外口径责任人 |

### 4.2 每态所需签字

| 态迁移 | 必需签字 | 条件签字 |
|---|---|---|
| S1→S2 | 无(AI 可产出,须标注 model) | — |
| S2→S3 | 无(机器可定位来源) | — |
| S3→S4 | R1 | — |
| S4→S5 | R1 + R2(清单三签:R2 起草、R4 审查、R9 批准) | R5(案例含翻译/古籍材料时,其核验计入子主张核验) |
| S5→S6 | R1 + R2 + R4(确认反证登记无已知遗漏) | R5 |
| S6→S7 | R9 | R6(含证据媒体)、R7(含任何自托管/嵌入媒体)、R8(含在世人物/原住民/医疗/创伤材料) |
| S7→S8 | R3 | — |
| S8→S9 | R4 | — |
| S9→S10 | R9(终签,确认校验器与权利/敏感全绿) | — |
| S11→S10 | R9 | R3/R4 视修订范围 |
| 任一→S12 | R9 | — |

### 4.3 一人多角色与硬约束

- 允许一人担任多个角色(现实:当前团队为一人 + AI),但**每个角色单独签字**,且案例页公开显示「本案 N 个角色由同一人担任」。理由:审计 §P0-2 要求的是角色拆分与如实披露,不是假装有九个人。
- 硬约束一:R3 不得由站点所有者自封——须具备与该案学科相关、可公开核查的资质,或为外部人士。【需批准】(后果:在建立专家网络前,全站无案例能过 S8,published 恒为 0,首页必须如实显示。)
- 硬约束二:同一案例内 R4 与 R2 不得为同一人;无第二人时 R4 空缺、案例停在 S8。【需批准】(备选:允许同一人但页面显著标注「反方审查与事实编辑同人,对抗性受限」。)
- AI 不得担任 R1–R9 任何角色;`independent_review=true` 只能由人类审核记录满足(GATE-007 强制)。

---

## 5. ReviewEvent(机器可读审核记录,审计 §15.1)

每次状态变迁与每个角色签字写入一条:

```text
event_id · case_id · from_state · to_state · role(R1–R9|none)
actor · actor_type(human|machine) · date · method_version
scope_note(看了什么、没看什么)· result(approve|reject|note)
```

- 现有 52 条 `review.verified_by=liyandong` 迁移为 ReviewEvent:`role=R9, scope_note="总编辑批准(非领域专家复核)"`——按 v1 数据原样迁移,不升格。理由:审计 §P0-2 要求「站点所有者批准」不得冒充专家复核。
- `actor_type=machine` 的记录允许存在(用于留痕机器互查),但不满足任何签字要求。

---

## 6. AI 交叉检查的位置

- **定义**:Claude 起草 + Codex 盲评 = 机器交叉检查。对外一律称「机器交叉检查」,不得称双人盲评、不得计为两名审核者(审计 §P0-2、§十六-13)。
- **机器可产出**:线索、草稿、来源定位、必要子主张建议清单、矛盾检测与「显著结论—来源绑定」扫描报告(审计 §P0-3-4 的自动检查)。
- **推进上限**:机器互查最多把案例推进到 **S3 `source_located`**;S3→S4 起每次晋级都需要人工 ReviewEvent。【需批准】理由:`verified` 的语义是「人打开过并确认内容支持主张」,一旦允许机器签发 verified,S4 之后整条链的地基失效;备选方案(机器可推进至 S4,人工抽检 20%)被否,因为审计 §P0-2 明言两个模型可能共享系统性错误,抽检无法覆盖共因失效。
- 机器检查报告可以作为人工签字的**输入**并在 ReviewEvent.scope_note 中引用,加速但不替代。

---

## 7. 存量 51+1 条在新状态机下的落位(按 v1.1 门禁实况映射)

映射依据 2026-08-02 `data/cases/*.json` 实测(52 条):

| 新态 | 条数 | 案例 |
|---|---:|---|
| S3 `source_located` | 1 | wandjina-rock-art(2 条来源均有 source_identity 可定位;0 已核来源、无原子主张) |
| S4 `partially_sourced` | **51** | 其余全部(现 v1 标 `published` 的 51 条) |
| S5 及以上 | 0 | 无 |

**为什么 51 条全部落 S4、无一条到 S5**(如实陈述):

1. 51/51 条均满足 S4 门槛:每条有 1–3 条已核原子主张、≥1 条已核来源、具名复核(R9 口径)。
2. 51/51 条均为**部分核验**:无任何一条的全部原子主张核验完毕(已核/总数典型如 2/5、2/4、1/4);全库 156 条原子主张中 50 条 unverified。
3. v1 schema 没有 `necessity` 字段,focal_claim_zh 与 atomic_claims 零绑定——「必要子主张清单」这一 S5 前提在数据层不存在,任何自动晋级都是编造。
4. 52 条复核人均为 `liyandong(站点所有者·总编辑批准)`:S7 的 R9 签字**素材**存在,但 S7 进入条件要求先达 S6,不允许跳级,故不能保留任何「editor_approved」态。
5. R3/R4 签字全库为 0:S8/S9/S10 无人达标。**新口径下 published = 0**,首页必须如实显示。【需批准】

补充落位说明:

- 3 条 `provisional=true`(nimitz-2004-tictac、k2-18b-dms-claim、iran-1976-tehran-f4)落 S4 后保留 provisional 横幅叠加显示。
- 9 条 `status=已证伪`(如 alien-autopsy-1995-santilli)同样落 S4:证伪结论本身也要走核验链(§1 原则 1)。
- v1 枚举迁移规则:`ai_draft→S2 或 S3(按来源可定位性实测)`、`source_checked→S3`、`fact_checked→S4`、`method_reviewed→S9(需补 ReviewEvent,否则降 S4)`、`corrected→S11`、`retracted→S12`、`published→按本节实况重算,不继承`。理由:旧字段是自我声明,新态必须由数据反推。

---

## 8. 每态允许的展示方式(徽章 / 横幅文案)

公开可见性下限:**S3 起可上线展示**;S2 可上线但加 `noindex` 与全宽警示横幅;S1 不上线。【需批准】理由:诚实展示核验进度本身有研究价值(审计 §7.4 的空状态哲学),但 AI 草稿不应参与搜索分发。

| 态 | 徽章(≤8 字) | 页面横幅文案 |
|---|---|---|
| S2 | AI 草稿 | 本页由 AI 起草(模型:{model}),来源未定位,任何内容未经人工核验。 |
| S3 | 来源已定位 | 引用来源均可追溯定位,但尚无一条经人工核实。 |
| S4 | 部分核验 | 至少一条来源与一条主张经人工核实;**核心命题证据链未闭环**。已核 {n}/{m} 条主张。 |
| S5 | 核心命题已逐条核验 | 核心命题的必要子主张已逐条核验并公示结论;部分子主张可能未获支持。 |
| S6 | 证据链闭环 | 核心命题全部必要子主张绑定已核来源;反证与局限已登记。 |
| S7 | 总编辑批准 | 站点总编辑已逐页批准(非领域专家复核)。 |
| S8 | 专家已审 | 经 {领域} 专家审核({是否查看原始材料})。 |
| S9 | 反方审查完成 | 已完成怀疑性/方法审查,替代解释覆盖检查在案。 |
| S10 | 正式发布 | (无警示横幅;页脚显示完整审核链) |
| S11 | 已修订 | 本页在发布后经实质修订,点击查看修订差异。 |
| S12 | 已撤回 | 本页已撤回:{原因}。原文保留供追溯,不作为有效记录。 |

配套硬规则(由 validation-rules-v2 的 GATE-020/021 强制):

- 「证据链闭环」四字仅允许出现在 S6+ 页面;首页统计不得把 S4 计入「发布」,必须展示 12 态分布条。
- 现行 build.mjs PROMISE_BLACKLIST 中「证据链闭环」条目改为状态感知规则,而非全站黑名单。

---

## 9. 待批准决策(汇总)

| # | 决策点 | 建议 | 后果提示 |
|---|---|---|---|
| A1 | 机器互查推进上限 = S3(§6) | 采纳 | S4 起全部晋级需人工;扩量速度受人工核验吞吐限制 |
| A2 | R3 领域专家不得由站点所有者自封(§4.3) | 采纳 | 专家网络建立前 published 恒为 0 |
| A3 | R4 与 R2 同案不得同人(§4.3) | 采纳;备选=同人但显著披露 | 一人团队下案例最高停在 S8 |
| A4 | 新口径下首页显示 published=0、51 条降为「部分核验」(§7) | 采纳 | 对外口径显著收缩,但与审计 §15.1 第 1 条一致 |
| A5 | 公开可见性下限 S3、S2 上线但 noindex(§8) | 采纳 | wandjina 保持在线;AI 草稿退出搜索索引 |
| A6 | 51 条存量是否触发一次性「重新映射公告」(更正记录页 + 首页说明) | 建议发布 | 属于章程 §10.6 的历史改判,应公开 |