Read research paper
Three complementary agent skills for academic research: WRITES papers, FINDS papers on a topic, READS any paper as a visual experience (mind maps, flowcharts, plain-English). Runtime-neutral, works with 50+ agents. Install: npx skills add aniketkrs/research-paper
npx -y skills add aniketkrs/research-paper --skill read-research-paperAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Renders ANY research paper (URL / arXiv ID / DOI / PDF / pasted text) into a visually engaging multi-format reading experience — with mind maps, method flowcharts, key-finding infographics, comparison tables, related-work timelines, and a plain-English layer alongside the technical content. Activates on slash commands (`/read-research-paper`, `/read-paper`, `/explain-paper`, `/visualize-paper`) and natural-language requests like "read this research paper [URL]", "explain this paper [URL]", "make this paper visual [URL]". Caches every fetched paper locally so re-asks are instant. Ships with a bundled corpus of canonical papers for offline fallback. Hands off to `research-paper` for citation reuse and to `get-research-paper` for related-work expansion. Runtime-neutral.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
13.7 KB, as published. Nobody here has run it
Read Research Paper
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.
1. When to activate
Slash commands
| 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:
- A URL:
https://arxiv.org/abs/2403.01234,https://doi.org/...,https://example.com/paper.pdf, journal landing page, etc. - An arXiv ID:
2403.01234orcs.LG/0701002 - A DOI:
10.1145/3589334 - Pasted text: the paper's abstract or full body
- A local file in any supported format (see below).
Supported file formats
The 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-formats
Full reference: sources/file-formats.md.
Common options
| 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 |
Natural-language patterns
- "read this research paper <URL>"
- "explain this paper <URL>"
- "make this paper visual <URL>"
- "I want to understand this paper <URL>"
- "summarize this paper <URL>"
- "tldr this paper <URL>"
- "what does this paper say <URL>"
Negative activation
Do NOT activate for:
- Requests to find papers on a topic (route to
get-research-paper). - Requests to write a new paper (route to
research-paper). - Pasted prose without a paper-shaped input ("here's an article…").
- Casual questions about a topic that don't reference a specific paper.
2. Output contract
Every run produces:
paper-visual.md— the headline deliverable. Multi-layer:- One-page infographic at the top (mind map + key numbers).
- TL;DR in 5–8 sentences.
- Plain-English summary in 5–10 sentences.
- Section-by-section walk-through with each section preceded by a 1-paragraph plain-English version, then the technical content with extracted / generated visuals.
- Method flowchart (Mermaid).
- Key findings infographic (charts with the paper's headline numbers).
- Comparison table to baselines (when present).
- Related work timeline (when references are available).
- "Why this matters" footer.
paper-data.json— structured extracted metadata: title, authors, year, abstract, sections, figures, tables, key numbers, references. Schema inschemas/visual-paper.json.figures/— generated charts / diagrams / mind maps as PNG + SVG + Mermaid sources.cache/<paper-id>.json— cached for re-use.Known-gaps.md— anything that couldn't be fetched / parsed.
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.
3. Operating principles
- Anchor to TODAY's date. When the input is a topic-style query
(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. - Don't bluff. If a URL doesn't resolve or a PDF can't be
parsed, say so. Mark
[FETCH FAILED — fallback to cache | model knowledge | corpus]and surface inKnown-gaps.md. - Cache everything. Every successfully fetched paper is written
to
~/.agents/skills/read-research-paper/cache/. Re-asks are instant. - Ship the corpus. A small bundled corpus of canonical papers
(
corpus/anchor-papers.yaml) is searched first when the input is a topic-style query rather than a specific paper. - Visual-by-default. Generate at minimum: 1 mind map + 1 method flowchart + 1 key-findings figure + 1 comparison table.
- Dual register. Every section has BOTH plain-English and technical content. Never strip the technical depth — augment with simpler language alongside.
- Honest interpretation. Don't oversell findings. Match the paper's own certainty. If the paper hedges, the visual paper hedges.
4. Top-level workflow
intake → fetch → parse → extract-figures-and-data →
plan-visuals → render → assemble → cache → output
Each phase has a dedicated playbook. Master pipeline:
workflows/ingestion.md.
5. Source detection
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.
6. Three-tier fallback
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 entry
Every tier transition is logged in Known-gaps.md so the user knows
where the rendered paper came from.
7. Visual rendering plan
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.
8. Cache architecture
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 IDs
When 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.
9. Bundled corpus
Ships in corpus/:
anchor-papers.yaml— ~30 canonical, high-impact papers across major 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/.
10. Failure handling
- URL doesn't resolve → try arXiv ID extraction, then DOI lookup,
then surface in
Known-gaps.md. - PDF unparseable → fall back to abstract-only rendering with a warning.
- Model couldn't extract figures → generate Mermaid alternatives.
- No headline numbers in results → use qualitative findings.
- Web tools unavailable → cache + corpus + model-knowledge in that order.
Full matrix: workflows/ingestion.md §10.
11. Where to look next
- Plan an ingestion →
workflows/ingestion.md - Pick visuals →
workflows/visualization.md - Cache protocol →
workflows/caching.md - Plain-English layer →
prompts/plain-english.md - Mind-map generation →
prompts/generate-mindmap.md - Output format →
templates/visual-paper.md - Bundled corpus →
corpus/ - Fetch tools →
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)