mcpField
W
wiki-synthesize

wiki-synthesize

github.com/ar9av生产力3.6k2.7k 次安装1 天前更新
代码仓库

关于 wiki-synthesize

wiki-synthesize 是用于发现并补充 Obsidian wiki 跨主题综合内容的技能,面向维护多页面知识库的用户。它根据页面共同链接识别尚未综合的概念组合,并创建相互引用的综合页面。

主要功能

  1. 01扫描页面链接、标签与类别
  2. 02计算概念和实体的共同出现情况
  3. 03筛除已有综合页面覆盖的组合
  4. 04评分并排序综合候选主题
  5. 05创建综合页面并添加双向链接

适用场景

  1. 01发现多个页面反复涉及但尚未综合的主题
  2. 02连接不同类别中的相关概念
  3. 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;请保留源内容和结构化记录。

  1. 解析配置 — 遵循 llm-wiki/SKILL.md 中的 Config Resolution Protocol(内联 @name 覆盖 → 从 CWD 向上查找 .env → 全局配置 → 提示设置)。这会提供 OBSIDIAN_VAULT_PATH 和 OBSIDIAN_LINK_FORMAT(默认值:wikilink)。
  2. 阅读 index.md,获取完整的页面清单。
  3. 如果 hot.md 存在,请阅读它 — 其中展示近期活动和活跃讨论线索,可能已经指出了综合梳理的机会。
  4. 阅读 _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]](出链)
  • 其 tags frontmatter
  • 其 category frontmatter

构建共现矩阵:对于每对概念/实体页面(A、B),统计有多少其他页面同时链接到 A 和 B。这就是它们的共现分数。

无需做到面面俱到 — 重点关注共现分数最高的 20–30 对。使用 Grep 高效查找反向链接:

rg -l --glob '*.md' "\[\[ConceptA\]\]" "$OBSIDIAN_VAULT_PATH"

对排名靠前的候选概念执行此操作,并求取结果集的交集。

第 2 步:筛除已有综合页面的组合

检查 synthesis/ 目录中是否已有页面。对于每个已有综合页面:

  • 阅读其 sources frontmatter 或正文中的 [[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 + verified
  • QMD refreshed: update only + verified
  • QMD skipped: QMD_WIKI_COLLECTION unset
  • QMD skipped: qmd CLI unavailable
  • QMD failed: <short error summary>

评论

支持 Markdown