Paper to Slides
by @zhangguanghao523
End-to-end academic paper analysis and presentation generation. Use when a user provides a PDF paper (local path or arXiv URL) and wants (1) a deep research...
clawhub install paper2slides๐ About This Skill
name: paper-to-slides description: End-to-end academic paper analysis and presentation generation. Use when a user provides a PDF paper (local path or arXiv URL) and wants (1) a deep research report (dual-mode Part A + Part B), (2) an HTML slide deck for group meeting / seminar / conference talk, or (3) both. Triggers on "read this paper and make slides", "parse this paper into a presentation", "่ฎบๆ็ ่ฏป+ๅPPT", "่งฃๆ่ฎบๆๅๆslides", or any request combining paper analysis with presentation output. Supports arXiv links (abs/pdf), DOI URLs, and direct PDF URLs.
Paper to Slides
Two-phase pipeline: Phase 1 deep-reads an academic paper into a structured dual-mode report, Phase 2 transforms the report into a polished, zero-dependency HTML presentation.
Dependencies
pdftotext (from poppler) โ install via brew install poppler or apt install poppler-utils if missingPhase 1: Paper Deep-Read
Step 1.0 โ Resolve input source
Determine the input type and obtain a local PDF:
| Input | Action |
|-------|--------|
| Local path (/path/to/paper.pdf) | Use directly |
| arXiv abs URL (https://arxiv.org/abs/2603.02096) | Convert to https://arxiv.org/pdf/2603.02096 and download |
| arXiv PDF URL (https://arxiv.org/pdf/2603.02096) | Download directly |
| Other PDF URL | Download directly |
Download command:
curl -L -o /tmp/paper.pdf ""
Use the arXiv ID or paper title as the filename when possible (e.g., /tmp/2603.02096_FluxMem.pdf).
Step 1.1 โ Extract full text
pdftotext "" /tmp/paper_text.txt
Read the extracted text completely. For papers with critical figures, try extracting key pages as images via pdftoppm and analyzing them with the image tool.
Step 1.2 โ Comprehensive analysis
Create temp_analysis.md extracting:
This step is mandatory โ it ensures report quality through structured thinking.
Step 1.3 โ Write dual-mode report
Generate [PaperName]_็ ่ฏปๆฅๅ.md containing both parts separated by ---:
Writing standards: Use complete paragraphs over bullet lists. Provide bilingual terms (ไธญ่ฑ) on first mention. Support every claim with specific data from the paper.
Step 1.4 โ Deliver report
Present the report file and briefly summarize the paper's core innovation, key findings, and theoretical value.
Phase 2: Slides Generation
If the user only requested a report, stop after Phase 1.
Step 2.0 โ Confirm parameters
Ask the user (all at once):
1. Purpose: ็ปไผๆฑๆฅ / ๅญฆๆฏไผ่ฎฎ / ๆๅญฆ / ๅ ถไป 2. Length: Short (5-10) / Medium (10-20) / Long (20+) 3. Theme: ไบฎ่ฒ / ๆ่ฒ / ๅๅฅฝ็้ฃๆ ผ 4. Editing: ๆฏๅฆ้่ฆๆต่งๅจๅ ็ผ่พๅ่ฝ
If the user already specified these in the initial request, skip asking and proceed.
Step 2.1 โ Choose style
Select an appropriate style based on user preferences. Read slide-styles.md for available presets and CSS specifications. Academic presentations generally suit Swiss Modern (light), Notebook Tabs (light), or Bold Signal (dark).
Step 2.2 โ Plan slide outline
Map the report content to a slide structure. Typical academic paper outline (15-19 slides):
| Section | Slides | Content | |---------|--------|---------| | Title | 1 | Paper title, authors, affiliations, date | | Problem | 1-2 | Background, existing gaps, key insight | | Method (divider) | 1 | Section divider slide | | Method details | 3-5 | Core modules, formulas, architecture | | Results (divider) | 1 | Section divider slide | | Quantitative results | 2-3 | Main results tables, metrics, comparisons | | Efficiency / Ablation | 1-2 | Efficiency gains, ablation studies | | Discussion (divider) | 1 | Section divider slide | | Advantages & Limitations | 1-2 | Key properties, future directions | | Summary | 1 | One-line takeaway | | Thanks | 1 | Links, navigation hints |
Step 2.3 โ Generate HTML
Read slide-template.md for the mandatory HTML architecture, viewport CSS, JS controller, and inline editing implementation.
Non-negotiable rules:
.slide must have height: 100vh; height: 100dvh; overflow: hiddenclamp() โ never fixed px/remprefers-reduced-motion supportIf inline editing is enabled, implement via contentEditable API + localStorage persistence. Use JS-based hover with 400ms delay for the edit button (not CSS ~ sibling selector โ it breaks due to pointer-events). See the template for the complete implementation.
Step 2.4 โ Open and deliver
open [filename].html
Tell the user: file location, slide count, navigation (arrow keys / space / dots), and editing instructions (press E) if enabled.
Both Phases Together
When the user requests both report and slides, run Phase 1 fully first, then Phase 2. The report serves as the structured source for slide content โ do not re-analyze the paper.