Meta-analysis topic discovery and feasibility assessment. Professor-first (profile → gap) or Topic-first (question → gap → co-author). Pre-protocol phase from idea to ranked topic list.
npx skills add https://github.com/Aperivue/medsci-skills --skill ma-scout
You are helping a medical researcher discover meta-analysis topics.
Two modes are available depending on the starting point.
This skill handles the pre-protocol phase — from idea to ranked topic list.
For actual MA execution (PROSPERO, screening, analysis), hand off to /meta-analysis.
Determine the mode from user input:
| Signal | Mode |
|--------|------|
| Professor name or profile URL provided | A: Professor-first |
| Clinical question, keyword, trend, or "find me a topic" | B: Topic-first |
| Both supplied (e.g., "this topic with this professor") | A (topic as filter) |
If ambiguous, ask the user whether to search by professor (supervisor-first) or by
topic (question-first).
> Mode A (Professor-first): Phase 0 → 1 → 2 → 3 → 4 → 5
> Mode B (Topic-first): T-Phase 0 → T-1 → T-2 → T-3 → T-4 → T-5
> Phase 2 (MA Gap Analysis) and Phase 4 (README template) are shared between both modes.
Goal: Resolve author identity before any search, and confirm user's relationship context.
CRITICAL — Do this BEFORE any PubMed search:
"[Full Name]"[Author] (e.g., "Ha Hyun Kwon"[Author]){detected affiliation} matches the professor's history,and request the user's relationship to the professor so topic proposals can be
tuned accordingly.
"[Full Name]" radiology scholar)"[Full Name]" researchgate radiology)Goal: Identify the professor's 5-6 distinct research pillars using PubMed E-utilities API.
CRITICAL — Use E-utilities API, NOT WebFetch for PubMed:
~/.claude/skills/search-lit/references/pubmed_eutils.sh + parse_pubmed.pyStep 1 — Total publication count + PMID list:
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
'"[Full Name]"[Author]' 200 \
| python3 ~/.claude/skills/search-lit/references/parse_pubmed.py esearch
Step 2 — Fetch metadata for MeSH-based clustering (parallel):
# Get PMIDs from Step 1, then fetch summaries
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh fetch_json \
"PMID1,PMID2,..." \
| python3 ~/.claude/skills/search-lit/references/parse_pubmed.py esummary
Step 3 — Topic-specific counts (launch 4-5 searches in parallel via Bash):
# Run these in parallel Bash calls
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
'"[Full Name]"[Author] AND "keyword1"' 5
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
'"[Full Name]"[Author] AND "keyword2"' 5
# ... repeat for each suspected pillar keyword
Step 4 — MeSH term extraction for automatic pillar clustering:
# Fetch full XML for top-cited papers to extract MeSH headings
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh fetch \
"PMID1,PMID2,...,PMID20" \
| python3 -c "
import sys, xml.etree.ElementTree as ET
from collections import Counter
root = ET.fromstring(sys.stdin.read())
mesh_counts = Counter()
for article in root.findall('.//PubmedArticle'):
for mh in article.findall('.//MeshHeading/DescriptorName'):
mesh_counts[mh.text] += 1
for term, count in mesh_counts.most_common(30):
print(f'{count:3d} {term}')
"
→ Top MeSH terms reveal natural research pillars (e.g., "Colonography, Computed Tomographic" = CTC pillar).
Step 5 — Google Scholar profile (parallel with PubMed calls):
"[Full Name]" radiology scholar google for h-index, citation dataOutput: Pillar Summary Table
| Pillar | Domain | Representative keywords | MeSH terms | Est. # papers |
|--------|--------|-------------------------|-----------|---------------|
| 1 | ... | ... | ... | ~N+ |
Goal: For each pillar, determine if a viable MA topic exists using PubMed + Consensus + Scholar Gateway + bioRxiv.
For each pillar (run in parallel using meta-analyst agents):
# Existing MAs (structured count)
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
'[pillar keywords] AND ("meta-analysis"[pt] OR "systematic review"[pt])' 50
# Primary studies with extractable outcomes
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
'[pillar keywords] AND ("sensitivity" OR "specificity" OR "accuracy" OR "prognosis" OR "outcome")' 50
Use mcp__claude_ai_Consensus__search to find existing SRs/MAs that PubMed keyword search might miss:
query: "systematic review OR meta-analysis [pillar topic] [imaging modality]"
Consensus returns citation-ranked results — check if any highly-cited MA already covers the proposed scope.
Limit: max 3 Consensus calls per Phase 2 batch (rate limit).
Use mcp__claude_ai_Scholar_Gateway__semanticSearch for:
Use mcp__claude_ai_bioRxiv__search_preprints to catch:
query: "[pillar keywords] meta-analysis OR systematic review"
server: "medrxiv" (for clinical topics)
| Factor | Criteria |
|--------|----------|
| MA gap | 0 existing = best, 1-3 = check scope overlap, >5 = saturated |
| Primary k | ≥8 for DTA, ≥6 for prognostic (minimum), ≥15 ideal |
| Recency | Last MA >5 years old = update opportunity |
| Competition | Check 2024-2026 for very recent MAs that block entry |
site:crd.york.ac.uk/prospero [topic keywords]https://www.crd.york.ac.uk/prospero/#searchadvancedestimated k: ~130 (raw) → ~20–40 (extractable DTA data)Goal: Rank all viable topics by composite score.
Score each candidate on 5 criteria (★1-5):
| Criteria | Weight | Description |
|----------|--------|-------------|
| Professor fit | Highest | Core area of the professor's career, publication count, distinctive contribution |
| MA gap | High | No prior MA > ≥5 yr since last MA > recent MA exists |
| Feasibility (k) | High | Number of includable studies and extractability of 2×2 or HR data |
| Clinical impact | Medium | Whether the topic directly informs clinical decision-making |
| Execution ease | Medium | Completable from literature alone; difficulty of managing heterogeneity |
Output: Ranked Topic Table
| Rank | Topic | Professor's Pillar | Prior MA | Estimated k (raw→realistic) | PROSPERO competition | Verdict |
|------|-------|--------------------|----------|-----------------------------|----------------------|---------|
| 1 | ... | ... | 0 | ~98 → 15–30 | None | ✅ Best fit |
Goal: Create project folders and README for each viable topic.
{working_dir}/ma-scout/{initials}_{professor_name}/{NN}_{topic_slug}/ (within professor folder){initials}_{name} (e.g., KDK_Kim, LKS_Lee)ls before creatingLoad the bilingual template block from
${CLAUDE_SKILL_DIR}/references/project_readme_template.md and copy it into
{topic_folder}/README.md. The reference covers both supervised (Mode A) and
solo-mode (Mode B, no supervisor) variants and contains the PICO/PIRD frame,
preliminary search, target journal table, and backward-planned timeline.
Goal: Persist findings for the user.
/manage-project).When all major pillars are saturated (>5 prior MAs), try these angles:
Before finalizing a topic as viable:
After MA Scout completes:
/meta-analysis: When a topic is approved and ready for PROSPERO protocol (README has PICO + search strategy ready)manage-project: When project folder needs full scaffoldingsearch-lit: When deeper preliminary search is needed before committing/analyze-stats: When feasibility requires power/sample-size calculation for the estimated kFor efficiency, launch multiple agents and API calls in parallel:
Phase 0 (Identity):
"[Full Name]"[Author] → total count + PMIDs (FIRST)Phase 1 (Profile — all parallel):
Phase 2 (MA Gap — multi-source parallel):
Phase 3 (Ranking): Sequential, uses Phase 2 outputs.
Phase 4 (Scaffolding): Sequential, creates folders + PROSPERO-ready READMEs.
Total (Mode A): 5-8 parallel agents per professor, ~8-12 minutes per professor.
T-Phase 0: Sequential (user interaction for scope clarification).
T-Phase 1 (Landscape — all angles in parallel):
T-Phase 2 (Deep-dive): Same as Mode A Phase 2, only for viable angles (typically 1-2).
T-Phase 4 (Co-author — if needed):
Total (Mode B): ~5-8 minutes per topic scan (faster than Mode A — no profile exploration).
server: "medrxiv" for clinical topics, server: "biorxiv" for preclinical.Goal: Refine the user's clinical question into a searchable, PROSPERO-registrable scope.
user input: "AI for lung nodule malignancy prediction"
→ variant 1: AI vs radiologist for lung nodule malignancy prediction (DTA)
→ variant 2: Radiomics for lung nodule malignancy (DTA)
→ variant 3: Deep learning for incidental pulmonary nodule management (prognostic)
→ variant 4: AI-assisted Lung-RADS upgrade accuracy (DTA)
→ variant 5: Low-dose CT AI for lung cancer screening (DTA)
Goal: For each selected angle, rapidly assess the MA landscape.
Run all angles in parallel. For each angle:
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
'[topic keywords] AND ("meta-analysis"[pt] OR "systematic review"[pt])' 50
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
'[topic keywords] AND ("sensitivity" OR "specificity" OR "hazard" OR "outcome")' 100
query: "systematic review [topic] [modality]"
Check for MAs using different terminology.
query: "[topic] meta-analysis"
server: "medrxiv"
WebSearch: site:crd.york.ac.uk/prospero [topic keywords]
Output: Landscape Summary Table
| Variant | Existing MAs | Primary k (raw) | k (realistic) | PROSPERO | Preprint MA | Verdict |
|---------|--------------|-----------------|---------------|----------|-------------|---------|
| 1 | 3 | 120 | 18-36 | 1 | 0 | ⚠️ Competitive |
| 2 | 0 | 85 | 13-25 | 0 | 0 | ✅ Optimal |
Goal: For viable angles (MA ≤ 2, no PROSPERO conflict), run full gap analysis.
This phase uses the same Phase 2 (MA Gap Analysis) as Mode A — steps 2a through 2h.
The only difference: no "Professor fit" to evaluate, so focus on:
Goal: Rank viable topics with weights adjusted for topic-first approach.
| Criteria | Weight | Description |
|----------|--------|-------------|
| MA gap | Highest | No existing MA > update opportunity > saturated |
| Feasibility (k) | Highest | k_realistic ≥ 8 (DTA) or ≥ 6 (prognostic) |
| User domain fit | High | Does it match the user's area of expertise? |
| Clinical impact | Medium | Potential to change guidelines; directly tied to clinical decisions |
| Co-author availability | Medium | Access to a domain expert (existing relationship or easy to reach) |
| Execution ease | Medium | Can be done solo vs requires expert interpretation |
Output: Ranked Topic Table
| Rank | Topic | Existing MAs | Est. k | PROSPERO | Co-author needed | Overall |
|------|-------|--------------|--------|----------|------------------|---------|
| 1 | ... | 0 | 25 | None | Optional | ✅ Optimal |
Goal: If the user wants a senior co-author, find candidates.
Strategy 1 — Existing network (memory-based):
Strategy 2 — PubMed reverse search:
# Find prolific authors in this specific topic
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
'[topic keywords] AND ("{user_country}"[Affiliation])' 100
Then:
Strategy 3 — Self-led (no senior co-author):
Output: Co-author recommendation table or a "solo-viable" judgment.
Goal: Create project folder and PROSPERO-ready README.
{working_dir}/ma-scout/TOPIC/TOPIC/ prefix (not professor initials){NN}_{Topic_Abbreviation}/ (e.g., 01_AI_Lung_Nodule_DTA/)references/project_readme_template.md), with these changes:
Supervisor: → Lead: {user_name} or Lead: {user_name} + {co-author}Domain: {subspecialty} instead.Professor's Authority → Team Expertise (user's credentials + co-author if any)Timeline template (self-led):
| Step | Expected timing | Precondition |
|------|-----------------|--------------|
| PROSPERO registration | {YYYY-MM} | topic confirmed |
| Search complete | +1 week | PROSPERO registration |
| Screening complete | +2 weeks | 2nd reviewer secured |
| Data extraction | +3 weeks | screening consensus |
| Analysis + draft | +5 weeks | data lock |
| Co-author review | +7 weeks | draft complete |
| Submission | +8 weeks | final approval |
When the user asks for topic suggestions without a specific idea:
bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \
'"no meta-analysis" AND "radiology"[Journal] AND 2024:2026[dp]' 30
"practice guideline" AND "insufficient evidence" AND [radiology subspecialty]Before finalizing a topic-first MA as viable:
After MA Scout identifies viable topics, run the pre-proposal pipeline to prepare
a "ready-to-propose" package before contacting the professor.
[topic] AND [outcome keywords][topic] AND ("meta-analysis"[pt] OR "systematic review"[pt])fetch_json → esummary (batch 40-50 PMIDs)candidates.md — full triage table + PRISMA flow + gap findingREADME.md — updated Preliminary Search section with actual numbersThe pre-proposal gives the professor:
Integration with protocols.io API for managing scientific protocols. This skill should be used when working with protocols.io to search, create, update, or publish protocols; manage protocol steps and materials; handle discussions and comments; organize workspaces; upload and manage files; or integrate protocols.io functionality into workflows. Applicable for protocol discovery, collaborative protocol development, experiment tracking, lab protocol management, and scientific documentation.
Analyzes job descriptions and generates tailored resumes that highlight relevant experience, skills, and achievements to maximize interview chances
Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.
Build and distribute Expo development clients locally or via TestFlight
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.
Benchling R&D platform integration. Access registry (DNA, proteins), inventory, ELN entries, workflows via API, build Benchling Apps, query Data Warehouse, for lab data management automation.
Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.
Take aperivue/ma-scout from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.