关于 wiki-synthesize
wiki-synthesize 是用于发现并补充 Obsidian wiki 跨主题综合内容的技能,面向维护多页面知识库的用户。它根据页面共同链接识别尚未综合的概念组合,并创建相互引用的综合页面。
主要功能
- 01扫描页面链接、标签与类别
- 02计算概念和实体的共同出现情况
- 03筛除已有综合页面覆盖的组合
- 04评分并排序综合候选主题
- 05创建综合页面并添加双向链接
适用场景
- 01发现多个页面反复涉及但尚未综合的主题
- 02连接不同类别中的相关概念
- 03为知识库中的跨主题结论建立页面
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ ar9av/ obsidian-wiki --skill wiki-synthesize安装后在 Claude Code 中输入/wiki-synthesize确认已加载。
详细介绍
Wiki 综合梳理 — 一流的综合发现
你正在扫描 Wiki,寻找在许多页面中共同出现、却没有专门综合页面将它们联系起来的概念。你的任务是找出这些空缺,并通过跨主题综合页面填补其中最有价值的空缺。
开始之前
写作规范: 在起草或改写自然语言 Markdown 前,请阅读并遵循 llm-wiki/SKILL.md 中的 Writing Profile Resolution 部分。框架架构、来源信息、安全和操作特定要求优先。
WRITING.md 中的偏好仅适用于新起草或改写的自然语言 Markdown;请保留源内容和结构化记录。
- 解析配置 — 遵循
llm-wiki/SKILL.md中的 Config Resolution Protocol(内联@name覆盖 → 从 CWD 向上查找.env→ 全局配置 → 提示设置)。这会提供OBSIDIAN_VAULT_PATH和OBSIDIAN_LINK_FORMAT(默认值:wikilink)。 - 阅读
index.md,获取完整的页面清单。 - 如果
hot.md存在,请阅读它 — 其中展示近期活动和活跃讨论线索,可能已经指出了综合梳理的机会。 - 阅读
_meta/taxonomy.md,了解标签词汇表。
在综合页面中编写内部链接时,请根据 OBSIDIAN_LINK_FORMAT 的值,遵循 llm-wiki/SKILL.md 中的链接格式(Link Format 部分)。
第 1 步:构建共现图谱
扫描库中所有非特殊页面(跳过 index.md、log.md、hot.md、_insights.md、_meta/*、_archives/*、_raw/*)。
对于每个页面,收集:
- 页面包含的所有
[[wikilinks]](出链) - 其
tagsfrontmatter - 其
categoryfrontmatter
构建共现矩阵:对于每对概念/实体页面(A、B),统计有多少其他页面同时链接到 A 和 B。这就是它们的共现分数。
无需做到面面俱到 — 重点关注共现分数最高的 20–30 对。使用 Grep 高效查找反向链接:
rg -l --glob '*.md' "\[\[ConceptA\]\]" "$OBSIDIAN_VAULT_PATH"
对排名靠前的候选概念执行此操作,并求取结果集的交集。
第 2 步:筛除已有综合页面的组合
检查 synthesis/ 目录中是否已有页面。对于每个已有综合页面:
- 阅读其
sourcesfrontmatter 或正文中的[[wikilinks]] - 将其中的概念组合标记为已覆盖
从候选列表中移除已覆盖的组合。
第 3 步:为候选项评分并排序
为每个剩余的候选概念组合(或 3 个及以上概念的集群)分配综合价值分数:
| 信号 | 分数 |
|---|---|
| 共现次数 ≥ 5 | +3 |
| 共现次数为 3–4 | +2 |
| 共现次数为 1–2 | +1 |
| 概念属于不同类别(跨领域) | +2 |
| 概念共享标签,但位于不同文件夹 | +1 |
一个或两个概念在 _insights.md 中被标记为枢纽 | +1 |
| 综合梳理可以解决已标记的矛盾 | +2 |
选出排名前 5 的候选项。如果用户指定了主题(例如“综合梳理所有关于可观测性的内容”),请先将候选项筛选到该领域。
第 4 步:起草综合页面
为每个排名靠前的候选项,使用此模板在 synthesis/ 中创建页面:
---
title: <Concept A> × <Concept B>
category: synthesis
tags: [<shared tags>, <domain tags>]
sources: [<all pages that link to both>]
created: TIMESTAMP
updated: TIMESTAMP
summary: "Cross-cutting synthesis of how <A> and <B> interact, with implications for <domain>."
provenance:
extracted: 0.2
inferred: 0.7
ambiguous: 0.1
base_confidence: <min(base_confidence of all input pages)>
lifecycle: draft
lifecycle_changed: TIMESTAMP_DATE
---
# <Concept A> × <Concept B>
## The Connection
*What makes these two concepts worth synthesizing together — the non-obvious relationship that pages about each individually don't capture.*
## Where They Co-occur
*The pages and contexts where both appear. What situations bring them together.*
## Cross-cutting Insight
*The conclusion that only becomes visible when you look at both together. This is the point of the page — the thing you couldn't see from either concept page alone.*
## Tensions and Trade-offs
*Where the two concepts pull in opposite directions. Unresolved contradictions. Cases where applying one undermines the other.*
## Strongest Objection
*The best skeptical reading of THIS page's cross-cutting insight — the case a sharp critic would make that the connection is spurious, overstated, or an artifact of how the sources were written. Follow it with a testable search query (e.g. `> test: does X actually hold when Y is controlled for?`), never an invented citation. A synthesis that can't name its own strongest objection hasn't earned its conclusion.*
## Open Questions
*What this synthesis surfaces that the wiki doesn't yet have an answer for. Good candidates for future research.*
## Related
- [[<Concept A>]]
- [[<Concept B>]]
- [[<other related pages>]]
综合页面大多属于 ^[inferred]。 你正在跨来源建立联系 — 这就是综合梳理的定义。对跨主题结论使用 ^[inferred];对来源间存在分歧的内容使用 ^[ambiguous]。
标题格式为 A × B — 这向读者表明它是一个综合页面,而不是单独介绍某个概念的页面。
第 5 步:从来源页面添加反向链接
对于你创建的每个综合页面,请从它所综合的两个(或更多)概念页面添加一个链接。在概念页面的 ## Related 部分中添加:
- [[Concept A × Concept B]] — synthesis
如果概念页面没有 ## Related 部分,请在页面底部添加。
第 6 步:报告未采纳的综合机会
为排名前 5 的候选项创建页面后,在输出中列出接下来的 10 个候选项——这些候选项得分较高,但你没有为其编写页面。这样用户就能了解知识库认为哪些内容值得探索,而不必在一次运行中强制完成所有综合。
格式:
Skipped (consider next time):
- [[Caching]] × [[Consistency]] — co-occurs in 4 pages, cross-domain
- [[Testing]] × [[Observability]] — co-occurs in 3 pages, shares tags
...
第 7 步:更新特殊文件
一次加锁调用即可更新索引、日志和热缓存:
obsidian-wiki memory sync WIKI_SYNTHESIZE \
pages_scanned=<N> synthesis_created=<M> candidates_skipped=<K> \
--takeaways "Synthesized 5 cross-cutting pages: Caching × Consistency, Testing × Observability, …"
综合过程中发现的待解问题属于待办事项,而不是结论——请逐一记录:
obsidian-wiki memory todo add "<question>" --origin synthesis/<page>.md。
切勿手动编辑 index.md、log.md 或 hot.md——该命令会获取锁,防止并行写入者丢失你的更新。
完整流程请参阅 .skills/llm-wiki/references/MEMORY.md。
质量检查清单
- 每个综合页面都有
summary:字段(≤200 个字符) - 每个综合页面都链接回其源概念
- 源概念页面都链接到相应的综合页面
- 综合页面不能只是重述源页面上已有的内容——必须提供跨主题洞见
- 每个综合页面都列出最有力的反对意见,并附上可验证的搜索查询(而非虚构来源)
- 已更新
index.md和log.md - 已更新
hot.md
提示
- 只总结来源内容的综合页面毫无用处。 价值在于建立联系——即任何一个源页面都没有明确表达的内容。
- 不要为了综合而综合。 如果两个概念只是经常同时出现,却没有真正的概念关联,就跳过它们。
- 三方综合很有力,但很少见。 只有当三个概念构成真正相互影响的三角关系时才创建,而不是因为它们都出现在同一个项目页面中。
- 先检查
_insights.md。 wiki-status 技能可能已经在那里标记了综合候选项——从这些候选项开始,再从头运行共现扫描。
写入知识库后刷新 QMD
QMD 是搜索索引,不是事实来源。如果 $QMD_WIKI_COLLECTION 为空或未设置,请跳过此步骤。只有在此技能写入或改写知识库 Markdown 后才运行。如果 QMD 刷新失败,不要回滚知识库更改;请单独报告 QMD 状态。
如果已设置 $QMD_CLI,请使用它;否则使用 qmd。
${QMD_CLI:-qmd} update
如果输出提示需要向量或嵌入可能已过时,请运行:
${QMD_CLI:-qmd} embed
使用以下任一方式验证集合:
${QMD_CLI:-qmd} ls "$QMD_WIKI_COLLECTION"
或者,在已知特定页面路径时:
${QMD_CLI:-qmd} get "qmd://$QMD_WIKI_COLLECTION/<page>.md" -l 5
记录以下状态之一:
QMD refreshed: update + embed + verifiedQMD refreshed: update only + verifiedQMD skipped: QMD_WIKI_COLLECTION unsetQMD skipped: qmd CLI unavailableQMD failed: <short error summary>