Obsidian Wiki Manager

Prompts

Manage an Obsidian-based personal knowledge base (wiki) with strict ingestion, query, lint, reflect, merge, and system maintenance protocols. Trigger on ingest/摄入/query/lint/检查/reflect/综合分析/merge/去重/add question operations.

Install

openclaw skills install obsidian-wiki-manager

Obsidian Wiki Manager

个人知识库管理系统,遵循 Raw → Wiki → Outputs 三层架构。

架构概览

目录说明权限
Rawraw/原始素材(文章、剪藏、图片、PDF、笔记、个人写作)只读,由人类拥有
Wikiwiki/结构化知识(来源页、概念卡片、实体页、综合分析)完全读写
Outputswiki/outputs/输出产物(QUERY 答案、LINT 报告、Gap 报告等)写入,graph-excluded

核心原则

  • LLM 完全拥有 wiki/ 目录的读取和写入权限
  • raw/ 目录由人类拥有,LLM 只能读取,绝不修改
  • 系统文件(index/log/overview/QUESTIONS)不参与 Obsidian 图谱

配置要求

vault_root: "D:\\obsidian-job\\job"
qmd_cmd: "D:\\obsidian-job\\job\\qmd.bat"  # qmd 封装脚本

一、INGEST(摄入)操作规范

触发词ingest摄入处理这个

来源类型判断

  1. frontmatter 含 type: personal-writing → 走「个人写作」流程
  2. 文件路径包含 raw/personal/ → 走「个人写作」流程
  3. frontmatter 含 type: pdf-reference → 走「PDF 参考」流程
  4. 其他 → 走「外部来源」标准流程

URL 直接输入处理规则

  1. 获取内容:使用 web-content-fetcher 技能或 win_web_read 获取页面完整内容,转换为 Markdown
  2. 确定文件名:根据页面标题或 URL 路径生成文件名,保存到 raw/clippings/ 目录
  3. 确定作者和日期:从页面元数据中提取 author 和 publish_date,无法提取则标注「来源未知」
  4. 保存后继续标准流程:对保存的文件执行完整 INGEST 流程
  5. source_url 记录:在 source 页中同时保留 raw_filesource_url
  6. 去重检查:如果已有相同或高度相似来源,更新已有 source 页,不创建重复

缺少 frontmatter 的处理规则

  • 从文件第一个 # 标题提取 title;若无标题则从文件名推断
  • source 字段留空,在 source 页中标注「来源未知」
  • date 使用文件系统修改时间
  • 不中断 INGEST,但在 log.md 记录警告

外部来源标准流程(12 步)

Step 1:读取目标原始来源

Step 2:计算 SHA-256 哈希(Python hashlib

Step 3:与用户确认核心要点

Step 4:生成 slug(小写英文,用连字符)

Step 5:创建 wiki/sources/<slug>.md,frontmatter 写入:

  • raw_file:相对路径
  • raw_sha256:SHA-256 哈希值
  • last_verified:摄入日期
  • canonical_source:翻译/转述来源同源标记
  • 来源超过 2 年前:标注 possibly_outdated: true

Step 5.5 — canonical_source 译文同源检测

  1. 遍历已有 source 页的 canonical_source 字段
  2. 若指向同一原始来源:标记为同源,不创建新概念/实体
  3. 在 Contradictions 节记录
  4. 同源来源仅计为 1 个来源

Step 6 — 概念名称对齐检查

  1. 映射为英文小写连字符 slug
  2. 查已有 concept 文件
  3. 检查所有 concept 页的 aliases 字段
  4. 匹配则更新,不创建新页
  5. 不匹配才创建新页

Step 7:为每个概念:更新或创建 concept 页

  • Evolution Log 追加规则:「强化」/「修正」/「新增分歧」

Step 8:为每个实体:同上逻辑

Step 9:更新 wiki/index.md

Step 10:检查 wiki/QUESTIONS.md 匹配

Step 11:追加 wiki/log.md

Step 12(索引同步):执行 qmd update + qmd embed,报错则跳过记录

个人写作流程

  • 不生成 Summary 节,跳过客观摘要
  • 核心论点写入 ## My Position 节(标注「个人认知」)
  • 不参与 confidence 的 source_count 计数
  • Evolution Log 记录:「YYYY-MM-DD 个人写作 [[slug]] 确立了对此概念的明确立场」

二、QUERY(查询)操作规范

触发词:直接提问,或「根据我的知识库」

Step Q1:执行 qmd search "<query>" -n 5 --json(本机环境 qmd query 的 LLM 扩充会超时,故用 search 替代)

  • 若报错则降级读取 wiki/index.md

Step Q2:逐一完整读取 top 5 文件

Step Q3:合成答案

  • 每个核心结论必须溯源到具体 wiki/sources/<slug>.md
  • 注明各来源 confidence 级别
  • 来源矛盾时显式标注分歧

Step Q4:若答案有复用价值,写入 wiki/outputs/

输出格式

问题类型输出格式
普通问题Markdown 正文
比较类Markdown 表格
演示类Marp 幻灯片
趋势类Python matplotlib 代码块
清单类结构化 bullet list

三、LINT(检查)操作规范

触发词lint检查健康检查

  1. 运行 scripts/lint.py(9 项检查)
  2. 报告写入 wiki/outputs/lint-YYYY-MM-DD.md
  3. 执行 qmd status,对比索引;落后则执行 qmd update
  4. 展示摘要并询问是否修复

四、REFLECT(反射)操作规范

触发词reflect综合分析发现规律

Stage 0 — 反向检验:主动搜索反驳证据,无则标注「⚠ 回音室风险」

Stage 1 — 模式扫描

  • qmd multi-get "wiki/concepts/*.md" -l 40
  • qmd multi-get "wiki/entities/*.md" -l 40
  • qmd multi-get "wiki/synthesis/*.md" -l 60

Stage 2 — 深度合成:写入 wiki/synthesis/<topic>-synthesis.md

Stage 3 — Gap Analysis

  • source_count=1 且创建 >30 天的孤立概念
  • 多处提及但无独立页面的概念/实体
  • 输出到 wiki/outputs/gap-report-YYYY-MM-DD.md

五、MERGE(合并)操作规范

触发词merge去重

同语言合并

  1. 与用户确认(绝不自动合并)
  2. 主 slug 保留,更新 wikilinks
  3. 被合并文件替换为重定向文件

跨语言合并

  1. 主 slug 保留英文
  2. aliases 取并集
  3. 内容按并集+去重合并
  4. 旧 slug 保留为 redirect 文件

六、ADD-QUESTION 操作规范

触发词我想搞清楚add question记录一个问题

  1. 将问题规范化
  2. 追加到 wiki/QUESTIONS.md(checkbox 格式)
  3. 追加 wiki/log.md

七、系统规则

Wikilink 格式铁律

所有 wikilink 目标必须使用英文小写连字符格式

✅ 正确❌ 错误
[[value-investing]][[价值投资]]
[[attention-mechanism]][[ValueInvesting]]

中文名称写入 concept 页 aliases 字段。

禁止使用 wikilinks 的场景

  • 不得引用系统文件:[[log]] [[index]] [[overview]] [[QUESTIONS]]
  • 不得引用 lint 报告:[[outputs/lint-xxx]]
  • 不得以操作名称作为 wikilink:[[ingest]] [[query]]
  • log.md 使用纯文本路径

Wiki 语言规范

  • Wiki 层统一中文写作
  • concept 页 title 使用中文主名称
  • slug(文件名)统一英文小写连字符
  • aliases 覆盖中英文所有叫法

Confidence 更新规则

来源数Confidence处理
1 个low自动设置
3+ 个medium自动设置
5+ 个无矛盾候选 high需用户确认

个人写作不参与 count。

Source Integrity Rules

  • re-ingest 规则:lint 报告 ⚠ SOURCE MODIFIED 时重新摄入
  • 来源 >2 年标注 possibly_outdated: true
  • 矛盾来源必须在 Contradictions 节显式记录

系统文件隔离规则

以下文件 frontmatter 含 graph-excluded: true

  • wiki/log.mdwiki/index.mdwiki/overview.mdwiki/QUESTIONS.md
  • wiki/outputs/ 下所有文件

文档维护规则

当此 skill 规则更新时,同步更新 USER_GUIDE.md 对应章节。