新增、移动、重命名、拆分或删除 Markdown 时,在同一修改中:
- 更新当前目录
_index.md。 - 创建或删除子目录时,更新上一层
_index.md。 - 新增、删除或重命名
general/一级主题时,同步general/_index.md、CLAUDE.md和README.md任务地图。 - 修复所有相对链接和 anchor。
- 移动错题时保持“编号”不变,只更新归属、路径和索引。
- 删除被新页面替代的重复正文,不留兼容副本。
- 确认本次改动没有带入机器信息、凭据、用户绝对路径或临时产物。
python tools/check_knowledge_tree.py
python tools/check_wiki_lint.py如果修改准备提交,还要查当前完整 diff 和未跟踪文件,不只看 HEAD。以真实 target base 为准,不硬编码 remote 或默认分支。
tools/check_knowledge_tree.py 负责容易明确判断的事:
- 正式知识目录有
_index.md; - 当前有效页面在最近索引中恰好有一个真实 Markdown 链接;
- 子目录的
_index.md在上一层索引中恰好有一个真实 Markdown 链接; - 相对链接指向存在的文件;
- 文件和目录大小没超过 拆分阈值;
- 错题文件名、字段、状态、编号和索引完整;
local/没有被 Git 跟踪;- 正式页面没有明显凭据、私人地址、用户路径或已禁止的危险命令。
tools/check_wiki_lint.py 额外负责:
- 沉淀层 frontmatter、类型和标签符合
SCHEMA.md; - adapter briefing 只使用允许的字段,且不能把
incidents/history/results原始证据层 变成默认加载内容。
- 两篇文章是不是重复;
- 错题最终属于哪个 owner;
- 大文件应该按哪些主题拆;
- 仓库专属页是否复制了太多通用内容;
- 规则是否真的会改变下次行为。
工具不会生成目录、自动移动页面、静默决定 owner,或只因行数到线就机械切文件。
- 新的跨仓库经验只写
general/。 - 新的仓库、代码模块和模型知识只写
repos/。 - 稳定教训先写最近 owner 的规则,复杂事故证据才可选写错题。
- 当前机器事实只写 ignored
local/。 - 不建兼容副本或第二套写入路径;历史位置通过 Git history 查询。
- 不熟悉框架的人只看根入口和
_index.md就能找到需要的一篇规范。 - 日常落盘不再需要读整本贡献手册。
- 根
CONTRIBUTING.md不超过 100 个非空行或 8 KiB。 - 工作主题和代码模块并列,不形成
dev/frontend/backend这类套娃。 - 复盘已经更新最近 owner 的可执行规则,确实需要的错题只有一份正文。
- 超过阈值的文件和目录已按主题整理,或有明确的不拆原因和复核日期。
- 每个当前有效页面可从最近索引找到,所有链接有效。
- 第三方只需建目录、写 Markdown、更新上层索引并运行检查,不需要额外配置系统。
local/没有被 Git 跟踪,根CLAUDE.md和CONTRIBUTING.md仍然是短入口。