Slide deck
Produce a presentation deck, not a web page.
This skill is the single source of truth for decks in Adits. If a user asks
for slides, a deck, a presentation, a keynote, a report-out, a board update,
or a pitch, this is the shape to follow.
Hard contract
- Always call
copy_starter_component({kind: "deck_stage.js"}).
- The final artifact must be a single HTML document.
- The shell must be
<deck-stage>, with each slide as a direct child
<section>.
- Slides must be labeled
data-screen-label="NN Title" with 1-indexed
numbering (01, 02, ...).
- Default aspect ratio is 16:9. Use 4:3 only if the user explicitly asks.
- Do not add speaker notes unless the user explicitly asks for them.
Why this is non-negotiable:
deck_stage.js owns scaling, keyboard/tap nav, slide index, localStorage
persistence, and print-to-PDF.
- The host depends on its
{slideIndexChanged: N} postMessage and on the
data-screen-label annotations for present mode, comments, and export.
If you hand-roll the shell, the deck is broken even if it looks good.
If copy_starter_component is unavailable in the current runtime, copy the
bundled fallback from assets/deck_stage.js into the project as
/code/deck_stage.js and use that file instead.
What a deck is
A deck is a sequence of high-signal frames for live presentation.
It is not:
- a landing page chopped into sections
- a document with page breaks
- a stack of uniform cards
- a bullet dump
- a mini website with scrolling
Every slide should feel like a deliberate screen in a talk track. The viewer
should understand the arc even when flipping quickly.
Default deck behavior
- One idea per slide.
- One visual anchor per slide.
- Titles are short, declarative, and specific.
- Body copy is sparse: anchors, not paragraphs.
- Keep rhythm: alternate dense and airy slides; do not make every slide use
the same composition.
- Use accent sparingly. Cover, section divider, closer, and the occasional
stat callout are enough.
Word budget
- Cover: title + subtitle only.
- Headline/stat slides: ≤ 10 words
- Standard content slides: ≤ 30 words
- Bullet lists: ≤ 5 bullets, and each bullet must be short.
If a slide wants a paragraph, split it into two slides.
Slide archetypes
Use these as building blocks. A good deck uses 3–5 of them, not the same one
repeated over and over.
1. Cover
- Title
- subtitle / framing line
- presenter / brand / date if relevant
2. Section divider
- One phrase
- strong shift in scale or background
- only for longer decks
3. Stat / number slide
- one large number
- one line of context
- optional tiny source or qualifier
4. Image-led slide
- one image / screenshot / diagram as the anchor
- minimal caption
5. Comparison / two-up slide
- before vs after
- option A vs option B
- problem vs solution
6. Short bullet slide
- only when compression matters
- never more than 5 bullets
- each bullet must earn its place
7. Quote / testimonial slide
- quote
- attribution on the same slide
8. Closing slide
- summary, CTA, ask, or contact
- should feel like a real ending, not “thanks” filler
Archetype recipes
Start from one of these unless the user gave a different structure.
Pitch
Default length: 7–10 slides.
Arc:
- Cover
- Problem
- Why now / context
- Solution
- Product / workflow
- Traction / proof
- Business / rollout / plan
- Ask / closer
Product intro
Default length: 5–8 slides.
Arc:
- Cover
- What it is
- Why it matters
- Core workflow
- Signature feature
- Proof / detail
- CTA / closer
Report-out
Default length: 6–10 slides.
Arc:
- Cover
- Goals
- What shipped
- Metrics / outcomes
- Learnings
- Risks / open questions
- Next steps
- Closer
Keynote
Default length: 10–20 slides.
Arc:
- Cover
- Hook
- Problem framing
- Big idea
5+. Alternating evidence / scenes / examples
N. Closing statement
Use more image-led and headline slides here; less operational detail.
Layout rules
- Keep a stable slide canvas and stable margins.
- Vary composition, not chrome. The deck should feel coherent without every
slide looking templated.
- Footer chrome should be subtle.
- Reuse a small set of spatial zones so slides feel related.
- If the project has a design contract, obey it strictly. The contract decides
colors, type, and tone; this skill decides deck form.
Hard don'ts
- Do not make every slide a centered card on a colored background.
- Do not make every slide use the same hero/title/body/footer pattern.
- Do not turn the deck into a scrolly page.
- Do not put dense paragraphs on slides.
- Do not add decorative UI chrome that competes with the content.
- Do not use generic startup clichés like “our journey”, “best-in-class”,
or “transforming the future”.
- Do not fabricate metrics, quotes, dates, or logos.
Source discipline
- Every named entity, metric, quote, and attribution must come from user
material or be clearly presented as placeholder copy.
- If critical material is missing, ask once with a compact gap list.
- If the user gave enough for a plausible placeholder demo, you may proceed
with tasteful placeholder language rather than stalling.
Build order
- Read
.impeccable.md and any linked deck assets/templates.
- Decide the archetype recipe.
- Sketch the slide arc in plain language.
- Copy
deck_stage.js.
- Build the deck as
<deck-stage> > <section>.
- Check labels, flow, and word counts.
Verification
Before declaring done:
- Keyboard nav works: arrows, space, Home, End.
- Current slide index changes correctly.
- No slide overflows at the chosen aspect ratio.
- Word budget is respected.
- Accent is restrained.
- Print path is clean.
- The deck feels like a presentation, not a webpage.
Feedback protocol
When a user says:
- “too many slides” → name the current arc and propose cuts/merges.
- “too busy” → name the slide and what gets removed.
- “boring” → identify whether the problem is pacing, hierarchy, or story.
- “doesn’t flow” → name the broken transition between slides/sections.
Never answer with vague promises like “I’ll tighten it.”
When not to use
- Static handout / read-aloud document →
one-pager
- Stateful product demo →
prototype
- Poster / single marketing composition →
one-pager
1---2name: slide-deck3description: Slide deck4---5# Slide deck67Produce a **presentation deck**, not a web page.89This skill is the single source of truth for decks in Adits. If a user asks10for slides, a deck, a presentation, a keynote, a report-out, a board update,11or a pitch, this is the shape to follow.1213## Hard contract1415- **Always** call `copy_starter_component({kind: "deck_stage.js"})`.16- The final artifact **must** be a single HTML document.17- The shell **must** be `<deck-stage>`, with each slide as a direct child18 `<section>`.19- Slides **must** be labeled `data-screen-label="NN Title"` with 1-indexed20 numbering (`01`, `02`, ...).21- Default aspect ratio is **16:9**. Use 4:3 only if the user explicitly asks.22- **Do not** add speaker notes unless the user explicitly asks for them.2324Why this is non-negotiable:25- `deck_stage.js` owns scaling, keyboard/tap nav, slide index, localStorage26 persistence, and print-to-PDF.27- The host depends on its `{slideIndexChanged: N}` postMessage and on the28 `data-screen-label` annotations for present mode, comments, and export.2930If you hand-roll the shell, the deck is broken even if it looks good.3132If `copy_starter_component` is unavailable in the current runtime, copy the33bundled fallback from `assets/deck_stage.js` into the project as34`/code/deck_stage.js` and use that file instead.3536## What a deck is3738A deck is a sequence of **high-signal frames** for live presentation.3940It is **not**:41- a landing page chopped into sections42- a document with page breaks43- a stack of uniform cards44- a bullet dump45- a mini website with scrolling4647Every slide should feel like a deliberate screen in a talk track. The viewer48should understand the arc even when flipping quickly.4950## Default deck behavior5152- One idea per slide.53- One visual anchor per slide.54- Titles are short, declarative, and specific.55- Body copy is sparse: anchors, not paragraphs.56- Keep rhythm: alternate dense and airy slides; do not make every slide use57 the same composition.58- Use accent sparingly. Cover, section divider, closer, and the occasional59 stat callout are enough.6061## Word budget6263- Cover: title + subtitle only.64- Headline/stat slides: **≤ 10 words**65- Standard content slides: **≤ 30 words**66- Bullet lists: **≤ 5 bullets**, and each bullet must be short.6768If a slide wants a paragraph, split it into two slides.6970## Slide archetypes7172Use these as building blocks. A good deck uses 3–5 of them, not the same one73repeated over and over.7475### 1. Cover76- Title77- subtitle / framing line78- presenter / brand / date if relevant7980### 2. Section divider81- One phrase82- strong shift in scale or background83- only for longer decks8485### 3. Stat / number slide86- one large number87- one line of context88- optional tiny source or qualifier8990### 4. Image-led slide91- one image / screenshot / diagram as the anchor92- minimal caption9394### 5. Comparison / two-up slide95- before vs after96- option A vs option B97- problem vs solution9899### 6. Short bullet slide100- only when compression matters101- never more than 5 bullets102- each bullet must earn its place103104### 7. Quote / testimonial slide105- quote106- attribution on the same slide107108### 8. Closing slide109- summary, CTA, ask, or contact110- should feel like a real ending, not “thanks” filler111112## Archetype recipes113114Start from one of these unless the user gave a different structure.115116### Pitch117Default length: 7–10 slides.118119Arc:1201. Cover1212. Problem1223. Why now / context1234. Solution1245. Product / workflow1256. Traction / proof1267. Business / rollout / plan1278. Ask / closer128129### Product intro130Default length: 5–8 slides.131132Arc:1331. Cover1342. What it is1353. Why it matters1364. Core workflow1375. Signature feature1386. Proof / detail1397. CTA / closer140141### Report-out142Default length: 6–10 slides.143144Arc:1451. Cover1462. Goals1473. What shipped1484. Metrics / outcomes1495. Learnings1506. Risks / open questions1517. Next steps1528. Closer153154### Keynote155Default length: 10–20 slides.156157Arc:1581. Cover1592. Hook1603. Problem framing1614. Big idea1625+. Alternating evidence / scenes / examples163N. Closing statement164165Use more image-led and headline slides here; less operational detail.166167## Layout rules168169- Keep a stable slide canvas and stable margins.170- Vary composition, not chrome. The deck should feel coherent without every171 slide looking templated.172- Footer chrome should be subtle.173- Reuse a small set of spatial zones so slides feel related.174- If the project has a design contract, obey it strictly. The contract decides175 colors, type, and tone; this skill decides deck form.176177## Hard don'ts178179- Do **not** make every slide a centered card on a colored background.180- Do **not** make every slide use the same hero/title/body/footer pattern.181- Do **not** turn the deck into a scrolly page.182- Do **not** put dense paragraphs on slides.183- Do **not** add decorative UI chrome that competes with the content.184- Do **not** use generic startup clichés like “our journey”, “best-in-class”,185 or “transforming the future”.186- Do **not** fabricate metrics, quotes, dates, or logos.187188## Source discipline189190- Every named entity, metric, quote, and attribution must come from user191 material or be clearly presented as placeholder copy.192- If critical material is missing, ask once with a compact gap list.193- If the user gave enough for a plausible placeholder demo, you may proceed194 with tasteful placeholder language rather than stalling.195196## Build order1971981. Read `.impeccable.md` and any linked deck assets/templates.1992. Decide the archetype recipe.2003. Sketch the slide arc in plain language.2014. Copy `deck_stage.js`.2025. Build the deck as `<deck-stage> > <section>`.2036. Check labels, flow, and word counts.204205## Verification206207Before declaring done:208209- Keyboard nav works: arrows, space, Home, End.210- Current slide index changes correctly.211- No slide overflows at the chosen aspect ratio.212- Word budget is respected.213- Accent is restrained.214- Print path is clean.215- The deck feels like a presentation, not a webpage.216217## Feedback protocol218219When a user says:220221- “too many slides” → name the current arc and propose cuts/merges.222- “too busy” → name the slide and what gets removed.223- “boring” → identify whether the problem is pacing, hierarchy, or story.224- “doesn’t flow” → name the broken transition between slides/sections.225226Never answer with vague promises like “I’ll tighten it.”227228## When not to use229230- Static handout / read-aloud document → `one-pager`231- Stateful product demo → `prototype`232- Poster / single marketing composition → `one-pager`