{"id":"e485f134-5f09-4a06-812f-97e379f85e1a","shortId":"pSp4a7","kind":"skill","title":"search-lit","tagline":"Literature search and citation management for medical research. Searches PubMed, Semantic Scholar, and bioRxiv/medRxiv with verified citations. Anti-hallucination — every reference verified via API before inclusion. Generates BibTeX entries.","description":"# Literature Search Skill\n\nYou are assisting a medical researcher with literature searches and citation management for\nmedical research papers. Every reference you produce must be verified against a live database --\nnever generate citations from memory alone.\n\n## Communication Rules\n\n- Communicate with the user in their preferred language.\n- All citation content (titles, abstracts, BibTeX) in English.\n- Medical terminology is always in English.\n\n## Key Directories\n\n- **BibTeX output**: User-specified directory (default: current working directory)\n- **Manuscript workspace**: determined by the user or the calling skill\n\n## Search Tools: MCP (Primary) + E-utilities (Fallback)\n\n### Primary: MCP Tools (Claude.ai Remote)\n\n| Database | MCP Tool | Purpose |\n|----------|----------|---------|\n| PubMed | `mcp__claude_ai_PubMed__search_articles` | Search by query, MeSH terms |\n| PubMed | `mcp__claude_ai_PubMed__get_article_metadata` | Full metadata for a PMID |\n| PubMed | `mcp__claude_ai_PubMed__find_related_articles` | Related articles for a PMID |\n| PubMed | `mcp__claude_ai_PubMed__lookup_article_by_citation` | Verify a citation |\n| PubMed | `mcp__claude_ai_PubMed__convert_article_ids` | Convert between PMID/DOI/PMCID |\n| Semantic Scholar | `mcp__claude_ai_Scholar_Gateway__semanticSearch` | Semantic search across all fields |\n| bioRxiv/medRxiv | `mcp__claude_ai_bioRxiv__search_preprints` | Search preprint servers |\n| bioRxiv/medRxiv | `mcp__claude_ai_bioRxiv__get_preprint` | Full preprint metadata |\n| CrossRef | WebFetch with `https://api.crossref.org/works/{DOI}` | DOI verification |\n\n### Fallback: NCBI E-utilities (Direct API via Bash)\n\nWhen PubMed MCP is unavailable (session timeout, \"MCP session has been terminated\" error,\nor \"No such tool available\" error), fall back to NCBI E-utilities via bundled scripts.\n\n**Detection**: If any `mcp__claude_ai_PubMed__*` call returns an error containing\n\"terminated\", \"not found\", \"not available\", or \"not connected\", switch ALL subsequent\nPubMed calls in this session to E-utilities. Do not retry MCP after a disconnect — it\nwill not recover within the same conversation.\n\n**Scripts** (in `${CLAUDE_SKILL_DIR}/references/`):\n- `pubmed_eutils.sh` — Bash wrapper for NCBI E-utilities API\n- `parse_pubmed.py` — Python parser for E-utilities responses\n\n**Usage patterns:**\n\n```bash\nEUTILS=\"${CLAUDE_SKILL_DIR}/references/pubmed_eutils.sh\"\nPARSER=\"${CLAUDE_SKILL_DIR}/references/parse_pubmed.py\"\n\n# Search PubMed (returns PMIDs)\nbash \"$EUTILS\" search \"diagnostic test accuracy meta-analysis radiology\" 20 \\\n  | python3 \"$PARSER\" esearch\n\n# Get article summaries as markdown table\nbash \"$EUTILS\" fetch_json \"16168343,16085191,31462531\" \\\n  | python3 \"$PARSER\" esummary\n\n# Get detailed metadata\nbash \"$EUTILS\" fetch \"16168343\" \\\n  | python3 \"$PARSER\" efetch\n\n# Generate BibTeX entries\nbash \"$EUTILS\" fetch \"16168343,16085191\" \\\n  | python3 \"$PARSER\" bibtex\n\n# Verify a citation by exact title\nbash \"$EUTILS\" cite_lookup \"Bivariate analysis of sensitivity and specificity\" \\\n  | python3 \"$PARSER\" esearch\n\n# Find related articles for a PMID\nbash \"$EUTILS\" related \"16168343\" 10 \\\n  | python3 \"$PARSER\" esummary\n```\n\n**Rate limiting**: 3 requests/second without API key, 10/sec with NCBI_API_KEY.\nThe script auto-sleeps 350ms between calls. For batch operations, keep calls sequential.\n\n**E-utilities → MCP equivalence:**\n\n| MCP Tool | E-utilities Command | Parser Mode |\n|----------|-------------------|-------------|\n| `search_articles` | `search <query> [retmax]` | `esearch` |\n| `get_article_metadata` | `fetch <pmids>` | `efetch` or `bibtex` |\n| `find_related_articles` | `related <pmid> [retmax]` | `esummary` |\n| `lookup_article_by_citation` | `cite_lookup <title>` | `esearch` → `fetch` |\n| `convert_article_ids` | Not available (use CrossRef DOI lookup) | — |\n\n---\n\n## Workflow\n\n### Phase 1: Search Strategy\n\n1. **Understand the need**: Get the research topic, specific question, or manuscript section\n   that needs references.\n2. **Generate search terms**:\n   - Identify key concepts (Population, Intervention/Exposure, Comparison, Outcome).\n   - Generate MeSH terms for PubMed queries.\n   - Build Boolean queries: `(concept1 OR synonym1) AND (concept2 OR synonym2)`.\n3. **Define scope**:\n   - Date range (default: last 10 years unless user specifies).\n   - Article types (original research, review, meta-analysis, etc.).\n   - Language filter (default: English).\n4. **Present the search plan** to the user before executing. Include the Boolean query,\n   databases to search, and filters.\n\n**Gate:** Wait for user approval before running searches.\n\n### Phase 2: Execute Search\n\n1. **Search PubMed** using `search_articles` with the Boolean query.\n2. **Search Semantic Scholar** using `semanticSearch` with natural language query.\n3. **Search bioRxiv/medRxiv** using `search_preprints` if preprints are relevant.\n4. **Deduplicate** results across databases (match by DOI or title similarity).\n5. **Present results** in a structured table:\n\n```\n| # | Title | Authors (first + last) | Year | Journal | PMID/DOI | Relevance |\n|---|-------|----------------------|------|---------|----------|-----------|\n| 1 | ...   | Kim J, ... Lee S     | 2024 | Radiology | 12345678 | High      |\n```\n\n6. Ask the user to select which papers to include.\n\n### Phase 3: Deep Read\n\nFor each selected paper:\n\n1. **Retrieve full metadata** using `get_article_metadata` (PubMed) or `get_preprint` (bioRxiv).\n2. **Extract key information**:\n   - Study design\n   - Sample size / dataset\n   - Key methods\n   - Primary findings (with specific numbers)\n   - Limitations noted by authors\n3. **Build a literature matrix** if multiple papers selected:\n\n```\n| Paper | Design | N | Key Finding | Limitation | Relevance to Our Study |\n|-------|--------|---|-------------|------------|----------------------|\n```\n\n4. Present the matrix to the user for review.\n\n### Phase 4: Citation Management\n\n#### Anti-Hallucination Protocol\n\nThis is the most critical part of the skill. Follow these rules without exception:\n\n1. **NEVER generate a reference from memory alone.** Every reference must come from an API search result.\n2. **NEVER fabricate DOIs or PMIDs.** If you cannot find a DOI/PMID, mark the reference as `[UNVERIFIED - NEEDS MANUAL CHECK]`.\n3. **Cross-check every reference** against the API result:\n   - Author names (at least first author and last author)\n   - Publication year\n   - Journal name\n   - Article title (exact match, not paraphrased)\n   - Volume and pages (if available)\n4. **If any field does not match**, flag the specific mismatch.\n5. **For DOI verification**, use WebFetch with `https://api.crossref.org/works/{DOI}` to confirm the DOI resolves correctly.\n\n#### BibTeX Generation\n\nFor each reference (verified or not), generate a BibTeX entry with an explicit\n`verified` flag so downstream skills (`/lit-sync`, `/verify-refs`,\n`/write-paper`) can reason about trust without re-running verification:\n\n```bibtex\n@article{FirstAuthorLastName_Year_ShortKey,\n  author    = {Last1, First1 and Last2, First2 and Last3, First3},\n  title     = {Full Title As Retrieved From Database},\n  journal   = {Journal Name},\n  year      = {2024},\n  volume    = {310},\n  number    = {2},\n  pages     = {e234567},\n  doi       = {10.1001/jama.2024.12345},\n  pmid      = {12345678},\n  verified  = {true},\n  verified_by = {pubmed+crossref},\n  verified_on = {2026-04-24},\n}\n```\n\n**`verified` flag values** (required on every entry):\n\n| Value | Meaning | Downstream behavior |\n|---|---|---|\n| `true` | DOI or PMID confirmed via PubMed/CrossRef; title, authors, year all match | Safe to cite; `/write-paper` citekey-only gate passes |\n| `false` | Parsed from text but API lookup failed or returned mismatch | `/verify-refs` flags as UNVERIFIED; manuscript MUST show `[UNVERIFIED - NEEDS MANUAL CHECK]` |\n| `manual` | User explicitly added despite lookup failure | Treated as verified=false by `/verify-refs` but suppresses repeat warnings |\n\n`verified_by` lists the data sources that confirmed the entry (e.g., `pubmed`,\n`crossref`, `semantic_scholar`, or a combination). `verified_on` is the ISO date\nof the most recent successful verification.\n\n**BibTeX key convention**: `FirstAuthorLastName_Year_OneWord` (e.g., `Kim_2024_Validation`).\n\n#### Output\n\n1. Save BibTeX entries to the specified .bib file (append, do not overwrite).\n   Target: `references/library.bib` (candidate pool for `/lit-sync` to import\n   into Zotero). NEVER write to `manuscript/_src/refs.bib` — that is `/lit-sync`'s\n   sole-writer path per `docs/artifact_contract.md`.\n2. Print a summary of all references with verification status:\n\n```\nVerified:    12 references (verified=true)\nUnverified:   1 reference  (verified=false) [NEEDS MANUAL CHECK]\nTotal:       13 references\n```\n\n### Phase 4b: Zotero Library Integration\n\nIf a Zotero MCP server is available, integrate search results with the user's library:\n\n1. **Add papers to Zotero**: Use `zotero_add_by_doi` for DOI-based import (auto-downloads OA PDFs).\n2. **Organize into collections**: Use `zotero_manage_collections` to file into the relevant project collection.\n3. **Check for duplicates**: Use `zotero_search_items` to avoid adding papers already in the library.\n4. **Leverage annotations**: Use `zotero_get_annotations` to reference the user's prior reading notes.\n5. **Write sync audit**: Record collection key, added/skipped/failed counts, and\n   unsynced entries in `references/zotero_collection.json` so Zotero status is\n   auditable rather than a hidden optional side effect.\n\n> Requires Zotero Desktop running with MCP server. Skip this phase if unavailable.\n> If skipped, still write `references/zotero_collection.json` with\n> `status: \"skipped\"` and the reason.\n\n### Phase 5: Full-Text Retrieval\n\nAfter identifying relevant papers, retrieve full-text PDFs for detailed review.\nThis is especially important for meta-analyses where data extraction requires full text.\n\n#### Phase 5a: Open Access Auto-Retrieval\n\nTry sources in order of reliability:\n\n1. **Unpaywall API** (highest quality OA links):\n   ```python\n   import os, requests\n   email = os.environ.get(\"UNPAYWALL_EMAIL\", \"user@example.com\")\n   url = f\"https://api.unpaywall.org/v2/{doi}?email={email}\"\n   r = requests.get(url).json()\n   if r.get(\"best_oa_location\", {}).get(\"url_for_pdf\"):\n       pdf_url = r[\"best_oa_location\"][\"url_for_pdf\"]\n   ```\n\n2. **PubMed Central (PMC)**:\n   - Convert PMID to PMCID via NCBI ID Converter\n   - Download from PMC OA service: `https://www.ncbi.nlm.nih.gov/pmc/articles/PMC{id}/pdf/`\n\n3. **OpenAlex API** (additional OA discovery):\n   ```python\n   url = f\"https://api.openalex.org/works/https://doi.org/{doi}\"\n   # Requires polite pool: add email in User-Agent header or mailto= param\n   r = requests.get(url, headers={\"User-Agent\": f\"MyApp/1.0 (mailto:{email})\"}).json()\n   oa_url = r.get(\"open_access\", {}).get(\"oa_url\")\n   ```\n\n4. **CrossRef landing page**: Follow `https://api.crossref.org/works/{doi}` → publisher link\n   → scrape `<meta name=\"citation_pdf_url\">` tag\n\n#### Phase 5b: Alternative Sources\n\nSome researchers use alternative access methods for paywalled content.\n**Users are responsible for ensuring compliance with their institutional access policies.**\n\nIf an environment variable (e.g., `SCIHUB_BASE`) is set, the skill may use it as an\nalternative PDF source. No specific URLs are provided here — users configure this themselves.\n\nOther options:\n- **Institutional proxy/VPN**: Access publisher sites through institutional EZproxy or VPN\n- **Interlibrary loan (ILL)**: Request through library services for papers not otherwise available\n- **Author contact**: Email corresponding authors for preprints\n\n#### PDF Validation\n\nAlways validate downloaded files before use:\n\n```python\ndef is_valid_pdf(filepath):\n    \"\"\"Check that a downloaded file is actually a PDF, not an HTML redirect.\"\"\"\n    import os\n    if os.path.getsize(filepath) < 10240:  # < 10KB is likely a stub/redirect\n        return False\n    with open(filepath, 'rb') as f:\n        header = f.read(5)\n    return header == b'%PDF-'\n```\n\nAdditional checks:\n- Verify HTTP `Content-Type: application/pdf` header before saving\n- Files under 10KB are almost always HTML login/redirect pages, not real PDFs\n- Some publishers return CAPTCHA pages — these fail the `%PDF-` check\n\n#### Rate Limiting\n\n- Unpaywall: Polite pool (no hard limit with email parameter)\n- OpenAlex: Include email in User-Agent for polite pool access\n- NCBI/PMC: 3 requests/sec without API key, 10/sec with `NCBI_API_KEY`\n- General: 2-second minimum interval between requests to any single host\n\n### Phase 6: Gap Analysis\n\nWhen called during manuscript writing (especially by `/write-paper` Phase 7):\n\n1. **Read the manuscript** to extract all inline citations.\n2. **Compare** cited references against the search results.\n3. **Identify gaps**:\n   - Key papers in the field that are not cited.\n   - Outdated references when newer versions exist.\n   - Missing methodological references (e.g., statistical methods, reporting guidelines).\n4. **Report** findings to the user with specific suggestions.\n\n---\n\n## Specialized Search Modes\n\n### Mode: Systematic Search\n\nFor systematic reviews or comprehensive literature sections:\n\n1. Document the full search strategy (PRISMA-compliant).\n2. Record: database, date of search, query string, number of results.\n3. Track inclusion/exclusion at each screening step.\n4. Output a PRISMA flow diagram data summary.\n\n### Mode: Quick Cite\n\nFor quickly finding a single reference the user describes:\n\n1. User says something like \"that 2023 paper by Smith about AI in chest X-ray.\"\n2. Search PubMed and Semantic Scholar with the described details.\n3. Present top 3 candidates.\n4. User confirms which one.\n5. Generate BibTeX entry.\n\n### Mode: Related Papers\n\nFor expanding from a known paper:\n\n1. User provides a PMID or DOI.\n2. Use `find_related_articles` to get related papers.\n3. Use Semantic Scholar for citation-based recommendations.\n4. Present results ranked by relevance.\n\n### Mode: Embase Browser Automation\n\nEmbase has no public API. Use Chrome browser automation (MCP) to search and export:\n\n1. Navigate to `embase.com` — institutional SSO authenticates automatically.\n   If cookie error (`login?error#`), clear Elsevier/Embase cookies and retry.\n2. Go to **Advanced Search** tab.\n3. Enter Embase-syntax query (Emtree `/exp` + `:ab,ti` field tags).\n   Uncheck \"Map to preferred term in Emtree\" when using explicit `/exp` terms.\n4. After results appear, use \"Select number of items\" dropdown → select total count.\n5. Click **Export** (in Results section) → choose **CSV** format → check fields:\n   Title, Author names, Source, Publication year, Publication type, DOI, Abstract,\n   Language of article, Medline PMID.\n6. Click Export → Download tab opens → click Download.\n7. CSV is in **row format** (records separated by blank rows) — parse with:\n   ```python\n   # Each record = consecutive rows until blank row\n   # Row format: [FIELD_NAME, value1, value2, ...]\n   # AUTHOR NAMES row has multiple values (one per author)\n   ```\n\n**PubMed → Embase query translation:**\n- MeSH `[Mesh]` → Emtree `/exp`\n- `[tiab]` → `:ab,ti`\n- `[Title/Abstract]` → `:ab,ti`\n- Boolean operators stay the same (AND, OR)\n- Phrase search: use single quotes in Embase (`'artificial ascites'`)\n\n---\n\n## Error Handling\n\n- If a search returns 0 results, broaden the query (remove one concept or use broader MeSH terms) and retry.\n- **CrossRef HTTP errors (token-saving rules):**\n  - **403 (rate-limited):** Do NOT retry. Skip CrossRef silently → verify via PubMed title search instead.\n  - **303 (redirect):** Follow the redirect if possible. If not, skip CrossRef → PubMed fallback.\n  - **Any repeated failure:** After the first CrossRef 403/303 in a session, assume CrossRef is\n    rate-limiting and skip CrossRef for ALL remaining references. Go directly to PubMed title\n    verification. This avoids N×retry token waste.\n  - **Never print raw error messages** like \"Request failed with status code 403.\" Collect\n    failures silently and report a single summary line at the end:\n    `CrossRef unavailable for {N} references (rate-limited). Verified via PubMed instead.`\n- If a DOI does not resolve via CrossRef (after applying the rules above), try searching PubMed by title to confirm the reference exists.\n- If the user provides a reference that cannot be verified by any method, clearly state: \"This reference could not be verified. Please check manually before submission.\"\n- Never silently include an unverified reference.\n\n## What This Skill Does NOT Do\n\n- Does not download from paywalled journals without user-provided credentials or institutional access.\n- Does not assess the quality of evidence (use `/analyze-stats` or `/check-reporting` for that).\n- Does not write the literature review text (use `/write-paper` for that).\n- Does not fabricate any part of a citation.","tags":["search","lit","medsci","skills","aperivue","agent-skills","biostatistics","claude-code","claude-skills","clinical-research","diagnostic-accuracy","irb-protocol"],"capabilities":["skill","source-aperivue","skill-search-lit","topic-agent-skills","topic-biostatistics","topic-claude-code","topic-claude-skills","topic-clinical-research","topic-diagnostic-accuracy","topic-irb-protocol","topic-literature-review","topic-manuscript","topic-medical-ai","topic-medical-research","topic-meta-analysis"],"categories":["medsci-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/Aperivue/medsci-skills/search-lit","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add Aperivue/medsci-skills","source_repo":"https://github.com/Aperivue/medsci-skills","install_from":"skills.sh"}},"qualityScore":"0.499","qualityRationale":"deterministic score 0.50 from registry signals: · indexed on github topic:agent-skills · 98 github stars · SKILL.md body (16,906 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:56:31.599Z","embedding":null,"createdAt":"2026-05-13T12:57:46.530Z","updatedAt":"2026-05-18T18:56:31.599Z","lastSeenAt":"2026-05-18T18:56:31.599Z","tsv":"'-04':966 '-24':967 '/analyze-stats':2262 '/check-reporting':2264 '/exp':1920,1935,2027 '/jama.2024.12345':954 '/lit-sync':908,1098,1109 '/pdf':1390 '/pmc/articles/pmc':1388 '/references':326 '/references/parse_pubmed.py':356 '/references/pubmed_eutils.sh':351 '/v2/':1343 '/verify-refs':909,1011,1034 '/works/':232,880,1444 '/works/https://doi.org/':1402 '/write-paper':910,994,1675,2275 '0':2056 '1':521,524,623,679,706,789,1080,1133,1163,1323,1678,1743,1790,1840,1889 '10':441,574 '10.1001':953 '10/sec':452,1648 '10240':1566 '10kb':1567,1600 '12':1128 '12345678':686,956 '13':1141 '16085191':386,408 '16168343':385,397,407,440 '2':540,620,633,719,806,949,1117,1183,1369,1654,1687,1752,1807,1847,1907 '20':371 '2023':1796 '2024':684,945,1077 '2026':965 '3':447,567,643,699,739,826,1198,1391,1643,1695,1763,1817,1820,1856,1913 '303':2094 '310':947 '31462531':387 '350ms':462 '4':592,653,758,768,860,1214,1437,1721,1770,1822,1865,1937 '403':2078,2154 '403/303':2114 '4b':1144 '5':664,871,1229,1279,1582,1827,1950 '5a':1311 '5b':1451 '6':688,1665,1976 '7':1677,1984 'ab':1921,2029,2032 'abstract':84,1970 'access':1313,1433,1458,1472,1507,1641,2253 'accuraci':366 'across':204,656 'actual':1554 'ad':1025,1208 'add':1164,1170,1407 'added/skipped/failed':1236 'addit':1394,1587 'advanc':1910 'agent':1412,1423,1637 'ai':136,148,161,174,186,198,210,220,279,1801 'almost':1602 'alon':69,796 'alreadi':1210 'altern':1452,1457,1490 'alway':91,1536,1603 'analys':1303 'analysi':369,423,586,1667 'annot':1216,1220 'anti':22,772 'anti-hallucin':21,771 'api':28,242,335,450,455,803,834,1005,1325,1393,1646,1651,1879 'api.crossref.org':231,879,1443 'api.crossref.org/works/':230,878,1442 'api.openalex.org':1401 'api.openalex.org/works/https://doi.org/':1400 'api.unpaywall.org':1342 'api.unpaywall.org/v2/':1341 'appear':1940 'append':1089 'appli':2188 'application/pdf':1594 'approv':615 'articl':139,151,165,167,177,189,376,433,485,490,498,503,511,579,628,712,849,921,1851,1973 'artifici':2048 'ascit':2049 'ask':689 'assess':2256 'assist':39 'assum':2118 'audit':1232,1247 'authent':1895 'author':672,738,836,841,844,925,987,1527,1531,1962,2011,2019 'auto':460,1179,1315 'auto-download':1178 'auto-retriev':1314 'auto-sleep':459 'autom':1874,1883 'automat':1896 'avail':262,290,514,859,1154,1526 'avoid':1207,2138 'b':1585 'back':265 'base':1176,1480,1863 'bash':244,328,346,361,381,394,404,418,437 'batch':466 'behavior':978 'best':1353,1363 'bib':1087 'bibtex':32,85,96,402,411,495,888,898,920,1069,1082,1829 'biorxiv':211,221,718 'biorxiv/medrxiv':17,207,217,645 'bivari':422 'blank':1993,2003 'boolean':558,604,631,2034 'broaden':2058 'broader':2066 'browser':1873,1882 'build':557,740 'bundl':272 'call':114,281,298,464,469,1669 'candid':1095,1821 'cannot':814,2209 'captcha':1613 'central':1371 'check':825,829,1021,1139,1199,1548,1588,1619,1959,2224 'chest':1803 'choos':1956 'chrome':1881 'citat':7,20,47,66,81,179,182,414,505,769,1686,1862,2285 'citation-bas':1861 'cite':420,506,993,1689,1706,1780 'citekey':996 'citekey-on':995 'claud':135,147,160,173,185,197,209,219,278,323,348,353 'claude.ai':127 'clear':1902,2215 'click':1951,1977,1982 'code':2153 'collect':1186,1190,1197,1234,2155 'combin':1056 'come':800 'command':481 'communic':70,72 'compar':1688 'comparison':549 'complianc':1468 'compliant':1751 'comprehens':1740 'concept':546,2063 'concept1':560 'concept2':564 'configur':1500 'confirm':883,983,1046,1824,2198 'connect':293 'consecut':2000 'contact':1528 'contain':285 'content':82,1462,1592 'content-typ':1591 'convent':1071 'convers':320 'convert':188,191,510,1373,1380 'cooki':1898,1904 'correct':887 'correspond':1530 'could':2219 'count':1237,1949 'credenti':2250 'critic':779 'cross':828 'cross-check':827 'crossref':227,516,962,1051,1438,2071,2086,2104,2113,2119,2126,2167,2186 'csv':1957,1985 'current':103 'data':1043,1305,1776 'databas':63,129,606,657,940,1754 'dataset':727 'date':570,1062,1755 'dedupl':654 'deep':700 'def':1543 'default':102,572,590 'defin':568 'describ':1789,1815 'design':724,749 'desktop':1257 'despit':1026 'detail':392,1294,1816 'detect':274 'determin':108 'diagnost':364 'diagram':1775 'dir':325,350,355 'direct':241,2132 'directori':95,101,105 'disconnect':312 'discoveri':1396 'docs/artifact_contract.md':1116 'document':1744 'doi':233,234,517,660,809,873,881,885,952,980,1172,1175,1344,1403,1445,1846,1969,2181 'doi-bas':1174 'doi/pmid':817 'download':1180,1381,1538,1551,1979,1983,2242 'downstream':906,977 'dropdown':1946 'duplic':1201 'e':121,239,269,304,333,341,472,479 'e-util':120,238,268,303,332,340,471,478 'e.g':1049,1075,1478,1716 'e234567':951 'efetch':400,493 'effect':1254 'elsevier/embase':1903 'email':1334,1337,1345,1346,1408,1427,1529,1629,1633 'embas':1872,1875,1916,2021,2047 'embase-syntax':1915 'embase.com':1892 'emtre':1919,1931,2026 'end':2166 'english':87,93,591 'ensur':1467 'enter':1914 'entri':33,403,899,974,1048,1083,1240,1830 'environ':1476 'equival':475 'error':257,263,284,1899,1901,2050,2073,2146 'esearch':374,430,488,508 'especi':1298,1673 'esummari':390,444,501 'etc':587 'eutil':347,362,382,395,405,419,438 'everi':24,53,797,830,973 'evid':2260 'exact':416,851 'except':788 'execut':601,621 'exist':1712,2201 'expand':1835 'explicit':902,1024,1934 'export':1888,1952,1978 'extract':720,1306,1683 'ezproxi':1512 'f':1340,1399,1424,1579 'f.read':1581 'fabric':808,2280 'fail':1007,1616,2150 'failur':1028,2109,2156 'fall':264 'fallback':123,236,2106 'fals':1000,1032,1136,1573 'fetch':383,396,406,492,509 'field':206,863,1702,1923,1960,2007 'file':1088,1192,1539,1552,1598 'filepath':1547,1565,1576 'filter':589,610 'find':163,431,496,731,752,815,1723,1783,1849 'first':673,840,2112 'first1':927 'first2':930 'first3':933 'firstauthorlastnam':922,1072 'flag':867,904,969,1012 'flow':1774 'follow':784,1441,2096 'format':1958,1989,2006 'found':288 'full':153,224,708,935,1281,1290,1308,1746 'full-text':1280,1289 'gap':1666,1697 'gate':611,998 'gateway':200 'general':1653 'generat':31,65,401,541,551,791,889,896,1828 'get':150,222,375,391,489,528,711,716,1219,1356,1434,1853 'go':1908,2131 'guidelin':1720 'hallucin':23,773 'handl':2051 'hard':1626 'header':1413,1420,1580,1584,1595 'hidden':1251 'high':687 'highest':1326 'host':1663 'html':1559,1604 'http':1590,2072 'id':190,512,1379,1389 'identifi':544,1285,1696 'ill':1517 'import':1100,1177,1299,1331,1561 'includ':602,697,1632,2230 'inclus':30 'inclusion/exclusion':1765 'inform':722 'inlin':1685 'instead':2093,2178 'institut':1471,1505,1511,1893,2252 'integr':1147,1155 'interlibrari':1515 'interv':1657 'intervention/exposure':548 'iso':1061 'item':1205,1945 'j':681 'journal':676,847,941,942,2245 'json':384,1350,1428 'keep':468 'key':94,451,456,545,721,728,751,1070,1235,1647,1652,1698 'kim':680,1076 'known':1838 'land':1439 'languag':79,588,641,1971 'last':573,674,843 'last1':926 'last2':929 'last3':932 'least':839 'lee':682 'leverag':1215 'librari':1146,1162,1213,1520 'like':1569,1794,2148 'limit':446,735,753,1621,1627,2081,2123,2174 'line':2163 'link':1329,1447 'list':1041 'lit':3 'literatur':4,34,44,742,1741,2271 'live':62 'loan':1516 'locat':1355,1365 'login':1900 'login/redirect':1605 'lookup':176,421,502,507,518,1006,1027 'mailto':1415,1426 'manag':8,48,770,1189 'manual':824,1020,1022,1138,2225 'manuscript':106,535,1015,1671,1681 'manuscript/_src/refs.bib':1106 'map':1926 'mark':818 'markdown':379 'match':658,852,866,990 'matrix':743,761 'may':1485 'mcp':118,125,130,134,146,159,172,184,196,208,218,247,252,277,309,474,476,1151,1260,1884 'mean':976 'medic':10,41,50,88 'medlin':1974 'memori':68,795 'mesh':143,552,2024,2025,2067 'messag':2147 'meta':368,585,1302 'meta-analys':1301 'meta-analysi':367,584 'metadata':152,154,226,393,491,709,713 'method':729,1459,1718,2214 'methodolog':1714 'minimum':1656 'mismatch':870,1010 'miss':1713 'mode':483,1732,1733,1778,1831,1871 'multipl':745,2015 'must':57,799,1016 'myapp/1.0':1425 'n':750,2139,2170 'name':837,848,943,1963,2008,2012 'natur':640 'navig':1890 'ncbi':237,267,331,454,1378,1650 'ncbi/pmc':1642 'need':527,538,823,1019,1137 'never':64,790,807,1103,2143,2228 'newer':1710 'note':736,1228 'number':734,948,1760,1943 'oa':1181,1328,1354,1364,1384,1395,1429,1435 'one':1826,2017,2062 'oneword':1074 'open':1312,1432,1575,1981 'openalex':1392,1631 'oper':467,2035 'option':1252,1504 'order':1320 'organ':1184 'origin':581 'os':1332,1562 'os.environ.get':1335 'os.path.getsize':1564 'otherwis':1525 'outcom':550 'outdat':1707 'output':97,1079,1771 'overwrit':1092 'page':857,950,1440,1606,1614 'paper':52,695,705,746,748,1165,1209,1287,1523,1699,1797,1833,1839,1855 'param':1416 'paramet':1630 'paraphras':854 'pars':1001,1995 'parse_pubmed.py':336 'parser':338,352,373,389,399,410,429,443,482 'part':780,2282 'pass':999 'path':1114 'pattern':345 'paywal':1461,2244 'pdf':1359,1360,1368,1491,1534,1546,1556,1586,1618 'pdfs':1182,1292,1609 'per':1115,2018 'phase':520,619,698,767,1143,1264,1278,1310,1450,1664,1676 'phrase':2041 'plan':596 'pleas':2223 'pmc':1372,1383 'pmcid':1376 'pmid':157,170,360,436,811,955,982,1374,1844,1975 'pmid/doi':677 'pmid/doi/pmcid':193 'polici':1473 'polit':1405,1623,1639 'pool':1096,1406,1624,1640 'popul':547 'possibl':2100 'prefer':78,1928 'preprint':213,215,223,225,648,650,717,1533 'present':593,665,759,1818,1866 'primari':119,124,730 'print':1118,2144 'prior':1226 'prisma':1750,1773 'prisma-compli':1749 'produc':56 'project':1196 'protocol':774 'provid':1497,1842,2205,2249 'proxy/vpn':1506 'public':845,1878,1965,1967 'publish':1446,1508,1611 'pubm':13,133,137,145,149,158,162,171,175,183,187,246,280,297,358,555,625,714,961,1050,1370,1809,2020,2090,2105,2134,2177,2194 'pubmed/crossref':985 'pubmed_eutils.sh':327 'purpos':132 'python':337,1330,1397,1542,1997 'python3':372,388,398,409,428,442 'qualiti':1327,2258 'queri':142,556,559,605,632,642,1758,1918,2022,2060 'question':533 'quick':1779,1782 'quot':2045 'r':1347,1362,1417 'r.get':1352,1431 'radiolog':370,685 'rang':571 'rank':1868 'rate':445,1620,2080,2122,2173 'rate-limit':2079,2121,2172 'rather':1248 'raw':2145 'ray':1806 'rb':1577 're':917 're-run':916 'read':701,1227,1679 'real':1608 'reason':912,1277 'recent':1066 'recommend':1864 'record':1233,1753,1990,1999 'recov':316 'redirect':1560,2095,2098 'refer':25,54,539,793,798,820,831,892,1123,1129,1134,1142,1222,1690,1708,1715,1786,2130,2171,2200,2207,2218,2233 'references/library.bib':1094 'references/zotero_collection.json':1242,1271 'relat':164,166,432,439,497,499,1832,1850,1854 'relev':652,678,754,1195,1286,1870 'reliabl':1322 'remain':2129 'remot':128 'remov':2061 'repeat':1037,2108 'report':1719,1722,2159 'request':1333,1518,1659,2149 'requests.get':1348,1418 'requests/sec':1644 'requests/second':448 'requir':971,1255,1307,1404 'research':11,42,51,530,582,1455 'resolv':886,2184 'respons':343,1465 'result':655,666,805,835,1157,1694,1762,1867,1939,1954,2057 'retmax':487,500 'retri':308,1906,2070,2084,2140 'retriev':707,938,1283,1288,1316 'return':282,359,1009,1572,1583,1612,2055 'review':583,766,1295,1738,2272 'row':1988,1994,2001,2004,2005,2013 'rule':71,786,2077,2190 'run':617,918,1258 'safe':991 'sampl':725 'save':1081,1597,2076 'say':1792 'scholar':15,195,199,636,1053,1812,1859 'scihub':1479 'scope':569 'scrape':1448 'screen':1768 'script':273,321,458 'search':2,5,12,35,45,116,138,140,203,212,214,357,363,484,486,522,542,595,608,618,622,624,627,634,644,647,804,1156,1204,1693,1731,1735,1747,1757,1808,1886,1911,2042,2054,2092,2193 'search-lit':1 'second':1655 'section':536,1742,1955 'select':693,704,747,1942,1947 'semant':14,194,202,635,1052,1811,1858 'semanticsearch':201,638 'sensit':425 'separ':1991 'sequenti':470 'server':216,1152,1261 'servic':1385,1521 'session':250,253,301,2117 'set':1482 'shortkey':924 'show':1017 'side':1253 'silent':2087,2157,2229 'similar':663 'singl':1662,1785,2044,2161 'site':1509 'size':726 'skill':36,115,324,349,354,783,907,1484,2236 'skill-search-lit' 'skip':1262,1268,1274,2085,2103,2125 'sleep':461 'smith':1799 'sole':1112 'sole-writ':1111 'someth':1793 'sourc':1044,1318,1453,1492,1964 'source-aperivue' 'special':1730 'specif':427,532,733,869,1494,1728 'specifi':100,578,1086 'sso':1894 'state':2216 'statist':1717 'status':1126,1245,1273,2152 'stay':2036 'step':1769 'still':1269 'strategi':523,1748 'string':1759 'structur':669 'stub/redirect':1571 'studi':723,757 'submiss':2227 'subsequ':296 'success':1067 'suggest':1729 'summari':377,1120,1777,2162 'suppress':1036 'switch':294 'sync':1231 'synonym1':562 'synonym2':566 'syntax':1917 'systemat':1734,1737 'tab':1912,1980 'tabl':380,670 'tag':1449,1924 'target':1093 'term':144,543,553,1929,1936,2068 'termin':256,286 'terminolog':89 'test':365 'text':1003,1282,1291,1309,2273 'ti':1922,2030,2033 'tiab':2028 'timeout':251 'titl':83,417,662,671,850,934,936,986,1961,2091,2135,2196 'title/abstract':2031 'token':2075,2141 'token-sav':2074 'tool':117,126,131,261,477 'top':1819 'topic':531 'topic-agent-skills' 'topic-biostatistics' 'topic-claude-code' 'topic-claude-skills' 'topic-clinical-research' 'topic-diagnostic-accuracy' 'topic-irb-protocol' 'topic-literature-review' 'topic-manuscript' 'topic-medical-ai' 'topic-medical-research' 'topic-meta-analysis' 'total':1140,1948 'track':1764 'translat':2023 'treat':1029 'tri':1317,2192 'true':958,979,1131 'trust':914 'type':580,1593,1968 'unavail':249,1266,2168 'uncheck':1925 'understand':525 'unless':576 'unpaywal':1324,1336,1622 'unsync':1239 'unverifi':822,1014,1018,1132,2232 'url':1339,1349,1357,1361,1366,1398,1419,1430,1436,1495 'usag':344 'use':515,626,637,646,710,875,1168,1187,1202,1217,1456,1486,1541,1848,1857,1880,1933,1941,2043,2065,2261,2274 'user':75,99,111,577,599,614,691,764,1023,1160,1224,1411,1422,1463,1499,1636,1726,1788,1791,1823,1841,2204,2248 'user-ag':1410,1421,1635 'user-provid':2247 'user-specifi':98 'user@example.com':1338 'util':122,240,270,305,334,342,473,480 'valid':1078,1535,1537,1545 'valu':970,975,2016 'value1':2009 'value2':2010 'variabl':1477 'verif':235,874,919,1068,1125,2136 'verifi':19,26,59,180,412,893,903,957,959,963,968,1031,1039,1057,1127,1130,1135,1589,2088,2175,2211,2222 'version':1711 'via':27,243,271,984,1377,2089,2176,2185 'volum':855,946 'vpn':1514 'wait':612 'warn':1038 'wast':2142 'webfetch':228,876 'within':317 'without':449,787,915,1645,2246 'work':104 'workflow':519 'workspac':107 'wrapper':329 'write':1104,1230,1270,1672,2269 'writer':1113 'www.ncbi.nlm.nih.gov':1387 'www.ncbi.nlm.nih.gov/pmc/articles/pmc':1386 'x':1805 'x-ray':1804 'year':575,675,846,923,944,988,1073,1966 'zotero':1102,1145,1150,1167,1169,1188,1203,1218,1244,1256","prices":[{"id":"89a4a4dc-2d31-47c2-b233-e01946a52b51","listingId":"e485f134-5f09-4a06-812f-97e379f85e1a","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"Aperivue","category":"medsci-skills","install_from":"skills.sh"},"createdAt":"2026-05-13T12:57:46.530Z"}],"sources":[{"listingId":"e485f134-5f09-4a06-812f-97e379f85e1a","source":"github","sourceId":"Aperivue/medsci-skills/search-lit","sourceUrl":"https://github.com/Aperivue/medsci-skills/tree/main/skills/search-lit","isPrimary":false,"firstSeenAt":"2026-05-13T12:57:46.530Z","lastSeenAt":"2026-05-18T18:56:31.599Z"}],"details":{"listingId":"e485f134-5f09-4a06-812f-97e379f85e1a","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"Aperivue","slug":"search-lit","github":{"repo":"Aperivue/medsci-skills","stars":98,"topics":["agent-skills","biostatistics","claude-code","claude-skills","clinical-research","diagnostic-accuracy","irb-protocol","literature-review","manuscript","medical-ai","medical-research","meta-analysis","physician-researcher","prisma","pubmed","radiology","reporting-guidelines","strobe","systematic-review","tripod-ai"],"license":"other","html_url":"https://github.com/Aperivue/medsci-skills","pushed_at":"2026-05-17T20:50:52Z","description":"Claude Code skills for medical research — literature search, reporting guidelines, statistical analysis, publication figures. Built by a physician-researcher, tested on real publications. MIT licensed.","skill_md_sha":"f5c72f7cb30584c68522a5bba5745e11c60ac4a1","skill_md_path":"skills/search-lit/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/Aperivue/medsci-skills/tree/main/skills/search-lit"},"layout":"multi","source":"github","category":"medsci-skills","frontmatter":{"name":"search-lit","description":"Literature search and citation management for medical research. Searches PubMed, Semantic Scholar, and bioRxiv/medRxiv with verified citations. Anti-hallucination — every reference verified via API before inclusion. Generates BibTeX entries."},"skills_sh_url":"https://skills.sh/Aperivue/medsci-skills/search-lit"},"updatedAt":"2026-05-18T18:56:31.599Z"}}