Wiki Lint and Health Check Standards
Summary
AI Agent wiki 的健康检查不是“看看文件还在不在”,而是持续验证知识库是否仍然可检索、可维护、可导航、可扩展。 lint 的目标是尽早发现知识孤岛、结构漂移、标签失控、索引失真和陈旧内容。
Canonical goal
一次合格的 wiki lint / 健康检查,至少要回答这几个问题:
- 页面之间还能不能连起来
- 索引还能不能正确导航
- 页面结构是否仍符合规范
- 标签是否还受控
- 页面是否已经陈旧或过大
- 日志是否还能继续维护
Lint scope
默认检查范围包括:
index.mdlog.mdSCHEMA.mdentities/concepts/comparisons/queries/operations/
raw/ 不套用正式页写作模板,但仍受链接、公开边界和原始快照 hash 检查约束。结构通过不代表事实正确或对两类读者都易用。
Core checks
1. Broken wikilinks
检查 [[wikilinks]] 是否指向不存在的页面。
目标:
- 避免页面可读但不可跳转
- 防止知识网络断裂
2. Orphan pages
检查哪些正式页面没有任何 inbound links,以及哪些页面只有主索引入链。
目标:
- 找出知识孤岛
- 避免页面存在但永远检索不到
- 让主题页进入知识网络,而不只是目录列表
说明:
- 新页面短期内可能是“暂时孤立”
- 只有
index.md入链的页面属于语义孤岛,应补充主题相关入链 - 长期孤立页应被补链、合并或归档
3. Index completeness
检查所有正式页面是否都列在 [[index]] 中。
目标:
- 保证目录仍是有效导航入口
- 防止页面实际存在但索引缺失
4. Frontmatter and summary validation
检查页面是否具备完整 frontmatter:
titlecreatedupdatedtypetagssourcesstatus
同时检查正式页存在 ## Summary,并验证 type 与 status 使用 SCHEMA.md 声明的枚举;日期化状态应改用 updated、review_by 或正文说明。
目标:
- 保持页面结构统一
- 保证后续筛选、治理和自动化处理可行
5. Tag audit
检查页面 tags 是否都来自 SCHEMA.md 的 taxonomy。
目标:
- 防止 tag 漫游
- 防止同义标签并存造成检索分裂
6. Page size triage
页面长度只作为人工分诊信号,不设机械行数阈值。
目标:
- 防止一个页面变成无法维护的大杂烩
- 只有页面混合多个职责、检索成本明显上升时才拆分
7. Staleness check
检查页面是否长时间未更新,且主题已被更晚资料覆盖。
目标:
- 发现看似存在、实则过期的知识
- 提醒进行增量维护,而不是继续引用旧结论
8. Contradiction check
检查相近主题页面之间是否存在互相冲突的结论。
目标:
- 防止知识库表面整齐、内部互相打架
- 要求显式记录冲突,而不是静默覆盖
9. Log health
检查 [[log]] 是否保持精简、日期是否按降序排列、历史条目是否按年度归档,以及普通摄取是否误生成大量 review sidecar。
目标:
- 保持维护历史可追踪
- 防止日志无限增长后失去可读性
10. Schema drift
检查页面实际写法是否偏离 SCHEMA.md 与 [[hermes-wiki-page-writing-standards]]。
目标:
- 防止规范写在文档里,但页面实际早已失控
11. Agent-readable metadata and relations
对采用机器可读增强的页面做只读检查:
description存在时应短、具体,不能替代## Summaryaliases不应与 tag taxonomy 或文件名规范冲突## Relations中的 wikilinks 应可解析Relations不应替代sources或混淆事实来源与推断关系
目标:
- 让 Agent 可消费的结构增强保持轻量、可验证、可回滚
Deterministic freshness checks
以下日期边界中的 today 统一指 UTC 日历日。
volatility可选,取low | medium | high,表达现实变化速度,不是质量评分。缺失不代表 low:当前外部事实或适用性未知按 YELLOW,明确稳定方法或时间范围内的历史知识可为 GREEN。verified_at可选,必须为合法的YYYY-MM-DD且不晚于 UTC 当日;只在实际核对所有页面级易变结论后填写。普通编辑只更新updated。只验证局部时使用局部标记,不刷新页面级验证日期。review_by可用于任何外部变化可能导致 Agent 错误行动的知识。verified_at <= today <= review_by才在日期窗口内;到期当天仍有效,次日起需复核。无法验证时不得删除到期字段来消除告警。status仅表达生命周期,stable不等于当前可信。实时核验要求优先于未到期日期;运行时资格见 hermes-retrieval-priority-and-answer-path。- 校验:正式知识页(formal page)中的非法
volatility、非法/未来verified_at、非法review_by为 P1;到期review_by、high 页有verified_at却无review_by、verified_at > updated为 P2。缺省字段兼容历史页面,不批量迁移。
以上页面级日期/枚举检查继续生效。脚本还逐个检查局部 [!volatile] block 的支持格式、日期格式与顺序、未来验证日期、到期提醒和 block source ⊆ page sources;代码示例忽略。局部通过不提升整页资格,到期只产生该 claim 范围的 P2 复核提醒。语义冲突和当前适用性仍由检索 Agent 判断,不设固定 stale 天数。关系目标缺失继续归现有 broken_wikilink P0。
Severity levels
建议把 lint 结果按严重性分级:
P0
必须立即修:
- broken wikilinks
- 丢失 index 主入口
- frontmatter 严重缺失
P1
应尽快修:
- 未进入主索引的非
closed正式页面 - tag taxonomy 失控
- 明显结构漂移
- 重要页面陈旧
- 高价值页面的关系块断链或语义混淆
P2
常规维护:
- 只有主索引入链的语义孤岛页
- 经人工确认需要拆分的多职责页面
- 日志接近轮转阈值
- 页面可读性一般但仍可用
- 可选 metadata 缺失但未影响检索
Recommended lint workflow
- 先读
SCHEMA.md - 读
[[index]] - 读最近的
[[log]] - 扫描所有正式知识页
- 输出 broken links / orphan / missing index / frontmatter / tag / stale / size / contradictions / optional metadata and relations
- 按严重性排序
- 明确给出每项对应文件路径
- 若允许修复,再按优先级修
- 记录 lint 结果到
[[log]]
Human and Agent usability review
在结构检查后抽查真实任务:人类能否从索引找到解释、操作与参考入口,第一屏能否理解范围和结论;Agent 能否凭标题/description 找到同一页、追到来源并识别权限和产品边界。检查 Wiki 是否误把操作指南一律排除、是否把产品特有工具当通用能力、是否只有机器元数据而缺少可读解释。此项是人工语义审查,现有脚本不自动证明通过。
Health check frequency
建议频率:
- 日常增量维护后:轻量 lint
- 每新增一批页面后:结构 lint
- 每周或每月:全量健康检查
- 在大规模重构前后:完整 lint + 对比
Pass criteria
一个健康的 AI Agent wiki,至少应满足:
- 没有 broken wikilinks
- 没有长期 orphan pages
- 所有非历史关闭页面都进入
[[index]] - frontmatter 完整
- tags 受控
- 页面可扫描
- 日志持续可追踪
Anti-patterns
- 只看文件存在就算健康
- 只检查链接,不检查结构和标签
- lint 结果不写回
[[log]] - 发现问题但长期不处理
- 每次都全量大修,缺少日常轻量维护
Output format
一份好的 lint 报告至少包含:
- 检查范围
- 问题统计
- 按严重性分组的问题列表
- 每个问题的具体文件路径
- 建议动作
- 是否需要立即修复
Relationship to other rules
这页定义“怎么检查 wiki 是否健康”。
- 页面怎么写,见
[[hermes-wiki-page-writing-standards]] - 内容怎么入库,见
[[wiki-ingestion-workflow]] - 回答时怎么检索,见
[[hermes-retrieval-priority-and-answer-path]] - 整体架构,见
[[hermes-knowledge-architecture]]
Relations
- refines: hermes-wiki-page-writing-standards
- depends_on: hermes-knowledge-architecture
- depends_on: wiki-ingestion-workflow