skills/43-wentorai-research-plugins/skills/research/deep-research/open-researcher-guide/SKILL.md
Open pipeline for generating deep research trajectories with LLMs
npx skillsauth add brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research open-researcher-guideInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
OpenResearcher is a fully open pipeline for long-horizon deep research trajectory synthesis. It breaks complex research questions into sub-questions, iteratively searches and reads literature, builds internal knowledge representations, and synthesizes comprehensive answers. Unlike single-shot approaches, it models the researcher's thought process — reading, questioning, connecting, and refining understanding over multiple rounds.
from open_researcher import OpenResearcher
researcher = OpenResearcher(llm_provider="anthropic")
# Complex research question
result = researcher.research(
"How do retrieval-augmented generation systems handle "
"knowledge conflicts between parametric and retrieved knowledge, "
"and what are the current mitigation strategies?"
)
# Automatically decomposes into sub-questions:
# SQ1: What types of knowledge conflicts occur in RAG?
# SQ2: How are conflicts detected?
# SQ3: What resolution strategies exist?
# SQ4: How effective are these strategies?
# Each sub-question triggers:
# - Academic search (OpenAlex, arXiv)
# - Paper reading (abstract + key sections)
# - Evidence extraction
# - Follow-up question generation
# Configuration
researcher = OpenResearcher(
search_backends=["openalex", "arxiv"],
max_iterations=5, # Research rounds per sub-question
papers_per_iteration=10, # Papers to read per round
follow_up_questions=True, # Generate follow-up questions
)
# Internally builds a knowledge representation:
# - Claims linked to source papers
# - Relationships between concepts
# - Contradictions flagged
# Access the knowledge graph
kg = result.knowledge_graph
print(f"Concepts: {len(kg.nodes)}")
print(f"Relations: {len(kg.edges)}")
print(f"Contradictions: {len(kg.contradictions)}")
# Multi-section synthesis
report = result.report
# Sections:
# 1. Introduction and scope
# 2. Sub-question answers with evidence
# 3. Cross-cutting themes
# 4. Open questions and future directions
# 5. Full bibliography
report.save("research_report.md")
report.export_bibliography("refs.bib")
researcher = OpenResearcher(
llm_provider="anthropic",
model="claude-sonnet-4-20250514",
search_config={
"backends": ["openalex", "arxiv"],
"max_results_per_query": 20,
},
reading_config={
"sections": ["abstract", "introduction", "methods", "conclusion"],
"max_tokens_per_paper": 3000,
},
synthesis_config={
"style": "academic", # academic, technical, accessible
"include_contradictions": True,
"cite_inline": True,
},
)
# Inspect the research trajectory
trajectory = result.trajectory
for step in trajectory:
print(f"Round {step.round}: {step.action}")
print(f" Query: {step.query}")
print(f" Papers read: {step.papers_read}")
print(f" Key findings: {step.findings[:100]}...")
print(f" Follow-ups: {step.follow_up_questions}")
tools
Show mcp-stata identity, connected tools, and status. Use when the user asks if mcp-stata is available, asks about access to the toolkit, or asks what Stata tools are connected.
tools
Activate when users mention Stata commands, .do files, regressions, econometrics, stored results, graphs, dataset inspection, replication, or Stata errors. Route the task through mcp-stata tools and the specialized research skills instead of treating it as plain text coding.
development
Build and review paper-ready regression, balance, and summary tables from Stata outputs. Use when the user needs a clean table for a draft, appendix, or coauthor share-out.
tools
Install, configure, update, or verify mcp-stata across Claude Code, Codex, Gemini CLI, Cursor, Windsurf, and VS Code. Activate when users ask to set up the Stata toolkit or troubleshoot the installation.