aperivue/medsci-skills/ma-scout

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Use when looking for a meta-analysis topic before any protocol exists. Starts from a professor's publication profile or from a clinical question, finds gaps, assesses feasibility and returns a ranked topic list. Running the review itself is /meta-analysis.

Install

npx vskill@latest install aperivue/medsci-skills/ma-scout

SKILL.md

MA Scout Skill

This skill handles the pre-protocol phase of a meta-analysis — from idea to ranked topic list. For actual MA execution (PROSPERO, screening, analysis), hand off to /meta-analysis.

Mode Selection

SignalMode
Professor name or profile URL providedA: 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).

Inputs

Mode A: Professor-first
  • Professor name (native-language + English); profile URL (ScholarWorks, SKKU Faculty, Google

Scholar, ORCID); PubMed author link (preferably with cauthor_id for disambiguation); known specialty; affiliation history (e.g., "Hospital A → Hospital B → retired")

  • Minimum required: name + at least one profile URL or PubMed link
Mode B: Topic-first
  • Clinical question or keyword; radiology subspecialty scope; MA type preference (DTA,

prognostic, intervention — optional); desired role (solo first author / co-first / supervisor-matched)

  • Minimum required: clinical question or keyword

Workflow

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.

Query PubMed with /search-lit's E-utilities scripts, not WebFetch — they are faster and return structured JSON/XML: ${CLAUDE_SKILL_DIR}/../search-lit/references/pubmed_eutils.sh and parse_pubmed.py beside it. Rate limit: 350 ms between calls (100 ms with NCBI_API_KEY).

MODE A: PROFESSOR-FIRST WORKFLOW

Phase 0: Disambiguation & Context Confirmation

Resolve the author's identity BEFORE any PubMed search:

  1. Resolve the full English name first. If a cauthor_id is provided, fetch that PMID page to

get the full name + affiliation. NEVER start with an initials-only search, because common Korean/Asian initials (e.g., "Lee KS") return 300+ papers with massive contamination. The first search must be "[Full Name]"[Author].

  1. Confirm the affiliation chain with the user. Ask whether {detected affiliation} matches

the professor's history (professors move institutions — do not assume), and ask the user's relationship to the professor so topic proposals can be tuned. Skip only if the user already gave an explicit affiliation history.

  1. Profile URL fallback chain:
  • 1st: PubMed full-name search (always works)
  • 2nd: Google Scholar profile (WebSearch "[Full Name]" radiology scholar)
  • 3rd: ResearchGate profile (WebSearch "[Full Name]" researchgate radiology)
  • 4th: ScholarWorks / SKKU / university faculty page (if URL provided)
  • Last: Scopus/ScienceDirect — returns 403 or a login redirect; never rely on it
Phase 1: Profile Exploration (E-utilities API)

Goal: Identify the professor's 5-6 distinct research pillars.

Step 1 — Total publication count + PMID list:

bash
bash ${CLAUDE_SKILL_DIR}/../search-lit/references/pubmed_eutils.sh search \
'"[Full Name]"[Author]' 200 \
| python3 ${CLAUDE_SKILL_DIR}/../search-lit/references/parse_pubmed.py esearch

If the parser exits non-zero (an error body, or no count), the count is unknown — re-run the search; never record it as 0 papers or 0 MAs.

Step 2 — Fetch metadata for MeSH-based clustering (parallel):

bash
# Get PMIDs from Step 1, then fetch summaries
bash ${CLAUDE_SKILL_DIR}/../search-lit/references/pubmed_eutils.sh fetch_json \
"PMID1,PMID2,..." \
| python3 ${CLAUDE_SKILL_DIR}/../search-lit/references/parse_pubmed.py esummary

Step 3 — Topic-specific counts (launch 4-5 searches in parallel Bash calls):

bash
bash ${CLAUDE_SKILL_DIR}/../search-lit/references/pubmed_eutils.sh search \
'"[Full Name]"[Author] AND "keyword1"' 5
bash ${CLAUDE_SKILL_DIR}/../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:

bash
# Fetch full XML for top-cited papers to extract MeSH headings
bash ${CLAUDE_SKILL_DIR}/../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): WebSearch "[Full Name]" radiology scholar google for h-index and citation data; WebFetch any other profile URL the user provided (skip Scopus).

Output: Pillar Summary Table. Publication counts and pillar assignments come from E-utilities output and the h-index from the Scholar profile — never estimate them.

PillarDomainRepresentative keywordsMeSH termsEst. # papers
1.........~N+
Phase 2: MA Gap Analysis (Multi-Source)

Goal: For each pillar, determine if a viable MA topic exists using PubMed + Consensus + Scholar Gateway + bioRxiv + PROSPERO.

Run pillars in parallel: up to 4 subagents, each covering 1-2 pillars and running 2a–2g, each reporting raw k, realistic k and every source checked. If PubMed returns 0 or Consensus/Scholar Gateway is unavailable, state that limitation rather than guessing.

2a. PubMed E-utilities — Existing MAs + Primary studies
bash
# Existing MAs (structured count)
bash ${CLAUDE_SKILL_DIR}/../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_SKILL_DIR}/../search-lit/references/pubmed_eutils.sh search \
'[pillar keywords] AND ("sensitivity" OR "specificity" OR "accuracy" OR "prognosis" OR "outcome")' 50
2b. Consensus MCP — Semantic MA gap detection

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, in total across all agents (rate limit). If rate-limited, wait 30 s and retry once.

2c. Scholar Gateway — Semantic similarity search

Use mcp__claude_ai_Scholar_Gateway__semanticSearch to find MAs under different terminology (e.g., "pooled analysis" instead of "meta-analysis"), scope-overlapping MAs that use different keywords, and methodological reviews that partially cover the topic.

2d. bioRxiv/medRxiv — In-press competition detection

Use mcp__claude_ai_bioRxiv__search_preprints to catch MAs posted as preprints but not yet in PubMed, SR/MA protocols shared as preprints, and very recent primary studies that could change feasibility.

query: "[pillar keywords] meta-analysis OR systematic review"
server: "medrxiv" (clinical topics; "biorxiv" for preclinical)
2e. Assessment matrix
FactorCriteria
MA gap0 existing = best, 1-3 = check scope overlap, >5 = saturated
Primary k≥8 for DTA, ≥6 for prognostic (minimum), ≥15 ideal
RecencyLast MA >5 years old = update opportunity
CompetitionCheck the last two years for very recent MAs that block entry
2f. PROSPERO competition check (MANDATORY)
  • Search PROSPERO via WebSearch site:crd.york.ac.uk/prospero [topic keywords]; also try WebFetch https://www.crd.york.ac.uk/prospero/#searchadvanced
  • Look for registered-but-unpublished protocols that could block entry; if a PROSPERO match is found → flag as 🚫 competition risk in ranking
  • Record the exact query, the search date and one status: searched (match found), searched (no match), or not checked (unavailable/failed); a fetch that returns the site shell or an error page instead of a result list is not checked. Only searched (no match) clears the PROSPERO gate.
2g. Realistic k estimation
  • Raw PubMed hit count is NOT the real k — most studies lack 2x2 data or HR, so raw counts

overestimate by 3-7x

  • Apply conservative discount: k_realistic ≈ raw_count × 0.15–0.30 for DTA topics
  • Flag if k_realistic < 8 (DTA) or < 6 (prognostic) as ⚠️ feasibility risk
  • Report both raw and realistic estimates, e.g., estimated k: ~130 (raw) → ~20–40 (extractable DTA data)
2h. Niche subtopic discovery (if pillar appears saturated, >5 prior MAs)

Try these angles, and use Consensus to check whether the niche angle has already been covered:

  1. "First MA" rule: the professor's most unique/niche subtopic where MA = 0
  2. AI/radiomics overlay: classical imaging topic + AI approach
  3. Treatment response: diagnosis MAs are often saturated; treatment monitoring is often open
  4. Modality comparison: head-to-head (e.g., CEUS vs MRI) is often underserved
  5. Guideline gap: professor-authored guidelines → MA supporting/updating them
  6. Population niche: specific subpopulation, disease subtype, or regional population (e.g., parasitic diseases, TB)
  7. Temporal update: last MA >5 years old + significant new primary studies since
Phase 3: Topic Ranking

Goal: Rank all viable topics by composite score. Score each candidate on 5 criteria (★1-5):

CriteriaWeightDescription
Professor fitHighestCore area of the professor's career, publication count, distinctive contribution
MA gapHighNo prior MA > ≥5 yr since last MA > recent MA exists
Feasibility (k)HighNumber of includable studies and extractability of 2×2 or HR data
Clinical impactMediumWhether the topic directly informs clinical decision-making
Execution easeMediumCompletable from literature alone; difficulty of managing heterogeneity

Output: Ranked Topic Table

RankTopicProfessor's PillarPrior MAEstimated k (raw→realistic)PROSPERO competitionVerdict
1......0~98 → 15–30None✅ Best fit
Phase 4: Folder & README Scaffolding

Goal: Create project folders and README for each viable topic.

  1. Folder location: {working_dir}/ma-scout/{initials}_{professor_name}/{NN}_{topic_slug}/
  • Professor folder: {initials}_{name} (e.g., KDK_Kim, LKS_Lee)
  • NN: sequential number within professor (01, 02, ...); topic_slug: English, underscore-separated
  • Check existing folders with ls before creating
  1. README.md (PROSPERO-ready): copy the template block from

${CLAUDE_SKILL_DIR}/references/project_readme_template.md into {topic_folder}/README.md and fill it (PICO/PIRD frame, preliminary search, target journal table, backward-planned timeline). Write the research question, PICO/PIRD and README content in English, medical terms always in English, unless the user asks for the Korean PI-facing variant that reference names.

Phase 5: Output Summary
  1. Save the ranked topic table and README files to the working directory.
  2. Summarize: total topics scanned, viable topics found, recommended next steps (see Handoff).

MODE B: TOPIC-FIRST WORKFLOW

T-Phase 0: Topic Clarification & Scope

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
322
Repository forks
78
7-day trend score
29

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/aperivue/medsci-skills/ma-scout/badge)](https://verified-skill.com/skills/aperivue/medsci-skills/ma-scout)

Something wrong with this skill or its page? Tell us.