Nature Skills is a collection of reusable skills that help AI agents handle academic writing and scientific visualization. Researchers and AI-assisted scholars use it to turn research tasks into repeatable workflows and usable outputs. The catalogue entries are skills from this collection.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Yuan1z0825/nature-skills --skill nature-downloadergit clone --depth 1 https://github.com/Yuan1z0825/nature-skillsWrote 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/yuan1z0825/nature-skills/nature-downloader)<a href="https://agentmods.dev/skills/yuan1z0825/nature-skills/nature-downloader"><img src="https://agentmods.dev/badge/skills/yuan1z0825/nature-skills/nature-downloader/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/yuan1z0825/nature-skills/nature-downloader"><img src="https://agentmods.dev/badge/skills/yuan1z0825/nature-skills/nature-downloader.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- Socket fail
- Snyk warn
- NVIDIA SkillSpector warn
SkillSpector: 4 findings, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Privilege Escalation · line 121 Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.Fix: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.
- medium Rogue Agent · line 14 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
- medium Excessive Agency · line 162 Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.Fix: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.
- medium Excessive Agency · line 166 Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.Fix: Add human-in-the-loop confirmation for destructive, irreversible, or high-impact operations. Never auto-execute commands that modify files, send data, or alter system state.
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.00036 | $0.05254 |
| Opus 5 | $0.00018 | $0.02627 |
| Sonnet 5 | $0.00007 | $0.01051 |
| Haiku 4.5 | $0.00004 | $0.00525 |
Grade A, and why
nature-downloader 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 — 351 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Nature Literature Downloader
This skill routes literature through lawful open-access, publisher-API, CNKI institutional, and browser-based institutional providers. scripts/batch_download.mjs is the orchestration entry point; school configuration, publisher credentials, metadata/OA resolution, provider downloads, content validation, and manifests are separate modules.
Verified routes are examples, not defaults. Every institution should start from the user's actual library resource URL, because resource portals, CAS callbacks, EZproxy, WebVPN, IP-authenticated database pages, and database detail pages reveal the live authorization path more reliably than a school name.
SI confirmation gate — do this first. Before downloading any PDF, CAJ, HTML, XML, archive, or attachment, ask whether the user wants Supporting Information. An explicit request for SI counts as yes; an explicit request for正文 only counts as no. Otherwise ask once for the whole batch. Run the downloader with exactly one of
--sior--no-si. Without either flag the script returnssi_confirmation_requiredand does not create the output directory.
Main workflow. Normalize the DOI/title and identify language and publisher before routing. Chinese literature always uses CNKI. For English Elsevier, Springer Nature, and IEEE articles with usable provider credentials, try the publisher API first and do not require an OA determination after a successful API download. If that API attempt fails, automatically check legitimate OA sources. Other English publishers check OA first, then use the institutional Web Access route when OA is unavailable.
规范化 DOI/题名并识别语言、出版商
├─ 中文文献:直接走 CNKI
└─ 英文文献
├─ Elsevier / Springer Nature / IEEE,且已配置有效 Key
│ ├─ 优先通过出版商 API 下载
│ ├─ API 下载成功:结束,不强制判断 OA
│ └─ API 下载失败:检查文章级 OA,再走 PMC / Unpaywall / 合法仓储
└─ 其他出版商
├─ 检查文章级 OA
└─ OA 不可用:走 Web Access 机构授权
Chinese literature is CNKI-only. A Chinese title,
zhmetadata language, explicit CNKI source URL, or--route cnkimust use CNKI even if another OA copy appears to exist. Reuse the user's current Chrome library/CNKI login state and prefer configureddiscovery.cnki_url. Never export cookies or collect the institutional password.
Publisher API fallback. A valid API key does not guarantee full-text entitlement. When an Elsevier, Springer Nature, or IEEE API attempt returns no entitlement or no usable full text, automatically try legitimate OA sources first. Return
api_fallback_confirmation_requiredand ask once whether to use Web Access only after both the publisher API and OA routes fail. Do not switch to institutional Web Access automatically.
Browser-state principle. Authorized downloads depend on the exact browser profile where the user is logged in. If a proxy, CDP session, or browser automation tool opens a fresh profile or a different browser with no login state, do not treat the failure as missing library permission. Switch to a control path that reuses the user's active browser session, or ask the user to authenticate in the controlled browser instance.
Format principle. PDF, HTML full text, and database-native formats such as CAJ are different deliverables. If the user asks for PDF only, require a real PDF link or
no_authorized_pdf_found/pdf_fetch_failedwhen none exists. Do not save CAJ, HTML, or a login page as if it were a PDF.
What ships with it
60 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.
- .gitattributes 139 B
- .gitignore 132 B
- agents/openai.yaml 260 B
- assets/banner.jpg 83 KB
- data/publishers.json 885 B
- data/school.schema.json 3.3 KB
- data/schools.yaml 271 B
- docs/nature-downloader-reference-research-2026-07-15.md 21 KB
- docs/superpowers/plans/2026-06-21-nature-downloader-merge.md 2.9 KB
- examples/carsi-retry-template.tsv 406 B
- examples/manifest-template.tsv 494 B
- examples/publisher-verification-template.tsv 425 B
- LICENSE 1.0 KB
- manifest.yaml 1.7 KB
- README_EN.md 6.9 KB
- README.md 7.1 KB
- references/delivery-verification-and-failures.md 7.4 KB
- references/institutional-browser-workflow.md 12 KB
- requirements.txt 64 B
- scripts/batch_download.mjs 35 KB runs code
- scripts/browser_pdf_downloader.mjs 5.4 KB runs code
- scripts/cdp_open_url.mjs 1.7 KB runs code
- scripts/configure_credentials.py 6.7 KB runs code
- scripts/configure_school.py 4.4 KB runs code
- scripts/extract_pdf_text.py 2.8 KB runs code
- scripts/lib/anti-bot.mjs 33 KB runs code
- scripts/lib/cdp-utils.mjs 5.2 KB runs code
- scripts/lib/cnki.mjs 15 KB runs code
- scripts/lib/credentials.mjs 2.5 KB runs code
- scripts/lib/direct-download.mjs 1.4 KB runs code
- scripts/lib/manifest.mjs 1.2 KB runs code
- scripts/lib/metadata.mjs 2.1 KB runs code
- scripts/lib/open-access-provider.mjs 4.4 KB runs code
- scripts/lib/open-access.mjs 4.8 KB runs code
- scripts/lib/pdf-utils.mjs 7.0 KB runs code
- scripts/lib/provider-registry.mjs 365 B runs code
- scripts/lib/provider-utils.mjs 1.9 KB runs code
- scripts/lib/publisher-providers.mjs 4.4 KB runs code
- scripts/lib/routing.mjs 2.4 KB runs code
- scripts/lib/school-config.mjs 1016 B runs code
- scripts/lib/settings.mjs 501 B runs code
- scripts/lib/status-codes.mjs 6.9 KB runs code
- scripts/lib/wos-supporting-information.mjs 8.9 KB runs code
- scripts/retry_elsevier_api.mjs 801 B runs code
- src/config.py 5.2 KB runs code
- src/health_check.py 4.3 KB runs code
- src/schools_loader.py 3.6 KB runs code
- src/validators.py 6.0 KB runs code
- src/wizard.py 23 KB runs code
- tests/python/test_config_credentials.py 1.3 KB runs code
- tests/python/test_config_wizard.py 7.2 KB runs code
- tests/unit/batch-cli.test.mjs 3.1 KB runs code
- tests/unit/cnki.test.mjs 2.6 KB runs code
- tests/unit/credentials.test.mjs 1.2 KB runs code
- tests/unit/generic-package.test.mjs 1.8 KB runs code
- tests/unit/manifest.test.mjs 1.0 KB runs code
- tests/unit/metadata.test.mjs 1.0 KB runs code
- tests/unit/open-access-provider.test.mjs 3.3 KB runs code
- tests/unit/open-access.test.mjs 2.8 KB runs code
- tests/unit/provider-utils.test.mjs 1.4 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 · 351 lines · 36 tokens per session scan A 0351f9069e77
nature-downloader is a skill published in the GitHub repository Yuan1z0825/nature-skills (40,913 stars, last pushed 2d ago), licensed Apache-2.0. It adds 36 tokens to every session and 5,254 once invoked, about $0.0002 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
baoyu-youtube-transcript
A tool for downloading the written captions, subtitles, chapter information, speaker labels, and cover image from a YouTube video using its URL or ID.
baoyu-url-to-markdown
Fetch any URL and convert to markdown using baoyu-fetch CLI (Chrome CDP with site-specific adapters). Built-in adapters for X/Twitter, YouTube transcripts, Hacker News threads, and generic pages via Defuddle. Handles login/CAPTCHA via interaction wait modes. Use when user wants to save a webpage as markdown.
cash-flow-snapshot
Create a 30/60/90-day cash-flow forecast from AR, AP, opening cash, payment timing, and fixed-cost data. Use when asked about runway, payroll coverage, liquidity risks, or a near-term cash crunch.
agent-wiki
Incremental LLM-friendly wiki generator for Obsidian note vaults. Use when: (1) Building wiki from notes, (2) Ingesting notes to wiki, (3) Obsidian LLM wiki, (4) Incremental knowledge base management. Triggers: 'build wiki from notes', 'ingest notes to wiki', 'Obsidian LLM wiki', 'incremental knowledge base'.
download-fulltext-pdf
A skill for downloading a research paper's complete PDF using an identifier such as a DOI, title, or BibTeX entry.
content-portability
Use when the user says 'export my site', 'backup my pages before editing', 'download my content locally', or 'migrate content to my other site'. Exports pages, posts, and custom posts to portable local packages with builder data, media, and markdown, then imports elsewhere with ID remapping.