agentsclimarketplace

Make slides

Skill ShaishavMaisuria/research-paper-lifecycle-skills/skills/make-slides

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.From its SKILL.md

Install
npx -y skills add ShaishavMaisuria/research-paper-lifecycle-skills --skill make-slides

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 23 stars23 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.
  • runs commandsInstructs the agent to run 3 commands, including `python3 skills/make-slides/scripts/slide_budget.py --minutes <slot> --qa <qa> [--format auto|full|lightning] [--venue-profile venues/conferences/<id>.yml] [--json]` and 2 more.

SKILL.md

8.1 KB, ~1.8k tokens by cl100k_base, 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 .tex file (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>.yml for venue context (name, track, live URLs). Re-verify anything taken from a profile against the live cfp_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-citations first.
  • 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: true front matter, #/## title = the claim, PNG/SVG images only, speaker-note stubs in <!-- --> comments, backup slides titled Backup: ....

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) or talk/slides.tex (Beamer) — RISK-free under deck_lint.py for the stated speaking time, with speaker-note stubs and backup slides.
  • talk/assets/ — the paper figures the deck uses, harvested by extract_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.

What ships with it: 6 files

46.6 KB alongside SKILL.md, 3 of them executable

scripts/

Gives 0 of the 12 instructions most slides presentations skills give in ~1.8k tokens

Counted across 547 of the 547 authors here whose files we hold, read 2026-09-06

  • Ensure every slide fits inside one viewportin 31 of 547, across 18 files
  • Keep one idea per slidein 27 of 547, across 24 files
  • Default to one self-contained HTML filein 24 of 547, across 16 files
  • Check for product marketing context firstin 21 of 547, across 7 files
  • Read STYLE_PRESETS.md before generatingin 21 of 547, across 12 files
  • Involve reps in creationin 20 of 547, across 6 files
  • Tailor to persona and deal stagein 20 of 547, across 6 files
  • Generate three single-slide preview filesin 17 of 547, across 11 files
  • Delete temporary preview files at handoffin 16 of 547, across 8 files
  • Support keyboard and touch navigationin 16 of 547, across 7 files
  • Keep one-pagers to a single pagein 15 of 547, across 5 files
  • Use bold headers and short bulletsin 14 of 547, across 4 files

Said here and by no other author read

  • Confirm slot minutes and Q&A minutes with the user
  • Run the slide budget script from the repo root
  • Run the extract figures script to harvest paper figures
  • Map the paper onto the budget sections
  • Write the storyboard and confirm it with the user
  • Build the deck from the approved storyboard

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.