# 知识健康检查

当用户要求检查知识库健康、检测冲突或审计知识质量时，按本指南执行。

## 检查维度

### 1. 矛盾 / 冲突

两个或多个文件对同一主题给出互相冲突的事实或决策。例如，一个文件写“限流 = 100/min”，另一个文件写“限流 = 200/min”，但没有说明适用场景差异。

**检测流程：**
1. 确定主题范围：用户可能会指定，也可以从最近编辑开始。
2. 用 2-4 组关键词搜索相关文件。
3. 阅读命中文件，提取关键事实、约束和决策。
4. 比较不同文件里的 claim，标出互相冲突的成对内容。
5. 向用户展示冲突文件路径和必要引用。

**处理方式：** 询问用户哪个版本是权威来源。更新或标注非权威文件，让它指向正确来源。不要静默覆盖。

### 2. 孤立引用

文件链接到不存在的文件，包括损坏的 `[[link]]` 或 Markdown 链接。

**检测流程：**
1. 列出知识库全部文件。
2. 提取每个文件里的内部链接。
3. 检查每个链接目标是否存在。
4. 报告损坏链接、来源文件路径和行号。

**处理方式：** 删除死链，或在内容可从 git 历史恢复时重建缺失文件。

### 3. 过期内容

文件包含明确日期标记，例如“Last verified: 2025-01-15”“更新时间”，且明显太旧；或者主题已经演进但文件长期未更新。

**检测流程：**
1. 搜索日期标记：`Last verified`、`Last updated`、`截止日期`、`更新时间`。
2. 标出日期超过 90 天的文件。
3. 结合 `mindos file history <path>`，检查 6 个月以上未修改但主题仍活跃的文件。

**处理方式：** 列出候选文件，让用户判断：仍准确、需要更新，还是归档。

### 4. 重复内容

两个文件覆盖同一主题且内容高度重叠，但没有互相引用，也没有明确主次关系。

**检测流程：**
1. 从多个角度搜索同一主题。
2. 如果两个文件在同一查询下都排名靠前，阅读两者。
3. 比较它们是否覆盖同一问题，是否一个是另一个的超集。
4. 用简短摘要标出疑似重复点。

**处理方式：** 合并到一个权威文件。另一个文件改成重定向或索引链接。不要未经确认直接删除。

### 5. 孤立文件

没有其他文件引用的内容，可能很难被再次发现。

**检测流程：**
1. 对每个文件运行 `mindos file backlinks <path>`。
2. 零 backlinks 且所在目录没有 README 索引的文件，是孤立候选。
3. 排除治理文件，例如 `INSTRUCTION.md`、`README.md` 和根目录约定文件。

**处理方式：** 建议从相关父文档或 README 添加链接。

### 6. 结构问题

- 文件放错目录，内容和目录主题不匹配。
- Inbox 文件停留超过 7 天。
- 超过 3 个文件的目录缺少 README。
- 同一目录命名规则不一致。

**检测流程：**
1. Bootstrap 知识库树。
2. 检查每个目录是否有 README，并抽样阅读文件确认主题一致性。
3. 检查 Inbox 中超过 7 天的内容。
4. 抽查目录内命名模式。

## 健康报告格式

用结构化报告呈现结果：

```markdown
# Knowledge Health Report — {date}

## Summary
- Contradictions found: N
- Broken links: N
- Stale files (>90 days): N
- Duplicates suspected: N
- Orphan files: N
- Structural issues: N
- **Overall health: {Good / Needs Attention / Critical}**

## Contradictions
1. `file-a.md` vs `file-b.md` — {description}

## Broken Links
1. `source.md` line N → `missing-target.md` (not found)

## Stale Content
1. `old-file.md` — Last updated: {date}, {N} days ago

## Recommended Actions
1. {Highest priority fix}
2. ...
```

## 范围控制

- **快速检查**：用户说“check health”或“快速检查”时，只跑 1-3 项：矛盾、孤立引用、过期内容。
- **全面审计**：用户说“full audit”或“全面审计”时，跑全部 6 项。
- **定向检查**：用户指定主题或目录时，只检查该范围。

大知识库做全面审计前，先和用户确认范围。
