Skip to content

Latest commit

 

History

History
162 lines (132 loc) · 11.6 KB

File metadata and controls

162 lines (132 loc) · 11.6 KB

Dependency Matrix — How Open-Source Users Obtain Each Satellite

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.


Distribution tiers (legend)

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.


Matrix

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 xelatexdocx + md only (PDF marked skipped); missing pandocexit 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.

paper-downloader — third-party skill selection + compliance externalization

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.

Selected third-party skill: paper-fetch

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):

  1. Functional fit is exact. The G6 full-text request pack hands the executor a download_list.csv of 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. (Rejected literature-harvest here: it is keyword-driven, a mismatch for an already-resolved DOI list.)
  2. 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.)
  3. 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.)
  4. Its channel model mirrors ours. paper-fetch's 7-source chain with per-source reporting maps cleanly onto the G6 download_policy.yaml channel whitelist and the fulltext_receipt.csv per-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.

Install

# 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

Compliance note (risk externalized — read before use)

  • 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=1 before running.
  • This maps directly onto the G6 download_policy.yaml gate: when allow_scihub: false (the default), the executor must run paper-fetch with PAPER_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.

Local override

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.


Honest status notes

  • document-to-markdown is 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-downloader is 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-pro Apache-2.0, SSCI-Plots MIT). 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.