Search scientific papers on biology, medicine, health, weight loss, psychology, nutrition, neuroscience, fitness, aging, sleep, gut microbiome, mental health, psychiatry, pharmacology. Use when user asks health/medical/biology questions, wants scientific evidence for a claim, or provides a PMID/DOI/bioRxiv link. Also triggers on "clinical trials", "испытания", "фаза 3". Triggers on questions like "does X help with Y?", "what does science say about...", "find studies on...", "is there evidence...
Scanned 8/30/2026
Install to Claude Code
npx -y skills add tetervak80-max/bio-research-lookup --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of bio-research-lookup?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/tetervak80-max-bio-research-lookup)More formats (shields.io, HTML) on the badges page.
---
name: bio-research-lookup
description: Search scientific papers on biology, medicine, health, weight loss, psychology, nutrition, neuroscience, fitness, aging, sleep, gut microbiome, mental health, psychiatry, pharmacology. Use when user asks health/medical/biology questions, wants scientific evidence for a claim, or provides a PMID/DOI/bioRxiv link. Also triggers on "clinical trials", "испытания", "фаза 3". Triggers on questions like "does X help with Y?", "what does science say about...", "find studies on...", "is there evidence for...", "PMID:", "doi:", medrxiv/biorxiv URLs.
---
# Bio Research Lookup
Search scientific literature across PubMed, Semantic Scholar, bioRxiv/medRxiv, ClinicalTrials.gov, and OpenAlex.
---
## Step 0 — Pre-flight: interpret and clarify the query
Before any API calls, parse the user's intent and reformulate it as a scientific search query.
**Always show this block first:**
```
🔍 Понял как: **[научная формулировка на русском]**
Термины для поиска: `term1 term2 term3`
```
**Then decide:**
| Condition | Action |
|---|---|
| Direct PMID / DOI / URL provided | Skip Step 0 entirely — go straight to Step 2 |
| Query already uses scientific terms | Show interpretation block, proceed immediately |
| Query is clear and unambiguous | Show interpretation block, proceed immediately |
| Query is vague, multi-topic, or ambiguous | Show interpretation block + ask clarifying question, wait for user reply |
**When to ask a clarifying question (append after the interpretation block):**
- Query contains multiple unrelated topics (`"кофе, алкоголь и сон"` → ask: "Это три отдельных поиска или вас интересует их совместное влияние?")
- Term is polysemous (`"стресс"` → ask: "Психологический стресс, физиологический (кортизол, HPA), или оба?")
- Scope unclear (`"витамин D"` → ask: "Вас интересует дефицит, дозировка, конкретное заболевание?")
- Mechanism vs. clinical evidence unclear → ask which is needed
**When NOT to ask — just proceed:**
- PMID / DOI / link
- Already contains MeSH or scientific terms
- Clear causal question (`"интервальное голодание и инсулинорезистентность"`)
- User already specified study type (`"найди мета-анализы про..."`)
**Reformulation examples:**
| User query | Scientific formulation | Search terms |
|---|---|---|
| "алкоголь и похудение" | Влияние потребления алкоголя на массу тела | `alcohol consumption body weight adiposity` |
| "пробиотики от депрессии" | Эффект пробиотиков на симптомы депрессии | `probiotics depression mood mental health` |
| "кофе вреден для сердца?" | Связь кофеина с сердечно-сосудистыми заболеваниями | `coffee caffeine cardiovascular risk` |
| "таблетки от бессонницы" | Фармакологическое лечение инсомнии | `pharmacological treatment insomnia` |
| "правда ли что сахар вызывает рак" | Связь потребления сахара с онкологическими заболеваниями | `sugar intake cancer risk` |
---
## Step 1 — Translate query to English
All APIs are English-only. After Step 0 clarification, translate the final search terms.
Examples:
- "интервальное голодание" → "intermittent fasting"
- "микробиом кишечника" → "gut microbiome"
- "клинические испытания метформина" → "metformin clinical trials"
Use the translated English terms for all API calls below.
---
## Step 2 — Classify and pick platform(s)
| Query type | Platform |
|---|---|
| General question ("does X help with Y?", "evidence for...") | Semantic Scholar |
| Clinical trials, RCTs, systematic reviews, medical/disease | PubMed |
| Direct PMID provided (`PMID: 12345678`) | PubMed fetch |
| Latest preprints in biology or medicine | bioRxiv / medRxiv |
| Psychology, neuroscience, cognitive science, behavior | Semantic Scholar |
| Direct DOI provided (e.g. `10.1101/...`) | bioRxiv API |
| "Clinical trials", "ongoing trial", "phase 3", "испытания" | ClinicalTrials.gov |
| Broad topic — use both | PubMed + Semantic Scholar |
---
## Platform Instructions
### Semantic Scholar (broad search, psychology, health questions)
**Search:**
```
GET https://api.semanticscholar.org/graph/v1/paper/search?query={URL_ENCODED_QUERY}&fields=title,abstract,tldr,year,authors,citationCount,venue&limit=5
```
**By paper ID (S2 ID or DOI):**
```
GET https://api.semanticscholar.org/graph/v1/paper/{ID}?fields=title,abstract,tldr,year,authors,citationCount,externalIds
```
- Response includes `tldr.text` — a 1-sentence AI summary. **Prefer `tldr.text` over abstract when available.**
- `citationCount` indicates paper influence — highlight highly cited papers
- If response is 429 (rate limit) → fall back to **OpenAlex** (see below), then PubMed
---
### OpenAlex (fallback for Semantic Scholar, 250M+ papers)
Use when Semantic Scholar returns 429 or empty results.
```
GET https://api.openalex.org/works?search={URL_ENCODED_QUERY}&per-page=5&select=title,abstract_inverted_index,publication_year,authorships,cited_by_count,primary_location&mailto=research@example.com
```
- `abstract_inverted_index` is an inverted index — reconstruct the abstract by sorting keys by their position values:
```
{ "word": [pos1, pos2], ... } → sort all (word, pos) pairs by pos → join words
```
- `primary_location.source.display_name` = journal name
- `authorships[0].author.display_name` = first author
---
### PubMed (medical, clinical, NIH database)
**Step 1 — Search for PMIDs:**
```
GET https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term={URL_ENCODED_QUERY}&retmax=5&retmode=json&tool=claude-skill&email=research@example.com
```
To prioritize high-quality evidence, append publication type filters:
- Meta-analyses: add `+AND+Meta-Analysis[pt]`
- RCTs: add `+AND+Randomized+Controlled+Trial[pt]`
- Reviews: add `+AND+Review[pt]`
**Step 2 — Fetch abstracts by PMID(s):**
```
GET https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id={COMMA_SEPARATED_PMIDS}&rettype=abstract&retmode=text&tool=claude-skill&email=research@example.com
```
- If direct PMID provided, skip Step 1 and go straight to efetch
- Response is plain text. Look for `PT` lines (Publication Type) to extract study type for badges (see Step 4)
---
### bioRxiv / medRxiv (preprints)
**By DOI:**
```
GET https://api.biorxiv.org/details/{server}/{DOI}/na
```
Where `{server}` = `biorxiv` or `medrxiv`
**Recent papers by date range:**
```
GET https://api.biorxiv.org/details/{server}/{YYYY-MM-DD}/{YYYY-MM-DD}
```
Filter by category: append `?category={topic}` (e.g. `neuroscience`, `cell_biology`, `epidemiology`)
Response is JSON with `abstract` field in each item.
---
### ClinicalTrials.gov (active and completed clinical trials)
Use when user asks about trials, ongoing studies, drug testing, or phase 1/2/3.
```
GET https://clinicaltrials.gov/api/v2/studies?query.term={URL_ENCODED_QUERY}&pageSize=5&format=json
```
Key fields from response (`studies[].protocolSection`):
- `identificationModule.nctId` → trial ID (e.g. NCT04727359)
- `identificationModule.briefTitle` → trial name
- `statusModule.overallStatus` → Recruiting / Completed / Active, not recruiting
- `designModule.phases` → ["PHASE2", "PHASE3"]
- `descriptionModule.briefSummary` → short description
- `statusModule.startDateStruct.date` → start date
Trial link: `https://clinicaltrials.gov/study/{NCTId}`
---
## Step 3 — Fetch and parse results
Extract from whichever platform(s) used:
- Title
- Authors (first author + et al.)
- Year / date
- TLDR or abstract summary
- Citation count (if available)
- Publication type (for badge)
- Link to paper / trial
---
## Step 4 — Present results
### Study type badge (from PubMed `PT` field or inferred):
| Publication Type | Badge |
|---|---|
| Meta-Analysis | 📊 Мета-анализ |
| Randomized Controlled Trial | 🔬 РКИ |
| Systematic Review | 📋 Систематический обзор |
| Review | 📖 Обзор |
| Clinical Trial | 🏥 Клиническое испытание |
| Preprint | 📄 Препринт |
| Other | 🧪 Исследование |
### Paper format:
```
## [Badge] [Title] (Year)
**Авторы:** First Author et al.
**Журнал:** Journal/venue
**Цитирований:** N
[tldr.text if available — otherwise 2-3 sentence summary of key findings]
🔗 Link
```
### ClinicalTrials format:
```
## 🏥 [Trial Title]
**Статус:** Recruiting / Completed / Active
**Фаза:** Phase 2 / Phase 3
**Начало:** Date
[Brief summary 1-2 sentences]
🔗 https://clinicaltrials.gov/study/{NCTId}
```
If multiple results, list top 3–5 ranked by relevance and citation count.
### After listing papers — add synthesis block:
```
---
## Что говорит наука
[2-4 sentences synthesizing the overall evidence: is there consensus or conflict,
what is the effect size / strength of evidence, practical takeaway if any.
If evidence is weak or mixed, say so clearly.]
```
---
## Error handling
- **429 from Semantic Scholar** → fall back to OpenAlex, then PubMed
- **OpenAlex empty or irrelevant** → fall back to PubMed
- **Empty results on PubMed** → simplify query (remove qualifiers), retry with broader terms
- **404 from bioRxiv** → paper not found, suggest checking the DOI
- **No abstracts in PubMed** → return title + authors from esummary endpoint:
```
GET https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=pubmed&id={PMID}&retmode=json
```
- **ClinicalTrials 0 results** → suggest trying broader terms or checking manually at clinicaltrials.gov
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!