read-research-paper — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited read-research-paper (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Where the other two skills do this:
| Skill | What it does |
|---|---|
get-research-paper | FINDS real papers on a topic |
research-paper | WRITES new papers |
| `read-research-paper` (this) | READS ONE paper and makes it engaging |
Give it a URL, arXiv ID, DOI, or pasted text. It produces a visual, multi-layer rendering: technical depth + plain English + mind maps + method flowcharts + key-finding infographics + comparison tables + related-work timelines.
This file is the entry point. Heavier guidance lives in topic folders and is loaded on demand.
| Command | What it does |
|---|---|
/read-research-paper <input> | Full visual rendering (default) |
/read-paper <input> | Alias |
/explain-paper <input> | Same, with extra plain-English layer |
/visualize-paper <input> | Same, emphasizing visuals over prose |
/tldr-paper <input> | One-page infographic summary only |
<input> can be:
https://arxiv.org/abs/2403.01234, https://doi.org/...,https://example.com/paper.pdf, journal landing page, etc.
2403.01234 or cs.LG/070100210.1145/3589334The skill reads any of these as input:
| Format | Extensions | Library used | Always available? |
|---|---|---|---|
| Markdown | .md, .markdown | stdlib | yes |
| Plain text | .txt | stdlib | yes |
| LaTeX | .tex, .latex | stdlib + regex de-LaTeX | yes |
| JSON | .json | stdlib | yes |
| HTML | .html, .htm | beautifulsoup4 (or regex) | yes (regex fallback) |
| CSV / TSV | .csv, .tsv | pandas (or stdlib) | yes (basic via stdlib) |
| RTF | .rtf | striprtf (or regex) | yes (regex fallback) |
.pdf | pdfplumber / pypdf | install one | |
| DOCX | .docx | python-docx | install |
| PPTX | .pptx | python-pptx | install |
| XLSX | .xlsx, .xls | pandas + openpyxl | install |
| EPUB | .epub | ebooklib | install |
| Images | .png, .jpg, .tiff, .bmp | pytesseract + PIL | install (OCR) |
One-line install for everything:
pip install pdfplumber python-docx python-pptx pandas openpyxl \
beautifulsoup4 striprtf ebooklib pytesseract Pillow(Plus install Tesseract OCR system-wide for images.)
The reader is toolchains/read_any_file.py. Self-test:
python toolchains/read_any_file.py --self-test
python toolchains/read_any_file.py --list-formatsFull reference: sources/file-formats.md.
| Option | Default | Effect |
|---|---|---|
--depth | standard | quick / standard / deep |
--audience | mixed | academic / technical / general / mixed |
--visuals | auto | auto / max / minimal / none |
--include-figures | true | Try to extract / re-create paper's own figures |
--cache | true | Use local cache (auto-fill on re-asks) |
--language | en | Plain-English language |
--out | ./<paper-slug>/ | Working directory |
--with-related | false | Trigger get-research-paper for related work |
--with-handoff | false | Emit bibliography.yaml for research-paper |
Do NOT activate for:
get-research-paper).research-paper).Every run produces:
by a 1-paragraph plain-English version, then the technical content with extracted / generated visuals.
headline numbers).
authors, year, abstract, sections, figures, tables, key numbers, references. Schema in schemas/visual-paper.json.
PNG + SVG + Mermaid sources.
If --with-handoff is set, also produces bibliography.yaml ready for the research-paper skill.
If --with-related is set, the orchestrator dispatches get-research-paper on the paper's key topics to seed a related-work section.
(rather than a specific URL/DOI/path), determine today's actual date first (via date -u +%Y-%m-%d, runtime context, or asking the user). For a specific paper input, the freshness check compares the paper's publication date to today and flags stale findings. Full protocol: instructions/freshness.md.
parsed, say so. Mark [FETCH FAILED — fallback to cache | model knowledge | corpus] and surface in Known-gaps.md.
to ~/.agents/skills/read-research-paper/cache/. Re-asks are instant.
(corpus/anchor-papers.yaml) is searched first when the input is a topic-style query rather than a specific paper.
flowchart + 1 key-findings figure + 1 comparison table.
technical content. Never strip the technical depth — augment with simpler language alongside.
paper's own certainty. If the paper hedges, the visual paper hedges.
intake → fetch → parse → extract-figures-and-data →
plan-visuals → render → assemble → cache → outputEach phase has a dedicated playbook. Master pipeline: `workflows/ingestion.md`.
The skill auto-detects input type:
| Input pattern | Path |
|---|---|
arxiv.org/abs/... | arXiv API |
\d{4}\.\d{4,5} (bare arXiv ID) | arXiv API |
doi.org/... or 10\..../... | Crossref → URL → fetch |
*.pdf (URL or local path) | PDF extraction |
| Journal landing page URL | URL scrape + Crossref enrichment |
| Pasted text (no URL) | Treat as paper body; build structure heuristically |
See workflows/ingestion.md §1.
1. Local cache (~/.agents/skills/read-research-paper/cache/)
├── Hit → return immediately (instant)
└── Miss → next tier
2. Live fetch (arXiv API / Crossref / WebFetch / PDF parser)
├── Success → render + cache
└── Fail → next tier
3. Bundled corpus (corpus/anchor-papers.yaml)
├── Hit → return + flag as "from bundled corpus"
└── Miss → next tier
4. Model knowledge
├── Confident → render + flag every fact [UNVERIFIED — offline]
└── Not confident → fail honestly with a Known-gaps entryEvery tier transition is logged in Known-gaps.md so the user knows where the rendered paper came from.
For every paper, the skill produces:
| Visual | Source | Renderer |
|---|---|---|
| Mind map | Paper structure (sections + key ideas) | Mermaid mindmap |
| Method flowchart | Method section | Mermaid flowchart |
| Key-findings infographic | Headline numbers from results | matplotlib if available, else Markdown table |
| Comparison table | Paper's own benchmark table | Markdown table |
| Related-work timeline | References + their years | Mermaid gantt-style timeline |
| Author network | Authors + affiliations | Mermaid flowchart (small) |
| Concept map | Paper's terminology | Mermaid mindmap |
| Figure re-captions | Original figures (when extractable) | Pass-through with new captions |
Decision logic: workflows/visualization.md.
The cache lives at:
~/.agents/skills/read-research-paper/cache/
├── manifest.json # index of all cached papers
├── arxiv/
│ ├── 2403.01234.json
│ └── 2005.11401.json
├── doi/
│ ├── 10.1145_3589334.json
│ └── ...
├── url/
│ └── <sha256-hash>.json
└── topics/
└── <topic-slug>.json # topic → list of cached paper IDsWhen the user asks about a topic (not a specific paper), the cache's topics/ index is searched first, before any live fetch.
Cache schema: workflows/caching.md.
Ships in corpus/:
anchor-papers.yaml — ~30 canonical, high-impact papers acrossmajor topics (transformers, RAG, RLHF, contrastive learning, RCT methodology, PRISMA, etc.).
topics-index.yaml — maps topic keywords to the anchor papers.When the user asks for a paper that's in the corpus, the skill uses the corpus version (always available, even offline). Users can extend the corpus by adding files to corpus/user/.
then surface in Known-gaps.md.
warning.
that order.
Full matrix: workflows/ingestion.md §10.
workflows/ingestion.mdworkflows/visualization.mdworkflows/caching.mdprompts/plain-english.mdprompts/generate-mindmap.mdtemplates/visual-paper.mdcorpus/toolchains/fetch_paper.py,toolchains/extract_pdf.py
This skill complements but does not require the other two:
get-research-paper → find papersresearch-paper → write papersread-research-paper → read papers (this one)~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.