# 恢复练习：格式正确的错误输入

2026-10-16 实际运行。使用本手册的合成教学结果与既有 `build_report.py`，没有调用模型、接触真实数据或重新拟合分析。课堂讨论、误用情境及下游摘要影响是教学设想。

## 发生了什么

先复制[确认结果表](../reference/survey-sensitivity.csv)，在练习副本中只把 `at_least_two` 行的 `n` 从21改成15。其他值不变。把副本交给[报告脚本](build_report.py)，程序完成，数字稿写出主规则15条。15是合法正整数，脚本的格式检查不能发现它与确认分析不符。

随后改用原确认结果表，在新位置生成报告。主规则恢复为21条，比较规则保持15条；输出文本与[第二轮参考报告](round-2/results.md)一致。比较按文本内容进行，忽略平台换行差异。原确认结果表的字节未改变。

| 对照项 | 错误副本生成稿 | 恢复后生成稿 |
|---|---:|---:|
| 主规则记录数 | 15 | 21 |
| 主规则压力系数 | 0.364 | 0.364 |
| 主规则反刍系数 | 0.343 | 0.343 |
| 比较规则记录数 | 15 | 15 |
| 比较规则压力系数 | 1.081 | 1.081 |
| 比较规则反刍系数 | 0.720 | 0.720 |
| 程序完成 | 是 | 是 |

这说明格式检查与来源核对解决不同问题。恢复成功只涉及这份数字稿，不证明计分、模型或科学解释适合其他研究。

## 自己试一次

下载教学目录并保留相对位置。在 `workflow` 文件夹中新建 `my-recovery-run`，把确认结果表复制到其中，命名为 `wrong-input.csv`。只编辑这个练习副本，将 `at_least_two` 行的 `n` 改为15，其他字段保留，仍保存为CSV。确认原表未被覆盖后，在 `workflow` 文件夹运行：

```text
python build_report.py --source my-recovery-run/wrong-input.csv --mode compare --output my-recovery-run/wrong-report.md
python build_report.py --source ../reference/survey-sensitivity.csv --mode compare --output my-recovery-run/restored-report.md
```

需要Python 3.10或以上。脚本不覆盖已有输出；重做练习时选用新的输出文件名。也可以让能操作本地文件的 AI 助手按上述范围协助执行，完成后自己比较两份报告和输入表。

不要通过搜索替换，把报告中的所有15改成21：比较规则的15本来就是正确值。应当回到输入来源，重新生成，再核对每一行所属规则。

## 用一段话记录恢复

本练习可写为：“候选报告使用了被故意改错的练习副本。原确认表和分析未变，现已重新生成报告并与第二轮参考文本对照。继续使用恢复后的报告，错误稿仅留作练习对照。”

迁移到真实项目时，加上材料位置、已查到的影响范围，以及尚待检查的正文或图表。若原始输入或方法本身有问题，应先处理相应问题，再重做后续步骤。

详细解释见[核验、隐私与恢复章](../../../chapters/11-safety-recovery.html#recovery)。
