Agent skill

Find Paper References

by aipoch in aipoch/medical-research-skills

Automatically find references for academic paper Markdown files.

MITAuto-check: notesResearch & Science

Install Find Paper References

skills CLI
$ npx skills add aipoch/medical-research-skills --skill find-paper-references -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install aipoch/medical-research-skills find-paper-references --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/aipoch/medical-research-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/'scientific-skills/Academic Writing/find-paper-references' .claude/skills/find-paper-references && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
find-paper-references
GitHub stars
1.9k
Token cost
~3.2k tokens
SKILL.md length
1,142 words
Files
7 (incl. scripts)
Skills in repo
578
Repo updated
First seen
Licence
MIT

At a glance

Automatically find references for academic paper Markdown files.

  • Works in 9 steps: Ask for NCBI API Key → Determine Target File + Article Type → Identify Sentences Requiring Citations → …
  • Tasks that involve Academic paper search
  • SKILL.md covers Tools, Workflow (Execute in Order), Article Type Citation Rules and Next Step: Reference…, plus 3 more sections
  • Runs Python scripts from its folder; calls python; needs NCBI_API_KEY

What it does

Find Paper References is an agent skill from aipoch/medical-research-skills. Automatically find references for academic paper Markdown files. Reads full paper text, identifies each knowledge point requiring citation (epidemiological data, mechanism descriptions, existing research conclusions, etc.), searches PubMed for 3-5 most relevant articles per kn...

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts (for example `POLISH_CHANGELOG.md`, `_user_meta.json` and `eval_report_find-paper-references_result.json`).

It sits in Research & Science, covering Academic paper search, Citation management and Codebase onboarding. It works with PubMed. The repository describes itself as: Hundreds of agent skills for medical research, including protocol design, data analysis, evidence insights, and academic writing. The licence is MIT.

When your agent uses it

  • Tasks that involve Academic paper search
  • Tasks that involve Citation management
  • Tasks that involve Codebase onboarding

Example prompts

  • “/find-paper-references”

Requirements

  • Python 3
  • A credential in NCBI_API_KEY

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Ask for NCBI API Key
  2. Determine Target File + Article Type
  3. Identify Sentences Requiring Citations
  4. Organize All Queries into Temporary JSON
  5. Run batch_search.py Once to Get All Results
  6. Select Most Relevant Articles and Insert PMID Markers
  7. Write PMID-Marked Full Text to New File
  8. Write Candidate References to Separate File
  9. Proactively Remind User to Choose Formatting Tool

What it can do on your machine

Read from SKILL.md and the folder at commit 686e09d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 3 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • ncbi.nlm.nih.gov

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • NCBI_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Find Paper References loads about 3.2k tokens when it runs. Until then it costs about 76 tokens; SKILL.md has 1,142 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~76
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:282
    (recommended: add to system env vars or .env file)

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from aipoch/medical-research-skills at commit 686e09d, republished under its MIT licence (© aipoch). 1,142 words, ~3,213 tokens.

Download SKILL.mdSave it as .claude/skills/find-paper-references/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
find-paper-references
description
Automatically find references for academic paper Markdown files. Reads full paper text, identifies each knowledge point requiring citation (epidemiological data, mechanism descriptions, existing research conclusions, etc.), searches PubMed for 3-5 most relevant articles per kn...
license
MIT
author
AIPOCH

Source: https://github.com/aipoch/medical-research-skills

find-paper-references — Academic Paper PubMed Reference Finder

Tools

Scripts are located in the scripts/ subdirectory of this skill:

  • batch_search.py — Main entry point: accepts all queries at once, parallel search, batch esummary fetch, typical runtime 10-20s
  • remap_refs.py — Converts [PMID:XXXXXXXX] markers to [1][2] numbering and generates formal references (not called by this skill — handled by subsequent endnote/zotero skill)
  • convert_to_docx.py — Converts .md to .docx (not called by this skill)
Skill Boundary
┌─────────────────────────────────────────────────────┐
│  find-paper-references                              │
│  ─────────────────────────────────────────────────  │
│  Step 0-3: Identify knowledge points → Build PubMed search JSON │
│  Step 4:   batch_search.py batch search                         │
│  Step 5:   Select articles → Insert [PMID:xxxxxxxx] markers     │
│  Step 6:   Write to .md file                                    │
│  Step 7:   Generate _candidates.md candidate reference list     │
│  Step 8:   Prompt user to choose EndNote / Zotero to continue   │
│  ──────────────── Workflow ends ──────────────────────────────── │
│                                                     │
│  Formatting → format-references-endnote (EndNote)              │
│            → format-references-zotero (Zotero)                 │
└─────────────────────────────────────────────────────┘

Workflow (Execute in Order)

Step 0: Ask for NCBI API Key

Before starting any search, check and ask:

Do you have an NCBI API key? If so, search speed increases from 3 req/s to 10 req/s.
No worries if not — just skip and we'll proceed.
  • User provides key: Before all script calls in this session, execute:

    bash
    # Windows
    $env:NCBI_API_KEY = "user_provided_key"
    # Mac/Linux
    export NCBI_API_KEY="user_provided_key"

    Then continue the workflow normally. Key is valid only for this session, not written to any file.

  • User doesn't have one / skips: Proceed to Step 1. The script automatically uses the conservative 3 req/s rate.

Step 1: Determine Target File + Article Type

Read the full file content, then determine article type — can be auto-detected or confirmed with the user:

Auto-detection rules:

  • Contains ## Materials and Methods / ## Methods section → Research Article
  • No such section, body consists mainly of review-style paragraphs → Review
  • When uncertain, ask the user directly

Article Type Citation Rules

Based on the detected type, this workflow must follow the corresponding rules:

Research Article Rules
Citation zones:  Introduction and Discussion only
            Materials/Methods and Results → skip entirely, insert no citations
Per knowledge point: max 2 articles (top 2 by relevance, no padding)
Total target: at least 30 unique PMIDs in the text
Review Rules
Citation zones:  All paragraphs except Conclusion
            Conclusion paragraphs → skip
Per knowledge point: max 5 articles
Total target: approximately 1 citation per 100 words, +/- 20%
            Target range = [word_count*0.8/100, word_count*1.2/100] (rounded)
            Example: 5000 words → target 40-60 articles; 8000 words → target 64-96 articles

Step 2: Identify Sentences Requiring Citations

Read through the paper, strictly following the citation zone rules for the current article type, skip sections that don't need citations.

Within allowed citation zones, identify all knowledge points requiring literature support:

Needs citation (applicable to allowed sections):

  • Epidemiological data ("Lung cancer is one of the most common malignancies worldwide")
  • Known biological functions of proteins/genes ("GPX4 reduces lipid peroxides to non-toxic alcohols")
  • Signaling pathway descriptions ("xCT mediates cellular cystine uptake")
  • Published research conclusions ("TRIM3 is downregulated in breast cancer")
  • Known mechanisms of treatments/drugs ("Erastin induces ferroptosis by inhibiting xCT")

Never needs citation:

  • This study's own experimental results
  • Instrument/reagent descriptions in Methods (entire section skipped for Research Articles)
  • Results section (entirely skipped for Research Articles)
  • Conclusion section (skipped for Reviews)
  • General technical operation descriptions

After identification, estimate total knowledge points:

  • Research Article: target ≥ 30 unique citations → typically need to identify 20-35 knowledge points
  • Review: calculate total word count first, estimate target citations at 1 per 100 words, typically need knowledge points close to target number (1-2 articles per point)

Organize identified knowledge points into a list, each containing:

  • Section name (to confirm it's in an allowed citation zone)
  • The sentence from the original text
  • Core concept of the knowledge point (for generating search terms)
Step 3: Organize All Queries into Temporary JSON

Organize all knowledge points into the following format, write to %TEMP%\ref_queries.json (or /tmp/ref_queries.json):

json
[
  {"id": 1, "description": "global lung cancer incidence", "query": "global cancer statistics 2020 GLOBOCAN lung cancer Sung", "method": "pubmed"},
  {"id": 2, "description": "ferroptosis definition", "query": "Ferroptosis iron-dependent nonapoptotic cell death Dixon 2012", "method": "pubmed"},
  {"id": 3, "description": "TRIM3 structure and function", "query": "TRIM3 ubiquitin ligase RING domain substrate degradation", "method": "litsense"},
  ...
]

Method options:

  • "pubmed" — Keyword-based precise search (recommended for most knowledge points)
  • "litsense" — Semantic search (suitable for descriptive sentences, specific protein functions, etc.)
  • "auto" — Try LitSense first; if results < 2 articles, automatically fall back to PubMed

Query writing guidelines:

  • Use English, 3-8 keywords
  • Prefer MeSH terms (ferroptosis, non-small cell lung cancer, ubiquitin ligase)
  • For known classic papers, add author or year to query ("Dixon 2012", "Stockwell 2017")
Step 4: Run batch_search.py Once to Get All Results
bash
python "SKILL_DIR/scripts/batch_search.py" "%TEMP%\ref_queries.json" --max 5

Script searches all queries in parallel, batch-fetches esummary, typical runtime 10-20 seconds (vs. minutes for sequential searching).

Output JSON format:

json
[
  {"id": 1, "description": "...", "results": [{pmid, title, authors, journal, year, doi}, ...]},
  ...
]

If any result is empty, create a new JSON file with adjusted keywords and re-run batch_search.py.

Step 5: Select Most Relevant Articles and Insert PMID Markers

For each sentence requiring citation:

  1. Sort candidates by relevance, select according to article type limits:
    • Research Article: max 2 per knowledge point, select only the most relevant
    • Review: max 5 per knowledge point, can cover different research angles
  2. Insert [PMID:XXXXXXXX] at end of original sentence; for multiple: [PMID:111][PMID:222]
  3. If same PMID already cited, reuse it — do not insert duplicates

After insertion, count current unique PMIDs:

  • Research Article: if fewer than 30, return to Step 2 to identify more knowledge points
  • Review: calculate word count, compute target range [words0.8/100, words1.2/100] (rounded), if not within range, return to Step 2 to add or reduce

Example (before/after):

Before: Ferroptosis is a form of regulated cell death driven by iron-dependent lipid peroxidation.
After:  Ferroptosis is a form of regulated cell death driven by iron-dependent lipid peroxidation[PMID:25789077].

Flexible formats supported by remap_refs.py (all handled correctly):

  • Case insensitive: [PMID:123] [pmid:123] [Pmid:123]
  • Spaces around colon: [PMID: 123] [ PMID : 123 ]
  • Multiple in one bracket: [PMID:123, PMID:456] → [1][2] (spaces and comma variants accepted)
Show full SKILL.md (448 more words)Show less
Step 6: Write PMID-Marked Full Text to New File

Do not overwrite the original file. Write the full text with [PMID:XXXXXXXX] markers to a new file:

  • Original paper.md → New file paper_refs.md (generated in same directory)

Naming rule: remove .md suffix from original filename, add _refs.md. Examples:

  • TRIM3_ferroptosis.md → TRIM3_ferroptosis_refs.md
  • No extension case: manuscript → manuscript_refs.md

Keep the original file unchanged — no modifications.

Step 7: Write Candidate References to Separate File

Do not append the reference candidate section to the original .md file — it will interfere with subsequent formatting.

Instead, generate a separate candidate file originalfilename_candidates.md in the same directory:

markdown

## Reference Candidates

> Below are PubMed search results for each knowledge point. Those selected for the text are marked with checkmark.
> Next step: Use format-references-endnote or format-references-zotero skill for formatting.

### Knowledge Point 1: [brief description]
- ✓ **[PMID:25789077]** Dixon SJ et al. "Ferroptosis: an iron-dependent form of nonapoptotic cell death." *Cell* 2012;149(5):1060-72.
- [PMID:26593993] Stockwell BR et al. "Ferroptosis: a regulated cell death nexus linking metabolism, redox biology, and disease." *Cell* 2017;171(2):273-285.
- [PMID:31634899] ...

### Knowledge Point 2: [brief description]
...

Step 7 completion ends this workflow. Do not run remap_refs.py or convert_to_docx.py.

Step 8: Proactively Remind User to Choose Formatting Tool

After Step 7, must proactively ask the user to choose next step:

All citation markers have been inserted (N unique references total). Ready to format and export to Word?

Do you use EndNote or Zotero for reference management?
  • User chooses EndNote → immediately load format-references-endnote skill to continue
  • User chooses Zotero → immediately load format-references-zotero skill to continue
  • User says "not now" / "let me check first" → inform them "say 'format references' anytime to continue"

Do not end silently — this reminder is mandatory.


Next Step: Reference Formatting (Separate Skill)

After the [PMID:xxxxxxxx]-marked .md file is generated, choose based on user's reference manager:

EndNote Users

Use format-references-endnote skill. It will:

  1. Convert [PMID:xxxx] markers to EndNote CWYW-recognized {Author, Year, Title} placeholders
  2. Generate .ris file for automatic import to local EndNote library
  3. Output .docx file — user clicks "Update Citations" once in Word to complete formatting
Zotero Users

Use format-references-zotero skill. It will:

  1. Convert [PMID:xxxx] markers to native Zotero field codes
  2. Search/download any CSL citation style
  3. Output .docx file — click "Refresh" once in Word to complete

NCBI API Key (Optional, Free)

NCBI provides free API keys. With a key, rate limit increases from 3 req/s to 10 req/s, concurrent workers increase from 4 to 8, making searches faster and less likely to trigger rate limiting.

How to get one:

  1. Register NCBI account: https://www.ncbi.nlm.nih.gov/account/
  2. Go to Account Settings → API Key Management → Generate

How to use:

bash
# Temporary (current session only)
set NCBI_API_KEY=your_key    # Windows
export NCBI_API_KEY=your_key  # Mac/Linux

# Permanent (recommended: add to system env vars or .env file)

Works fine without a key — script automatically uses conservative 3 req/s rate and auto-retries on 429 errors.

Important Notes

  • Search terms must be in English (PubMed indexes primarily English literature)
  • For very recent research (2024 onwards), PubMed indexing may have delays
  • On 429 rate limiting, script auto-retries with backoff (up to 4 times) — no manual intervention needed

Input Validation

This skill accepts requests that match the documented purpose of find-paper-references and include enough context to complete the workflow safely.

Do not continue the workflow when the request is out of scope, missing a critical input, or would require unsupported assumptions. Instead respond:

find-paper-references only handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill.

© aipoch, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (scripts) in scientific-skills/Academic Writing/find-paper-references of aipoch/medical-research-skills.

  • SKILL.md
  • POLISH_CHANGELOG.md
  • _user_meta.json
  • eval_report_find-paper-references_result.json
  • scripts/batch_search.py
  • scripts/convert_to_docx.py
  • scripts/remap_refs.py

Open the folder on GitHubat commit 686e09d

Compare with similar skills

Find Paper References next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Find Paper References compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Find Paper References this skillaipoch/medical-research-skills1.9k—~3.2kAutomated safety check: NotesMIT
Literature Reviewneflibata-feng/MyArxiv-Agent12620 repos~5.9kAutomated safety check: NotesMIT
Citation ManagementK-Dense-AI/claude-scientific-writer2.4k2 repos~3.9kAutomated safety check: NotesMIT
Citation Managementneflibata-feng/MyArxiv-Agent12619 repos~8.1kAutomated safety check: NotesMIT
Academic Search and Citation RouterYuan1z0825/nature-skills47k—~884Automated safety check: PassApache-2.0
Nature Academic Searchjing1312/nature-figure-skill171—~1.3kAutomated safety check: NotesMIT

Similar skills

  • Literature Review

    neflibata-feng/MyArxiv-Agent

    Conduct comprehensive, systematic literature reviews using multiple academic databases (PubMed, arXiv, bioRxiv, Semantic Scholar, etc.).

    126 GitHub starsUsed in 20 repos~5.9k tokens
    Research & ScienceAuto-check: notes
  • Citation Management

    K-Dense-AI/claude-scientific-writer

    Finds papers in OpenAlex, PubMed and Google Scholar, turns DOIs, PMIDs and arXiv IDs into clean BibTeX, and validates citations for a manuscript or thesis.

    2.4k GitHub starsUsed in 2 repos~3.9k tokens
    Research & ScienceAuto-check: notes
  • Citation Management

    neflibata-feng/MyArxiv-Agent

    Comprehensive citation management for academic research. An agent skill from neflibata-feng/MyArxiv-Agent.

    126 GitHub starsUsed in 19 repos~8.1k tokens
    Research & ScienceAuto-check: notes
  • Academic Search and Citation Router

    Yuan1z0825/nature-skills

    Finds papers across literature sources, verifies and converts citations, builds MeSH strategies and audits independent citations of a paper.

    47k GitHub stars~884 tokensUpdated today
    Research & ScienceAuto-check passed
  • Nature Academic Search

    jing1312/nature-figure-skill

    Multi-source literature search, citation verification, MeSH search strategy, citation file management (.nbib/.ris/.bib conversion), and reference management (BibTeX, related articles, ID conversion)…

    171 GitHub stars~1.3k tokensUpdated 1 mo ago
    Research & ScienceAuto-check: notes
  • Reference Checker

    Liuxiangjian-ai/reference-checker-skill

    Exhaustively verify English and Chinese manuscript references before journal submission.

    140 GitHub stars~5.4k tokensUpdated 4 mo ago
    Research & ScienceAuto-check passed

More from aipoch/medical-research-skills

All 578 skills in this repo
  • Academic Poster Generator

    aipoch/medical-research-skills

    Complete workflow for generating academic research posters from PDF literature; use when you need to extract paper content from PDFs and produce a LaTeX-based poster…

    1.9k GitHub stars~2.2k tokensUpdated 23 days ago
    Auto-check passed
  • Diagnostic Study Quality Assessment Quadas

    aipoch/medical-research-skills

    Analyzes clinical diagnostic accuracy studies for bias using the QUADAS-2 tool.

    1.9k GitHub stars~1.4k tokensUpdated 23 days ago
    Auto-check passed
  • Exploratory Data Analysis

    aipoch/medical-research-skills

    Perform comprehensive exploratory data analysis on scientific data files across 200+ file formats.

    1.9k GitHub stars~3.7k tokensUpdated 23 days ago
    Auto-check passed
  • Iso Certification

    aipoch/medical-research-skills

    A toolkit for preparing ISO 13485:2016 certification documentation for medical device QMS.

    1.9k GitHub stars~1.8k tokensUpdated 23 days ago
    Auto-check passed
  • Journal Skills

    aipoch/medical-research-skills

    Recommends target journals for manuscript submission by analyzing the paper topic/abstract and the journal distribution of similar PubMed literature; use when users ask for journal…

    1.9k GitHub stars~1.7k tokensUpdated 23 days ago
    Auto-check passed
  • Latex Posters

    aipoch/medical-research-skills

    Creates academic-poster writing packages for LaTeX using beamerposter, tikzposter, or baposter.

    1.9k GitHub stars~1.3k tokensUpdated 23 days ago
    Auto-check passed

Works with

Questions about Find Paper References

What does Find Paper References do?

Automatically find references for academic paper Markdown files. Find Paper References is an agent skill from aipoch/medical-research-skills. Automatically find references for academic paper Markdown files.

When should I use Find Paper References?

Find Paper References fits situations like: tasks that involve Academic paper search; tasks that involve Citation management; tasks that involve Codebase onboarding.

How do I install Find Paper References in Claude Code?

Run `npx skills add aipoch/medical-research-skills --skill find-paper-references -a claude-code`. Or copy the skill folder (scientific-skills/Academic Writing/find-paper-references in aipoch/medical-research-skills) into .claude/skills/find-paper-references in your project. Claude Code loads it when a task matches its description.

How do I install Find Paper References in Codex?

Run `npx skills add aipoch/medical-research-skills --skill find-paper-references -a codex`. Or copy the skill folder (scientific-skills/Academic Writing/find-paper-references in aipoch/medical-research-skills) into .agents/skills/find-paper-references in your project. Codex loads it when a task matches its description.

Can I use Find Paper References in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aipoch/medical-research-skills --skill find-paper-references -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/find-paper-references, .gemini/skills/find-paper-references, .github/skills/find-paper-references and .opencode/skills/find-paper-references in your project.

What does Find Paper References need to run?

Going by SKILL.md and its folder, Find Paper References needs Python for the scripts in its folder, the command-line tools its instructions call (python) and credentials named NCBI_API_KEY. Our summary lists: Python 3; A credential in NCBI_API_KEY.

Does Find Paper References access the network?

SKILL.md names 1 domain. As links in the text: ncbi.nlm.nih.gov. This is read from the text; nothing was executed.

Is Find Paper References safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Find Paper References use?

Find Paper References is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Find Paper References use?

About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Find Paper References?

Skills that share tags, products or a category with Find Paper References: Literature Review (neflibata-feng/MyArxiv-Agent, 126 stars), Citation Management (K-Dense-AI/claude-scientific-writer, 2.4k stars), Citation Management (neflibata-feng/MyArxiv-Agent, 126 stars) and Academic Search and Citation Router (Yuan1z0825/nature-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Find Paper References?

aipoch (a GitHub organization) maintains it in aipoch/medical-research-skills, which has 1,937 GitHub stars. The repository holds 578 skills in this directory. The repository was last updated on September 17, 2026.

Source: aipoch/medical-research-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.