Make slides
Skill ShaishavMaisuria/research-paper-lifecycle-skills/skills/make-slides
42 AI agent skills for literature review, academic writing, citation verification, conference submission, rebuttal, publication, and presentations.
npx -y skills add ShaishavMaisuria/research-paper-lifecycle-skills --skill make-slidesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 14 stars14 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
Builds a conference talk deck (Beamer or Marp markdown) from a paper draft - problem-first narrative, one claim per slide, figures reused straight from the paper's LaTeX source, sized to the real slot (12-20 minute full talk vs 5-minute lightning). Use when the user asks to make slides, build a presentation or talk deck for an accepted paper, turn a paper into a talk, prepare a conference presentation, fit a talk into N minutes, or check and trim an existing deck that is too long or too text-heavy. Inventories the paper's figures by in-text reference count, computes a minutes-and-slides budget per section, drafts the deck, and deterministically lints pacing, overfull slides, missing or unrenderable figures, and generic non-claim titles. Venue profiles give context only; the slot length must come from the venue's presenter instructions or acceptance email.
SKILL.md
8.1 KB, as published. Nobody here has run it
Make Slides
Turn an accepted (or nearly-done) paper into a conference talk deck —
Beamer .tex or Marp markdown — built around a problem-first story, one
claim per slide, the paper's own figures, and a slide count the slot can
actually afford. The deck is the deliverable; the timed word-by-word
script and Q&A drill are separate skills (write-talk-script,
rehearse-qa).
When to use
- The paper got accepted and a talk slot is coming: build the deck.
- The user has a slot length ("12 minutes plus 3 Q&A", "5-minute lightning") and needs a deck that fits it.
- An existing deck is overlong, text-heavy, or paper-shaped and needs to be cut down to a talk.
Related skills: write-talk-script (timed speaker script for the deck),
rehearse-qa (hostile/curious Q&A drill), make-poster (poster +
2-min/5-min pitches), study-exemplars (how strong papers at the venue
frame contributions), verify-citations (gate for any reference that
appears on a slide).
Inputs
- The paper's main
.texfile (preferred — figures are harvested from source) or the PDF plus the figure files. - The slot length and Q&A split, from the venue's presenter instructions or acceptance email. This is the one fact the skill cannot look up: venue profiles do not encode talk slots (they change year to year and per track). If the user does not know it, stop and ask — see references/venue-timing.md.
- Optional:
venues/conferences/<id>.ymlfor venue context (name, track, live URLs). Re-verify anything taken from a profile against the livecfp_url/ venue site before the user relies on it. - Output format choice: Beamer (LaTeX toolchain, vector figures reused as-is) or Marp (markdown, fast iteration, figures must be PNG/SVG). Decision guide: references/deck-formats.md.
Process
1. Pin down the slot, then budget the deck
Confirm slot minutes and Q&A minutes with the user (ask; never assert a slot length from memory or from a venue profile — typical shapes and the verification checklist are in references/venue-timing.md). Then run, from the repo root:
python3 skills/make-slides/scripts/slide_budget.py --minutes <slot> --qa <qa> \
[--format auto|full|lightning] [--venue-profile venues/conferences/<id>.yml] [--json]
It prints the content-slide target (~1 slide per speaking minute, hard max 1.25x) and a problem-first section allocation (minutes + slides per section) in the full-talk shape (12-20 min) or the lightning shape (<= 7 min). Treat the allocation as the storyboard skeleton.
2. Inventory and harvest the paper's figures
python3 skills/make-slides/scripts/extract_figures.py path/to/main.tex \
--copy-to talk/assets [--json]
It follows \input/\include, resolves \graphicspath, and ranks every
figure by how often the text references it — the most-referenced figures
are usually the ones the talk is built around. It also counts table
environments: tables almost never survive as slides; redesign each one as
a chart or a single highlighted number. TikZ-only figures (no graphics
file) must be recompiled or screenshot from the paper PDF.
If the deck will be Marp, convert harvested PDFs to PNG/SVG now (commands in references/deck-formats.md); Marp cannot render PDF images.
3. Storyboard: problem first, one claim per slide
Map the paper onto the budget's sections using references/narrative-storyboard.md. The non-negotiables:
- Problem-first: open with why the problem matters, not an outline or the paper's section order. The talk is an advertisement for the paper, not a compression of it.
- One claim per slide: every slide title is a full assertion — the sentence to be remembered if the audience reads nothing else ("LRU evicts the tiles a burst is about to revisit", not "Background"). Evidence (a figure, one number) supports the title; bullets are a last resort.
- Numbers and claims on slides come from the paper or the user — never
invent, round up, or extrapolate. Any cited work shown on a slide goes
through
verify-citationsfirst. - Proofs, secondary ablations, and related-work depth move to backup slides after the final slide — they cost nothing against the budget.
Write the storyboard as a list (slide title-claim, supporting visual, ~seconds of talk) and confirm it with the user before drafting slides.
4. Draft the deck
Build the deck from the approved storyboard using the skeletons in references/deck-formats.md:
- Beamer:
aspectratio=169, frame title = the claim, reuse paper PDFs via\includegraphics, speaker-note stubs in\note{}, backup frames after\appendix. - Marp:
marp: truefront matter,#/##title = the claim, PNG/SVG images only, speaker-note stubs in<!-- -->comments, backup slides titledBackup: ....
Write the deck and assets under talk/ next to the paper (or where the
user prefers); never overwrite an existing deck without confirming.
5. Lint, fix, re-lint
python3 skills/make-slides/scripts/deck_lint.py talk/slides.md|slides.tex \
--minutes <SPEAKING minutes = slot - Q&A> [--strict] [--json]
Deterministic checks: pacing vs the slot, overfull slides (>100 words is a document, not a slide), bullet overload, generic non-claim titles, missing image files, Marp-unrenderable PDF images, tiny Beamer fonts. Fix every RISK and re-run until RISK-free; resolve pacing by cutting or merging slides, never by planning to talk faster.
6. Verify it builds, then hand off
Compile the deck if the toolchain is available (latexmk -pdf for
Beamer, marp CLI for Marp — commands in
references/deck-formats.md); otherwise say
explicitly that it was not compiled. Deliver the deck, the figure
inventory, and the lint report, and point the user at write-talk-script
to time the narration and rehearse-qa before the session. Remind them
to re-check slot length, room aspect ratio, and any pre-recording
requirement against the venue's presenter instructions.
Output
talk/slides.md(Marp) ortalk/slides.tex(Beamer) — RISK-free underdeck_lint.pyfor the stated speaking time, with speaker-note stubs and backup slides.talk/assets/— the paper figures the deck uses, harvested byextract_figures.py(converted for Marp).- The slide budget and figure inventory as the paper trail for what was cut and why.
Guardrails
- Never invent results, numbers, or comparisons for a slide; every figure
and number traces to the paper or the user. Pending results get an
explicit
[RESULT]placeholder, flagged in the handoff. - Never fabricate citations on slides; anything cited goes through
verify-citations. - Never assert slot lengths, room formats, or recording rules from memory or from a venue profile — presenter instructions and the acceptance email are ground truth; label anything unconfirmed as UNVERIFIED.
- Never bundle or paste another paper's slides or text as a template;
exemplar study happens transiently via
study-exemplars. - Never upload or submit the deck anywhere on the user's behalf.