Loading...
Loading...
Default entry point for any research request — a hybrid router that classifies the question deterministically and either delegates to a specialist research skill (pulse for trends/sentiment, grants for NIH funding, litreview for academic literature, syllabus for course reading, patent for prior-art + IP landscape, dossier for entity research) or runs its own plan-decompose-multi-source-search-synthesize-cite fallback workflow when no specialist matches. Always surfaces the routing decision so users can override. Triggers — "research [topic]", "look into [topic]", "what do we know about [topic]", "investigate [topic]", "find me information on [topic]", "do some research on [topic]", "I need to understand [topic]", or any research request that doesn't obviously match a more-specific specialist skill. Output is a markdown briefing (default) or .docx document (on request) with full citations and an audit log.
npx skill4agent add alirezarezvani/claude-skills researchWebSearchWebFetchpulsegrantslitreviewsyllabuspatentdossierdocxengineering/autoresearch-agentresearch/research/engineering/autoresearch-agent/| Specialist | Routing signals | Domain |
|---|---|---|
| reddit / hn / x / buzz / sentiment / trending / "what's people saying" / "pulse on" / "take the pulse" / "current conversation" | Multi-source recency research |
| NIH / grant / R01 / K-award / RePORTER / NOSI / "grants for" / FDA / "study section" / "principal investigator" | NIH grant-funding intelligence |
| literature review / PICO / SPIDER / systematic review / "review papers on" / meta-analysis | Academic literature orientation |
| syllabus / course outline / curriculum / "reading list" / "for my class" / "for my students" | Course supplementary reading |
| prior art / FTO / freedom to operate / patent / "patent landscape" / invention / novelty search / "ip landscape" | Patent prior-art + landscape |
| "dossier on" / "due diligence" / "background check" / "prep me for" / "competitor research" / "investor diligence" / "interview prep" / "background on" | Decision-grade entity research |
[Background — not from search]What's the research question? State it in 1–2 sentences. Specific is better than broad — "AI for healthcare" gets you a vague survey; "How are health systems integrating LLM-based clinical decision support in 2026?" gets you a useful answer.Why I'm asking: Specificity dictates classification accuracy and search precision. A vague question routes to fallback; a specific question often matches a specialist cleanly.
What output do you want? Pick one:
- Quick chat briefing (5-min read, markdown in chat)
- Standalone document (.docx with citations, shareable)
Why I'm asking: Document mode triggers deeper search budgets and full audit logs. Chat mode optimizes for fast delivery.
Quick clarification — pick the closest match:
- Academic literature (papers, peer-reviewed)
- Industry / trends (what's the buzz, news, sentiment)
- Specific entity (a company, person, organization)
- Technology / patents (prior art, IP landscape)
- Grant funding (NIH, foundations)
- Course material (syllabus or curriculum)
- None of the above — run general research
Why I'm asking: I couldn't classify confidently from your question alone. This routes you to the right specialist or confirms general-research fallback.
For general research, what's your time horizon — quick scan (5 searches) or thorough (15 searches)?Why I'm asking: General research has no specialist budget; you pick it. Quick is good for "what's the lay of the land". Thorough is for "I'll make a decision based on this".
SIGNALS = {
pulse: ["reddit", "hn", "hacker news", "x.com", "twitter", "buzz",
"sentiment", "trending", "what are people saying",
"what's happening", "the conversation around",
"pulse on", "take the pulse", "current conversation"],
grants: ["nih", "grant", "grants for", "r01", "r21", "k-award", "reporter",
"nosi", "funding", "fda", "study section", "principal investigator"],
litreview:["literature review", "lit review", "litreview", "pico", "spider",
"systematic review", "review papers on", "research papers on",
"papers about", "meta-analysis"],
syllabus: ["syllabus", "course outline", "curriculum", "reading list",
"for my class", "for my students", "course material"],
patent: ["prior art", "fto", "freedom to operate", "patent",
"patent landscape", "invention", "novelty search",
"patent search", "ip landscape"],
dossier: ["dossier on", "due diligence", "background check",
"prep me for", "competitor research", "investor diligence",
"interview prep", "research my competitor", "background on"]
}
# Signals are case-insensitive literal phrases (multi-word substring match).
# Bracketed placeholders (e.g., "research [company]") are intentionally NOT
# signals — they over-trigger on generic "research X" queries that should
# fall back to general research, not auto-route to dossier. Specific phrases
# pair the verb with the noun ("dossier on", "background on") and route reliably.
For each specialist S:
score[S] = count of SIGNALS[S] phrases matched in question (case-insensitive substring)
if max(score) >= 2:
route_to = argmax(score) # high confidence
elif max(score) == 1 and only one specialist has score 1:
route_to = that specialist # weak match, single specialist
else:
route_to = "fallback" # ambiguous or no match — ask Q3scripts/classifier.py --question "..."[Delegated to: research → {specialist}]scripts/routing_transparency_logger.py --action record_delegationscripts/fallback_decomposer.py --question "..."scholar.google.comdossierlitreviewrouting_transparency_logger.py --action record_override# [Research Question] — Briefing
*Generated: [DATE] | Routed: [delegated specialist | fallback]*
## TL;DR
[2-3 sentences]
## Findings
### [Sub-question 1]
[2-4 paragraphs with inline citations]
### [Sub-question 2]
...
## Cross-Cutting Patterns
[1-2 paragraphs]
## Sources
[Numbered list with hyperlinks, reliability tier per source]
## Audit
[Three counts + per-source tier + failures]docxQueries sent: N
Sources received: M
Sources cited: K
Failures: F (3-consecutive-failures triggered: yes/no)
Per-source tier: [URL — primary | secondary | tertiary]
Routing decision: fallback (no specialist matched)
Sub-questions: [list]~/.research_sessions/<session>.jsonrouting_transparency_logger.py| Failure | Behavior |
|---|---|
| Classification ambiguous (≤1 signal) | Ask Q3 (domain disambiguation). |
| Specialist delegation fails | Note in chat. Offer to retry or fall back to general research. |
| User overrides routing | Accept. Re-route to chosen specialist or fallback. Log the override. |
| Fallback search returns thin results | Surface explicitly. Suggest the question may be too niche or too new. Do not fabricate. |
| 3 consecutive tool failures in fallback | Stop, alert user, share what was collected. |
| Question is non-research (e.g., "write me code") | Decline politely. Suggest the user invoke an appropriate skill. |
| Sub-question can't be answered | Note in synthesis as "limited public signal on this"; don't omit silently. |
| Output format mismatch | Honor Q2 preference; if format unavailable, fall back to markdown with note. |
| Specialist skill missing from environment | Skip it in classification scoring; route to fallback or next-best specialist. |
dossierpulsescripts/classifier.py--question "..." --output jsonscripts/routing_transparency_logger.py~/.research_sessions/<session>.jsonscripts/fallback_decomposer.pyreferences/hybrid_router_architecture.mdreferences/deterministic_classification_canon.mdreferences/fallback_workflow_canon.mdWebSearchWebFetchpulsegrantslitreviewsyllabuspatentdossierdocxmegaprompts/13-research-megaprompt.md