wiki-research
ar9av/obsidian-wiki
Autonomously research topics via multi-round web search and synthesize findings into your Obsidian wiki.
What is wiki-research?
Wiki Research conducts structured, multi-round web research on a topic, synthesizes findings across sources, and files organized results directly into your Obsidian vault. Use it when you need comprehensive, web-sourced knowledge permanently stored and cross-linked in your wiki.
- Decomposes topics into 3-5 distinct research angles and searches each systematically
- Fetches and extracts key claims, concepts, entities, and contradictions from top results
- Runs targeted gap-fill searches to resolve contradictions and thin coverage areas
- Generates source, concept, entity, and synthesis pages with cross-linking and provenance tracking
- Updates vault metadata (index.md, log.md, hot.md, .manifest.json) and refreshes QMD search index
How to install wiki-research
npx skills add https://github.com/ar9av/obsidian-wiki --skill wiki-research- Obsidian vault with configured path (via .env, ~/.obsidian-wiki/config, or inline override)
- OBSIDIAN_LINK_FORMAT setting (default: wikilink)
- Optional: references/research-config.md in vault to define source preferences or confidence rules
- Optional: QMD search index (qmd CLI) for post-write indexing
How to use wiki-research
- 1.Trigger the skill with /wiki-research [topic], 'research X', or 'find everything about Y'
- 2.Confirm the research topic if ambiguous
- 3.Skill reads index.md, hot.md, and research-config.md to avoid re-researching existing content
- 4.Skill executes 3 rounds: broad survey (3-5 angles, 2-3 searches per angle), gap fill (targeted searches), and synthesis check
- 5.Skill writes source pages (sources/), concept pages (concepts/), entity pages (entities/), and master synthesis (synthesis/Research: [Topic].md)
- 6.Skill cross-links all pages and updates index.md, log.md, hot.md, and .manifest.json
- 7.Skill refreshes QMD search index if configured
Use cases
- Deep research on emerging technologies (e.g., vector databases, LLMs) with synthesis into permanent wiki knowledge
- Competitive or market analysis with structured source tracking and contradiction flagging
- Learning a complex domain by auto-generating interconnected concept and reference pages
- Building a research archive where sources, concepts, and findings are all discoverable and linked
- Knowledge workers building personal or team wikis
- Researchers needing structured, sourced synthesis of web findings
- Teams using Obsidian as a knowledge base who want to automate research filing
wiki-research FAQ
The skill reads index.md and hot.md first to understand existing coverage. It will avoid re-researching well-covered areas and instead focus on gaps or updates.
Round 2 identifies contradictions; Round 3 runs targeted searches to resolve them. Unresolved contradictions are flagged explicitly in the synthesis page with source citations.
Yes. Create references/research-config.md to define source preferences, domains to skip, confidence scoring rules, or topic-specific constraints.
The skill continues with available results and flags gaps in the synthesis page. It does not halt on individual search failures.
It creates new source, concept, entity, and synthesis pages. If existing concept or entity pages match, it links to them rather than duplicating.
Full instructions (SKILL.md)
Source of truth, from ar9av/obsidian-wiki.
name: wiki-research description: > Autonomously research a topic via multi-round web search, synthesize findings, and file structured results into the Obsidian wiki. Use this skill when the user says "/wiki-research [topic]", "research X", "find everything about Y", "do a deep dive on Z", "autonomous research on X", or wants comprehensive, web-sourced knowledge on a topic filed directly into their wiki.
Wiki Research — Autonomous Multi-Round Research
You are running an autonomous research loop on a topic, synthesizing what you find, and filing the results into the Obsidian wiki as permanent knowledge.
Before You Start
- Resolve config — follow the Config Resolution Protocol in
llm-wiki/SKILL.md(inline@nameoverride → walk up CWD for.env→~/.obsidian-wiki/config→ prompt setup). This givesOBSIDIAN_VAULT_PATHandOBSIDIAN_LINK_FORMAT(default:wikilink). - Read
$OBSIDIAN_VAULT_PATH/index.mdto understand what's already in the wiki — don't re-research things the wiki covers well - Read
$OBSIDIAN_VAULT_PATH/hot.mdif it exists — it surfaces recent context - Check
$OBSIDIAN_VAULT_PATH/references/research-config.mdif it exists — it may define source preferences, domains to skip, or confidence rules for this vault
When writing internal links in generated pages, apply the link format from llm-wiki/SKILL.md (Link Format section) using the OBSIDIAN_LINK_FORMAT value.
Confirm the research topic with the user if it's ambiguous. Then proceed.
Research Configuration (optional)
If references/research-config.md exists in the vault, read it and apply any rules it defines:
- Source preferences (e.g., prefer academic sources, avoid certain domains)
- Domains to skip
- Confidence scoring adjustments
- Topic-specific constraints
If the file doesn't exist, proceed with defaults.
Round 1 — Broad Survey
Goal: Get a wide map of the topic.
- Decompose the topic into 3-5 distinct angles (e.g., for "vector databases": what they are, when to use them, leading implementations, trade-offs, production gotchas)
- For each angle, run 2-3
WebSearchqueries using varied phrasing - For the top 2-3 results per angle, use
WebFetch(ordefuddle <url>if available — cleaner extraction) to get content - From each fetched page, extract:
- Key claims — what the source explicitly states
- Concepts — ideas, terms, frameworks introduced
- Entities — tools, people, organizations mentioned
- Contradictions — places where sources disagree with each other
Track what's covered and what's missing as you go.
Round 2 — Gap Fill
Goal: Close the holes left by Round 1.
Review what Round 1 produced:
- What questions did sources raise but not answer?
- Where do sources contradict each other?
- Which angles got thin coverage?
Run up to 5 targeted searches specifically addressing these gaps. Prefer primary sources, official documentation, and authoritative analyses over link aggregators.
Add findings to your working set. Update the contradiction list.
Round 3 — Synthesis Check
Goal: Resolve contradictions; confirm depth is sufficient.
If major contradictions remain unresolved:
- Run one final targeted pass (2-3 searches) to find authoritative resolution
- If resolution is impossible, flag the contradiction explicitly in the synthesis page
If contradictions are minor or the topic feels well-covered after Round 2, skip additional searching and proceed to filing.
Halt condition: Stop when depth is achieved or 3 rounds are complete — do not loop indefinitely.
Filing — Write Wiki Pages
Organize all findings into wiki pages across four output areas:
1. sources/ — One page per major reference
For each significant source (typically 4-8 pages total):
---
title: >-
<Source title>
category: references
tags: [<2-4 domain tags>]
sources:
- "<URL>"
source_url: "<URL>"
created: <ISO-8601 timestamp>
updated: <ISO-8601 timestamp>
summary: >-
<1-2 sentences describing what this source covers, ≤200 chars>
provenance:
extracted: 0.X
inferred: 0.X
ambiguous: 0.X
base_confidence: <0.17 + 0.5 × classify(url) for a single source>
lifecycle: draft
lifecycle_changed: <ISO date today>
---
Body: title, URL, what it covers, key claims (with provenance markers), limitations.
2. concepts/ — One page per substantive concept
For each significant concept surfaced across sources:
Standard concept frontmatter + body. Link concepts to each other and to source pages.
3. entities/ — Tools, organizations, people
For each significant entity encountered (tools, libraries, companies, key authors):
Standard entity frontmatter. Link back to concepts that use the entity and sources where it appears.
4. synthesis/Research: [Topic].md — Master synthesis
The primary output: a structured synthesis of everything found.
---
title: >-
Research: <Topic>
category: synthesis
tags: [<3-5 domain tags>, research]
sources: [<list of source URLs or page paths>]
created: <ISO-8601 timestamp>
updated: <ISO-8601 timestamp>
summary: >-
Synthesis of <N>-round research on <topic>. Covers <core findings in ≤200 chars>.
provenance:
extracted: 0.X
inferred: 0.X
ambiguous: 0.X
base_confidence: <min(N_unique_sources/3,1.0)×0.5 + avg_source_quality×0.5>
lifecycle: draft
lifecycle_changed: <ISO date today>
---
# Research: <Topic>
## Overview
<2-4 sentence executive summary of what the research found>
## Key Findings
<Bulleted list of the most important claims, each with a [[source page]] citation>
## Core Concepts
<Links to concept pages created, with one-line descriptions>
## Entities & Tools
<Links to entity pages, with one-line descriptions>
## Contradictions & Open Questions
<Where sources disagree or where the research hit limits>
## Sources Consulted
<Linked list of all source pages>
Cross-linking
After filing all pages:
- Every concept page should link to at least 2 source pages
- Every source page should link to the concept pages it informed
- The synthesis page should link to all concept, entity, and source pages produced
Check index.md for existing pages on the same topics — merge into existing pages rather than creating duplicates.
Update Tracking Files
.manifest.json — Add a research entry:
{
"type": "research",
"topic": "<topic>",
"researched_at": "TIMESTAMP",
"rounds_completed": 3,
"sources_fetched": N,
"pages_created": ["..."],
"pages_updated": ["..."]
}
index.md — Add all new pages under their respective sections.
log.md — Append:
- [TIMESTAMP] WIKI_RESEARCH topic="<topic>" rounds=N sources_fetched=N pages_created=M
hot.md — Update Recent Activity with the research topic and core finding. Update Active Threads if this is ongoing. Update updated timestamp.
Quality Checklist
- 3 rounds completed (or halted at sufficient depth)
- Synthesis page exists at
synthesis/Research: [Topic].md - Source pages written for major references
- Concept and entity pages written for significant items
- Contradictions flagged in synthesis page
- All pages cross-linked
-
index.md,log.md,hot.md,.manifest.jsonupdated
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 + verifiedQMD refreshed: update only + verifiedQMD skipped: QMD_WIKI_COLLECTION unsetQMD skipped: qmd CLI unavailableQMD failed: <short error summary>
Related skills
More from ar9av/obsidian-wiki and the wider catalog.

wiki-setup
Initialize a new Obsidian wiki vault with structure, config, and special files.

wiki-stage-commit
>

wiki-status
Audit your wiki's ingest status, delta, and token footprint—decide whether to append or rebuild.

wiki-switch
Switch between multiple Obsidian vault profiles and manage named configurations.

wiki-synthesize
Discover and create synthesis pages connecting co-occurring concepts across your Obsidian wiki.

wiki-update
Sync project knowledge into your Obsidian wiki from any directory.