<!-- generated-by: codex / 2026-08-26 -->
# 第 8 章任务卡：建立可维护资料库

## 1. 起点

你收到 12 份当前材料、3 份旧版和 5 项待确认问题。文件名看起来很整齐，但不能直接证明材料状态或内容。

## 2. 只读输入

- `inputs/chapter-08/current/`
- `inputs/chapter-08/archive/`
- `inputs/chapter-08/pending/`
- `inputs/chapter-08/expected-records.json`

开始前运行 `npm run verify:inputs`。不得修改、移动或重命名这些输入。

## 3. 唯一写入位置

只写 `workbench/library/`。

## 4. 本章唯一成果

建立一套能反查原材料的资料库：`index.csv`、`field-rules.md`、`pending.md`、`update-log.md`。

## 5. 可复制给 Codex 的任务

```text
只读取 inputs/chapter-08。逐份读取文件正文中的材料 ID、标题、日期、版本、状态和来源类别；不要根据文件名猜事实。把 12 份当前材料和 3 份旧版写入 workbench/library/index.csv，并让 current/archive 在独立字段中可区分。把 5 项未解决问题写入 pending.md，不得把它们写成已确认事实。补充 field-rules.md 和一条五项 update-log.md。只写 workbench/library，完成后运行 npm run check:08；如果输入哈希变化，立即停止。
```

## 6. 你必须亲手完成

从索引随机选三条当前材料和一条旧版，打开原文件逐字段核对；再选一项待确认问题，确认它只出现在 `pending.md`，没有混进已确认索引或下一章事实。

## 7. 你应该看到

- 索引有 15 行材料记录：12 行 current、3 行 archive。
- 待确认清单有 5 项，每项保留问题而不是虚构答案。
- 每行都有能回到原文件的相对路径。
- 输入完整性检查前后哈希一致。

## 8. 三个真实坑

### 坑 1：把文件名当事实

有一份文件名看起来像“最终版”，正文却明确说明它仍需核对。检查会比较正文元数据，靠文件名判断会失败。

### 坑 2：把旧版登记为当前版

旧版标题与当前材料相近。若索引没有独立版本区域，检查会发现 H 系列混入 current。

### 坑 3：把待确认写成已确认

U 系列故意提供了听起来合理但未解决的问题。它们一旦进入确认索引或第 9 章事实底稿，检查立即失败。

## 9. 复选框验收

- [ ] `npm run verify:inputs` 通过。
- [ ] `index.csv` 正好包含 12 条 current 和 3 条 archive。
- [ ] 抽查的四条材料都能反查原文件。
- [ ] `pending.md` 正好包含 5 项未决问题。
- [ ] `npm run check:08` 通过。

## 10. 停止、回退与交接

发现来源、版本或状态说不清时停止，不替材料补答案。若写错，只清理 `workbench/library/` 后重做，不碰 `inputs/`。交给第 9 章的是 `workbench/library/index.csv`、`pending.md`、`field-rules.md`、`update-log.md`，并在交接记录中抄下本轮 `npm run verify:inputs` 的最终通过行；第 9 章只使用 `status=已确认` 的 current 行。
