Scope. This document is a distribution-tier overlay on the satellite contract in
skills/meta-analysis/SKILL.md§13.4. §13.4 is authoritative for when a satellite is called, its command/entry, its IO contract, and exactly how the skill degrades when the satellite is absent (a four-tuple hard contract). This file answers only the one question §13.4 does not: "As someone who cloned this repo, where do I GET each satellite, and what do I lose if I skip it?" The "if missing" column here is a one-line pointer — the binding degrade behaviour lives in §13.4, and is not restated.
| Tier | Meaning |
|---|---|
| Bundled | Ships inside another in-repo skill; no separate install — you already have it. |
| Ships with this repo | A top-level skill in skills/; installed by ./install.sh. |
| External link (required) | The main chain needs it; clone the linked public repo separately. |
| External link (optional) | Enhances output; the skill runs without it via a built-in fallback. |
| Pending | Planned to be open-sourced by its author; not yet public. Use a contract-compatible substitute meanwhile. |
| Not open-sourced | Deliberately excluded from this repo (compliance). Obtain via a third-party skill; compliance risk is externalized. |
./install.sh installs five in-repo skills: meta-analysis,
systematic-review, review-methodology-foundations, academic-ref-check,
manuscript-typeset. ma-plots is not a separate skill — it lives inside
meta-analysis. Runtime dependencies (R packages, pandoc, XeLaTeX, node, fonts)
are installed by ./setup.sh and checked by python3 doctor.py; installing a
skill is not the same as installing its dependencies.
| Satellite | Distribution tier | How to obtain (link + install) | If missing → degrade (see §13.4) |
|---|---|---|---|
| ma-plots (forest / funnel / PRISMA / RoB renderers) | Bundled in meta-analysis |
Already present at skills/meta-analysis/scripts/plots/; installed with meta-analysis by ./install.sh. Its runtime deps (matplotlib, numpy; and R + PRISMA2020/robvis for the PRISMA/RoB wrappers) come from ./setup.sh — verify with doctor.py. |
Renderer or its R/Python deps absent → block the figure and report what is missing; never fall back to hand-written matplotlib. |
| ssci-plots (style base for ma-plots) | External link (optional) — MIT | git clone https://github.com/O0000-code/SSCI-Plots.git ~/.claude/skills/ssci-plots then pip install matplotlib numpy pillow. Point ma-plots at it with export SSCI_PLOTS_SCRIPTS=~/.claude/skills/ssci-plots/scripts. |
Absent → inline fallback style + WARN (font/colour only; layout unaffected). Optional: ma-plots resolves SSCI_PLOTS_SCRIPTS → sibling path → inline base. |
| manuscript-typeset (submission/publication typesetting) | Ships with this repo — installed by ./install.sh |
In skills/manuscript-typeset/. External CLI deps pandoc + XeLaTeX (TinyTeX) install via ./setup.sh; check with doctor.py. |
Missing xelatex → docx + md only (PDF marked skipped); missing pandoc → exit 1 (blocks); fidelity check never degrades. |
| academic-ref-check (SP7 citation gate) | Ships with this repo — installed by ./install.sh |
In skills/academic-ref-check/. Verifies against OpenAlex + CrossRef over HTTP (no key needed for the public endpoints). |
Verify-capability loss (HTTP failure / unverified) ≠ pass — SP7 stays fail-closed; switch to manual multi-source verification with the burden disclosed. |
| paper-search-pro (literature discovery) | External link (required for the auto search path) — Apache-2.0 | git clone https://github.com/O0000-code/paper-search-pro.git ~/.claude/skills/paper-search-pro, then export PSP_HOME=~/.claude/skills/paper-search-pro and python3 -m pip install -r "$PSP_HOME/scripts/requirements.txt". Homepage: https://o0000-code.github.io/paper-search-pro/. |
Absent / unusable → §11.1 fallback table: manual CNKI/Wanfang export → ingest_search_exports.py; never fabricate references from memory. |
| document-to-markdown (PDF/OCR → Markdown) | Pending — author will open-source (O0000-code/document-to-markdown, currently private) |
Not yet public. Meanwhile, any Agent-Skills-format PDF→MD / OCR converter that satisfies the G6 full-text executor contract (produces content_list.json + runs derive_anchors) can be swapped in. |
d2m missing in the executor → swap to an executor that has one, or record the conversion gap honestly in the receipt (anchors=none, caught by validate_fulltext.py); the main session blocks consumption and discloses — it does not do the conversion itself. |
| paper-downloader (DOI → PDF full-text acquisition) | Not open-sourced (compliance — see below) | Distribution tier resolves in order: (1) local paper-downloader-portable if present (preferred) → (2) third-party skill paper-fetch (selected below) → (3) manual-only hand-download per the G6 full-text request pack. |
Governed by the G6 download_policy.downloader.tier. All tiers feed the same fulltext_receipt.csv; validate_fulltext.py (--receipt --policy) is the fail-closed acceptance gate. See §13.4 for the full degrade chain. |
This repository ships no bulk PDF downloader and no Sci-Hub code, on purpose.
Full-text acquisition is the one step with real copyright exposure (see
docs/PUBLICATION-BOUNDARY.md), so it is handed off to
a separately-authored, separately-licensed third-party skill that the user
installs and runs under their own account. The compliance risk therefore sits with
that third-party skill plus the user's own explicit opt-in — not with this repo.
| Field | Value |
|---|---|
| Repo | https://github.com/Agents365-ai/paper-fetch |
| Author | Agents365-ai (unaffiliated with this project) |
| License | MIT |
| Docs | https://agents365-ai.github.io/paper-fetch/ |
| Latest release | v0.15.1 · actively maintained (tagged releases) |
| Runtime deps | None — pure Python stdlib (python3 ≥ 3.8) |
| What it does | Resolves a DOI (or batch of DOIs) to a PDF via a 7-source fallback chain: Unpaywall → Semantic Scholar → arXiv → PubMed Central → bioRxiv/medRxiv → publisher-direct (institutional opt-in) → Sci-Hub (last resort). Per-source reporting; typed exit codes; batch via --batch dois.txt. |
This third-party metadata is UNVERIFIED — a snapshot as of 2026-07-06. The version, license, dependency claims, source chain, and the
PAPER_FETCH_*env-var trust model described here are this project's reading of an external repository it does not control. Confirm them against https://github.com/Agents365-ai/paper-fetch before relying on them, and treat the compliance behaviour below as something you must re-check per release.
Why this one (hard constraints first, then fit):
- Functional fit is exact. The G6 full-text request pack hands the executor a
download_list.csvof DOIs; paper-fetch's core operation is "DOI (or batch) → PDF." No re-search step, no keyword harvesting — it consumes exactly the input we produce. (Rejectedliterature-harvesthere: it is keyword-driven, a mismatch for an already-resolved DOI list.) - Clean, redistributable license. MIT. (Rejected
auto-paper-harvester: "No License" = all-rights-reserved, not safe to recommend for redistribution, and it ships a hardcoded credential.) - Actively maintained, zero-deps. Tagged releases, pure stdlib — trivial for a first-time user to install and audit. (Star count / activity: see upstream; not restated here to avoid shipping a stale figure — see the snapshot caveat above.)
- Its channel model mirrors ours. paper-fetch's 7-source chain with
per-source reporting maps cleanly onto the G6
download_policy.yamlchannel whitelist and thefulltext_receipt.csvper-paper channel record.
Two candidates were eliminated on the hard constraints above; a fourth,
aigc-down-skill, is a Chinese-thesis de-AIGC rewriter (misleading name — not a
downloader) and never entered scoring.
# Any agent (installs the whole 365-skills marketplace, which includes paper-fetch)
npx skills add Agents365-ai/365-skills -g
# Claude Code only
> /plugin marketplace add Agents365-ai/365-skills
> /plugin install paper-fetch
# Or clone and call the script directly (zero deps)
git clone https://github.com/Agents365-ai/paper-fetch.git
python3 paper-fetch/skills/paper-fetch/scripts/fetch.py 10.1038/s41586-021-03819-2- This repo does not download anything. paper-fetch is a third party's MIT code, installed and run by you, under your account and jurisdiction. The legal responsibility for how it is used is yours, not this project's.
- Sci-Hub is paper-fetch's last-resort source and is ON BY DEFAULT. To keep it
off — the correct default under this project's boundary — set
export PAPER_FETCH_NO_SCIHUB=1before running. - This maps directly onto the G6
download_policy.yamlgate: whenallow_scihub: false(the default), the executor must run paper-fetch withPAPER_FETCH_NO_SCIHUB=1. Only a one-time, explicit user opt-in (allow_scihub: true) authorizes the Sci-Hub fallback. paper-fetch enforces the same trust boundary in its own design — Sci-Hub, institutional (PAPER_FETCH_INSTITUTIONAL=1), and CloakBrowser (PAPER_FETCH_CLOAK=1) modes are all gated on a human operator setting an environment variable; the agent cannot opt itself in. - Publisher-direct / institutional access uses your own subscription IP /
EZproxy session (
PAPER_FETCH_INSTITUTIONAL=1) — again, your authorization, your responsibility.
If a local paper-downloader-portable is present (an agent-side skill this project
was developed against), it is preferred over the third-party skill — this is the
download_policy.downloader.tier ordering in §13.4. paper-fetch is the tier-2
substitute when no local downloader exists; manual-only (hand-download per the G6
request pack) is the tier-3 floor. Whatever the tier, the output must pass
validate_fulltext.py before the main session consumes it.
document-to-markdownis genuinely pending — the source repo is private and not yet released. This document does not claim it is available. Until it is, the full-text conversion step relies on a contract-compatible substitute in the executor.paper-downloaderis deliberately not open-sourced — this is a policy choice, not an omission. The repo ships no downloader so that no copyright or Sci-Hub exposure lives in the public tree; acquisition is externalized to a third-party skill under the user's own opt-in.- External links point to the maintainers' own public repos (
paper-search-proApache-2.0,SSCI-PlotsMIT). They are not vendored here to keep licensing and update responsibility with each upstream. Cloning them is a separate, explicit user action.
Authority: skills/meta-analysis/SKILL.md §13.4 (four-tuple satellite contract) is
Decisional for call/IO/degrade. This file is Referential for distribution tier only.
On any conflict, §13.4 wins.