Performs comprehensive, multi-layered research on any topic with structured analysis and synthesis of information from multiple sources. Uses file-based research tracking, parallel investigation threads, and context-efficient patterns for deep investigations. ALL MEDICAL CITATIONS FROM PUBMED MCP ONLY.
Comprehensive research methodology with file-based tracking, parallel execution, and context management for investigations requiring 5+ sources.
CRITICAL: All medical evidence and citations must come from PubMed MCP. No exceptions.
Quick Research (1-4 sources): Work in-context, no file structure needed.
Deep Research (5+ sources): Use file-based tracking below.
| Source | Tool | Use Case |
|---|---|---|
| PubMed MCP | pubmed_search_articles, pubmed_fetch_contents, pubmed_article_connections |
| ALL medical evidence, trials, mechanisms |
| Official Guidelines | web_fetch to ACC/ESC/ADA/AHA URLs only | Guideline recommendations |
| AstraDB RAG | Knowledge pipeline | Textbook references, pre-loaded guidelines |
| Source | Why Excluded | Allowed Use |
|---|---|---|
| Quality variable | REMOVED | |
| Not peer-reviewed | Trend discovery only, NEVER cite | |
| Unreliable | Topic discovery only, NEVER cite | |
| Not primary evidence | Background context only |
Prefer (Tier 1):
Accept (Tier 2):
Use Cautiously (Tier 3):
Reject:
Create this checklist and update after each step:
Deep Research Progress:
- [ ] Step 1: Initialize research project
- [ ] Step 2: Define scope and plan
- [ ] Step 3: Execute research threads (parallel when possible)
- [ ] Step 4: Validate and cross-reference
- [ ] Step 5: Synthesize from files
- [ ] Step 6: Generate final report
For research requiring 5+ sources, create a project structure:
mkdir -p ~/research_{topic}/sources
mkdir -p ~/research_{topic}/threads
Project Structure:
~/research_{topic}/
├── plan.md # Research questions, scope, thread assignments
├── progress.md # Living checklist, updated throughout
├── sources/
│ └── pubmed.md # PubMed search results and abstracts
├── threads/
│ ├── thread_1.md # Independent research thread
│ ├── thread_2.md # Another thread
│ └── ...
├── validation.md # Cross-reference and credibility check
├── synthesis.md # Cross-thread analysis
└── report.md # Final deliverable
Why file-based? Context windows fill up. Writing findings to files lets you:
Write plan.md with:
# Research Plan: {Topic}
## Primary Question
[The main thing we're trying to answer]
## Scope
- Include: [what's in scope]
- Exclude: [what's explicitly out]
- Depth: [overview | detailed | exhaustive]
- Deliverable: [report type and length]
## Research Threads
### Thread 1: {Subtopic A}
- Questions to answer: ...
- PubMed search strategy: [MeSH terms, filters]
- Expected study types: RCTs, meta-analyses, etc.
- Can run parallel? Yes/No
### Thread 2: {Subtopic B}
- Questions to answer: ...
- PubMed search strategy: ...
- Can run parallel? Yes/No
[Continue for 2-5 threads]
## Thread Dependencies
- Thread 3 depends on Thread 1 findings
- Threads 1, 2, 4 can run in parallel
## Synthesis Strategy
How will threads combine into final answer?
Planning Guidelines:
| Research Type | Threads | Pattern |
|---|---|---|
| Simple fact-finding | 1-2 | Sequential |
| Drug comparison | 1 per drug (max 5) | Parallel |
| Complex investigation | 3-5 thematic | Mixed |
| Literature review | By time period or theme | Sequential |
For each thread, use structured PubMed queries:
# Example search for SGLT2 CV outcomes
pubmed_search_articles(
queryTerm="SGLT2 inhibitor cardiovascular outcomes randomized controlled trial",
maxResults=20,
sortBy="relevance"
)
# Then fetch full details for top results
pubmed_fetch_contents(pmids=["PMID1", "PMID2", ...])
# Find related articles for key papers
pubmed_article_connections(
sourcePmid="key_paper_pmid",
relationshipType="pubmed_similar_articles"
)
For independent threads, execute PubMed searches in parallel (multiple tool calls in one turn), then write each to its thread file.
Example: Comparing SGLT2 Inhibitors
Thread 1: Empagliflozin → pubmed_search "empagliflozin cardiovascular RCT" → threads/empagliflozin.md
Thread 2: Dapagliflozin → pubmed_search "dapagliflozin cardiovascular RCT" → threads/dapagliflozin.md
Thread 3: Canagliflozin → pubmed_search "canagliflozin cardiovascular RCT" → threads/canagliflozin.md
Execute all three searches, then write findings to respective files.
For dependent threads, complete each fully before starting the next.
Each threads/thread_N.md should contain:
# Thread: {Subtopic}
## PubMed Searches Executed
1. Query: [exact query] → [N results] → Top PMIDs: [list]
2. Query: [exact query] → [N results] → Top PMIDs: [list]
## Key Findings
### Finding 1: [Title]
- PMID: [number]
- Citation: [Authors, Journal, Year]
- Study type: RCT / Meta-analysis / Cohort / etc.
- Population: [N patients, characteristics]
- Key result: [HR/OR with 95% CI, p-value]
- Quality: High / Medium / Low [+ brief justification]
### Finding 2: [Title]
- PMID: [number]
...
## Contradictions Found
- PMID X says [claim], PMID Y says [different claim]
- Potential explanation: [patient population, endpoints, timing, etc.]
## Gaps Identified
- No RCT data on [specific question]
- Limited evidence in [patient subgroup]
## Thread Summary
[2-3 sentence synthesis of this thread's findings with key PMIDs cited]
After every 5-7 tool calls:
progress.md with statusTrigger for offload:
Read all thread files, then create validation.md:
# Validation Report
## Facts Requiring Cross-Reference
| Claim | Thread Source | PMID | Verification Status | Confidence |
|-------|--------------|------|---------------------|------------|
| SGLT2i reduces HF hospitalization | Thread 1 | 12345678 | Confirmed by PMIDs 23456789, 34567890 | High |
| Benefit extends to HFpEF | Thread 2 | 45678901 | Conflicting: PMID 56789012 shows null | Investigate |
## Contradictions Analysis
### Contradiction 1: [Description]
- Position A: PMID [X], [study name], found [result]
- Position B: PMID [Y], [study name], found [result]
- Resolution: [Population difference / endpoint difference / timing / unresolved]
## Source Quality Assessment
| PMID | Study | Type | N | Quality | Notes |
|------|-------|------|---|---------|-------|
| 12345678 | EMPA-REG | RCT | 7,020 | High | Industry-funded but well-designed |
| 23456789 | Meta-analysis | MA | 45,000 | High | Published in Lancet |
## Validated Knowledge Base
[List of facts we're confident in, with PMIDs]
1. **SGLT2 inhibitors reduce CV death in T2DM with established CVD** (PMID: 12345678, 23456789)
2. **Benefit on HF hospitalization is consistent across the class** (PMID: 34567890, 45678901)
3. ...
Critical: Read from files, not memory.
# Read all thread files
cat ~/research_{topic}/threads/*.md
# Read validation
cat ~/research_{topic}/validation.md
Write synthesis.md:
# Synthesis: {Topic}
## Cross-Thread Patterns
[What themes emerge across multiple threads?]
## Key Insights
1. [Insight that required combining multiple threads]
2. [Insight that wasn't obvious in any single thread]
3. ...
## The Answer
[Direct response to the primary research question, with PMID citations]
## Evidence Strength Assessment
- **Strong evidence (multiple RCTs):** [claims]
- **Moderate evidence (single RCT or consistent observational):** [claims]
- **Limited evidence (observational only):** [claims]
- **Expert opinion / guideline extrapolation:** [claims]
## Remaining Gaps
[What we still don't know and would need to investigate further]
Write report.md using the synthesis:
# {Title}
## Executive Summary
[3-5 sentences: question, key finding, main conclusion with strongest PMID]
## Research Question and Scope
[From plan.md]
## Methodology
- Database: PubMed via NCBI MCP
- Search date: [date]
- Total articles screened: [N]
- Articles included: [N]
- Study types: [breakdown]
## Findings
### {Theme 1}
[Narrative synthesis with inline PMID citations]
### {Theme 2}
...
## Analysis
[Patterns, implications, connections]
## Conclusions
1. [Primary conclusion with evidence level]
2. [Secondary conclusions]
## Clinical Implications
[If applicable: what this means for practice]
## Limitations
- [Search limitations]
- [Evidence gaps]
- [Potential biases]
## References
[Full reference list with PMIDs and DOIs]
1. Author A, Author B, et al. Title. Journal. Year;Vol:Pages. PMID: XXXXXXXX. DOI: XX.XXXX/XXXXX
2. ...
Use when: Comparing 2-5 similar entities (drugs, devices, techniques)
User: "Compare CV outcomes of GLP-1 agonists"
→ Thread per drug (semaglutide, tirzepatide, liraglutide)
→ All threads parallel (same PubMed structure)
→ Comparison matrix synthesis
Use when: Topic has debate or controversy
User: "Analyze the evidence on aggressive LDL lowering"
→ Thread 1: Evidence FOR aggressive targets (PubMed: LDL <55 outcomes)
→ Thread 2: Evidence AGAINST/concerns (PubMed: LDL lowering adverse effects)
→ Thread 3: Current guidelines (fetch ACC/ESC guideline URLs)
→ Threads 1-2 parallel, Thread 3 after
Use when: Need both primary evidence and clinical guidance
User: "What's the evidence on TAVR durability?"
→ Thread 1: Trial data (PubMed: TAVR long-term outcomes RCT)
→ Thread 2: Registry data (PubMed: TAVR registry durability)
→ Thread 3: Guidelines (fetch ACC/ESC valve guidelines)
→ All parallel
Use when: Understanding how evidence has evolved
User: "How has heart failure treatment evolved?"
→ Thread 1: Pre-neurohormonal era (PubMed: heart failure treatment 1980-1990)
→ Thread 2: ACE/ARB/BB era (PubMed: heart failure ACE inhibitor landmark)
→ Thread 3: Modern era ARNI/SGLT2 (PubMed: heart failure SGLT2 ARNI)
→ Sequential (each builds context for next)
| Pitfall | Symptom | Fix |
|---|---|---|
| Context overflow | Losing track of earlier findings | Write to files every 5-7 tool calls |
| Confirmation bias | All sources agree suspiciously | Search for contradicting evidence explicitly |
| Recency bias | Only 2023-2024 sources | Include landmark trials regardless of date |
| Source homogeneity | All RCTs, no guidelines | Add guideline thread for clinical context |
| Scope creep | Research expanding endlessly | Return to plan.md, enforce boundaries |
| Premature synthesis | Concluding before validation | Complete Step 4 before Step 5 |
| Memory-based synthesis | Citing from recall | Read files explicitly during Step 5 |
| Non-PubMed citations | Citing Perplexity/web | Delete and replace with PubMed source |
User: "Research the current evidence on colchicine for cardiovascular prevention"
Step 1: Initialize
mkdir -p ~/research_colchicine_cv/sources
mkdir -p ~/research_colchicine_cv/threads
Step 2: Plan (write to plan.md)
Step 3: Execute
# Parallel searches
pubmed_search_articles(queryTerm="colchicine cardiovascular randomized controlled trial", maxResults=15)
pubmed_search_articles(queryTerm="colchicine inflammation atherosclerosis mechanism", maxResults=10)
pubmed_search_articles(queryTerm="colchicine adverse effects cardiovascular", maxResults=10)
# Fetch top results
pubmed_fetch_contents(pmids=["31733140", "32865377", "37634428"]) # COLCOT, LoDoCo2, CLEAR
# Write to thread files
Step 4: Validate
Step 5: Synthesize
Step 6: Report
This skill provides research foundation for:
cardiology-editorial → Use research output for trial analysiscardiology-newsletter-writer → Research before writingyoutube-script-master → Research for script evidence basex-post-creator-skill → Research before tweet generationWorkflow:
deep-researcher first (this skill)Use this skill when you need: