Skip to content
Business
Skill

/slide-deck

When you want to draft, update, convert, or export a slide deck for a React/Next.js slide system (${SLIDE_DECK_REPO:-$HOME/code/your-slide-deck-site}/src/app/slides/). Writes TypeScript Slide[] arrays using your primitives (Eyebrow, Heading, Accent, Body, BulletList, Divider,

BOOST
From plugin
makerskills
86422 skills
Install
$ npx -y skills add coreyhaines31/makerskills --skill slide-deck --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/slide-deck

Context preview

The summary Claude sees to decide when to auto-load this skill.

When you want to draft, update, convert, or export a slide deck for a React/Next.js slide system (${SLIDE_DECK_REPO:-$HOME/code/your-slide-deck-site}/src/app/slides/). Writes TypeScript Slide[] arrays using your primitives (Eyebrow, Heading, Accent, Body, BulletList, Divider,

SKILL.md

slide-deck.SKILL.md
name: slide-deck
description: When you want to draft, update, convert, or export a slide deck for a React/Next.js slide system (${SLIDE_DECK_REPO:-$HOME/code/your-slide-deck-site}/src/app/slides/). Writes TypeScript Slide[] arrays using your primitives (Eyebrow, Heading, Accent, Body, BulletList, Divider, TwoCol, GradientText), 12 cycling brand gradients, optional sections for "where am I" context, and speaker notes. Inspired by zarazhangrui/frontend-slides — "show, don't tell" for narrative (presents 3 angles, you pick) plus density modes (speaker-led vs reading-first). Four modes — new (draft from brief), update (modify existing, with overflow guards), ppt (convert legacy PPTX → React deck), export (Playwright snapshot existing React deck to standalone HTML, PDF, or Vercel URL — keeps brand). Triggers on "/slide-deck," "/slides new," "/slides export," "/slides update," "/slides ppt," "draft a deck," "deck for [topic]," "talk on [topic]," "keynote on [topic]," "internal deck for [audience]," "convert this pptx," "export this deck."
metadata:
  version: 0.2.1

/slide-deck — Draft, update, convert, and export branded React decks

Authors React/TypeScript decks for `${SLIDE_DECK_REPO:-$HOME/code/your-slide-deck-site}/src/app/slides/<slug>/page.tsx` using the user's slide system. Branded output (no separate HTML pipeline) — when portable HTML/PDF is needed, export mode snapshots the rendered React deck via Playwright so the output is brand-perfect.

Modes (pick one before Step 1)

| Mode | Invocation | Goal | |---|---|---| | **new** | `/slide-deck new <topic>` (default) | Draft a new deck from a brief | | **update** | `/slide-deck update <slug>` | Modify an existing deck (with overflow guards) | | **ppt** | `/slide-deck ppt <path-to-pptx>` | Convert a legacy PPTX into a React deck | | **export** | `/slide-deck export <slug> [html\|pdf\|vercel]` | Snapshot a deck to HTML, PDF, or Vercel URL |

For `update`, `ppt`, and `export`, skip to the corresponding mode section below. For `new`, continue through Steps 1–8.

---

Step 1 — Capture the brief (ask all at once)

Ask in one structured message. Don't round-trip on each.

1. **Topic / title** — what's the deck about? 2. **Audience** — who's in the room? (technical / executive / mixed / clients) Push for specificity: "founders" is too broad; "B2B SaaS founders at MicroConf" is workable. 3. **Length** — rough slide count: 5–10 (lightning / short internal) / 10–15 (short keynote, pitch) / 20–25 (keynote) / 30+ (workshop — uncommon for branded decks). 4. **Density** — *speaker-led* (1 idea/slide, big type, lots of breathing room, more slides if needed) or *reading-first* (4–6 bullets/slide, structured grids, self-contained for async review). 5. **CTA** — what should the audience do/think/feel after? 6. **Slug** — kebab-case (e.g., `marketing-like-an-engineer`). 7. **Content state** — all content ready / rough notes / topic only.

Remember density — it affects slide count, copy length per slide, and which primitives to favor. See `references/narrative-and-voice.md` for the density-specific rules.

Step 2 — Three narrative angles

Riff on `zarazhangrui/frontend-slides`' "show, don't tell" — but applied to *story*, not visuals (your visual system is fixed).

Pitch 3 angles in 1–2 sentences each:

  • **Safe** — most likely to land. Conventional structure for the audience.
  • **Bold** — contrarian or counterintuitive frame. Higher upside, slight risk.
  • **Wildcard** — unexpected structure (story-first, single-question deck, anti-thesis, etc.).

The user picks one. If they reject all three, propose three more — don't force a path.

Step 3 — Outline

For the chosen angle:

1. **Sections** — propose 3–7 named sections (e.g., `Title`, `Hook`, `Problem`, `Framework`, `Examples`, `Close`). The default 3-act structure is OPTIONAL; only use it if the user wants it or the deck is a keynote-length talk that benefits from one. 2. **Slide titles** within each section 3. **One-line takeaway** per slide

Total slide count should match the duration estimate from Step 1.

Show the outline as a table. the user edits / approves before expand.

Step 4 — Expand to slide content

For each slide, write the full content using the user's primitives. Reference `references/system.md` for the primitive vocabulary and `references/narrative-and-voice.md` for hook patterns and voice rules.

Slide types and which primitives fit:

| Slide type | Primitives | Pattern | |---|---|---| | Title | `Eyebrow` + `<h1>` with `<Accent>` keyword | First slide, sets brand and topic | | Hook | `Heading` + `Body` | A take, story open, contrarian frame, or specific stat | | Section divider | `Eyebrow` + `Heading` (centered, large) | Clean break between sections | | Framework | `Heading` + `BulletList` or custom layout | The thing the user's teaching | | Two-column | `TwoCol` | Comparison, before/after, problem/solution | | Quote / pull-quote | `Body` (large) | Authority or audience-recognition moment | | Resource / link | `Body` + URL on its own line | Outbound (rare — the user's voice says minimize) | | Close / CTA | `Heading` + `Body` + `BulletList` for next steps | What the audience should do |

**Voice anchors — write for the ear, not the page** (see `narrative-and-voice.md` for full rules):

  • **Decks are spoken aloud.** Slide text + speaker notes both get said out loud. Write as you'd talk.
  • **Read every slide out loud before saving.** If you stumble, if it sounds like a press release, rewrite.
  • **Contractions everywhere** (*don't, won't, you're, I'd*). Strip them only on reading-first decks.
  • **"You" — never "the audience," "users," "people."**
  • **Numbers said naturally** ("a quarter" not "23.7%").
  • Conviction-coded, listener-perspective, short sentences, specific nouns.
  • No filler ("Today I want to talk about…") — open with a take.
  • (Reading-first density mode exception: written voice is fine since no one will speak the slides — see `narrative-and-voice.md`.)

##

Read more
Ships withmakerskills

AI agent skills for the personal operator's craft. Decisions, research, second-brain workflows, content rotation, scenario modeling, CFO cadence, domain hunts, and the meta-skills to author more. Built for founders and indie operators.

Get the whole plugin

Other skills on makerskills.