05
Link Rot · workflow

docs-link-rot

05-docs-link-rot.md
🔗
P1 source: claude-sessions created: 2026-06-13

WHAT IS THIS

定位

Markdown 文档断链巡查。它检查相对路径、锚点、旧目录名、图片、跨文档引用,重点解决重构后文档看似存在但跳转失败的问题。

TRIGGERS

触发场景
大量移动目录或重命名模块后。
文档里出现旧目录名。
Obsidian、GitHub、docs site 三种链接规则混用。
架构文档引用的 ADR、PRD 或 plan 已被删除。
发布前需要保证 docs site 不出现 404。

INPUT & OUTPUT

输入 / 产出
↘ INPUT
  • 所有 .md.mdx
  • 静态图片和附件目录。
  • docs site 路由生成规则。
  • 旧目录到新目录的 mapping,可选。
↗ OUTPUT
  • 断链报告。
  • 锚点失效报告。
  • 旧目录名映射建议。
  • 可提交的链接修复 patch。
🪜

STEPS

编排步骤
  1. 1
    收集链接
    从 Markdown AST 或稳定 parser 提取 link、image、HTML anchor。
  2. 2
    分类链接
    分为相对路径、绝对路径、URL、Obsidian wiki link、锚点、图片。
  3. 3
    验证文件存在
    相对当前文档目录解析,检查目标文件。
  4. 4
    验证锚点
    对目标 Markdown 提取 heading,生成 slug,检查 #section
  5. 5
    识别旧目录名
    用历史 mapping 或 git rename 找候选修复路径。
  6. 6
    批量修复
    对确定唯一映射的链接直接改。多候选的进入人工确认列表。
  7. 7
    跑 docs build
    如果有 docs site,跑 build 或 preview smoke。

AGENT ROLES

Agent 分工
Link Extractor
提取所有链接。
Path Verifier
验证文件存在。
Anchor Verifier
验证 heading slug。
Migration Mapper
推断旧目录到新目录。
Patch Agent
只改确定链接。

ACCEPTANCE GATE

验收 gate

FAILURE HANDLING

失败处理
多个候选路径时不自动改,输出候选。
GitHub slug 和 docs site slug 不同,按目标发布面选择规则。
Obsidian wiki link 不强行转 Markdown link,除非仓库约定要求。

TEMPLATE

报告模板
TEMPLATE
## Broken Links

| Source | Link | Problem | Suggested fix |
| --- | --- | --- | --- |

## Broken Anchors

| Source | Target | Missing anchor | Candidate |
| --- | --- | --- | --- |