Agent skill

General Publisher Access Guard

by learningmatter-mit in learningmatter-mit/AtomisticSkills

Avoid bot-blocking publisher websites by routing paper retrieval through legal open-access APIs and mirrors.

MITAuto-check passed

Install General Publisher Access Guard

skills CLI
$ npx skills add learningmatter-mit/AtomisticSkills --skill general-publisher-access-guard -a claude-code

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

GitHub CLI
$ gh skill install learningmatter-mit/AtomisticSkills general-publisher-access-guard --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/learningmatter-mit/AtomisticSkills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/general-publisher-access-guard .claude/skills/general-publisher-access-guard && 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
general-publisher-access-guard
GitHub stars
176
Token cost
~1.6k tokens
SKILL.md length
617 words
Files
12 (incl. scripts)
Skills in repo
129
Repo updated
First seen
Licence
MIT

At a glance

Avoid bot-blocking publisher websites by routing paper retrieval through legal open-access APIs and mirrors.

  • Works in 4 steps: Pre-Flight Publisher Assessment → Execute the Safe Retrieval Cascade → Graceful Handling of Paywalled Literature → …
  • SKILL.md covers Goal, Instructions, Examples and Constraints, plus 1 more section
  • Runs Python scripts from its folder; reaches pubs.acs.org; needs ELSEVIER_API_KEY and SPRINGER_API_KEY

What it does

General Publisher Access Guard is an agent skill from learningmatter-mit/AtomisticSkills. Avoid bot-blocking publisher websites by routing paper retrieval through legal open-access APIs and mirrors.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 16 other files, including scripts (for example `examples/acs-blocked-paper/10.1021_acs.jpclett.7b00189_data.json`, `examples/acs-blocked-paper/10.1021_acs.jpclett.7b00189_summary.md` and `examples/acs-blocked-paper/README.md`).

The repository describes itself as: Integrating AtomisticSkills into Agentic IDEs (Cursor, Claude Code, Codex, Google Antigravity, Hermes Agent, etc). The licence is MIT.

Example prompts

  • “/general-publisher-access-guard”

Requirements

  • Python 3
  • A credential in ELSEVIER_API_KEY
  • A credential in SPRINGER_API_KEY

Workflow steps

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

  1. Pre-Flight Publisher Assessment
  2. Execute the Safe Retrieval Cascade
  3. Graceful Handling of Paywalled Literature
  4. Auditing Publisher Defenses

What it can do on your machine

Read from SKILL.md and the folder at commit 6257444. 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.

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • pubs.acs.org

    Also links to:

    • doi.org

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

  • Credentials

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

    • ELSEVIER_API_KEY
    • SPRINGER_API_KEY

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

Context cost

General Publisher Access Guard loads about 1.6k tokens when it runs. Until then it costs about 35 tokens; SKILL.md has 617 words of instructions outside code blocks.

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

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 passed

The automated check found no risky patterns in SKILL.md.

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 learningmatter-mit/AtomisticSkills at commit 6257444, republished under its MIT licence (© learningmatter-mit). 617 words, ~1,649 tokens.

Download SKILL.mdSave it as .claude/skills/general-publisher-access-guard/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.
name
general-publisher-access-guard
description
Avoid bot-blocking publisher websites by routing paper retrieval through legal open-access APIs and mirrors.
metadata.category
general
metadata.venv
cpu

General Publisher Access Guard

Goal

To prevent autonomous research agents from being blocked by scientific journal publisher web application firewalls (Cloudflare Turnstile, Radware CAPTCHA, Akamai, Imperva) and HTTP 403/429 error loops, by auditing publisher anti-bot policies and automatically routing paper retrieval through legal open-access APIs, repository mirrors, and reconstructed abstract services.

Instructions

When the user asks you to fetch, read, summarize, or analyze scientific literature from specific URLs or DOIs, NEVER use direct web scraping (read_url_content, curl, or raw requests.get) on known bot-blocking publisher domains. Follow the three steps below:

1. Pre-Flight Publisher Assessment

Before attempting to download or scrape any paper URL or DOI, inspect the domain against the curated publisher policy matrix.

bash
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/scripts/check_publisher.py --url "https://pubs.acs.org/doi/10.1021/acs.chemmater.9b04758"

Or with DOI:

bash
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/scripts/check_publisher.py --doi "10.1103/PhysRevLett.120.145301" --json

Decision Rule:

  • If direct_scraping_safe: false (status BLOCKED or API ONLY), you MUST NOT scrape or curl the publisher web page. Proceed immediately to Step 2.
  • Known blocked domains include: pubs.acs.org, journals.aps.org, link.aps.org, sciencedirect.com, link.springer.com, nature.com, onlinelibrary.wiley.com, pubs.rsc.org, iopscience.iop.org, pubs.aip.org, ieeexplore.ieee.org, science.org, pnas.org, tandfonline.com, academic.oup.com, and mdpi.com.
2. Execute the Safe Retrieval Cascade

Run the safe paper retriever to query legitimate APIs in priority order:

  1. Official Publisher APIs: If credentials (ELSEVIER_API_KEY, SPRINGER_API_KEY) are present in environment variables.
  2. OpenAlex Works API: Retrieves complete bibliographic metadata (authors, journal, citations, publication year) and reconstructs the full abstract from the inverted index.
  3. Filtered Unpaywall API: Searches for legal Green/Gold Open Access copies hosted in institutional and disciplinary repositories (e.g. arXiv, PubMed Central, Zenodo, university .edu repositories), automatically discarding any link pointing back to a blocked publisher domain.
  4. Europe PMC API: Direct open access XML/PDF retrieval for biomedical and chemistry literature.
  5. Preprint APIs: Queries arXiv API or ChemRxiv API with required rate throttling (minimum 3 seconds delay).
bash
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/scripts/safe_paper_retriever.py \
    --doi "10.1103/PhysRevLett.120.145301" \
    --output_dir ./papers

The script outputs:

  • <safe_doi>_summary.md: Structured markdown report with title, authors, citations, reconstructed abstract, and access notes.
  • <safe_doi>.pdf: Downloaded open-access PDF (if available in a safe repository).
  • <safe_doi>_text.txt: Plaintext extracted from the PDF via PyMuPDF.
3. Graceful Handling of Paywalled Literature

If no open-access copy exists across repository mirrors:

  • DO NOT retry scraping the publisher website.
  • Read and synthesize the abstract provided in <safe_doi>_summary.md.
  • Inform the user that the full text is restricted by publisher paywalls/WAFs, and request them to upload the institutional PDF to the workspace if full-text extraction is required.
Show full SKILL.md (243 more words)Show less
4. Auditing Publisher Defenses

To test live publisher WAF defenses or verify if a publisher's bot policy has updated:

bash
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/scripts/audit_publishers.py --publisher acs

Or audit all major publishers:

bash
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/scripts/audit_publishers.py --all

Examples

Example 1: Bypassing ACS Bot Block for Perovskite Battery Paper

Handling an ACS paper (10.1021/acs.jpclett.7b00189) where direct web scraping returns Cloudflare Turnstile 403:

bash
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/scripts/safe_paper_retriever.py \
    --doi "10.1021/acs.jpclett.7b00189" \
    --output_dir examples/acs-blocked-paper

See examples/acs-blocked-paper/README.md for full execution traces and validation against published literature.

Handling an APS Physical Review Letters paper (10.1103/PhysRevLett.120.145301) by bypassing blocked link.aps.org/pdf and fetching the author manuscript from OSTI/MIT DSpace:

bash
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/scripts/safe_paper_retriever.py \
    --doi "10.1103/PhysRevLett.120.145301" \
    --output_dir examples/oa-repository-bypass

See examples/oa-repository-bypass/README.md for step-by-step instructions.

Constraints

  • Environment: Requires the cpu environment (contains requests, pymupdf / fitz).
  • Zero Direct Scrape: Never execute curl, read_url_content, or browser automation on blocked publisher domains.
  • Unpaywall Polite Pool: Provide an email address in UNPAYWALL_EMAIL or OPENALEX_EMAIL environment variable to access high-throughput API pools.
  • Preprint Rate Limits: arXiv requests must maintain a minimum 3-second crawl delay.
  • Institutional Access: Paywalled papers without green open-access copies cannot be legally decrypted without subscriber credentials or manual PDF upload.

References

  • Priem, J., Piwowar, H., & Orr, R., "OpenAlex: A fully-open index of scholarly works, authors, venues, institutions, and concepts", arXiv:2205.01833, 2022. DOI: 10.48550/arXiv.2205.01833
  • Piwowar, H. et al., "The state of OA: a large-scale analysis of the prevalence and impact of Open Access articles", PeerJ, 6:e4375, 2018. DOI: 10.7717/peerj.4375
  • Ferguson, C. et al., "Europe PMC: a stocktake by the Europe PMC Consortium", Nucleic Acids Research, 49(D1):D1507-D1514, 2021. DOI: 10.1093/nar/gkaa994
  • Cloudflare AI Crawl Control & Bot Management Whitepaper, 2024.

© learningmatter-mit, 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 11 other files (scripts) in skills/general-publisher-access-guard of learningmatter-mit/AtomisticSkills.

  • SKILL.md
  • examples/acs-blocked-paper/10.1021_acs.jpclett.7b00189_data.json
  • examples/acs-blocked-paper/10.1021_acs.jpclett.7b00189_summary.md
  • examples/acs-blocked-paper/README.md
  • examples/oa-repository-bypass/10.1103_PhysRevLett.120.145301_data.json
  • examples/oa-repository-bypass/10.1103_PhysRevLett.120.145301_summary.md
  • examples/oa-repository-bypass/10.1103_PhysRevLett.120.145301_text.txt
  • examples/oa-repository-bypass/README.md
  • resources/publisher_policy_matrix.json
  • scripts/audit_publishers.py
  • scripts/check_publisher.py
  • scripts/safe_paper_retriever.py

Open the folder on GitHubat commit 6257444

Compare with similar skills

General Publisher Access Guard 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.

General Publisher Access Guard compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
General Publisher Access Guard this skilllearningmatter-mit/AtomisticSkills176—~1.6kAutomated safety check: PassMIT
Blocking IO Guardbytedance/deer-flow83k—~1.7kAutomated safety check: PassMIT
Publishcode-yeongyu/oh-my-openagent70k—~5.5kAutomated safety check: WarnCustom licence
Social Publisheraffaan-m/ECC275k1 repos~1.1kAutomated safety check: PassMIT
Guard Modegarrytan/gstack136k—~919Automated safety check: NotesMIT
Publishyc-software/qm15k—~2.2kAutomated safety check: WarnMIT

Similar skills

  • Blocking IO Guard

    bytedance/deer-flow

    Adds a runtime test anchor for backend async code that could block the asyncio event loop, and proves the anchor fails when the blocking call returns.

    83k GitHub stars~1.7k tokensUpdated today
    DevelopmentAuto-check passed
  • Publish

    code-yeongyu/oh-my-openagent

    Publish oh-my-opencode to npm by triggering the GitHub Actions publish workflow and verifying its artifacts.

    70k GitHub stars~5.5k tokensUpdated today
    DevOps & CloudAuto-check: warnings
  • Social Publisher

    affaan-m/ECC

    Agent-driven scheduling and publishing of social media posts across 13 platforms via SocialClaw.

    275k GitHub starsUsed in 1 repo~1.1k tokens
    Writing & ContentAuto-check passed
  • Guard Mode

    garrytan/gstack

    Switches on full safety by combining warnings before destructive commands with a block on edits outside one directory you choose, for work on production or live systems.

    136k GitHub stars~919 tokensUpdated today
    Agent WorkflowsAuto-check: notes
  • Publish

    yc-software/qm

    Publish a long-lived internal web app, site, or dashboard from the agent computer.

    15k GitHub stars~2.2k tokensUpdated today
    DevOps & CloudAuto-check: warnings
  • Safety Guard

    affaan-m/ECC

    Guard against destructive operations with three modes: Careful intercepts dangerous commands (rm -rf, git push --force, DROP TABLE) for confirmation, Freeze locks writes to one directory, and Guard…

    275k GitHub starsUsed in 2 repos~554 tokens
    DevelopmentAuto-check: notes

More from learningmatter-mit/AtomisticSkills

All 129 skills in this repo
  • Drug Binding Site Definition

    learningmatter-mit/AtomisticSkills

    Define a docking search box (center coordinates + box dimensions in Angstroms) from a co-crystal ligand, binding-site residues, or a saved JSON specification.

    176 GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed
  • Drug Complex System Builder

    learningmatter-mit/AtomisticSkills

    Build a solvated, charge-neutralized protein-ligand complex for OpenMM molecular dynamics simulation.

    176 GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Drug Pocket Detection

    learningmatter-mit/AtomisticSkills

    Identify and rank ligandable pockets on a protein structure or model using geometry (fpocket) or an ML predictor (P2Rank).

    176 GitHub stars~4k tokensUpdated yesterday
    Auto-check passed
  • Chem Bond Dissociation

    learningmatter-mit/AtomisticSkills

    Calculate homolytic and heterolytic bond dissociation energies (BDEs) for all single bonds in a molecule using MLIPs with RDKit fragmentation.

    176 GitHub stars~2.5k tokensUpdated yesterday
    Auto-check passed
  • Chem Conformer Search

    learningmatter-mit/AtomisticSkills

    Generate molecular conformers with RDKit ETKDG, relax with MLIPs, and rank by energy with Boltzmann weighting.

    176 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Chem DB Mof

    learningmatter-mit/AtomisticSkills

    Query multiple MOF databases (QMOF via MPContribs; ARC-MOF DB7/Majumdar et al.

    176 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed

Questions about General Publisher Access Guard

What does General Publisher Access Guard do?

Avoid bot-blocking publisher websites by routing paper retrieval through legal open-access APIs and mirrors. General Publisher Access Guard is an agent skill from learningmatter-mit/AtomisticSkills. Avoid bot-blocking publisher websites by routing paper retrieval through legal open-access APIs and mirrors.

How do I install General Publisher Access Guard in Claude Code?

Run `npx skills add learningmatter-mit/AtomisticSkills --skill general-publisher-access-guard -a claude-code`. Or copy the skill folder (skills/general-publisher-access-guard in learningmatter-mit/AtomisticSkills) into .claude/skills/general-publisher-access-guard in your project. Claude Code loads it when a task matches its description.

How do I install General Publisher Access Guard in Codex?

Run `npx skills add learningmatter-mit/AtomisticSkills --skill general-publisher-access-guard -a codex`. Or copy the skill folder (skills/general-publisher-access-guard in learningmatter-mit/AtomisticSkills) into .agents/skills/general-publisher-access-guard in your project. Codex loads it when a task matches its description.

Can I use General Publisher Access Guard 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 learningmatter-mit/AtomisticSkills --skill general-publisher-access-guard -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/general-publisher-access-guard, .gemini/skills/general-publisher-access-guard, .github/skills/general-publisher-access-guard and .opencode/skills/general-publisher-access-guard in your project.

What does General Publisher Access Guard need to run?

Going by SKILL.md and its folder, General Publisher Access Guard needs Python for the scripts in its folder and credentials named ELSEVIER_API_KEY and SPRINGER_API_KEY. Our summary lists: Python 3; A credential in ELSEVIER_API_KEY; A credential in SPRINGER_API_KEY.

Does General Publisher Access Guard access the network?

SKILL.md names 2 domains. In commands or code: pubs.acs.org; the agent is likely to contact it when it follows the instructions. As links in the text: doi.org. This is read from the text; nothing was executed.

Is General Publisher Access Guard safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. 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 General Publisher Access Guard use?

General Publisher Access Guard is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does General Publisher Access Guard use?

About 1.6k tokens (SKILL.md is roughly 6.6k 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 General Publisher Access Guard?

Skills that share tags, products or a category with General Publisher Access Guard: Blocking IO Guard (bytedance/deer-flow, 83k stars), Publish (code-yeongyu/oh-my-openagent, 70k stars), Social Publisher (affaan-m/ECC, 275k stars) and Guard Mode (garrytan/gstack, 136k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains General Publisher Access Guard?

learningmatter-mit (a GitHub organization) maintains it in learningmatter-mit/AtomisticSkills, which has 176 GitHub stars. The repository holds 129 skills in this directory. The repository was last updated on October 7, 2026.

Source: learningmatter-mit/AtomisticSkills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.