agentleFS
chobizzychobizzy/llm-wiki/skills/wiki-research/SKILL.md

wiki-research

Skill3 starsChanged 11 days agoMITView on GitHub

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.

  • Reads credentials

4 other projects use a version of this, 2 of them edited.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

19 rules. 10 are common, 1 is distinctive, and 8 are very specific to this project.

  • 10

    Common

    Most of the 3 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read $OBSIDIAN_VAULT_PATH/index.md to understand what's already in the wiki — don't re-research things the wiki covers well

    line 17
  2. Very specific:

    Read $OBSIDIAN_VAULT_PATH/hot.md if it exists — it surfaces recent context

    line 18
  3. Very specific:

    Check $OBSIDIAN_VAULT_PATH/_meta/research-config.md if it exists (older vaults keep it at references/research-config.md) — it may define …

    line 19
  4. Very specific:

    Read the CATEGORIES table in AGENTS.md (or run llm-wiki layout --json).

    line 20
  5. Very specific:

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

    line 22
  6. Very specific:

    If _meta/research-config.md (or the older references/research-config.md) exists in the vault, read it and apply any rules it defines:

    line 28
  7. Common:

    If the file doesn't exist, proceed with defaults.

    line 34
  8. Distinctive:

    Run up to 5 targeted searches specifically addressing these gaps.

    line 60
  9. Common:

    Add findings to your working set.

    line 62
  10. Common:

    If major contradictions remain unresolved:

    line 68
  11. Common:

    Run one final targeted pass (2-3 searches) to find authoritative resolution

    line 69
  12. Common:

    If resolution is impossible, flag the contradiction explicitly in the synthesis page

    line 70
  13. Common:

    If contradictions are minor or the topic feels well-covered after Round 2, skip additional searching and proceed to filing.

    line 72
  14. Common:

    Halt condition: Stop when depth is achieved or 3 rounds are complete — do not loop indefinitely.

    line 74
  15. Common:

    After filing all pages:

    line 168
  16. Common:

    Every concept page should link to at least 2 source pages

    line 169
  17. Common:

    Every source page should link to the concept pages it informed

    line 170
  18. Very specific:

    Check index.md for existing pages on the same topics — merge into existing pages rather than creating duplicates.

    line 173
  19. Very specific:

    When it is set, read llm-wiki/references/qmd.md and follow the *Refresh* section after this skill has written vault markdown.

    line 214

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

  1. Resolve config — follow the Config Resolution Protocol in llm-wiki/SKILL.md (inline @name override → walk up CWD for .env → ~/.llm-wiki/config → prompt setup). This gives OBSIDIAN_VAULT_PATH and OBSIDIAN_LINK_FORMAT (default: wikilink).
  2. Read $OBSIDIAN_VAULT_PATH/index.md to understand what's already in the wiki — don't re-research things the wiki covers well
  3. Read $OBSIDIAN_VAULT_PATH/hot.md if it exists — it surfaces recent context
  4. Check $OBSIDIAN_VAULT_PATH/_meta/research-config.md if it exists (older vaults keep it at references/research-config.md) — it may define source preferences, domains to skip, or confidence rules for this vault
  5. Read the CATEGORIES table in AGENTS.md (or run llm-wiki layout --json). The output below goes to the folders holding the reference, concept, entity and synthesis roles — references/, concepts/, entities/ and synthesis/ in a standard vault; any role no row claims falls to the catch-all row.

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 _meta/research-config.md (or the older 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.

  1. 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)
  2. For each angle, run 2-3 WebSearch queries using varied phrasing
  3. For the top 2-3 results per angle, use WebFetch (or defuddle <url> if available — cleaner extraction) to get content
  4. 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. The reference folder — one page per major source

For each significant source (typically 4-8 pages total):

---
title: >-
  <Source title>
category: references   # the folder you wrote it to (in a single-folder vault: 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. The concept folder — 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. The entity folder — 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 folder>/Research: [Topic].md — Master synthesis

The primary output: a structured synthesis of everything found.

---
title: >-
  Research: <Topic>
category: synthesis   # the folder you wrote it to (in a single-folder vault: 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 folder>/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.json updated

QMD Refresh After Vault Writes

GUARD: If $QMD_WIKI_COLLECTION is unset — the default — skip this step. QMD is a search index, not the source of truth.

When it is set, read llm-wiki/references/qmd.md and follow the Refresh section after this skill has written vault markdown. If refresh fails, do not roll back the vault changes; report the QMD status separately.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.