Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Author a single PPT slide as a self-contained slide.html + design.md, given one outline entry. Use when the user asks to design, draft, or rewrite an individual slide page (KPI page, agenda, cover, two-column comparison, chart slide, etc.). Single-page only; does not plan across pages, does not screenshot, does not export. Works alongside the `ppt` skill or standalone.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 10% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 37% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 573% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 386% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 122% | 0% |
Given:
.pptwork/<deck>/<slide-name>/)pageType, assetId, key content, source, transition)exportMode (raster or editable)Produce:
design.md — frontmatter title + layout, then ## Content / ## Note/ ## Design (all three sections must be non-empty)
slide.html — single-file self-contained, with the ## Note text mirroredinto a <script type="application/json" id="ppt-speaker-notes-json"> island
Out of scope: cross-page planning (use the ppt skill's story-planning phase), screenshots and visual QC (use the ppt skill's screenshot.mjs + visual-qc reference), exporting (use export.mjs), web search (use the host app's webfetch / websearch).
design.mdtitle (required)layout (required, short English identifier matching the layout you used)## Content — page copy in human language: a conclusion-formcomplete-sentence title plus supporting bullets / short paragraphs.
## Note — speaker notes in natural prose (not bullets).## Design — visual / engineering notes: layout choice rationale,transition from previous page, data source, TBD markers.
references/design-md-spec.mdslide.html<style>, JS in <script>.(<img src="assets/...">, <link href="...">) are forbidden — they break in <iframe srcdoc> previews and in the static-server-based renderer unless the sidecar files happen to land next to the HTML.
## Note content into a<script type="application/json" id="ppt-speaker-notes-json">…</script> node. This is the only way speaker notes land in the exported PPTX.
html, body { width: 1280px; height: 720px; overflow: hidden; }.
references/slide-html-rules.md (must read).
exportMode=editable, also followreferences/editable-html-rules.md.
Outline entry (pageType / assetId / key content / source / transition) + the existing slide skeleton (design.md is an empty template, slide.html may only have <html> head/tail) + exportMode.
If the outline names an assetId, look it up under the sister ppt skill's ../ppt/assets/<bucket>/index.json and read the matching descriptor:
| Read | For | |---|---| | index.json entry's htmlPath | Find the HTML reference path | | index.json entry's materialDir / zones / authoringHints | Understand the layout's slot composition | | Resolved html/<id>.html | Borrow composition (version safe area, columns, hierarchy) | | specs/<id>.json zones | Get structured per-slot descriptions (optional) |
Default buckets live in the sister ppt skill at ../ppt/assets/corporate-light/ and ../ppt/assets/claude-warm/ (5 layouts each). Read index.json + the matching html/<id>.html when the outline names an assetId. If no bucket is configured, skip this step and write slide.html from scratch using references/slide-html-rules.md and references/ppt-best-practices.md as your composition guide.
Do not pick the assetId yourself — that's a story-planning decision, the outline already names it (or explicitly says "no preset, design from scratch").
Borrow only the composition (version safe area, columns, hierarchy, slot positions). Replace all placeholder copy ("Acme Corp", "2024 Q3 revenue", "scene illustration", etc.) with the page's real content. Placeholder bleed into a finished deck is one of the most common authoring failures.
design.md firstIn the order Content → Note → Design:
## Content: conclusion-form complete-sentence title (not a nounphrase) + supporting bullets / short paragraphs.
## Note: speaker notes, natural prose, not bullets.## Design: layout choice rationale, transition cue, data source, TBDmarkers.
slide.htmlDrive the HTML from the Content section. Whenever the data fits, prefer visuals over plain text:
references/diagram-and-chart.md).
or use a remote CDN.
Tabler, etc.) or paste a single inline SVG.
If exportMode=editable, write the HTML as PowerPoint-native objects: real text nodes for important copy, simple solid-fill shapes for cards, real tables, extractable Chart.js data, and separated background decoration. Do not place important text inside SVG/canvas/images/pseudo-elements.
Note into the HTMLMirror the ## Note text into the <script type="application/json" id="ppt-speaker-notes-json">…</script> island. This is the only path for speaker notes to land in the exported PPTX.
If a single page is missing one number / fact / citation / competitor data point:
no web tool of its own.
.pptwork/<deck>/materials/research.md (so theydon't pollute the main context across slides).
## Design as source: research.md §<timestamp>.<img src="assets/..."> / <link href="..."> relative paths? Convertto base64 or remote https.
data-id / data-role attributes stable enough to support lateredit / patch style touch-ups?
| Doing | Read | |---|---| | Writing design.md | references/design-md-spec.md | | Writing / editing slide.html | references/slide-html-rules.md (required) | | Writing / rewriting editable deck HTML | references/editable-html-rules.md | | Adding charts, inline SVG, diagrams | references/diagram-and-chart.md | | Typography, font sizes, alignment, visual focus | references/ppt-best-practices.md |
edit / patch to mutate thematching data-id node, keep the outer structure intact.
slide.html, butkeep design.md's narrative intact.
each page with a language model according to editable-html-rules.md; do not rely on a pure rule-based converter.
a chart, don't list raw numbers.
with inline SVG, don't pile up paragraphs.
images (>2MB) compress first or use a remote CDN.
numbers.
in an unrelated deck).
image-slot left with a "scene illustration" placeholder — thethumbnail will look empty.
<img src="assets/diagram.png"> relative path — the iframe previewbreaks.
#ppt-speaker-notes-json — exported PPTX hasempty speaker notes.
conclusion sentence.
Other measured skills in the registry, with their headline benchmark lift.