Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/jxtse/scientific-research-skillsnpx agentmods add skills/jxtse/scientific-research-skills/paper-fulltext-harvestWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jxtse/scientific-research-skills/paper-fulltext-harvest)<a href="https://agentmods.dev/skills/jxtse/scientific-research-skills/paper-fulltext-harvest"><img src="https://agentmods.dev/badge/skills/jxtse/scientific-research-skills/paper-fulltext-harvest/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jxtse/scientific-research-skills/paper-fulltext-harvest"><img src="https://agentmods.dev/badge/skills/jxtse/scientific-research-skills/paper-fulltext-harvest.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00276 | $0.03643 |
| Opus 5 | $0.00138 | $0.01821 |
| Sonnet 5 | $0.00055 | $0.00729 |
| Haiku 4.5 | $0.00028 | $0.00364 |
Grade A, and why
paper-fulltext-harvest scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 13d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 257 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Paper Full-text Harvest
Pipeline for downloading academic paper full-text at scale. Handles the three classes of sources that exist in 2026:
- Publisher TDM APIs (Elsevier / Wiley / Springer) — for paywalled content where the institution has a subscription
- OA aggregators (Unpaywall / OpenAlex / Crossref) — for Open Access copies regardless of publisher
- Browser fallback (logged-in user profile) — for paywalled publishers without a TDM API (ACS / RSC / IEEE / AIP / IOP / APS / T&F / many CN journals)
The publisher router (auto_paper_download/publishers.py) recognises 25 DOI
prefixes across 19 families, each annotated with the right downstream path
(TDM client / OA aggregator / browser fallback) and a support tier. The router is
shared with the standalone auto-paper-harvester
CLI — see SUPPORTED_PUBLISHERS.md
there for the full per-publisher table.
Decision tree
Have a DOI list?
├── DOIs from Elsevier (10.1016, 10.1006, 10.1011)
│ └── Use ElsevierClient (TDM XML API) → §1
├── DOIs from Wiley (10.1002, 10.1111)
│ └── Use WileyClient (TDM PDF API) → §1
├── DOIs from Springer/Nature (10.1007, 10.1038, 10.1186, 10.1147)
│ ├── OA papers → SpringerClient OA API → §1
│ └── Subscription papers → fall through to OA/browser
├── Browser-only publishers without TDM API
│ (10.1021 ACS, 10.1039 RSC, 10.1126 Science, 10.1109 IEEE,
│ 10.1063 AIP, 10.1088/10.1143 IOP, 10.1103 APS, 10.1146 Annual Reviews,
│ 10.1080 T&F, 10.1116 AVS, 10.1149 ECS, 10.1364 Optica, 10.3938 KPS)
│ ├── Try OA first via Unpaywall/OpenAlex → §2
│ └── Last resort: browser fallback → §3
├── OA-leaning publishers (10.1073 PNAS, 10.3762 Beilstein)
│ └── OpenAlex/Unpaywall usually works → §2
└── Mixed list (typical case)
└── Use the orchestrated CLI (handles all of the above) → §0
What ships with it
11 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/browser-fallback.md 6.5 KB
- references/tdm-apis.md 5.3 KB
- scripts/.env.example 771 B
- scripts/auto_paper_download/__init__.py 507 B runs code
- scripts/auto_paper_download/__main__.py 4.8 KB runs code
- scripts/auto_paper_download/clients.py 56 KB runs code
- scripts/auto_paper_download/downloader.py 15 KB runs code
- scripts/auto_paper_download/publishers.py 8.6 KB runs code
- scripts/auto_paper_download/supplements.py 8.1 KB runs code
- scripts/pyproject.toml 575 B
- scripts/redownload_elsevier.py 19 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 13d ago First seen · 257 lines · 0 tokens per session scan A eff9f904b789
paper-fulltext-harvest is a skill published in the GitHub repository jxtse/scientific-research-skills (68 stars, last pushed 3mo ago), licensed MIT. It adds 276 tokens to every session and 3,643 once invoked, about $0.0014 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
paper-fetch
Add academic papers to Zotero via MCP (DOI/PMID/title); fetch full-text PDFs through a publisher-aware route ladder (Unpaywall → Elsevier/Wiley/Springer TDM → institutional proxy → SFX); PDFs land in a linked-files folder (ZotMoov), never uploaded to Zotero cloud. Also verifies that a downloaded PDF really is that…
deepread-pii
Redact PII from documents before sharing or sending to LLMs. 14 PII types (names, SSN, credit cards, medical records, etc.) detected with context-aware AI — not regex. Knows patient vs. doctor, personal vs. institutional. Black bar redaction on PDFs, scanned images, and text files. Free tier: 2,000 pages/month.
deepread-form-fill
AI-powered PDF form filling via DeepRead. Upload any PDF form + your data as JSON — AI detects fields, maps data semantically, fills the form with quality checks, returns a completed PDF. Works with scanned, non-editable forms — no AcroForm required.
deepread-bank-statements
Extract structured data from bank statements — account holder, period, opening/closing balances, and every transaction as typed JSON. Works on PDF and scanned statements from any bank. Per-field confidence flags. PII redaction for compliant sharing. Free 2,000 pages/month.
deepread-setup
Get started with DeepRead. Automatically obtains an API key via OAuth device authorization flow, then walks through OCR, structured extraction, form filling, PII redaction, and blueprint optimization.
deepread-resume-parser
Parse resumes and CVs into structured JSON — contact info, work history, education, skills, and total years of experience. Works on PDF, Word-exported PDF, and scanned resumes in any layout. Per-field confidence flags. PII redaction for bias-free screening. Free 2,000 pages/month.