Make Slides logo

Make Slides

Community
ShaishavMaisuria
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.

Overview

PublisherShaishavMaisuria
Repositoryresearch-paper-lifecycle-skills
Skill namemake-slides
Stars
59
Forks
22
Bundled files
6
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 6 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by ShaishavMaisuria on GitHub. Read the source before you install it.

Installation

Install the Make Slides AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/ShaishavMaisuria/research-paper-lifecycle-skills/tree/main/skills/make-slides
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/ShaishavMaisuria/research-paper-lifecycle-skills.git /tmp/research-paper-lifecycle-skills
mkdir -p .claude/skills
cp -r /tmp/research-paper-lifecycle-skills/skills/make-slides .claude/skills/make-slides
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Make Slides in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Make Slides on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Make Slides is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Make Slides AI skill do?

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 bud...

Why use Make Slides on TypingMind?

Because you install it once and use it with any model. Make Slides is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Make Slides in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/ShaishavMaisuria/research-paper-lifecycle-skills/tree/main/skills/make-slides. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Make Slides?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Make Slides?

As many as you like. As long as a model supports skills, you can use Make Slides with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Make Slides AI skill free?

Yes. It is published on GitHub by ShaishavMaisuria under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇