# 知识库一致性自查 12 项

> 适用：AI 客服 / AI 助理 / 内部知识库。目的不是"把文档写好看"，而是让「当前事实」只有一处权威源，其余引用可追溯。
> 用法：逐项打勾；打不了勾的，写清"为什么暂时做不到"，不要写"已优化"。

## A. 定位（先知道有几份副本）

1. **双向 grep 已完成**：既搜了错误表述，也搜了正确表述（后者用来确认权威写法、找出可信参照文件）。
2. **副本清单在手**：每条关键现状列出"出现在哪几份文件、共几处"，而不是只知道"某处写错了"。
3. **本地副本已纳入**：每台机器上的本机记忆文件（如 `~/.openclaw/SHARED_MEMORY.md`）已 grep 过，不只查中心知识库。

## B. 分层（决定哪些能改）

4. **活文档已圈定**：状态库、资料库速查、凭证表、指南类、操作手册 —— 这些改。
5. **历史记录已隔离**：历史日志、历史交接、一次性日报、带日期归档 —— 这些不改，它们是"当时的事实"。
6. **四类语义已分清**：
   - 现状（正在跑什么）→ 必须改
   - 库存（盘上有什么）→ 未变则不改
   - 史实（当时为什么这么定）→ 不能改
   - 观点（哪个更好）→ 保留并标时间

## C. 修正（能不能放手让脚本跑）

7. **规则 old 片段足够唯一**：每条替换串都带上前后文，避免只用模型名/服务名这种高频词。
8. **exp 命中数已预声明**：每条规则声明"应出现 N 次"，dry-run 阶段任何一条不符 → 整体中止，一个字节不写。
9. **无"尽力而为"模式**：脚本不允许"命中 0 次也继续"，否则文件被改过时会静默空过并打印成功。
10. **写入前已备份**：统一 `.bak-YYYYMMDD-<主题>` 后缀，同目录留存。

## D. 下发与验证（改完不等于生效）

11. **顶部更正块已加**：含背景 / 实测证据（原始命令输出）/ 变更时间 / 现状表 / "以本块为准"声明；旧描述不删。
12. **逐节点验证已完成**：
    - 新值在每台机器上 grep 命中 `=1`
    - 历史文档里的旧值**仍然命中**（证明没改坏史实）
    - 下发脚本输出 `失败 = 0`

## 三条边界（我们不做的）

- **不做**"全库一键替换"式治理：宽 pattern 会命中正确内容（如"留盘兜底"其实是库存描述），必须逐条判定。
- **不做**"删掉旧描述"式更新：历史依据一删，下次同类问题就没有复盘材料。
- **不做**没有来源的现状描述：写不清"核实时间 + 来源"的条目，视为传闻，不入活文档。

## 一条自检命令（可复算，不靠形容词）

```bash
# 新值是否每台可见；历史旧值是否仍保留
grep -rc "新值关键词" /mnt/knowledge_base/docs/ | grep -v ":0"
grep -rl "旧值关键词" /mnt/knowledge_base/docs/01_状态库/历史日志/ | wc -l
```
