$npx -y skills add Aperivue/medsci-skills --skill ma-scoutMeta-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.
| 1 | # MA Scout Skill |
| 2 | |
| 3 | You are helping a medical researcher discover meta-analysis topics. |
| 4 | Two modes are available depending on the starting point. |
| 5 | |
| 6 | This skill handles the **pre-protocol phase** — from idea to ranked topic list. |
| 7 | For actual MA execution (PROSPERO, screening, analysis), hand off to `/meta-analysis`. |
| 8 | |
| 9 | ## Mode Selection |
| 10 | |
| 11 | Determine the mode from user input: |
| 12 | |
| 13 | | Signal | Mode | |
| 14 | |--------|------| |
| 15 | | Professor name or profile URL provided | **A: Professor-first** | |
| 16 | | Clinical question, keyword, trend, or "find me a topic" | **B: Topic-first** | |
| 17 | | Both supplied (e.g., "this topic with this professor") | **A** (topic as filter) | |
| 18 | |
| 19 | If ambiguous, ask the user whether to search by professor (supervisor-first) or by |
| 20 | topic (question-first). |
| 21 | |
| 22 | ## Communication Rules |
| 23 | |
| 24 | - Communicate with the user in their preferred language (typically Korean). |
| 25 | - Research questions, PICO/PIRD, and README content in English. |
| 26 | - Medical terminology always in English. |
| 27 | |
| 28 | --- |
| 29 | |
| 30 | ## Inputs |
| 31 | |
| 32 | ### Mode A: Professor-first |
| 33 | - Professor name (native-language + English) |
| 34 | - Profile URL (ScholarWorks, SKKU Faculty, Google Scholar, ORCID) |
| 35 | - PubMed author link (preferably with cauthor_id for disambiguation) |
| 36 | - Known specialty (e.g., "thoracic imaging", "abdominal imaging") |
| 37 | - Affiliation history (e.g., "Hospital A → Hospital B → retired") |
| 38 | - Minimum required: **name + at least one profile URL or PubMed link** |
| 39 | |
| 40 | ### Mode B: Topic-first |
| 41 | - Clinical question or keyword (e.g., "AI for lung-nodule malignancy prediction", "dual-energy CT body composition") |
| 42 | - Radiology subspecialty scope (e.g., thoracic, abdominal, neuro) |
| 43 | - MA type preference (DTA, prognostic, intervention — optional) |
| 44 | - Desired role: solo first author / co-first / supervisor-matched |
| 45 | - Minimum required: **clinical question or keyword** |
| 46 | |
| 47 | --- |
| 48 | |
| 49 | ## Workflow |
| 50 | |
| 51 | > **Mode A (Professor-first):** Phase 0 → 1 → 2 → 3 → 4 → 5 |
| 52 | > **Mode B (Topic-first):** T-Phase 0 → T-1 → T-2 → T-3 → T-4 → T-5 |
| 53 | > Phase 2 (MA Gap Analysis) and Phase 4 (README template) are shared between both modes. |
| 54 | |
| 55 | --- |
| 56 | |
| 57 | # ═══════════════════════════════════════════ |
| 58 | # MODE A: PROFESSOR-FIRST WORKFLOW |
| 59 | # ═══════════════════════════════════════════ |
| 60 | |
| 61 | ### Phase 0: Disambiguation & Context Confirmation |
| 62 | |
| 63 | **Goal:** Resolve author identity before any search, and confirm user's relationship context. |
| 64 | |
| 65 | **CRITICAL — Do this BEFORE any PubMed search:** |
| 66 | |
| 67 | 1. **Resolve full English name first:** |
| 68 | - If cauthor_id is provided → fetch that specific PMID page to get full name + affiliation |
| 69 | - NEVER start with initials-only search (e.g., "Ha HK") — common Korean initials cause massive contamination |
| 70 | - First search must be `"[Full Name]"[Author]` (e.g., `"Ha Hyun Kwon"[Author]`) |
| 71 | |
| 72 | 2. **Confirm affiliation chain with user:** |
| 73 | - Ask the user whether `{detected affiliation}` matches the professor's history, |
| 74 | and request the user's relationship to the professor so topic proposals can be |
| 75 | tuned accordingly. |
| 76 | - This prevents wrong-institution assumptions |
| 77 | - Skip only if user already provided explicit affiliation history |
| 78 | |
| 79 | 3. **Profile URL fallback chain** (Scopus requires auth, so plan alternatives): |
| 80 | - 1st: PubMed full name search (always works) |
| 81 | - 2nd: Google Scholar profile (WebSearch `"[Full Name]" radiology scholar`) |
| 82 | - 3rd: ResearchGate profile (WebSearch `"[Full Name]" researchgate radiology`) |
| 83 | - 4th: ScholarWorks / SKKU / university faculty page (if URL provided) |
| 84 | - Last: Scopus/ScienceDirect (often fails due to auth — do NOT rely on it) |
| 85 | |
| 86 | --- |
| 87 | |
| 88 | ### Phase 1: Profile Exploration (E-utilities API) |
| 89 | |
| 90 | **Goal:** Identify the professor's 5-6 distinct research pillars using PubMed E-utilities API. |
| 91 | |
| 92 | **CRITICAL — Use E-utilities API, NOT WebFetch for PubMed:** |
| 93 | - Scripts: `~/.claude/skills/search-lit/references/pubmed_eutils.sh` + `parse_pubmed.py` |
| 94 | - Rate limit: 350ms between calls (100ms with NCBI_API_KEY) |
| 95 | - These are faster, more reliable, and return structured data (JSON/XML) |
| 96 | |
| 97 | **Step 1 — Total publication count + PMID list:** |
| 98 | ```bash |
| 99 | bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh search \ |
| 100 | '"[Full Name]"[Author]' 200 \ |
| 101 | | python3 ~/.claude/skills/search-lit/references/parse_pubmed.py esearch |
| 102 | ``` |
| 103 | |
| 104 | **Step 2 — Fetch metadata for MeSH-based clustering (parallel):** |
| 105 | ```bash |
| 106 | # Get PMIDs from Step 1, then fetch summaries |
| 107 | bash ~/.claude/skills/search-lit/references/pubmed_eutils.sh fetch_json \ |
| 108 | "PMID1,PMID2,..." \ |
| 109 | | python3 ~/.claude/skills/search-lit/references/parse_pubmed.py esummary |
| 110 | ``` |
| 111 | |
| 112 | **Step 3 — Topic-specific counts (launch 4-5 searches in parallel via Bash):** |
| 113 | ```bash |
| 114 | # Run these in parallel Bash calls |
| 115 | bash ~/.claude/skills/search-lit/referen |