## Workflow Pattern Example\n\n### Before\n\n用户说:`客服文档中商品相关有哪些,排除审核治理后做成 LLM Wiki,再能在 Obsidian 里看图。`\n\n常见失败方式:\n\n| 环节 | 失败表现 | 后果 |\n|---|---|---|\n| 子集筛选 | 只按标题关键词筛,没记录保留/排除清单 | 后续无法解释为什么是 19 篇而不是 45 篇 |\n| Wiki 生成 | 只复制 `output/` | article 里的 raw source 链接断掉 |\n| 图谱构建 | 扫 raw 全文 | 远端词、客服话术、模板词把图连得过密 |\n| 交付验收 | 只说文件已生成 | 用户打开 Obsidian 后才发现 missing link 或噪音节点 |\n\n### After\n\n1. 先锁定输入口径:`人工客服top500商品相关文档_2026-05-09_v1.csv` 中 `口径=直接相关` 的 45 篇。\n2. 用商品参考分类和治理审核词双重排除:输出保留清单、排除清单、排除原因,得到 19 篇保留、26 篇排除。\n3. 复用已有 570 篇 LLM Wiki 的 clean index 和文章页结构,只新增目标子集。\n4. 打包 Obsidian vault 时复制 `articles/`、`raw/`、`domains/`、`categories/`、`llms.txt`、`llms-full.txt`,并重写 raw source 相对链接。\n5. 跑 `validate_vault_links.py`,要求 `missing_links=0`、raw source 覆盖率 100%。\n6. 生成核心名词图谱时只看标题/分类/简介/提纲/摘录,停用 `您好`、`老板`、`话术`、`同学`、`文档` 等客服模板词。\n7. 最终交付 README、SUMMARY、zip、vault 路径和图谱入口。\n\n### Acceptance Checklist\n\n| 检查项 | 成功信号 |\n|---|---|\n| 范围口径 | SUMMARY 写清输入 45、保留 19、排除 26 |\n| provenance | 每个 article 都有 `knowledge_id` 和 raw source 链接 |\n| 自包含 vault | 离开原工程目录后 raw source 链接仍可打开 |\n| 图谱质量 | 核心节点偏商品主题,客服模板词不进入 Top 节点 |\n| 可复跑 | 日期、版本、输入文件、排除桶可通过参数传入 |