Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
ar9av avatar

Wiki Synthesize

  • 2.4k installs
  • 3.1k repo stars
  • Updated August 4, 2026
  • ar9av/obsidian-wiki

wiki-synthesize finds co-occurring wiki concepts and creates synthesis/ pages with cross-cutting insights and backlinks.

About

The wiki-synthesize skill scans an Obsidian vault for concept pairs that co-occur across pages but lack a dedicated synthesis note. Resolve config via llm-wiki protocol for OBSIDIAN_VAULT_PATH and link format, then read index.md, hot.md, and _meta/taxonomy.md. Build a co-occurrence matrix counting pages linking to both concepts in each pair, targeting top 20-30 candidates via grep backlink intersection. Filter pairs already covered by existing synthesis/ pages reading sources frontmatter. Score remaining pairs by co-occurrence count, cross-domain categories, shared tags, hub flags, and contradiction resolution potential; draft the top five into synthesis/ using the A x B title template with inferred and ambiguous provenance markers. Each page needs Connection, Co-occur, Cross-cutting Insight, Tensions, Strongest Objection with testable query, and Open Questions sections. Back-link from source concept pages, update index.md and log.md, refresh hot.md activity, and optionally run qmd update plus embed when QMD_WIKI_COLLECTION is set. List the next ten skipped candidates for future runs. Synthesis must add insight beyond summarizing sources; skip pairs with no real conceptual link.

  • Co-occurrence matrix from wikilink backlinks across non-special vault pages.
  • Score and rank pairs; skip those already in synthesis/ directory.
  • Template pages titled Concept A x Concept B with inferred cross-cutting insights.
  • Back-link source concepts; update index.md, log.md, and hot.md after writes.
  • Optional qmd update and embed after vault writes when QMD_WIKI_COLLECTION is set.

Wiki Synthesize by the numbers

  • 2,380 all-time installs (skills.sh)
  • +34 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #160 of 1,879 Documentation skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

wiki-synthesize capabilities & compatibility

Capabilities
co occurrence scoring from backlink grep · synthesis page templating with provenance tags · source and synthesis bidirectional linking · vault special file updates index log hot · optional qmd index refresh after writes
Use cases
documentation · research · planning
npx skills add https://github.com/ar9av/obsidian-wiki --skill wiki-synthesize

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs2.4k
repo stars3.1k
Security audit3 / 3 scanners passed
Last updatedAugust 4, 2026
Repositoryar9av/obsidian-wiki

Which concept pairs in my vault co-occur often but lack a dedicated synthesis page connecting them?

Discover co-occurring wiki concepts without synthesis pages and create cross-cutting synthesis/ notes with backlinks and vault index updates.

Who is it for?

Obsidian wikis with wikilinks, taxonomy tags, and a synthesis/ folder after large ingests.

Skip if: Skip for empty vaults, single-topic pages, or pairs without a genuine conceptual relationship.

When should I use this skill?

User says synthesize my wiki, find connections, /wiki-synthesize, or after significant vault growth.

What you get

Up to five new synthesis pages, updated indexes, backlinks, and a list of additional candidate pairs.

  • synthesis/ Markdown pages
  • Cross-concept connection summaries

Files

SKILL.mdMarkdownGitHub ↗

Wiki Synthesize — First-Class Synthesis Discovery

You are scanning the wiki for concepts that co-occur across many pages but have no dedicated synthesis page connecting them. Your job is to surface these gaps and fill the most valuable ones with cross-cutting synthesis pages.

Before You Start

1. Resolve config — follow the Config Resolution Protocol in llm-wiki/SKILL.md (walk up CWD for .env~/.obsidian-wiki/config → prompt setup). This gives OBSIDIAN_VAULT_PATH and OBSIDIAN_LINK_FORMAT (default: wikilink). 2. Read index.md to get the full page inventory. 3. Read hot.md if it exists — it surfaces recent activity and active threads that may already point to synthesis opportunities. 4. Read _meta/taxonomy.md to understand the tag vocabulary.

When writing internal links in synthesis pages, apply the link format from llm-wiki/SKILL.md (Link Format section) using the OBSIDIAN_LINK_FORMAT value.

Step 1: Build the Co-occurrence Map

Scan every non-special page in the vault (skip index.md, log.md, hot.md, _insights.md, _meta/*, _archives/*, _raw/*).

For each page, collect:

  • All [[wikilinks]] it contains (outgoing links)
  • Its tags frontmatter
  • Its category frontmatter

Build a co-occurrence matrix: for every pair of concept/entity pages (A, B), count how many other pages link to both A and B. This is their co-occurrence score.

You don't need to be exhaustive — aim for the top 20-30 pairs by co-occurrence score. Use Grep to find backlinks efficiently:

grep -rl "\[\[ConceptA\]\]" "$OBSIDIAN_VAULT_PATH" --include="*.md"

Run this for your top candidate concepts and intersect the result sets.

Step 2: Filter Out Already-Synthesized Pairs

Check the synthesis/ directory for existing pages. For each existing synthesis page:

  • Read its sources frontmatter or its body for [[wikilinks]]
  • Mark those concept pairs as already covered

Remove covered pairs from your candidate list.

Step 3: Score and Rank Candidates

For each remaining candidate pair (or cluster of 3+), assign a synthesis value score:

SignalPoints
Co-occurrence count ≥ 5+3
Co-occurrence count 3-4+2
Co-occurrence count 1-2+1
Concepts are in different categories (cross-domain)+2
Concepts share tags but live in different folders+1
One or both concepts are tagged as hubs in _insights.md+1
A synthesis would resolve a flagged contradiction+2

Pick the top 5 candidates. If the user asked for a specific topic ("synthesize everything about observability"), filter candidates to that domain first.

Step 4: Draft Synthesis Pages

For each top candidate, create a page in synthesis/ using this template:

---
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>]]

Synthesis pages are mostly `^[inferred]`. You are drawing connections across sources — that's synthesis by definition. Apply ^[inferred] to cross-cutting conclusions and ^[ambiguous] where sources disagree.

The title format is `A × B` — this signals to readers that it's a synthesis page, not a page about either concept alone.

Step 5: Back-link from Source Pages

For each synthesis page you created, add a link to it from the two (or more) concept pages it synthesizes. In the concept page, add to its ## Related section:

- [[Concept A × Concept B]] — synthesis

If the concept page has no ## Related section, add one at the bottom.

Step 6: Report Synthesis Opportunities Not Taken

After creating pages for the top 5, list the next 10 candidates in your output — pairs that scored well but you didn't write pages for. This gives the user visibility into what the wiki thinks is worth exploring without forcing every synthesis in one run.

Format:

Skipped (consider next time):
- [[Caching]] × [[Consistency]] — co-occurs in 4 pages, cross-domain
- [[Testing]] × [[Observability]] — co-occurs in 3 pages, shares tags
...

Step 7: Update Special Files

`index.md` — Add entries for all new synthesis pages.

`log.md` — Append:

- [TIMESTAMP] WIKI_SYNTHESIZE pages_scanned=N synthesis_created=M candidates_skipped=K

`hot.md` — Read $OBSIDIAN_VAULT_PATH/hot.md (create from the template in wiki-ingest if missing). Update Recent Activity with what was synthesized — e.g. "Synthesized 5 cross-cutting pages: Caching × Consistency, Testing × Observability, …". Update Active Threads with any open questions the synthesis surfaced. Update updated timestamp.

Quality Checklist

  • [ ] Every synthesis page has a summary: field (≤200 chars)
  • [ ] Every synthesis page links back to its source concepts
  • [ ] Source concept pages link forward to the synthesis page
  • [ ] No synthesis page just restates what's already on the source pages — it must add a cross-cutting insight
  • [ ] Every synthesis page names its Strongest Objection with a testable search query (not an invented source)
  • [ ] index.md and log.md updated
  • [ ] hot.md updated

Tips

  • A synthesis page that only summarizes its sources is useless. The value is the connection — the thing neither source page says explicitly.
  • Don't synthesize for synthesis's sake. If two concepts just happen to appear together a lot without a real conceptual link, skip them.
  • Three-way syntheses are powerful but rare. Only create them when three concepts form a genuine triangle of mutual influence — not just because all three appear in the same project page.
  • Check `_insights.md` first. The wiki-status skill may have already flagged synthesis candidates there — start with those before running the co-occurrence scan from scratch.

QMD Refresh After Vault Writes

QMD is a search index, not the source of truth. If $QMD_WIKI_COLLECTION is empty or unset, skip this step. Run it only after this skill has written or rewritten vault markdown. If QMD refresh fails, do not roll back the vault changes; report the QMD status separately.

Use $QMD_CLI if set; otherwise use qmd.

${QMD_CLI:-qmd} update

If the output says vectors are needed or embeddings may be stale, run:

${QMD_CLI:-qmd} embed

Verify the collection with either:

${QMD_CLI:-qmd} ls "$QMD_WIKI_COLLECTION"

or, when a specific page path is known:

${QMD_CLI:-qmd} get "qmd://$QMD_WIKI_COLLECTION/<page>.md" -l 5

Record one of:

  • 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>

Related skills

How it compares

Use wiki-synthesize for cross-note concept hubs; use ingest or capture skills when adding raw source material to the vault.

FAQ

How many synthesis pages per run?

Draft the top five scored candidates; list the next ten skipped pairs for future consideration.

What makes a valid synthesis page?

It must add a cross-cutting insight neither source page states alone, with a named Strongest Objection.

When should QMD refresh run?

After vault markdown writes if QMD_WIKI_COLLECTION is set; skip if unset or qmd CLI unavailable.

Is Wiki Synthesize safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Documentationnotesworkflow

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.