Agent skill

Wiki Synthesize

by Ar9av in Ar9av/obsidian-wiki

Find recurring concept combinations across the wiki that lack an explicit synthesis page, then create cross-cutting synthesis pages.

MITAuto-check: notesKnowledge Management

Install Wiki Synthesize

skills CLI
$ npx skills add Ar9av/obsidian-wiki --skill wiki-synthesize -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Ar9av/obsidian-wiki wiki-synthesize --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Ar9av/obsidian-wiki.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.skills/wiki-synthesize .claude/skills/wiki-synthesize && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
wiki-synthesize
GitHub stars
3.5k
Token cost
~2.3k tokens
SKILL.md length
911 words
Files
1
Skills in repo
39
Repo updated
First seen
Licence
MIT

At a glance

Find recurring concept combinations across the wiki that lack an explicit synthesis page, then create cross-cutting synthesis pages.

  • Works in 7 steps: Build the Co-occurrence Map → Filter Out Already-Synthesized Pairs → Score and Rank Candidates → …
  • Knowledge synthesis after the vault has accumulated enough material
  • SKILL.md covers Before You Start, Step 1: Build the…, Step 2: Filter Out… and Step 3: Score and Rank…, plus 7 more sections
  • Calls rg

What it does

Wiki Synthesize is an agent skill from Ar9av/obsidian-wiki. Find recurring concept combinations across the wiki that lack an explicit synthesis page, then create cross-cutting synthesis pages. Use for knowledge synthesis after the vault has accumulated enough material.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Knowledge Management, covering LLM wikis. It works with Obsidian. The repository describes itself as: Framework for AI agents to build and maintain a digital brain through Obsidian wiki | Memory System for Agents. The licence is MIT.

When your agent uses it

  • Knowledge synthesis after the vault has accumulated enough material
  • Tasks that involve LLM wikis

Example prompts

  • “/wiki-synthesize”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Build the Co-occurrence Map
  2. Filter Out Already-Synthesized Pairs
  3. Score and Rank Candidates
  4. Draft Synthesis Pages
  5. Back-link from Source Pages
  6. Report Synthesis Opportunities Not Taken
  7. Update Special Files

What it can do on your machine

Read from SKILL.md and the folder at commit 4a0630b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • rg

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Wiki Synthesize loads about 2.3k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 911 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~56
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:16
    line `@name` override → walk up CWD for `.env` → global config → prompt setup). This gives `OBSIDIAN_VAULT_PATH` and `OB

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Ar9av/obsidian-wiki at commit 4a0630b, republished under its MIT licence (© Ar9av). 911 words, ~2,278 tokens.

Download SKILL.mdSave it as .claude/skills/wiki-synthesize/SKILL.md (or your agent's skills folder).
name
wiki-synthesize
description
Find recurring concept combinations across the wiki that lack an explicit synthesis page, then create cross-cutting synthesis pages. Use for knowledge synthesis after the vault has accumulated enough material.

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

Writing profile: Before drafting or rewriting natural-language Markdown, read and apply the Writing Profile Resolution section in llm-wiki/SKILL.md. Framework schema, provenance, safety, and operation-specific requirements take precedence. WRITING.md preferences apply only to newly drafted or rewritten natural-language Markdown; preserve source content and structured records.

  1. Resolve config — follow the Config Resolution Protocol in llm-wiki/SKILL.md (inline @name override → walk up CWD for .env → global 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:

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

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:

markdown
---
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.

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:

markdown
- [[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
...
Show full SKILL.md (340 more words)Show less

Step 7: Update Special Files

One locked call updates the index, the log, and the hot cache:

bash
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, …"

Open questions the synthesis surfaced are threads, not takeaways — record each one: obsidian-wiki memory todo add "<question>" --origin synthesis/<page>.md.

Never hand-edit index.md, log.md, or hot.md — the command takes the lock that keeps a parallel writer from dropping your update.

See .skills/llm-wiki/references/MEMORY.md for the full procedure.

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.

bash
${QMD_CLI:-qmd} update

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

bash
${QMD_CLI:-qmd} embed

Verify the collection with either:

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

or, when a specific page path is known:

bash
${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>

© Ar9av, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .skills/wiki-synthesize of Ar9av/obsidian-wiki.

Open the folder on GitHubat commit 4a0630b

Compare with similar skills

Wiki Synthesize next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Wiki Synthesize compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Wiki Synthesize this skillAr9av/obsidian-wiki3.5k—~2.3kAutomated safety check: NotesMIT
LLM Wikilewislulu/llm-wiki-skill655—~3.7kAutomated safety check: PassNone
LLM Wikizosmaai/pi-llm-wiki608—~4.4kAutomated safety check: PassMIT
LLM Wikipraneybehl/llm-wiki-plugin118—~5.7kAutomated safety check: PassMIT
Karpathy WikiSherwinQ/karpathy-wiki114—~967Automated safety check: PassMIT
My LLM WikiMartinLwx/dotfiles140—~2.7kAutomated safety check: PassNone

Similar skills

  • LLM Wiki

    lewislulu/llm-wiki-skill

    Build and maintain a Karpathy-style LLM knowledge base — a self-compiling Obsidian markdown wiki where an Agent ingests raw sources, compiles cross-linked concept/entity/summary pages, answers…

    655 GitHub stars~3.7k tokensUpdated 5 mo ago
    Knowledge ManagementAuto-check passed
  • LLM Wiki

    zosmaai/pi-llm-wiki

    Build and maintain a persistent, interlinked Obsidian-compatible markdown wiki using Karpathy's LLM Wiki pattern.

    608 GitHub stars~4.4k tokensUpdated yesterday
    Knowledge ManagementAuto-check passed
  • LLM Wiki

    praneybehl/llm-wiki-plugin

    Build and maintain an LLM-curated knowledge base from papers, articles, transcripts, notes and project findings.

    118 GitHub stars~5.7k tokensUpdated 27 days ago
    Knowledge ManagementAuto-check passed
  • Karpathy Wiki

    SherwinQ/karpathy-wiki

    A skill your agent uses when building or maintaining a personal knowledge base with LLM assistance.

    114 GitHub stars~967 tokensUpdated 5 mo ago
    Knowledge ManagementAuto-check passed
  • My LLM Wiki

    MartinLwx/dotfiles

    Provides access to the user's personal wiki, including notes, research, project documentation, decisions, and archived knowledge.

    140 GitHub stars~2.7k tokensUpdated 2 days ago
    Knowledge ManagementAuto-check passed
  • Sage Wiki

    xoai/sage-wiki

    Reference skill for sage-wiki — local-first knowledge graph with MCP server, REST API, compiled wiki, and Obsidian-compatible output.

    623 GitHub stars~2.4k tokensUpdated 4 days ago
    Knowledge ManagementAuto-check passed

More from Ar9av/obsidian-wiki

All 39 skills in this repo
  • Codex History Ingest

    Ar9av/obsidian-wiki

    Ingest Codex CLI conversation/session history into Obsidian as distilled knowledge.

    3.5k GitHub stars~2.2k tokensUpdated 2 days ago
    Auto-check: notes
  • Copilot History Ingest

    Ar9av/obsidian-wiki

    Ingest GitHub Copilot CLI/session history into Obsidian as distilled knowledge.

    3.5k GitHub stars~4.4k tokensUpdated 2 days ago
    Auto-check: notes
  • Hermes History Ingest

    Ar9av/obsidian-wiki

    Ingest Hermes agent history into Obsidian as distilled knowledge.

    3.5k GitHub stars~2.2k tokensUpdated 2 days ago
    Auto-check: notes
  • Obsidian Layout Adjustment

    Ar9av/obsidian-wiki

    Adjust the user's Obsidian visual layout with CSS snippets. An agent skill from Ar9av/obsidian-wiki.

    3.5k GitHub stars~2.5k tokensUpdated 2 days ago
    Auto-check passed
  • Openclaw History Ingest

    Ar9av/obsidian-wiki

    Ingest OpenClaw session/history data into Obsidian as distilled knowledge.

    3.5k GitHub stars~2.5k tokensUpdated 2 days ago
    Auto-check: notes
  • Wiki Capture

    Ar9av/obsidian-wiki

    Turn the current conversation or finding into a structured permanent wiki note.

    3.5k GitHub stars~4.3k tokensUpdated 2 days ago
    Auto-check: notes

Works with

Questions about Wiki Synthesize

What does Wiki Synthesize do?

Find recurring concept combinations across the wiki that lack an explicit synthesis page, then create cross-cutting synthesis pages. Wiki Synthesize is an agent skill from Ar9av/obsidian-wiki. Find recurring concept combinations across the wiki that lack an explicit synthesis page, then create cross-cutting synthesis pages.

When should I use Wiki Synthesize?

Wiki Synthesize fits situations like: knowledge synthesis after the vault has accumulated enough material; tasks that involve LLM wikis.

How do I install Wiki Synthesize in Claude Code?

Run `npx skills add Ar9av/obsidian-wiki --skill wiki-synthesize -a claude-code`. Or copy the skill folder (.skills/wiki-synthesize in Ar9av/obsidian-wiki) into .claude/skills/wiki-synthesize in your project. Claude Code loads it when a task matches its description.

How do I install Wiki Synthesize in Codex?

Run `npx skills add Ar9av/obsidian-wiki --skill wiki-synthesize -a codex`. Or copy the skill folder (.skills/wiki-synthesize in Ar9av/obsidian-wiki) into .agents/skills/wiki-synthesize in your project. Codex loads it when a task matches its description.

Can I use Wiki Synthesize in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Ar9av/obsidian-wiki --skill wiki-synthesize -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/wiki-synthesize, .gemini/skills/wiki-synthesize, .github/skills/wiki-synthesize and .opencode/skills/wiki-synthesize in your project.

What does Wiki Synthesize need to run?

Going by SKILL.md and its folder, Wiki Synthesize needs the command-line tools its instructions call (rg).

Does Wiki Synthesize access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Wiki Synthesize safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Wiki Synthesize use?

Wiki Synthesize is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Wiki Synthesize use?

About 2.3k tokens (SKILL.md is roughly 9.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Wiki Synthesize?

Skills that share tags, products or a category with Wiki Synthesize: LLM Wiki (lewislulu/llm-wiki-skill, 655 stars), LLM Wiki (zosmaai/pi-llm-wiki, 608 stars), LLM Wiki (praneybehl/llm-wiki-plugin, 118 stars) and Karpathy Wiki (SherwinQ/karpathy-wiki, 114 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Wiki Synthesize?

Ar9av (a GitHub user) maintains it in Ar9av/obsidian-wiki, which has 3,544 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on October 8, 2026.

Source: Ar9av/obsidian-wiki on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.