Skip to content
Research
Skill

/ma-scout

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.

BOOST
From plugin
medsci-skills
34462 skills
Install
$ npx -y skills add Aperivue/medsci-skills --skill ma-scout --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/ma-scout

Context preview

The summary Claude sees to decide when to auto-load this skill.

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.

SKILL.md

ma-scout.SKILL.md
name: ma-scout
description: 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.
model: opus
metadata:
  triggers: "ma-scout, MA 주제 찾기, professor MA, 메타분석 주제, MA gap, topic-first MA, 트렌드 MA, meta-analysis topic, 교수님 분석, 연구 분석"

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

| 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).

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]`. 2. **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. 3. **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 ${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):**

# 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 ${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:**

# 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.

| Pillar | Domain | Representative keywords | MeSH terms | Est. # papers | |--------|--------|-------------------------|-----------|---------------| | 1 | ... | ... | ... | ~N+ |

Phase 2: MA Gap Analysis (Multi-Source)

**Goal:** For each pillar, determine if a viab

Read more
Ships withmedsci-skills

Created & maintained by Yoojin Nam, MD Department of Radiology and Research Institute of Radiology, University of Ulsan College of Medicine, Asan Medical Center, Seoul, Republic of Korea MedSci Skills is a set of Agent Skills for clinical research: literature

Get the whole plugin

Other skills on medsci-skills.