用途:仅针对主题生成 Markdown 叙述性读本,不处理标签或页面列表选择、历史查询输入、语音别名、HTML、PDF、幻灯片、渲染器交接或新编译知识页。
主要能力:支持三种语音(briefing、plain-language、lecturer),名称区分大小写,不支持的值会报错并列出三者,且不搜索不写入。检索先读 hot.md 与 index.md,按 frontmatter 和摘要筛选候选,再读匹配章节,必要时读整页。支持过滤模式短语(如 public only、user-facing、no internal content),跳过 visibility/internal 或 visibility/pii 页面。排除 _readouts/、_raw/、_archives/、_meta/、index.md、log.md、hot.md、_insights.md。
用法:命令 /wiki-narrate <topic> [--voice briefing|plain-language|lecturer] [--save]。topic 不能为空。默认输出 Markdown,含标题、所选语音的章节、每句事实的相邻引用(按 OBSIDIAN_LINK_FORMAT 渲染)以及 ## Coverage 页脚。先起草 claim ledger,每条含声明、支持页面链接和状态(supported fact、inferred connection、ambiguous conflict)。推断标 ^[inferred],冲突标 ^[ambiguous],不得用网络知识或模型记忆补缺。
持久化:默认仅展示;--save 时创建 _readouts/ 并写入 _readouts/<slug>.md,含 title、topic、voice、sources、created、updated frontmatter。读本为派生输出,不更新 index.md 或 .manifest.json。
日志:检索后追加 WIKI_NARRATE 事件到 log.md,命令为 obsidian-wiki memory log WIKI_NARRATE topic="<topic>" voice=<voice> result_pages=<N> mode=<normal|filtered> saved=<true|false> outcome=<success|no_match|write_failed>。成功保存后刷新热缓存:obsidian-wiki memory hot --takeaways "<line>"。
限制:无匹配页面时说明知识库缺少材料,不创建读本,记录 no_match;证据弱或冲突时只返回支持部分并标注歧义,不借助外部知识;QMD 不可用时回退到 index.md 和 rg;写入失败不得假装成功,不更新 hot.md、index.md 或 .manifest.json。