research/research/skills/research/SKILL.md
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 skillsauth add alirezarezvani/claude-skills researchInstall 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.
The runtime orchestrator for the research domain. Architecture C: deterministic classification → specialist delegation OR own plan-decompose-search-synthesize-cite workflow.
Requires WebSearch + WebFetch for the fallback workflow; specialist skills (pulse, grants, litreview, syllabus, patent, dossier) must be present for delegation to work. Node.js with docx package required if Q2 = document mode. Works in Claude Code CLI natively. In Claude.ai with web tools + Code Execution, the workflow is supported.
engineering/autoresearch-agentThese two skills share the word "research" but serve completely different use cases:
research/research/ (this skill) — research-query router + fallback workflow ("Research X")engineering/autoresearch-agent/ — Karpathy's autonomous file-optimization experiment loop ("Make this code faster")No overlap. They coexist.
Every invocation produces one of three outcomes:
The skill never silently runs its fallback when a specialist would have done better. Routing transparency is what makes the hybrid architecture trustworthy.
| Specialist | Routing signals | Domain |
|---|---|---|
| pulse | reddit / hn / x / buzz / sentiment / trending / "what's people saying" / "pulse on" / "take the pulse" / "current conversation" | Multi-source recency research |
| grants | NIH / grant / R01 / K-award / RePORTER / NOSI / "grants for" / FDA / "study section" / "principal investigator" | NIH grant-funding intelligence |
| litreview | literature review / PICO / SPIDER / systematic review / "review papers on" / meta-analysis | Academic literature orientation |
| syllabus | syllabus / course outline / curriculum / "reading list" / "for my class" / "for my students" | Course supplementary reading |
| patent | prior art / FTO / freedom to operate / patent / "patent landscape" / invention / novelty search / "ip landscape" | Patent prior-art + landscape |
| dossier | "dossier on" / "due diligence" / "background check" / "prep me for" / "competitor research" / "investor diligence" / "interview prep" / "background on" | Decision-grade entity research |
This skill obeys the research-pack convention:
[Background — not from search] and excluded from counts.Intake is intentionally minimal — the goal is to route fast, not to interrogate. One question per turn.
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.
Refuse mush. If user says "research AI", push back once: "What about AI specifically — adoption, safety, capability, funding, regulation, comparison? Pick an angle."
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.
Forcing choice.
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.
Skip if Q1 + Q2 produced clear specialist match (≥2 signals).
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".
Skip if a specialist took over.
Stop condition: After Q4 (or earlier if dependency skips applied), commit and start Phase 2. Most invocations exit intake after Q1 + Q2.
This is deterministic, not LLM-reasoned — for speed, debuggability, and consistency.
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 Q3
Implementation: scripts/classifier.py --question "..." returns the routing decision + matched signals + per-specialist scores. Use it; don't re-implement.
When delegating:
[Delegated to: research → {specialist}] in the chat output so the user knows what skill produced itscripts/routing_transparency_logger.py --action record_delegationIf routing produced no specialist match, run the 8-step fallback.
Break the research question into 3–5 sub-questions. Use the framework: what / why / how / who / what's next. Show the decomposition to the user before searching. Use scripts/fallback_decomposer.py --question "..." for a deterministic starting point.
For each sub-question, choose source(s) deterministically:
scholar.google.com site filterdossier (offer override)Sequential per sub-question. 1 q/sec etiquette. Per source: 2–4 queries, broad-to-narrow.
For each result that looks high-signal: WebFetch and extract the relevant section. Note the source URL.
Per sub-question: 2–4 paragraphs answering it with inline citations. Surface disagreement when sources disagree.
After per-sub-question synthesis: 1–2 paragraphs of patterns across sub-questions — consensus, controversy, gaps.
Markdown brief by default (Q2 choice). DOCX if user picked document mode.
Three-count summary (sent / received / cited) + per-source list with reliability tier (primary / secondary / tertiary).
After classification, the skill always:
litreview because you mentioned PICO and meta-analysis (2 signals)."routing_transparency_logger.py --action record_override.Never delegates silently. This is the trust-building property that makes the hybrid pattern work.
# [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]
Use the standard research-pack DOCX patterns: Arial 12pt, navy headings, blue table headers, hyperlinked sources, mandatory audit log section. Reference the docx skill for setup.
Queries 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]
All routing decisions + overrides also logged to ~/.research_sessions/<session>.json via routing_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. |
dossier is the right specialist (the verb-noun-paired phrase, not the generic "research X" form, is what routes)pulse is the right specialistscripts/classifier.py — Deterministic SIGNALS matching → routing decision + per-specialist score + matched phrases. --question "..." --output json.scripts/routing_transparency_logger.py — JSON-backed audit log at ~/.research_sessions/<session>.json. Records every routing decision, override, and delegation handoff.scripts/fallback_decomposer.py — Heuristic question → 3–5 sub-questions using what / why / how / who / what's next framework.references/hybrid_router_architecture.md — router-vs-run trade-offs + routing transparency principlereferences/deterministic_classification_canon.md — why keyword > LLM-reasoned for routingreferences/fallback_workflow_canon.md — plan-decompose-search-synthesize methodologyWebSearch + WebFetch — Required for fallback workflowpulse, grants, litreview, syllabus, patent, dossier. If a specialist is missing, the router skips it in classification and routes to fallback instead.docx library — Required if user picks document output (Q2 = standalone)Version: 1.0.0
Source spec: megaprompts/13-research-megaprompt.md
Build pattern: Path B (direct conversion)
data-ai
Use when you want to understand what Claude contributed vs what you drove in a session. Triggers on: /collab-proof, session retrospective, ai contribution analysis, collaboration evidence, what did claude do.
data-ai
Personal coach that teaches users to become Claude power users. Use this skill the FIRST time a user asks to "learn Claude", "be a power user", "coach me", "teach me Claude tricks", "what can Claude do", "make me better at prompting", or any variation. After activation, also use it on EVERY subsequent turn to detect missed optimization opportunities (vague prompts, ignored capabilities, manual work Claude could automate) and surface a single power-user tip. Trigger generously — most users do not know what they do not know, so err on the side of coaching.
development
Use when designing or revisiting product pricing — selecting a pricing model (subscription seat-based, usage-based, value-based, freemium, or hybrid), running Van Westendorp Price Sensitivity Meter analysis on WTP survey data, or designing Good/Better/Best packaging tiers. Recommends a model and a price range with trade-offs, never a single number. For Commercial leads, Product Marketing, and CMOs at the pricing-design moment — not deal-by-deal discounting, not brand positioning.
testing
Use when a startup is approached by a prospective partner and someone has to decide should we sign this partner, at what partner tier (referral / reseller / OEM / SI-consulting / strategic alliance), with what joint GTM commitment, and at what revshare. Classifies partner tier from independent-demand evidence vs. preferential-terms hunting, designs a 90-day joint GTM plan, models revshare against direct-sale margin, and surfaces kill criteria for unwinding under-performing partnerships. For Head of Partnerships, Head of BD, and Founder-CEOs doing reseller agreement, OEM deal, or strategic alliance review — not technical sale enablement, not channel cost economics, not M&A.