---
name: create-html-deck
description: >-
Create HTML slide decks and browser presentations with deck-stage viewer in
phased steps with user checkpoints. Use for slide deck, HTML slides,
presentation, or demo slides. After outline and theme selection, stop for
user approval. Detects project CSS tokens or offers preset themes. After
assemble, run preview.sh.
disable-model-invocation: false
rank: utility
categories:
- delivery
- design
---
# HTML Deck
Phased slide deck builder: outline → theme → sections → assemble → preview.
Read linked references before working.
## Iron rules
1. **Never skip gates** — outline OK → theme OK, in that order
2. **One phase per turn** — do not advance until the user says continue
3. **Always preview after assemble** — run `preview.sh`
## Phases
```
Phase 0 init → auto
Phase 1 outline → ⛔ user approval
Phase 1b theme → ⛔ user approval (after outline OK only)
Phase 2 sections → 1–3 slides per batch
Phase 3 notes → speaker-notes + validate
Phase 4 assemble → assemble → preview.sh (required)
Phase 5 bundle → on delivery request only
```
## Task router — read the matching doc first
| Task | Doc |
|------|-----|
| Full workflow, gate messages | [references/workflow.md](references/workflow.md) |
| Theme selection, tokens | [references/themes.md](references/themes.md) |
| Section markup, layouts | [references/sections.md](references/sections.md) |
| Assemble, preview, bundle, export | [references/publish.md](references/publish.md) |
| deck-stage API, directory layout | [reference.md](reference.md) |
## Modes
| User intent | Phases |
|-------------|--------|
| New deck | 0 → 1 → 1b → 2 → 3 → 4 |
| Outline only | 1 |
| Theme change | 1b (before sections: apply-theme only; after assemble: edit tokens → re-assemble) |
| Edit slides | edit sections → re-assemble + preview |
| Deliver / Downloads | 5 (`export-download.sh`) |
## Edit boundaries
**NEVER**
- Rewrite `deck-stage.js`, `image-slot.js`, `bundler.js`
- Generate all sections at once without gates
- Invent new layout CSS classes
**MAY**
- `content/outline.md`, `sections/*.html`, `tokens.css` (`:root` only), `speaker-notes.json`
## Common commands
```sh
bash skills/create-html-deck/scripts/init-deck.sh slides/{deck}
bun skills/create-html-deck/scripts/detect-project-theme.mjs slides/{deck}
bash skills/create-html-deck/scripts/apply-theme.sh slides/{deck}
bun skills/create-html-deck/scripts/validate-content.mjs slides/{deck}
bash skills/create-html-deck/scripts/assemble.sh slides/{deck}
bash skills/create-html-deck/scripts/preview.sh slides/{deck}
bun skills/create-html-deck/scripts/bundle-standalone.mjs slides/{deck}
bash skills/create-html-deck/scripts/export-download.sh slides/{deck}
```