paper-slide-deck/SKILL.md
Generate professional slide deck images from academic papers and content. Creates comprehensive outlines with style instructions, auto-detects figures from PDFs, then generates individual slide images. Use when user asks to "create slides", "make a presentation", "generate deck", or "slide deck" for papers.
npx skillsauth add luwill/research-skills paper-slide-deckInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Transform academic papers and content into professional slide deck images with automatic figure extraction.
/paper-slide-deck path/to/paper.pdf
/paper-slide-deck path/to/paper.pdf --style academic-paper
/paper-slide-deck path/to/content.md --style sketch-notes
/paper-slide-deck path/to/content.md --audience executives
/paper-slide-deck path/to/content.md --lang zh
/paper-slide-deck path/to/content.md --slides 10
/paper-slide-deck path/to/content.md --outline-only
/paper-slide-deck # Then paste content
Important: All scripts are located in the scripts/ subdirectory of this skill.
Agent Execution Instructions:
SKILL_DIR${SKILL_DIR}/scripts/<script-name>.ts${SKILL_DIR} in this document with the actual pathScript Reference:
| Script | Purpose |
|--------|---------|
| scripts/generate-slides.py | Generate AI slides via Gemini API (Python) |
| scripts/merge-to-pptx.ts | Merge slides into PowerPoint |
| scripts/merge-to-pdf.ts | Merge slides into PDF |
| scripts/detect-figures.ts | Auto-detect figures/tables in PDF |
| scripts/extract-figure.ts | Extract figure from PDF page (uses PyMuPDF fallback) |
| scripts/apply-template.ts | Apply figure container template |
| Option | Description |
|--------|-------------|
| --style <name> | Visual style (see Style Gallery) |
| --audience <type> | Target audience: beginners, intermediate, experts, executives, general |
| --lang <code> | Output language (en, zh, ja, etc.) |
| --slides <number> | Target slide count |
| --outline-only | Generate outline only, skip image generation |
| Style | Description | Best For |
|-------|-------------|----------|
| academic-paper | Clean professional, precise charts | Conference talks, thesis defense |
| blueprint (Default) | Technical schematics, grid texture | Architecture, system design |
| chalkboard | Black chalkboard, colorful chalk | Education, tutorials, classroom |
| notion | SaaS dashboard, card-based layouts | Product demos, SaaS, B2B |
| bold-editorial | Magazine cover, bold typography, dark | Product launches, keynotes |
| corporate | Navy/gold, structured layouts | Investor decks, proposals |
| dark-atmospheric | Cinematic dark mode, glowing accents | Entertainment, gaming |
| editorial-infographic | Magazine explainers, flat illustrations | Tech explainers, research |
| fantasy-animation | Ghibli/Disney style, hand-drawn | Educational, storytelling |
| intuition-machine | Technical briefing, bilingual labels | Technical docs, academic |
| minimal | Ultra-clean, maximum whitespace | Executive briefings, premium |
| pixel-art | Retro 8-bit, chunky pixels | Gaming, developer talks |
| scientific | Academic diagrams, precise labeling | Biology, chemistry, medical |
| sketch-notes | Hand-drawn, warm & friendly | Educational, tutorials |
| vector-illustration | Flat vector, retro & cute | Creative, children's content |
| vintage | Aged-paper, historical styling | Historical, heritage, biography |
| watercolor | Hand-painted textures, natural warmth | Lifestyle, wellness, travel |
| Content Signals | Selected Style |
|-----------------|----------------|
| paper, thesis, defense, conference, ieee, acm, icml, neurips, cvpr, acl, aaai, iclr | academic-paper |
| tutorial, learn, education, guide, intro, beginner | sketch-notes |
| classroom, teaching, school, chalkboard, blackboard | chalkboard |
| architecture, system, data, analysis, technical | blueprint |
| creative, children, kids, cute, illustration | vector-illustration |
| briefing, bilingual, infographic, concept | intuition-machine |
| executive, minimal, clean, simple, elegant | minimal |
| saas, product, dashboard, metrics, productivity | notion |
| investor, quarterly, business, corporate, proposal | corporate |
| launch, marketing, keynote, bold, impact, magazine | bold-editorial |
| entertainment, music, gaming, creative, atmospheric | dark-atmospheric |
| explainer, journalism, science communication | editorial-infographic |
| story, fantasy, animation, magical, whimsical | fantasy-animation |
| gaming, retro, pixel, developer, nostalgia | pixel-art |
| biology, chemistry, medical, pathway, scientific | scientific |
| history, heritage, vintage, expedition, historical | vintage |
| lifestyle, wellness, travel, artistic, natural | watercolor |
| Default | blueprint |
Optional layout hints for individual slides. Specify in outline's // LAYOUT section.
| Layout | Description | Best For |
|--------|-------------|----------|
| title-hero | Large centered title + subtitle | Cover slides, section breaks |
| quote-callout | Featured quote with attribution | Testimonials, key insights |
| key-stat | Single large number as focal point | Impact statistics, metrics |
| split-screen | Half image, half text | Feature highlights, comparisons |
| icon-grid | Grid of icons with labels | Features, capabilities, benefits |
| two-columns | Content in balanced columns | Paired information, dual points |
| three-columns | Content in three columns | Triple comparisons, categories |
| image-caption | Full-bleed image + text overlay | Visual storytelling, emotional |
| agenda | Numbered list with highlights | Session overview, roadmap |
| bullet-list | Structured bullet points | Simple content, lists |
| Layout | Description | Best For |
|--------|-------------|----------|
| linear-progression | Sequential flow left-to-right | Timelines, step-by-step |
| binary-comparison | Side-by-side A vs B | Before/after, pros-cons |
| comparison-matrix | Multi-factor grid | Feature comparisons |
| hierarchical-layers | Pyramid or stacked levels | Priority, importance |
| hub-spoke | Central node with radiating items | Concept maps, ecosystems |
| bento-grid | Varied-size tiles | Overview, summary |
| funnel | Narrowing stages | Conversion, filtering |
| dashboard | Metrics with charts/numbers | KPIs, data display |
| venn-diagram | Overlapping circles | Relationships, intersections |
| circular-flow | Continuous cycle | Recurring processes |
| winding-roadmap | Curved path with milestones | Journey, timeline |
| tree-branching | Parent-child hierarchy | Org charts, taxonomies |
| iceberg | Visible vs hidden layers | Surface vs depth |
| bridge | Gap with connection | Problem-solution |
| Layout | Description | Best For |
|--------|-------------|----------|
| paper-title | Title, authors, affiliations, venue | Conference paper cover |
| outline-agenda | Numbered section list with highlights | Talk structure overview |
| methods-diagram | Central architecture/pipeline diagram | Methods, system design |
| results-chart | Chart area + data annotations | Quantitative results |
| equation-focus | Centered equation + variable definitions | Mathematical derivations |
| qualitative-grid | 2x2 or 3x2 image comparison grid | Visual results, ablations |
| references-list | Numbered citation list | Key references slide |
| contributions | Numbered contribution points | Contributions summary |
Usage: Add Layout: <name> in slide's // LAYOUT section to guide visual composition.
This deck is designed for reading and sharing, not live presentation:
Each session creates an independent directory named by content slug:
slide-deck/{topic-slug}/
├── source-{slug}.{ext} # Source files (text, images, etc.)
├── outline.md
├── outline-{style}.md # Style variant outlines
├── prompts/
│ └── 01-slide-cover.md, 02-slide-{slug}.md, ...
├── 01-slide-cover.png, 02-slide-{slug}.png, ...
├── {topic-slug}.pptx
└── {topic-slug}.pdf
Slug Generation:
intro-machine-learningIf slide-deck/{topic-slug}/ already exists:
{topic-slug}-YYYYMMDD-HHMMSSintro-ml exists → intro-ml-20260118-143052Copy all sources with naming source-{slug}.{ext}:
source-article.md (main text content)source-diagram.png (image from conversation)source-data.xlsx (additional file)Multiple sources supported: text, images, files from conversation.
source.md)references/analysis-framework.md for deep content analysis--style or auto-select from signals)--slides or dynamic)npx -y bun ${SKILL_DIR}/scripts/detect-figures.ts --pdf source-paper.pdf --output figures.json
This outputs a JSON file with all detected figures/tables, their page numbers, and captions.references/outline-template.md for structurefigures.json from Step 1references/analysis-framework.md Section 8// IMAGE_SOURCE blocks to appropriate slides:
Source: extract)Source: extract)Source: extract)Source: generate or omit)outline-{style}.md for each variantSingle AskUserQuestion with all applicable options:
| Question | When to Ask | |----------|-------------| | Style variant | Always (3 options + custom) | | Language | Only if source ≠ user language |
After selection:
outline-{style}.md to outline.mdoutline.md for fine-tuningIf --outline-only, stop here.
references/base-prompt.mdLayout: specified in outline, include layout guidance in prompt:
Layout: hub-spoke → "Central concept in middle with related items radiating outward"prompts/ directoryBefore generating images, ask user to choose generation method:
Use AskUserQuestion with options:
| Option | Label | Description | |--------|-------|-------------| | 1 | Gemini API (Recommended) | Official Google API via Python. Requires GOOGLE_API_KEY env var. | | 2 | Gemini Web (Browser-based) | ⚠️ Uses reverse-engineered web API. No API key needed but may break. |
Based on selection:
GOOGLE_API_KEY or GEMINI_API_KEY environment variablepython ${SKILL_DIR}/scripts/generate-slides.py <slide-deck-dir> --model gemini-3-pro-image-preview
Script Features:
google-genai package if missing--model flagslides/ subdirectoryTroubleshooting:
Consent Check: Read consent file at:
$APPDATA/baoyu-skills/gemini-web/consent.json~/Library/Application Support/baoyu-skills/gemini-web/consent.json~/.local/share/baoyu-skills/gemini-web/consent.jsonIf no consent or version mismatch, display disclaimer and ask:
⚠️ DISCLAIMER: This uses a reverse-engineered Gemini Web API (NOT official).
Risks: May break anytime, no support, possible account risk.
For each slide, run:
npx -y bun ${GEMINI_WEB_SKILL_DIR}/scripts/main.ts \
--promptfiles prompts/01-slide-cover.md \
--image 01-slide-cover.png \
--sessionId slides-{topic-slug}-{timestamp}
Where GEMINI_WEB_SKILL_DIR = path to baoyu-danger-gemini-web skill directory.
Proxy support: If user is in restricted network, prepend:
HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890
For academic presentations, IMAGE_SOURCE metadata was auto-populated in Step 2 based on figure detection from Step 1.
Automatic Execution:
Parse outline to identify slides with Source: extract
Create figures directory: mkdir -p figures
For each extract slide, automatically:
npx -y bun ${SKILL_DIR}/scripts/extract-figure.ts \
--pdf source-paper.pdf \
--page <page-number> \
--output figures/figure-<N>.png
npx -y bun ${SKILL_DIR}/scripts/apply-template.ts \
--figure figures/figure-<N>.png \
--title "<slide-headline>" \
--caption "Figure <N>: <caption-text>" \
--output <NN>-slide-<slug>.png
For slides with Source: generate (or no IMAGE_SOURCE):
Note: Source PDF must be saved as source-paper.pdf in output directory.
Troubleshooting:
// IMAGE_SOURCE block to outlineFigure: and Page: values in outlinePyMuPDF Fallback for Page Extraction:
If extract-figure.ts fails with "Image or Canvas expected" error (common with complex PDFs), use PyMuPDF:
import fitz
doc = fitz.open("source-paper.pdf")
page = doc[page_num - 1] # 0-indexed
mat = fitz.Matrix(3, 3) # 3x scale for high resolution
pix = page.get_pixmap(matrix=mat)
pix.save(f"extracted/page-{page_num}.png")
Then apply template using apply-template.ts.
Source: extract)slides-{topic-slug}-{timestamp}npx -y bun ${SKILL_DIR}/scripts/merge-to-pptx.ts <slide-deck-dir>
npx -y bun ${SKILL_DIR}/scripts/merge-to-pdf.ts <slide-deck-dir>
Slide Deck Complete!
Topic: [topic]
Style: [style name]
Location: [directory path]
Slides: N total
- 01-slide-cover.png ✓ Cover
- 02-slide-intro.png ✓ Content
- ...
- {NN}-slide-back-cover.png ✓ Back Cover
Outline: outline.md
PPTX: {topic-slug}.pptx
PDF: {topic-slug}.pdf
See references/modification-guide.md for:
Requires:
GOOGLE_API_KEY or GEMINI_API_KEY environment variablegoogle-genai package (auto-installed by script)Model: gemini-3-pro-image-preview (default)
Requires:
baoyu-danger-gemini-web skill installed at .claude/skills/baoyu-danger-gemini-webRequires:
pdfjs-dist npm package (use legacy build for Node.js)pymupdf Python package (more reliable for complex PDFs)canvas npm package for apply-template.ts| File | Content |
|------|---------|
| references/analysis-framework.md | Deep content analysis for presentations |
| references/outline-template.md | Outline structure and STYLE_INSTRUCTIONS format |
| references/modification-guide.md | Edit, add, delete slide workflows |
| references/content-rules.md | Content and style guidelines |
| references/base-prompt.md | Base prompt for image generation |
| references/figure-container-template.md | Visual specs for extracted figure containers |
| references/styles/<style>.md | Full style specifications |
Custom styles and configurations via EXTEND.md.
Check paths (priority order):
.paper-skills/paper-slide-deck/EXTEND.md (project)~/.paper-skills/paper-slide-deck/EXTEND.md (user)If found, load before Step 1. Extension content overrides defaults.
tools
Write peer-review-quality comprehensive reviews for medical imaging AI research (segmentation, detection, classification across CT, MRI, X-ray, ultrasound, pathology). Use this skill whenever the user wants to produce a survey paper, systematic review, literature analysis, or "综述" on deep learning for medical imaging; whenever they mention writing a "review paper" / "literature review" / "系统综述" / "narrative review" / "scoping review" in a medical-AI context; whenever they want a draft suitable for journal submission rather than internal notes; whenever they need help organizing a multi-section method survey with vendor / regulatory / clinical translation coverage. This skill enforces fact-checking, citation integrity, and flagship-review writing voice — NOT a fill-in-the-blank template that invites hallucination. Use it especially when the goal is a publishable manuscript and not just a draft to discuss.
documentation
综述写手 (Survey Writer) — 负责按模板撰写综述论文各章节。 当被研究主管或论文分析师指派写作时激活。基于论文分析卡片和对比表, 按学术写作规范撰写完整的综述论文。
data-ai
综述总监 (Survey Director) — 负责AI/ML前沿综述论文的选题规划、大纲设计、 任务分配与终审。当用户提出综述写作需求时激活。协调 5 个 Agent 完成从选题到终稿的全流程。
testing
质量编辑 (Quality Editor) — 负责综述论文的术语一致性、引用完整性和 整体质量审校。当被研究主管或论文撰写员指派审校时激活。生成审校报告 并修正发现的问题。