# 课题：证据与报告

> 课题的记录与证据、观察与实体、引用回源与摘要比对、正式报告与核验码、人审、置信度评估、实验回填、多次运行、分支与合并。

来源：https://www.scirouter.cn/docs/campaigns-evidence · 更新于 2026-10-23

课题的产出有三类：记录、观察与正式报告。程序核对出处、引用与报告的依据；结论是否正确仍由人审与实验判断。

新建与运行课题见[课题：上手](https://www.scirouter.cn/docs/campaigns)。

## 记录与证据

记录分五类：发现、否定结论、方法、问题、数据。状态有四种：未核对完、已确认、被推翻、已被取代。记录可改写、改状态、锁定；锁定的记录须先解锁才能修改。

整理者认可、且证据（至少一条）出处全部核对过的记录自动记为「已确认」，其余为「未核对完」。用了领域包的课题，发现还须有站得住的依据，见[依据与多源一致](#依据与多源一致)。

记录是课题的共同记忆：后续任务读取记录决定做什么，阶段的完成检查统计其中的发现，正式报告以全部记录为材料。推翻一条发现后，它不再计入完成检查；后续任务与写报告的各步骤都读取记录当前的状态。

「记录」页顶部是各阶段的摘要（发现、否定结论、问题各几条，已确认几条，几条证据查无此文），下方按阶段每条记录一行，展开显示来处与证据。

有未核对完的记录时：

1. 点「逐条确认」，未核对完的记录排成一队。
2. 逐条选择确认、推翻或跳过（宽屏上按 Y / N / →）。

记录上可能标有来处：

| 来处 | 含义 |
|---|---|
| 继承自主课题 | 分支建立时带入的快照，只读参考，不计为该分支自己的发现；写报告时注明来处 |
| 由分支并入 | 注明来源分支与贡献者 |

### 证据的出处核对

证据标为「出处已核对」或「出处未核对」。出处已核对表示程序确认出处在本课题中存在；程序对不上或无法核对的，为出处未核对。

| 证据种类 | 出处已核对的条件 |
|---|---|
| 读过的窗口 | 该序列窗口在本课题中确实读过 |
| 文献、网页 | 标识符确实出现在该任务的检索结果中 |
| 课题记录 | 被引用的记录未被推翻或取代，且自身带出处已核对的证据；逐层追溯，最终须落到读过的窗口或检索到的文献、网页上 |
| 工具结果 | 无法核对，一律为出处未核对 |
| 运行结果（界面上带 🧪） | 部署开启代码沙箱时才有，指向一次沙箱运行。条件列于表下 |

被引用的记录后来被推翻时，引用它的证据随之改为出处未核对。

「读过的窗口」有两种来路，阶段的「至少读过几段原始记录」两种都计入：

- 执行者用读原始记录的动作读取的；
- 步骤中的代码经平台的 NCBI 网关取到的序列。由沙箱的出网代理记下，代码无法伪造。

「运行结果」须同时满足以下条件才算出处已核对：

- 该次运行由本任务发起；
- 运行已结束，退出码为 0；
- 证据中写的每个数都能在该次运行的输出中找到；在数字密集处碰巧对上的不算。

证据中没有写数的运行结果一律为出处未核对。运行结果只说明这些数确实由运行产生，不说明代码与输出正确。

> 注意：「出处已核对」只说明出处对得上，不说明结论正确。结论是否正确由人审与实验判断。

文献与登录号类的证据另标源头的查询结果：查到此文、查无此文或未能查询，见[引用在源头的查询](#引用在源头的查询)。源头返回查无此文时，即使检索结果中出现过这串字符，也不算出处已核对。

「记录」页将出处核对与源头查询合成一枚标签：「出处已核对」「有此文，出处未核对」（源头查到此文，但不是该步骤查到的）、「查无此文」（标黄，最需关注）、「未能查询」「出处未核对」。

总览的「漏斗」只统计程序能确定的数：带证据的发现指至少带一条出处已核对证据的发现；「实验支持」只来自用户标注的实验结论。

### 记录之间的关系

记录上另有两种标记，与证据的「出处已核对」相互独立，互不改变口径。

| 标记 | 条件 | 含义 |
|---|---|---|
| 承重 | 被其他记录的证据引用、支持其他记录、被报告引用，合计至少两处，且在本课题中排在最前面的一批 | 多处结论建立在该记录上，宜优先核对。留言板上指向它的新点子、新发现多招一位审稿人 |
| 依赖的记录被推翻 | 它引用或依赖的记录中有一条后来被推翻或取代 | 该记录不一定错，但根基已变，须重新查看。展开记录可看到是哪几条 |

推翻沿下游逐层传播：

- 引用被推翻记录的记录、它支持的记录、出自等待其作者任务的任务的记录，都标上「依赖的记录被推翻」；
- 写这些记录的任务与等待其作者任务的任务收到消息；
- 标记直接生效，不等人确认；这些记录自身的状态不自动修改；
- 已写好的报告不自动重写；按新情况出报告时点「再出一版」，见[版本与编号](#版本与编号)。

传播规则另见[课题：多模型协作](https://www.scirouter.cn/docs/campaigns-collab)「冲突与推翻」。

展开一条记录，「相关」按关系分组列出与它直接相连的内容：与它矛盾、反驳它、支持它、引用它与它引用的记录，它出自的任务，提到它的帖子，它涉及的对象。点开一个对象，显示涉及同一对象的其他记录。相关内容过多时只列出距离最近的一部分。

部署未开启课题图时，记录上不显示这两种标记与「相关」，程序仍按这些关系处理。

### 依据与多源一致

用了领域包的课题，记录带「依据」：该记录建立在哪几条观察上（观察见[观察与实体](#观察与实体)）。依据分主要依据（直接支撑该记录）与背景（只交代情况）。

两条观察放在一起比较时（例如掺杂前后的容量），依据中写明比较关系（高于、低于、接近等）；测试条件不同的标「条件不同，不能直接比」，表示据此得出的结论可能不成立。

- 发现的门：程序自动将一条发现记为「已确认」时，还要求至少一条主要依据是已核对、带单位、带出处的观察；发现正文提到对象时，该观察须关于其中一个对象（A 的数值不能支撑关于 B 的发现）。用户手动修改状态不受此限制。
- 依据被推翻：用户推翻一条观察时，依据中含该观察的记录按推翻记录的方式向下游传播（作者任务收到消息），记录自身的状态不变。

「多源一致」表示至少两个模型家族与至少两个独立的外部来源支持该记录：

- 计入范围：该记录本身，加上经「支持」关系连到它、且站得住的记录；
- 外部来源：文献、登录号与结构、网页。运行结果与课题中的其他记录不计入；
- 同一篇文献的 DOI 与 PMID 目前按两个来源计；
- 标记显示在记录标题旁，悬停显示家族数与来源数；
- 置信度评估的权重不因此改变。

## 引用在源头的查询

报告与记录证据中的每条引用都回源头查询：

| 引用 | 查询的源头 |
|---|---|
| PMID | PubMed |
| DOI、arXiv | CrossRef、arXiv、Semantic Scholar |
| GenBank / RefSeq 登录号 | NCBI。本课题中实际读过原始记录的登录号直接算查到 |
| UniProt | UniProtKB |
| PDB | RCSB PDB |
| 网址 | 无统一的登记处可查，只认本课题检索到或读过的 |

查询结果只有三种：

| 结果 | 含义 | 可进报告正文 |
|---|---|---|
| 查到此文 | 源头有这条记录。不说明它支持引用它的那句话 | 是 |
| 查无此文 | 源头没有这条记录 | 否 |
| 未能查询 | 未开启查询、超时、限流，或一次引用过多。不表示引用有问题，只表示这一次未能确认 | 否 |

查无此文与未能查询的引用单独列出并写明原因；报告的参考文献只收录查到此文的引用。

团队课题按团队的「外部检索」设置处理：

| 「外部检索」设置 | 查询方式 |
|---|---|
| 「全部关闭」 | 不向外发送任何引用，全部为「未能查询」，不进正文。本课题中实际读过的登录号、检索到的网址无需外发，照常算查到 |
| 「只核对」及以上 | 照常回源头查询 |

### 摘要比对

「查到此文」只说明源头有这篇文献。报告写好后，对查到此文的文献（PMID、DOI、arXiv）再取一次摘要原文，交给另一家族的模型（避开写报告的家族），与引用它的每一句话逐对比较。

| 结论 | 含义 |
|---|---|
| 摘要与这句话一致 | 摘要中有直接说到这句话的内容 |
| 摘要与这句话不一致 | 摘要的说法与这句话相反，或对象、数值对不上 |
| 摘要里看不出 | 摘要未写到，可能在正文中 |

判为「一致」或「不一致」时，须逐字抄出摘要中的那一句；系统在摘要原文中找到该句才算数，找不到的一律按「看不出」处理并写明原因。

比对结果显示在引用出处下方：论断原文、结论、摘要中的那一句；摘要全文可展开查看。报告中有「不一致」时，该报告在置信度评估中最高 B 档，见[置信度评估](#置信度评估)。

比对只判断摘要中是否写到：摘要不代表全文，也不判断文献证明了什么。源头未提供摘要时（很多出版社不提供摘要），显示「未做比对」。

摘要比对是单独的一步，花费本课题的预算，不阻塞课题推进。

## 观察与实体

用了领域包的课题（新建时选择，见[课题：上手](https://www.scirouter.cn/docs/campaigns)「领域包」），或已有观察的课题，详情页多一个「观察」标签。

### 观察

一条观察记录一个数值，包含对象（哪个化合物或材料）、性质、数值与单位、条件（温度、倍率、电压窗口等）、来源（证据），可另写测量方法。

观察有两个来源：

- 执行者从文献、数据库、运行结果中读出后提交，一步最多 40 条；
- 用户回填实验时附的测得数值，标「实验回填」，见[实验回填](#实验回填)。

原文照存，数值按领域包换算到标准单位，表中两者都写。原文未报告数值的写「原文没报告」，不算错误。

| 情况 | 观察的状态 |
|---|---|
| 执行者提交，证据出处全部核对过、带单位、对象与性质都归入领域包 | 已核对 |
| 执行者提交，不满足上一行的条件 | 待核对 |
| 用户确认 | 已核对。不要求证据都核对过，记下由用户确认 |
| 回填实验时附的数值 | 已核对。来源即该次实验 |

只有已核对的观察参与数值比对、计入取值范围、能支撑发现。

「观察」标签每条观察一行：对象（点开显示实体详情）、性质、数值（原文与换算后的值）、条件、状态、冲突、证据、方法。可按对象、性质、状态筛选，或选「只看归不进的」。

认不出对象、或无法写成领域包中性质的观察只能记为自由文本，不参与单位换算与数值比对。此类观察较多时，说明领域包需要补充。

能操作课题的用户可确认或推翻一条观察，或修改其对象、性质、单位（单位须能换算到该性质的标准单位）。推翻后，建立在该观察上的记录须重新查看，见[依据与多源一致](#依据与多源一致)。

### 数值冲突

一条观察变为已核对时，程序将它与课题中同一对象、同一性质的已核对观察比较，按以下两项判定：

| 项 | 规则 |
|---|---|
| 条件相容 | 两边都写了的条件取值相同。有一个共有的条件取值不同时不比较，条件不同时数值本可不同 |
| 超过容差 | 相对差超过该性质的容差，且差值本身超过下限 |

相对差 = 两数之差 ÷ 两数绝对值的平均；温度先换算为开尔文。数值接近 0 时相对差会被放大，因此另设差值下限：带隙 0.05 eV、百分数 1 个百分点、温度 2 K。

判出冲突后按两条观察的条件处理：

| 两条观察的条件 | 处理 |
|---|---|
| 都写了条件，且完全相同 | 视为真冲突，处理方式列于表下 |
| 不完全相同，或两边都没写条件 | 只在观察与实体详情中标出，不打断任务。缺少条件时无法判断是否为同一种测法 |

真冲突的处理：

- 依据中含这两条观察的记录之间标「与它矛盾」，按记录冲突的方式发质疑、请第三个家族审阅，见[课题：多模型协作](https://www.scirouter.cn/docs/campaigns-collab)「冲突与推翻」；
- 尚无记录建立在这两条观察上时，提醒两条观察出自的任务回原文核对数值与条件。

领域包「化学材料」的性质、标准单位与容差：

| 性质 | 标准单位 | 容差 |
|---|---|---|
| 比容量 | mA·h/g | 5% |
| 首周库仑效率 | % | 2% |
| 循环保持率 | % | 5% |
| 带隙 | eV | 5% |
| BET 比表面积 | m²/g | 10% |
| 电子电导率、离子电导率 | S/cm | 20% |
| 平均电压 | V | 2% |
| 能量密度（质量） | W·h/kg | 5% |
| 产率 | % | 5% |
| 熔点 | °C | 2% |
| 粒径、孔径 | nm | 10% |
| 晶格常数 | Å | 0.5% |

条件包括倍率、电压窗口、温度、循环次数、电解液、气氛、压力。原文中的同义说法（如「放电比容量」「首效」「截止电压」）同样识别。

### 实体

对象按主标识识别为实体：

| 对象 | 主标识 |
|---|---|
| 化合物 | InChIKey |
| 材料 | 规范化的组成式 |

名称、CAS 号、PubChem CID、代号等写法都归入对应的实体。同一工作区（用户个人或一个团队）的课题共用这些实体。

在观察表格或记录的「关于」中点一个实体，打开实体详情。详情包含标识与别名、观察、相关记录与此路不通，以及下列各部分：

| 部分 | 内容 |
|---|---|
| 确认过的同一个 | 材料代号与组成式这类写法不会自动视为同一个，须有人确认。能操作课题的用户可「确认是同一个」（可写依据）或撤销；确认记在工作区中，只影响取值范围与冲突的计算，不修改原有的观察 |
| 已报道的取值范围 | 按性质与条件分组，只计已核对、带单位的观察，注明出处（文献、实验回填） |
| 互相冲突的数值 | 按[数值冲突](#数值冲突)判出的冲突，列出两个数值与相差多少 |
| 以前的课题确认过 | 同一工作区以前的课题对该实体确认过的此路不通、否定结论、被推翻的发现，只列出用户能查看的课题。这些内容也带入规划与执行的输入，避免重走一遍 |

课题内判断是否为同一对象，只依据本课题的原文。只有借助工作区中的别名或「确认是同一个」才能对应的两种写法，在课题内仍视为两个对象：不据此标矛盾、发消息或判定触及此路不通；两者之间的数值冲突只标在观察与实体详情中。

## 正式报告

研究阶段结束后，课题生成一份正式报告，结构按国家标准 GB/T 7713.3-2014《科技报告编写规则》编排。课题中有记录就写报告，只有否定结论、方法或待解问题也写；一条记录都没有时不写，课题直接结束。第一版写好后课题自动结束，不等人审。

### 报告结构

| 部分 | 内容 |
|---|---|
| 封面 | 题名、报告编号、报告类型、版本、完成日期、作者（个人课题写发起人，团队课题写团队名）、参与的模型、使用范围（仅发起人 / 团队内 / 已分享给团队，按课题当前的共享状态）、一句来源说明 |
| 摘要与关键词 | 中文摘要 300–600 字、英文摘要约 300 词，写目的、方法、结果与结论；关键词 3–8 个，中英对照 |
| 目次 | 列到二级，点一条可跳转 |
| 1 引言 | 背景、目的、范围、读者对象、前人工作；不重复摘要，不提结论 |
| 2 研究方法与过程 | 由程序按课题自身的记录写：各阶段的完成情况、放行与完成的任务数、各类记录的条数、用过的模型、查文献 / 搜网页 / 读网页 / 运行代码各自的次数、研究阶段的花费、起止时间与停止的原因。另有一段模型写的说明 |
| 3–n 结果与讨论 | 按[报告类型](#报告类型)分章，每段论述后标注依据 |
| 结论 | 总体结论，不重复各章小结；材料不足以下结论时写成讨论 |
| 建议 | 基于结论的行动建议与下一步研究；建议的实验写明对照、预期，以及出现何种情况即视为被否定 |
| 局限与未完成 | 哪些阶段未走完、中途收尾或未轮到，停止的原因，哪些论断证据不足 |
| 参考文献 | 正文中用到、且在源头查到的引用。源头未提供作者或刊名的如实省略，不由模型补写。著录格式列于表下 |
| 附录 A–F | A 方案与图、B 依据清单、C 否定与待解、D 参与者与账目、E 任务书原文、F 审校意见 |
| 声明 | 最后单独一节，说明报告以 AI 为主、人工为辅（拟定任务书、过程中调整方向、事后审核），引用经回源核对但未经同行评议，仅供参考，不构成专业意见；并写明该版本的人工审核情况（未审、接受、驳回或要更多证据）。打印时另起一页，为 PDF 的最后一页 |
| 核验码 | 第一页页眉右侧的 PDF417 条码，以及声明页上的完整核验码，见[核验码与正文摘要](#核验码与正文摘要) |

参考文献的著录格式：

| 位置 | 默认格式 | 切换方式 |
|---|---|---|
| 「报告」标签页 | GB/T 7714-2015 | 「著录格式」，可选 APA 7、IEEE、Vancouver |
| 全屏页 | GB/T 7714-2015 | 地址参数 `?style=` |
| 导出 Markdown | GB/T 7714 | 接口的 `citationStyle` 参数 |

正文中的依据标注：

| 标注 | 指向 | 点击后 |
|---|---|---|
| `[R12]` | 课题中的一条记录 | 显示该记录的开头、种类、所在阶段、证据出处是否核对过，可跳到「记录」页查看全文 |
| `[3]` | 参考文献第 3 条 | – |
| `[留言板]` | 留言板上的一帖 | 跳到该帖 |

附录 B 按编号列出全部记录依据。附录中的依据使用相同的标注。

附录中各部分的规则：

| 内容 | 附录 | 规则 |
|---|---|---|
| 图 | A | 模型只能画数据记录中原样存在的数；表中的数须能在该记录中逐字找到，对不上的不画并写明原因 |
| 账目图（花费随时间、算力池、帖子、任务漏斗、动作分布） | D | 来自课题自身的记录，不经模型 |
| 参考实现 | A | 可照做的示例代码或伪代码，写明依据的记录。报告不运行这些代码，每一段都标「未运行」 |
| 此路不通、未决争议 | C | 程序按留言板生成；未开留言板的课题没有 |
| 参与者与账目 | D | 每个席位的模型、步数、帖数、花费、更换过的模型，以及各分支并入的贡献 |

步骤中实际运行过的代码以「运行结果」证据挂在记录上，见[证据的出处核对](#证据的出处核对)。

### 报告类型

规划阶段按任务书判定一种报告类型，类型决定「结果与讨论」的分章方式：

| 类型 | 分章方式 |
|---|---|
| 调查报告 | 按主题 |
| 研究报告 | 按假设—方法—结果 |
| 论证报告、设计报告 | 按需求—方案比较—推荐方案—评估设计 |
| 分析报告 | 按问题—数据—分析—结论 |

调查、论证、设计类报告除发现外，也将方法（方案、伪代码、流程）、否定结论（排除的方向）与待解问题排入章节；未进入任何一章的记录列在附录 C 与「局限与未完成」中。

报告类型显示在总览上。能操作课题的用户可在「编辑」中修改报告类型；课题结束后也能修改，并记一条修订。之后写的版本按新类型分章。

### 写作流程

1. 分批写：材料超过一步能容纳的量时，按阶段分批写，每批只读该批记录的全文；一批能容纳时直接写整份。
2. 合成：读取完整的任务书（含背景）、阶段与未达成的完成检查、各批写好的部分（或全部记录）、数据记录、读过的原始窗口、留言板的摘要、实验回填、分支的贡献，按报告类型写出[报告结构](#报告结构)中的各部分。多源一致的记录（多个模型家族、多个独立来源都支持）排在前面并标出；承重的记录（多处结论依赖它）写明它不成立时会影响什么。封面、研究方法与过程中的数、依据编号与参考文献由程序写，不经模型。
3. 审校：换一个模型家族（避开写正文的家族）逐条检查摘要字数与关键词个数、引言不提结论、结论不重复各章小结、每段论述有依据、建议来自结论、未完成的不写成完成、措辞不过度。有问题时按审校意见重写一次，再审一遍；仍未改好的收入附录 F「审校意见」，封面下方写明还有几条未解决。程序自身的检查（摘要字数、关键词个数、结论或建议为空等）也并入附录 F。
4. 引用回源核对：正文中的每条引用回源头查询一遍（见[引用在源头的查询](#引用在源头的查询)），之后做[摘要比对](#摘要比对)。

任何一批两次都未写成，或合成未写成时，该版本记为未写成，页面显示原因。缺少任何一批材料时不进行合成。

写报告使用「留给写报告」的预算（默认为总预算的 20%，见[课题：上手](https://www.scirouter.cn/docs/campaigns)「花费」），研究阶段不能动用。预算不足时先省去部分步骤（不重写、不审校），并在附录 F 中写明。

### 报告的三道闸

以下三项由程序强制执行，不依赖模型：

| 闸 | 规则 |
|---|---|
| 每段论述带依据 | 依据为课题记录、读过的原始序列窗口，或源头查到的文献与登录号。在课题中找不到的依据被去掉；一条依据都不剩的论述不进正文，单独列出供用户查看 |
| 引用在源头查得到 | 查无此文与未能查询的引用剔出正文，单独列出并写明原因 |
| 措辞不超出证据 | 不将模型的判断写成定论；「实验支持」只来自用户标注的实验结论 |

引言与「局限与未完成」可以不带依据：阶段未轮到、研究停止的原因是平台记下的事实，没有记录可引用。

### 版本与编号

报告编号形如 `SR-2026-XXXXXXXX`（年份加 8 位编号）。同一课题的各个版本使用同一个编号，版本另写。

每写一次产生一个新版本。旧版本全部保留且只读，可在报告页头切换查看。

| 时机 | 方式 |
|---|---|
| 研究阶段结束 | 自动写第 1 版 |
| 分支的合并审完（主课题的研究已结束） | 自动再写一版 |
| 人审「要更多证据」补完 | 自动再写一版 |
| 研究阶段结束之后的任意时刻 | 能操作课题的用户点「再出一版」 |

一版写完后，课题又有新记录、人审、实验结论或合并时，页面提示可以再出一版。

报告引用的记录后来被推翻或取代时，该版本不自动重写：附录 F 中记一条「依赖的记录被推翻或取代」，建立在该记录上的结论由程序降级，页面提示可以再出一版。

写新版本同样花费本课题的预算。课题结束后预算不足时，先在「编辑」中增加预算。

### 阅读、打印与导出

「报告」标签页按文档版式显示：页眉为 SciRouter 标志与报告编号（题名与使用范围在封面上）；页脚为版权、版本、生成时间（按用户的时区）与来源说明；章节编号为 1、1.1；表按所在的章或附录编号（「表 2-1」「表 D-1」）；图都在附录中（「图 A-1」）。

打印或存成 PDF：

1. 点「全屏阅读 / 打印」，打开只含该报告的页面。
2. 点「打印 / 存成 PDF」，用浏览器打印或存成 PDF。

较新版本的 Chrome 打印时，每页页边印有品牌、编号、版权与「第 n 页 / 共 N 页」；其他浏览器打印时以文档中绘制的页眉页脚为准。

「导出 Markdown」中也包含报告全文，结构与正式报告相同。

### 核验码与正文摘要

每个版本写好时签发核验码。平台未配置核验密钥时，报告不带核验码。

| 位置 | 形式 |
|---|---|
| 第一页页眉右侧 | PDF417 条码 |
| 声明页 | 完整的码：以 `SR1.` 开头，数字每 5 位一组，旁边有「复制」 |

核验步骤：

1. 打开[核验页](https://www.scirouter.cn/verify)。
2. 粘贴核验码，或上传报告的 PDF、页眉的截图（自动识别）。
3. 查看结果。核验页只返回报告编号、版本、签发时刻、样式版本、正文摘要，以及与平台存档是否一致，不返回正文。

「正文摘要」是该版本报告正文的 SHA-256，签发时算出并签入核验码；核验时平台按存档中当前的正文重算，与码中的值相同即为「存档一致」。它只表明正文签发后是否被改过，无法从中推出正文内容。

计算的输入是平台存档的该版本报告正文（一个 JSON 对象）。页面与 PDF 上的文字、界面接口返回的报告内容都不能直接用于计算：接口返回的是另一种格式，部分字段在读取时改写（例如「使用范围」按课题当前的共享状态计算）。

计算步骤固定：

1. 去掉顶层的四个字段：`issues`（审校意见）与 `supportStatus`、`supportStep`、`supportNote`（引用摘要的比对进度）。它们在报告写好后仍会变化。
2. 逐层去掉对象中值为空的成员。空值为 `null`、`""`、`0`、`false`、`[]`、`{}`；成员去掉后变空的对象也算空。数组中的元素不删除，个数与顺序不变。
3. 按下列序列化规则写成一行 JSON。
4. 按 UTF-8 编码（不带 BOM）取字节，计算 SHA-256，写成 64 位小写十六进制。

第 3 步的序列化规则：

| 项 | 规则 |
|---|---|
| 空白 | 没有空格与换行 |
| 对象的键 | 按 Unicode 码点升序（与 UTF-8 字节序相同） |
| 数 | 都是整数，写十进制 |
| 字符串中的 `"` 与 `\` | 前面加 `\` |
| 字符串中的换行、回车、制表、退格、换页 | 写成 `\n` `\r` `\t` `\b` `\f` |
| 字符串中其余的 U+0000–U+001F，以及 `<`、`>`、`&`、U+2028、U+2029 | 写成 `\u` 加 4 位小写十六进制，例如 `<` 写成 `\u003c` |
| 其他字符 | 原样保留 |

参考实现（Python 3，只用标准库；已用含特殊字符的样例与平台的计算结果逐字节核对）：

```python
import hashlib, json

def clean(v):
    if isinstance(v, dict):
        out = {k: clean(x) for k, x in v.items()}
        return {k: x for k, x in out.items() if x not in (None, "", 0, False, [], {})}
    if isinstance(v, list):
        return [clean(x) for x in v]
    return v

def digest(doc):
    for key in ("issues", "supportStatus", "supportStep", "supportNote"):
        doc.pop(key, None)
    text = json.dumps(clean(doc), ensure_ascii=False, separators=(",", ":"), sort_keys=True)
    for ch in "<>&\u2028\u2029":
        text = text.replace(ch, "\\u%04x" % ord(ch))
    return hashlib.sha256(text.encode("utf-8")).hexdigest()

# doc 是存档的这一版报告正文（json.load 读进来的 dict）
# print(digest(doc))  # 应与核验页的「正文摘要」相同
```

用其他语言实现时，可先用以下测试向量核对。输入：

```json
{"cover":{"number":"SR-2026-TESTVEC1","title":"A<B & C","version":1,"completedAt":"2026-10-22T07:46:53+08:00","scope":"team"},"abstract":{"zh":"摘要","en":""},"chapters":[{"title":"一","paragraphs":[{"text":"x","refs":[]}]}],"evidence":[{"ref":"R1","text":"","verified":true}],"issues":["审校意见"],"supportStep":"cstp_1","revised":false}
```

整理后的一行（第 1–3 步的结果）：

```json
{"abstract":{"zh":"摘要"},"chapters":[{"paragraphs":[{"text":"x"}],"title":"一"}],"cover":{"completedAt":"2026-10-22T07:46:53+08:00","number":"SR-2026-TESTVEC1","scope":"team","title":"A\u003cB \u0026 C","version":1},"evidence":[{"ref":"R1","verified":true}]}
```

该行的 SHA-256：`69059156590a21392af053467ea1dd016e92d2833543e7326917f79127548a70`。

### 人审

人审为事后可选的操作，审的是最新写好的版本。不审不影响课题，在评估中也不计分，见[置信度评估](#置信度评估)。还没有写好的版本、或正在写新版本时不能审。

| 操作 | 须填写 | 结果 |
|---|---|---|
| 接受 | – | – |
| 要更多证据 | 还缺什么 | 已结束的课题重新打开并回到研究中，开一个补证据的任务；任务完成后再写一版报告，然后自动结束，不再等人审 |
| 驳回 | 理由 | 理由记为一条否定结论 |

## 置信度评估

「评估」标签页为每条发现与最新写好的报告版本给出分数与档（A / B / C / D），课题总体另汇总一个。评估只统计平台自己记下的核对项，不引入新的模型判断。

| 对象 | 规则（权重） |
|---|---|
| 每条发现 | 证据的出处核对（25）· 文献与登录号在源头查到（10）· 读过原始记录（10）· 记录已确认（10）· 盲审（20）· 帖子被确认（10）· 被报告引用（10）· 实验回填（10）· 多次独立运行（15） |
| 报告（一张卡） | 证据条目的出处（20）· 引用在源头查到（15）· 摘要比对（10）· 读过原始记录（10，只在课题够得着原始数据时适用）· 程序检查与审校（10）· 人审（15）· 实验回填（15）· 多次独立运行（10）· 依据的发现（10） |

分数 = 得分 ÷ 适用规则的权重之和 × 100。不适用的规则不计入分母，例如：未开留言板时没有盲审；只运行一次时没有复现；课题接触不到原始数据时没有「读过原始记录」。

| 档 | 分数 |
|---|---|
| A | ≥ 85 |
| B | ≥ 65 |
| C | ≥ 40 |
| D | 其余 |

用户未做的操作不计分：

- 未人审、实验已回填但未标结论，均算不适用，不计入分母；
- 发现被写好的报告引用时，即使该报告未经人审，「被报告引用」一项也拿满分；
- 人审与实验结论只有做了才计分：接受、实验支持拿满分；驳回、实验否定为 0 分。

档的上限：

| 情况 | 档的上限 |
|---|---|
| 引用查无此文 | C |
| 盲审有「有漏洞」 | C |
| 未决争议或摘要不一致 | B |
| 人审驳回或实验否定 | D |

被推翻、已被取代的发现不打分，只列出；报告只为最新写好的版本打分。

课题总体取最新写好的报告版本的分数；尚无写好的报告时，按未被推翻的发现计算。另列需留意的事项，例如未盲审的条数、研究停止时剩余未做的任务数（注明是到达截止时间、预算用完还是手动收尾）、只运行了一次。

点任意一行查看逐条规则：每条规则的计算方式、该项的实际情况（几条中的几条）与得分。规则与权重随接口下发，页面上的表格据此绘制。

> 注意：分数只说明平台的核对项通过了多少，不是结论为真的概率。结论是否正确仍由人审与实验判断；评估不为任何一条标注「成立」。

## 实验回填

报告写好后可回填实验。回填挂在最新写好的报告版本上；尚无写好的版本时不能回填。

1. 写明做了什么实验、观察到什么结果。结果可以是文字或 Markdown 表格。
2. 查看模型的解读：对照报告中建议的实验与预期，写明支持了什么、未检验什么、是否有矛盾。
3. 标注结论：实验支持、实验否定或不确定。结论只由用户标注；界面上的「实验支持」只来自这一步。

标注结论后，报告页提示可以再出一版，将该次实验写入报告。

### 测得的数值

用了领域包的课题，回填时还可附测得的数值（可选，最多 50 条），每条一个数值：

| 字段 | 填写 |
|---|---|
| 对象 | 名称、组成式、CAS 号或代号。建议列表中是课题已提到的实体 |
| 性质与单位 | 从领域包中选择；无量纲的性质不选单位 |
| 数值 | 测得的数值 |
| 条件 | 测量时的条件（温度、倍率等），从领域包的条件中选择 |
| 方法 | 可选 |

保存与比对规则：

- 保存时逐条按领域包检查。性质、单位、条件不在包中，或数值写得不对时，**整次都不保存**；出错的那条在出错的项下方写明原因，改正后再保存。
- 认不出的单个词按代号收录；带空格或很长的名称须在本工作区中出现过才能识别，否则记为「归不进」，不参与数值比对。
- 附的数值来源即该次实验，直接算已核对，出现在「观察」标签中。报告下该次实验的「在「观察」里看」只显示这几条。
- 这些数值与课题中已核对的数值比较，相差过大的标为冲突，判定规则同[数值冲突](#数值冲突)。解读该次实验时一并参考这些冲突，只列出按本课题原文能认出是同一对象的冲突。
- 目前不能挂到记录的「依据」上。

## 多次独立运行

独立运行次数选 3 次时，同一套阶段独立运行三遍，各自规划任务，最后合并三遍的发现：

| 标记 | 含义 |
|---|---|
| m/3 次出现 | 该发现在 m 次运行中出现 |
| 只在 1 次中出现（未复现） | 该发现只出现一次，更可能是偶然结果 |

预算平分给三次运行，每次可用的预算约为只运行 1 次时的三分之一。新建时填写的预算是三次合计；**开始运行后在「编辑」中调整的是每一次运行各自的预算**。

## 共享、分支与合并

### 共享给团队

个人课题的发起人可将课题共享给自己所在的一个团队，也可改为共享给另一个团队或取消共享；已引申出去的分支不受影响。团队工作区中发起的课题本身归团队所有，无需共享。

| 操作 | 团队成员 | 发起人 |
|---|---|---|
| 查看、引申分支 | ✓ | ✓ |
| 编辑、暂停、人审、审合并 | ✗ | ✓ |

### 引申分支

能查看课题的用户都可以从整个课题（详情页头部的「更多」中）或其中一条记录引申分支，即开一个新课题。

| 项 | 分支的处理 |
|---|---|
| 研究问题与预算 | 分支自有。**花费的是用户当前工作区的配额** |
| 流程 | 照常规划、研究、写报告；规划完成后直接开始研究 |
| 任务书 | 未填写的栏沿用主课题，领域包也沿用；主课题的研究问题与引申的起点写入材料 |
| 主课题的记录 | 被推翻、被取代的除外，作为继承的快照带入：只读参考，不计为分支自己的发现 |
| 共享 | 用户是主课题所在团队的成员时，分支自动共享给该团队，团队成员都能看到谁在往哪个方向引申 |

分支页顶部的「从主课题同步」将主课题之后新增的记录继承到分支；主课题后来推翻或取代的记录，分支中的快照随之更改状态，避免继续被当作依据。

### 合并到主课题

发起合并：

1. 分支的研究告一段落（暂停、写报告或已结束）后，打开「分支与合并」。
2. 点「发起合并」，将分支自己的记录提交给主课题。

主课题已有相同内容的记录自动标出，无需审核。同一个分支同一时间只能有一次合并在等待审核。

审合并：主课题的发起人（团队课题还包括 owner / admin）逐条审核，接受，或驳回并写理由。

- 接受的记录并入主课题，注明来源分支、来源记录与贡献者。
- 主课题的研究已结束时，合并完成后自动再写一版报告。
- 发起合并与审完时都会通知对方。
