用途:处理维基中概念身份的变化。合并用于两个 slug 指向同一概念,拆分用于一个 slug 混淆了多个不同含义(同形异义或页面混入两个无关主题)。两种操作都会重写链接图,因此必须刻意、经确认并验证,绝不自动执行。
前置条件:从当前目录向上或 ~/wikis/ 查找 SCHEMA.md;找不到则提示用户先运行 wiki-init。读取它以获得 wiki 根路径和概念身份约定。
合并流程:先确定保留页与删除页(优先更具体正确、被链接更多或更完善的 slug),经用户确认;将删除页内容折入保留页,合并章节、保留全部引用并顺序重编号脚注、合并 frontmatter 的 sources、保留较早 created 并更新 updated,以 diff 展示后确认;grep wiki/pages/ 与 overview.md 中 [[loser-slug]] 并改写为 [[survivor-slug]](跳过生成的 index.md),确认后写入;删除 loser 页面并运行 python bin/generate-index.py 重新生成索引;全库 grep 确认 loser slug 零匹配,并确认保留页所有 [[slug]] 可解析;必要时更新 overview.md,并按 SCHEMA 记录操作:git wiki 提交 refactor: merge <loser-slug> into <survivor-slug> 加 Wiki-Op: merge 尾注,非 git wiki 追加到 wiki/log.md。
拆分流程:识别被混淆的不同含义,按 SCHEMA 消歧约定为每个含义提出限定 slug(如 transformer-ml 与 transformer-electrical),决定原裸 slug 是退役还是保留为主含义,经用户确认;为每个含义创建新页面,frontmatter 完整且 sources 只列支持该含义的来源,脚注顺序重编号;逐条按上下文判断入站链接应指向哪个含义并改写,不可整体替换;退役则删除原页面,保留则裁剪为主含义并更新 updated,再运行 python bin/generate-index.py;全库 grep 确认退役 slug 零匹配并确认新页面链接可解析;必要时更新 overview.md,git wiki 提交 refactor: split <original-slug> into <slug-a>, <slug-b> 加 Wiki-Op: split 尾注,非 git wiki 追加到 wiki/log.md。
常见错误:留下悬空链接;折叠时丢失引用;拆分时整体替换链接;未经确认就合并;跳过操作日志。