Files
paper-atlas/docs/edition-tracks.md
codex-bot 7035cf33b9
Metadata integrity checks / metadata (push) Successful in 1m59s
Correct existing attempt tracks with bound evidence and refresh guards
2026-11-08 23:46:37 +08:00

4.2 KiB

按证据修正既有投稿的轨道

paper-atlas maintain edition-tracks 用于已导入整卷论文集、后来取得逐条官方分区证据的情形。它更正原投稿的 edition 归属,保留投稿 ID、所有决定和来源关系;不会重新导入论文、合并实体、生成研究方法标签或推断拒稿。支持独立 SQLite 样本和共享 PostgreSQL;不得写入已冻结的生产 SQLite 备份。

证据与完整范围

先核实官方目录、稳定 DOI、原始来源记录和分区,保存原始页面及 SHA256。输入 JSON 为 {"format":1,"records":[...]},每条必须包含:

字段 含义
submission_id、source_record_id、external_id 原有投稿、主来源记录及主来源投稿标识
source、doi 原来源名称及其 metadata.record_identifiers 中的 DOI
from_edition_id、year、venue 原 edition 及其真实年份和规范会议名
venue_names 规范会议名加全部已有别名;必须与库中一致
track 经核实的目标轨道,使用小写字母、数字、下划线;范围未明确可用 proceedings_unspecified
section 官方分区原文或明确的未确定说明,不推断研究方法
evidence_url、evidence_sha256 已人工/独立核实的 HTTPS 原始证据和内容哈希

输入必须列出每个原 edition 的全部投稿,包含留在原轨道的记录。工具核对身份、DOI、单来源发表观察、现有别名、完整范围以及目标冲突;不自动解释 HTML,也不把填写了 URL/哈希当成已证明内容。核查者应先独立证明每条分区对应关系。

多来源共同拥有的投稿、有非 accepted 决定历史的投稿、已有分类修订、非空目标 edition、目标已有覆盖或标识等情形会停止,需要专门核对。每个原 edition 须有一个明确来源清单;其他来源或多清单覆盖需先另行协调。本功能不是任意批量移动或跨会合并工具。

只读计划、事务执行和验收

paper-atlas maintain edition-tracks \
  --pg-service foundry-research --pg-schema research \
  --inventory reviewed-inventory.json --out plan.json

sha256sum plan.json

paper-atlas maintain edition-tracks \
  --pg-service foundry-research --pg-schema research \
  --plan plan.json --plan-sha256 <上一步的完整SHA256> --out applied.json

报告路径必须是已有目录中的新文件。预检只读。执行使用 PostgreSQL 单写入 advisory lock,或 SQLite BEGIN IMMEDIATE;整个分类修正、逐来源证据、标识、覆盖及验收在一个事务中完成。计划绑定数据库身份、全部来源文本/非修订元数据、标签、可选 annotation_events、投稿/决定/来源/标识内容及原覆盖快照;过期即停止。失败回滚数据,PostgreSQL 序列可能留下正常间隙,不能用 max(id) 当数量。

目标 edition 沿用原会议、年份、event_key,不删除或重命名原 edition。只更正既有 submissions.edition_id 和对应 submission_identifiers.edition_id。原文、来源检索时间、决定 ID/状态/证据及各表来源关系不变。

分类证据写入来源元数据的保留字段 edition_scope_curation_v1,包括原范围、目标 edition、官方分区、URL、哈希和计划摘要。普通来源导入不能伪造或替换此字段;后续 record 刷新保留修订。相同来源投稿通过旧范围调用 decision 时仍路由到修正后的 edition。旧整卷 main 文件通过 import records 刷新会报错并回滚,要求先按核实轨道重新整理,避免覆盖正确的统计。

覆盖保留原清单 URL、cursor、成功时间,按实际目标分配 expected_count/imported_count 并标 partial;本工具核实分类,未核实摘要或所有来源完整性。原覆盖整行保留在计划中,不能继续将整卷数当 main 论文数。应用后校验原 edition 身份、全部受保护内容、分类、标识、修订字段和覆盖;相同计划再次执行仅在这些验收条件仍成立时返回 already_applied。

生产使用前必须在已确认 runner 完成软件验证。正式数据修正后仍需独立验收,并在最终全库审计中复核;单元测试和应用回执不能代替生产验收。