From slide-wright
Creates animated web presentations from a topic, notes, or outline. Generates a custom theme, shows a two-slide preview for approval, then builds the full deck. Also edits existing decks in place.
How this skill is triggered — by the user, by Claude, or both
Slash command
/slide-wright:slide-wrightThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turn a topic or rough notes into a polished, animated web presentation — a single self-contained HTML file that runs in any browser.
Turn a topic or rough notes into a polished, animated web presentation — a single self-contained HTML file that runs in any browser.
Propose the look before you build the deck. On the first pass you never produce a finished presentation. You generate a theme, build a two-slide preview in it, and stop until the user approves the direction. Only then do you build the rest. Everything below serves that order.
A few things follow from it:
reference/design-aesthetics.md.Decks render with reveal.js loaded from a CDN, but that is an implementation detail the user never sees. Don't name reveal.js, "reveal," or any library in conversation, in the README, or anywhere in the deck itself. The user's vocabulary is slides, themes, and design. The library name appears only inside the generated <link> and <script> tags. reference/deck-template.md has the exact setup.
If the user points at a deck this skill already made, don't start over. Read it, keep its theme, and make the change in place. The look is already approved, so skip the proposal and the gate. After editing, check that nothing overflows or overlaps. Everything else on this page is for building a new deck.
Don't open with a questionnaire. Take whatever the user gave — a one-line topic, messy notes, a full outline — and infer the rest:
Only ask something if the request is too thin to design from at all — a single word with no angle — and even then ask one question, not five. If the user has more to give, they usually paste it.
This is one judgment call that shapes type size, word count, and slide count for the whole deck. Place the deck between two extremes:
Most decks lean one way. Pick the nearer extreme instead of splitting the difference. Either way, never let a slide scroll, overflow, overlap, or shrink text below comfortable reading — if it won't fit, split it across more slides.
Read reference/theme-generation.md and reference/design-aesthetics.md, then:
reference/deck-template.md — a real title slide for this deck (its actual title, never a placeholder or a label like "demo"), and one content slide in the layout the deck will lean on. Write it as the real deck file in the working directory, named for the deck: ./<deck-slug>.html (e.g. ./clickhouse.html). This is the one file the whole deck grows into — there is no separate demo or scratch file.The preview has to read as two real slides from the finished deck, not a sample card. Keep all process language off the slide and out of the filename: no "demo," "preview," theme name, or "option A." The theme's name goes in your message to the user, never on a slide.
Stop and ask (use a structured prompt if the environment has one):
"Here's the design direction — [theme name]. Does this look right, or want a different direction?"
- Looks great — build it → go to Step 4.
- Try a different direction → start over with a new theme.
- Adjust this one (different accent / font / lighter / bolder) → tweak and show it again.
If they want a different direction, optionally ask one steering question ("warmer or cooler, bolder or calmer?"), then build a genuinely new theme — different palette, type, and device — and a fresh two-slide preview, overwriting the same ./<deck-slug>.html. Don't just recolor the rejected one. Repeat until they approve.
Do not build the full deck before you have a yes.
Keep building in the same ./<deck-slug>.html the user just approved. The two approved slides stay as they are — append the rest around them; never regenerate them from scratch (that reintroduces drift the user already signed off against). Read reference/motion-recipes.md for the transition and reveal patterns.
<aside class="notes"> wherever the content implies something to say out loud.If the user only wants part of the deck for now, that's fine — the file is already a working deck. Adding more slides later is just editing it (see "Editing a deck that already exists").
Once the deck is built, look at it in a real browser render: no overflow, no overlapping panels, the 16:9 frame intact, fonts actually loaded. A scrollHeight check isn't enough on its own — panels can cover each other without overflowing.
?print-pdf to the URL and print to save a PDF (reference/export-pdf.md has the steps); theme colors live in the :root variables, fonts in the <link>.reference/deploy.md and let them pick the host (Surge, Vercel, or Netlify) — don't assume one.Read these as you reach them, not all at once:
reference/design-aesthetics.md — what makes a deck look designed (Step 2)reference/theme-generation.md — the procedure for inventing a theme (Step 2)reference/deck-template.md — the HTML skeleton and engine setup (Steps 2 and 4)reference/motion-recipes.md — transitions and reveals (Step 4)reference/export-pdf.md — saving a deck as a PDF (Step 5)reference/deploy.md — publishing the deck to a live URL (Step 5)Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub arifszn/slide-wright