autoresearch
Skill1 starsChanged 7 months agoApache-2.0View on GitHub
Run an autonomous WEB-fed research loop on a topic. Iterates web-search → fetch → synthesize → file as wiki pages until depth is reached. Each iteration narrows the gap between what's known (in the wiki) and what's still missing. Use when the user explicitly says "research X on the web", "go research X", "deep dive online into X", "find new info about X", "build a wiki on X", "/autoresearch", or any phrasing that implies fetching NEW information from the internet. Do NOT use when the user wants answers from the existing wiki only — that's `wiki-query`. If "research X" is ambiguous, ask which is intended before kicking off the loop (it costs real tokens).
104 other projects use a version of this.
Adopted by
Most recently taken up by
- AndyMelnykov/obsidian-claudetheir own version, first seen Nov 15, 2026
- thisis-romar/opendeck-factorytheir own version, first seen Nov 15, 2026
- arbrain-ai/arbraintheir own version, first seen Nov 15, 2026
- darkroomengineering/cc-settingstheir own version, first seen Nov 12, 2026
- Yeachan-Heo/oh-my-claudecodetheir own version, first seen Nov 9, 2026
- thistleknot/skillstheir own version, first seen Nov 8, 2026
Used with
Projects with it also use aeon-update, auto-workflow and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
aaronjmarsSkillaeon-update
Pull framework updates from the upstream Aeon repo into this instance - 3-way merges canon's new commits into a PR, never clobbering operator config.
Also in 4 projects that use this
aaronjmarsSkillauto-workflow
Two-mode aeon.yml workflow builder - analyze inspects URLs and emits a tiered, signal-verified skill-enablement plan plus an aeon.yml diff; enable flips slugs to enabled:true and opens a PR.
Also in 4 projects that use this
- +10 more from aaronjmars
Other versions104 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 104
- github/awesome-copilot★ 41ksame name
- Yeachan-Heo/oh-my-claudecode★ 41ksame name
- Yeachan-Heo/oh-my-claude-sisyphus★ 41ksame name
- Yeachan-Heo/oh-my-codex★ 34ksame name
- AgriciDaniel/claude-obsidian★ 16ksame name
- Orchestra-Research/AI-research-SKILLs★ 13ksame name
- zechenzhangAGI/AI-research-SKILLs★ 13ksame name
- Orchestra-Research/AI-Research-SKILLs★ 12ksame name
- getcompanion-ai/feynman★ 10ksame name
- advaitpaliwal/feynman★ 10ksame name
94 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository49 other files it gives its agents.
- AGENTS.mdAGENTS.md
- auto-modeSkill
- bind-workspaceSkill
- build-search-indexSkill
- canvasSkill
- conventionsSkill
- decision-consolidateSkill
- defuddleSkill
- discover-list-filesSkill
- discover-list-vaultsSkill
- force-new-port-startSkill
- hot-compactSkill
- lockSkill
- manage-deleteSkill
- manage-moveSkill
- meta-attach-vaultSkill
- meta-audit-bridge-readinessSkill
- meta-setupSkill
- meta-statusSkill
- meta-sync-templateSkill
- obsidian-basesSkill
- obsidian-markdownSkill
- read-frontmatterSkill
- read-getSkill
- read-searchSkill
- read-search-smartSkill
- saveSkill
- sync-from-githubSkill
- template-executeSkill
- unlockSkill
- who-is-speakingSkill
- wiki-boundarySkill
- wiki-exportSkill
- wiki-foldSkill
- wiki-graphSkill
- wiki-ingestSkill
- wiki-lintSkill
- wiki-neighborsSkill
- wiki-pathSkill
- wiki-querySkill
- wiki-refresh-digestsSkill
- wikiSkill
- wiki-tourSkill
- write-appendSkill
- write-bundleSkill
- write-create-or-replaceSkill
- write-frontmatter-mergeSkill
- write-frontmatter-setSkill
- write-patchSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. 0 are common, 9 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 100 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 40
If absent → write one based on the user's request, with this structure:
- Very specific: line 83
Read program.md, look at ## Open Questions.
- Distinctive: line 89
Use WebSearch with a focused query derived from the open question.
- Distinctive: line 101
Create/update entity pages
- Distinctive: line 102
Update index, log, hot
- Very specific: line 106
After ingestion, update program.md:
- Very specific: line 107
Add filed sources to ## Filed Sources (with wikilinks)
- Very specific: line 108
If an open question was answered: move it to ## Closed Questions with the wikilink to the synthesizing page
- Distinctive: line 131
Don't autoresearch without a program.
- Distinctive: line 132
Don't fetch every search result.
- Distinctive: line 133
Don't summarize the same source from multiple search results.
- Distinctive: line 134
Don't paste full source text into wiki pages.
- Distinctive: line 135
Don't skip user confirmation before running.
“Common” is measured: kept by at least 6 in 10 of the 100 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.
Files
autoresearch
Driven by an explicit research program (program.md) so the loop has clear exit criteria. Without a program, it spirals or stops too early.
Pre-conditions
- Target vault has
wiki/scaffolding. - WebSearch and WebFetch tools are available (Claude Code provides these).
- Vault is online.
Steps
0. No topic in mind? Ask which pages deserve a programme (v0.69.0+, borrowing C10)
Only when the user has NOT named a topic — "what should I research next?", "where are the gaps?". If they named one, skip straight to step 1.
mcp__obsidian-router__find_boundary_pages({ vault, limit: 10 })It ranks the wiki's "frontier" pages — the crossroads many pages link to that stay thin inside — deterministically, from the knowledge graph. Present the top few as candidate subjects for a new programme and let the user choose. Never pick for them, and never open a programme off the back of a score alone.
This is upstream of the loop, and must stay there. Step 2a below already picks the least-covered question inside an existing programme, gauged with search_smart — that mechanism works and is not to be replaced. Boundary scoring answers a different question, one storey up: which page deserves a programme at all. Wiring it into 2a would break a working selector to solve a problem it does not have.
Say plainly what the ranking is worth: it proposes attention, it does not establish importance. Index and hub pages legitimately surface near the top, and a thin page is very often thin on purpose. If the tool reports no graph (or one too old to carry substance measurements), say so and offer /wiki-graph — do not fall back to guessing a topic.
1. Get or create the research program
Look for wiki/programs/<topic-slug>.md:
mcp__obsidian-router__get_file({ vault, path: "wiki/programs/<slug>.md" })If absent → write one based on the user's request, with this structure:
---
type: program
topic: "<user-given topic>"
started_at: <ISO>
max_iterations: 5
status: in-progress
---
## Objectives
- <bullet 1>
- <bullet 2>
- <bullet 3>
## Constraints
- <e.g., focus on academic sources, exclude reddit, time-bound to 2020-2026>
## Open Questions
- <q1>
- <q2>
## Filed Sources
(updated by the loop)
## Closed Questions
(moved here when answered, with a wikilink to the synthesizing page)Show the program to the user and ask "looks right? proceed?". Don't run autonomously without confirmation — autoresearch can burn through a lot of tokens.
2. The loop
For each iteration (up to max_iterations):
2a. Pick the most underspecified open question
Read program.md, look at ## Open Questions. Pick the question least covered by existing wiki pages.
How to gauge coverage: run mcp__obsidian-router__search_smart({ vault, query: "<question>", limit: 5 }). If top result has score > 0.65, the wiki has decent coverage — pick a different question or stop.
2b. Search the web
Use WebSearch with a focused query derived from the open question. Don't search broadly ("X") — search specifically for what's missing.
Pick 2-4 most promising results. Score by: source authority (academic > blog > forum), recency (depending on topic), specificity to the question.
2c. Fetch and clean
For each picked result, use WebFetch (or invoke the defuddle skill first if the page is a noisy webpage). Don't fetch all 4 — fetch in serial, skip if the title shows it's not relevant after fetching the metadata.
2d. File via wiki-ingest
For each useful fetch, invoke the wiki-ingest skill (in-process — same conversation, you already know how). It will:
- File the source
- Create/update entity pages
- Update index, log, hot
2e. Update the program
After ingestion, update program.md:
- Add filed sources to
## Filed Sources(with wikilinks) - If an open question was answered: move it to
## Closed Questionswith the wikilink to the synthesizing page - Maybe ADD new open questions surfaced by the new sources (the wiki grows organically — this is the point)
2f. Stop conditions
Halt the loop when:
- All
## Open Questionsare closed → success max_iterationsreached → emit "depth limit, here's where we got" report- The web is returning nothing new (seen this domain before, all sources already filed) → diminishing returns, halt
- A fetch fails repeatedly → bail with diagnostics
3. Final report
Compose a short summary turn:
- N sources filed
- M open questions closed
- K open questions remaining (with reasons)
- Path to
program.mdso the user can re-run later or curate
Mark program.md status: completed (or paused if iterations exhausted).
Anti-patterns
- Don't autoresearch without a program. Open-ended research with an LLM is a recipe for context-burn.
- Don't fetch every search result. Be selective — usually 2-3 of 8 are worth reading.
- Don't summarize the same source from multiple search results. Dedupe by URL before fetching.
- Don't paste full source text into wiki pages. The wiki-ingest skill handles synthesis; respect it.
- Don't skip user confirmation before running. The loop costs real tokens.
Output format
While running, emit terse progress lines (one per iteration):
[1/5] Question: How does X work?
→ Searched: "X mechanism", picked 3/8 results
→ Fetched: <URL1>, <URL2>, <URL3>
→ Filed: [[concepts/X]] (new), [[entities/Y]] (updated), [[sources/Smith2024]]
→ Closed question: ✓Final summary:
✅ Autoresearch complete on `<topic>`.
Iterations used: 4/5
Sources filed: 11
Questions closed: 5/5
Open questions remaining: 0
Program: wiki/programs/<slug>.mdDoes 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
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.

