Operate an Obsidian knowledge base as a persistent LLM wiki using a raw-to-source-to-wiki pattern. Use when Codex or another agent needs to ingest raw notes,...
Memory
Obsidian Wiki Manager
Try itManage an Obsidian-based personal knowledge base (wiki) with strict ingestion, query, lint, reflect, merge, and system maintenance protocols. Trigger on inge...
What it does
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.
The skill document
Obsidian Wiki Manager
个人知识库管理系统,遵循 Raw → Wiki → Outputs 三层架构。
架构概览
| 层 | 目录 | 说明 | 权限 |
|---|---|---|---|
| Raw | raw/ | 原始素材(文章、剪藏、图片、PDF、笔记、个人写作) | 只读,由人类拥有 |
| Wiki | wiki/ | 结构化知识(来源页、概念卡片、实体页、综合分析) | 完全读写 |
| Outputs | wiki/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、摄入、处理这个
来源类型判断
- frontmatter 含
type: personal-writing→ 走「个人写作」流程 - 文件路径包含
raw/personal/→ 走「个人写作」流程 - frontmatter 含
type: pdf-reference→ 走「PDF 参考」流程 - 其他 → 走「外部来源」标准流程
URL 直接输入处理规则
- 获取内容:使用 web-content-fetcher 技能或
win_web_read获取页面完整内容,转换为 Markdown - 确定文件名:根据页面标题或 URL 路径生成文件名,保存到
raw/clippings/目录 - 确定作者和日期:从页面元数据中提取 author 和 publish_date,无法提取则标注「来源未知」
- 保存后继续标准流程:对保存的文件执行完整 INGEST 流程
- source_url 记录:在 source 页中同时保留
raw_file和source_url - 去重检查:如果已有相同或高度相似来源,更新已有 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/.md,frontmatter 写入:
raw_file:相对路径raw_sha256:SHA-256 哈希值last_verified:摄入日期canonical_source:翻译/转述来源同源标记- 来源超过 2 年前:标注
possibly_outdated: true
Step 5.5 — canonical_source 译文同源检测:
- 遍历已有 source 页的
canonical_source字段 - 若指向同一原始来源:标记为同源,不创建新概念/实体
- 在 Contradictions 节记录
- 同源来源仅计为 1 个来源
Step 6 — 概念名称对齐检查:
- 映射为英文小写连字符 slug
- 查已有 concept 文件
- 检查所有 concept 页的
aliases字段 - 匹配则更新,不创建新页
- 不匹配才创建新页
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 "" -n 5 --json(本机环境 qmd query 的 LLM 扩充会超时,故用 search 替代)
- 若报错则降级读取
wiki/index.md
Step Q2:逐一完整读取 top 5 文件
Step Q3:合成答案
- 每个核心结论必须溯源到具体
wiki/sources/.md - 注明各来源 confidence 级别
- 来源矛盾时显式标注分歧
Step Q4:若答案有复用价值,写入 wiki/outputs/
输出格式
| 问题类型 | 输出格式 |
|---|---|
| 普通问题 | Markdown 正文 |
| 比较类 | Markdown 表格 |
| 演示类 | Marp 幻灯片 |
| 趋势类 | Python matplotlib 代码块 |
| 清单类 | 结构化 bullet list |
三、LINT(检查)操作规范
触发词:lint、检查、健康检查
- 运行
scripts/lint.py(9 项检查) - 报告写入
wiki/outputs/lint-YYYY-MM-DD.md - 执行
qmd status,对比索引;落后则执行qmd update - 展示摘要并询问是否修复
四、REFLECT(反射)操作规范
触发词:reflect、综合分析、发现规律
Stage 0 — 反向检验:主动搜索反驳证据,无则标注「⚠ 回音室风险」
Stage 1 — 模式扫描:
qmd multi-get "wiki/concepts/*.md" -l 40qmd multi-get "wiki/entities/*.md" -l 40qmd multi-get "wiki/synthesis/*.md" -l 60
Stage 2 — 深度合成:写入 wiki/synthesis/-synthesis.md
Stage 3 — Gap Analysis:
- source_count=1 且创建 >30 天的孤立概念
- 多处提及但无独立页面的概念/实体
- 输出到
wiki/outputs/gap-report-YYYY-MM-DD.md
五、MERGE(合并)操作规范
触发词:merge、去重
同语言合并
- 与用户确认(绝不自动合并)
- 主 slug 保留,更新 wikilinks
- 被合并文件替换为重定向文件
跨语言合并
- 主 slug 保留英文
- aliases 取并集
- 内容按并集+去重合并
- 旧 slug 保留为 redirect 文件
六、ADD-QUESTION 操作规范
触发词:我想搞清楚、add question、记录一个问题
- 将问题规范化
- 追加到
wiki/QUESTIONS.md(checkbox 格式) - 追加
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.md、wiki/index.md、wiki/overview.md、wiki/QUESTIONS.mdwiki/outputs/下所有文件
文档维护规则
当此 skill 规则更新时,同步更新 USER_GUIDE.md 对应章节。
Related skills
Build a searchable local knowledge base from an Obsidian vault's "笔记同步助手" inbox, then answer with citations, topic cards, update logs, and daily digests for...
Obsidian 知识库(vault)管理专家,基于 `obsidian-cli` 操作本地 Markdown 笔记。聚焦多库管理、 安全重构(移动/改名不断链)、附件治理、跨库搜索,让笔记系统长期保持井井有条。 核心能力: - 多库发现与切换:自动识别系统中的所有 vault,按需切换默认库 - 安全重构:`m...
A knowledge base skill containing a curated master list of Obsidian resources. Trigger this skill when the user asks for recommendations on Obsidian beginner guides, paid courses, Personal Knowledge Management (PKM) methodologies like Zettelkasten or LYT, workflows, or Dataview snippets.
将当前对话、项目资料、会议记录、技术排障、工作流经验或主题讨论整理成结构化 Obsidian 知识库笔记。适用于用户要求总结、沉淀、保存、写入或整理 Obsidian 文档,并需要 Properties、Key takeaway、摘要、结构化内容块、Key references 和文件引用。
Read, capture, search, and link notes in a local Markdown vault with approval-gated writes and attributed appends.