slides
Skill1 starsChanged 50 days agoMITView on GitHub
Build PowerPoint decks from a Markdown source with pandoc, reloading LibreOffice Impress after every change. Use when asked to make a presentation, slide deck, or .pptx; when editing a *-slides.md deck; when asked to review a deck (`/slides review`); or when asked to add diagrams, photos, or visuals to slides (`/slides visuals`).
- Installs packages
82 other projects use a version of this.
Adopted by
Most recently taken up by
- whoamnesia/astudio-aiotheir own version, first seen Nov 8, 2026
- itsryanarmani/skillstheir own version, first seen Nov 8, 2026
- pietz/skillstheir own version, first seen Nov 8, 2026
- Rich627/slides-skilltheir own version, first seen Nov 8, 2026
- EthanLLL/loomtheir own version, first seen Nov 8, 2026
- nextlevelbuilder/ui-ux-pro-max-skilltheir own version, first seen Nov 7, 2026
Used with
Projects with it also use banner-design, ui-styling and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
seikaikyoSkillbanner-design
Design banners for social media, ads, website heroes, creative assets, and print. Multiple art direction options with optional generated or supplied visuals. Actions: design, create, generate banner. Platforms: Facebook, Twitter/X, LinkedIn, YouTube, Instagram, Google Display, website hero, print. Styles: minimalist, gradient, bold typography, photo-based, illustrated, geometric, retro, glassmorphism, 3D, neon, duotone, editorial, collage.
Also in 39 projects that use this
MicrosoftSkillui-styling
Guide for the visual style, structure, and shared building blocks used by Semantic Link Labs interactive UI tools (HTML widgets and anywidget-based widgets). Use this when adding a new interactive UI, modifying an existing one, or adding shared visual components.
Also in 38 projects that use this
seikaikyoSkillbrand
Brand voice, visual identity, messaging frameworks, asset management, brand consistency. Activate for branded content, tone of voice, marketing assets, brand compliance, style guides.
Also in 44 projects that use this
jpoindexterSkillfal-restore
Restore and fix image quality — deblur, denoise, fix faces, and restore old documents using fal.ai's hosted restoration models.
Also in 3 projects that use this
jpoindexterSkillfaq-page
A Frequently Asked Questions (FAQ) page with collapsible accordion sections, search functionality, and category filtering. Use when the brief asks for "FAQ", "help center", "questions", or "support page".
Also in 3 projects that use this
xfstudioSkillfal-generate
Generate images and videos using fal.ai AI models
Also in 3 projects that use this
Other versions82 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 82
- nextlevelbuilder/ui-ux-pro-max-skill★ 147ksame name
- joye61/pic-smaller★ 2.9ksame name
- gridaco/grida★ 2.7ksame name
- Ohh-889/skyroc-admin★ 795same name
- JetBrains/skills★ 386same name
- metadist/synaplan-desktop★ 257same name
- cdavid817/vanehub-ai★ 116same name
- marswaveai/skills★ 82same name
- t0mtaylor/peepshow★ 68same name
- nghiahsgs/skills-slides★ 35same name
72 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository8 other files it gives its agents.
- markdown-checkSkill
- module-designSkill
- open-prSkill
- python-scaffoldSkill
- slow-pytest-maintenanceSkill
- start-ticketSkill
- typescript-scaffoldSkill
- vibe-prototypeSkill
The file
We split this skill into the rules it gives an agent
1 rule. 0 are common, 1 is distinctive, and 0 are very specific to this project.
0
Common
Most of the 34 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Read the argument, then read all of that phase's files in one parallel turn.
“Common” is measured: kept by at least 6 in 10 of the 34 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Slides: Markdown in, PowerPoint out
The Markdown file is the deck. The .pptx is built from it and never edited by hand. Every change
is: edit the .md → build → check → reload LibreOffice.
Resolve the skill directory first. It is the base directory Claude Code printed when this skill
loaded (a symlink path is fine). Every path below written <skill-dir>/… means that directory, made
absolute. The deck folder is where the deck's *-slides.md lives; pass it absolute too.
Route to one phase
Read the argument, then read all of that phase's files in one parallel turn. They're next to this file:
| Request | Read together |
A new deck, or no *-slides.md exists yet | outline.md + visual-rules.md |
review, or "review / check / critique the slides". Only when the user asks: never start or suggest a review yourself, since it runs two agents. | review.md (the reviewers read their own rubrics) |
visuals, or "add diagrams / photos / images / visuals" | visuals.md + visual-rules.md, plus svg-style.md unless it's photos only |
| Anything else: an edit, a rebuild, a fix | nothing more; the loop below is the whole job |
Files in a deck folder
| File | Lifetime |
NAME-slides.md | the deck, permanent |
NAME.pptx | built output, rebuilt every change |
NAME-outline.md | short-lived: exists from the outline until the first draft is complete |
CLAUDE.md | the deck's own rules: audience, tone, numbering, banned words |
reference.pptx | frozen copy of <skill-dir>/assets/reference.pptx, so the deck builds even if the skill changes |
template.pptx | optional: a company or Google Slides template; wins over reference.pptx |
images/ | diagram sources and renders, photos, and CREDITS.md |
Read the deck folder's CLAUDE.md before editing a deck. Its rules beat the general ones below.
The loop, after every edit
One command, not three:
<skill-dir>/scripts/loop.sh DECK_DIR/NAME-slides.md [--png DIR]It runs build.sh (lint + pandoc → NAME.pptx), then check.py (overflow report), then
reload.py (show it in LibreOffice).
- Lint errors stop the build, and nothing is reloaded. Fix the Markdown; don't work around the linter.
- Check
error:means content runs off the slide;warning:means text runs past its box, which in practice is text touching the bottom edge. Fix both: cut words, split the slide, or move detail to speaker notes. To see a slide, add--png DIR(a scratch directory) and readDIR/slide-NN.png. - A check error still reloads, so the user sees the problem slide, but
loop.shexits 1. - To run a step on its own, use the script directly. Run
check.pyandreload.pywith/usr/bin/python3: theunomodule comes from the system LibreOffice package.
LibreOffice safety
reload.py talks to LibreOffice through a local pipe (claude_slide). It starts LibreOffice if
nothing is listening, and otherwise closes and reopens only this deck's window.
- Never open the deck with
xdg-open: that LibreOffice has no pipe, so later reloads can't reach it. - If LibreOffice is running without the pipe (
pgrep -a sofficeshows no--accept), don't kill it; the user may have unsaved work. Ask them to close it, then runreload.py. check.pyruns its own headless LibreOffice with a throwaway profile, so it's safe at any time.
Markdown structure
##makes a section title slide,###a content slide. Never#.- Never two title slides in a row. The front-matter title slide and every
##must be followed by a###. The linter enforces this. ::: notes…:::is speaker notes, not shown on the slide.- An HTML comment (
<!-- … -->) isn't converted. The one at the top of the deck is for the presenter: how to convert, open questions. - Side by side:
:::::: {.columns}holding two::: {.column}blocks. - Images live in
images/. Credit every image from outside the project in that slide's notes (source and license).
Writing limits
- About 6 bullets per slide, tables of 7 rows or fewer. The linter warns past both.
- A slide says one thing. Detail the presenter needs goes in the notes, not on the slide.
- Which slides get a diagram or a photo is decided by
visual-rules.md: diagrams wherever items connect, photos only in four cases.
Requirements
pandocon thePATH. If missing, install without sudo from the static release:curl -L https://github.com/jgm/pandoc/releases/download/<v>/pandoc-<v>-linux-amd64.tar.gz | tar xz --strip-components 2 -C ~/.local/bin pandoc-<v>/bin/pandoc- The template's fonts, or fonts with the same letter widths, or the overflow check measures the
wrong widths (
check.pywarns). Forreference.pptxthat's Calibri or Carlito:sudo apt install fonts-crosextra-carlito, or without sudo, put the fourCarlito-*.ttffiles from github.com/google/fonts (ofl/carlito) into~/.local/share/fontsand runfc-cache -f. - LibreOffice Impress with Python UNO (
/usr/bin/python3 -c "import uno"), andpdftocairo(poppler-utils) for--png. - For
visuals.md: Google Chrome or Chromium for diagrams (falls back to LibreOffice, which renders fonts worse), and numpy and Pillow (/usr/bin/python3 -c "import numpy, PIL") for photo search.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

