Add slides
add_slidesAppend one to three Markdown slides to an existing narrated walkthrough, building the guide incrementally while it plays.
Instructions
Append slides to a walkthrough, written in Markdown.
Calls:
Opening: normally sent in start_walkthrough's
opening(see its example). Only if it was not sent there, the first call carries it and nothing more: the title slide and one or two short spoken sentences. That call returns when the link is playable, with the full guide; send the link to the user then, before anything else.All other calls: first one short slide alone, then one to three whole slides. Never resend earlier Markdown. Never split a slide or its code block across calls.
Replies list problems, each ending in a code; errors come first. Fix errors in sent slides now with revise_slide; fix warnings in later slides.
Format:
Slide: each #, ## or ### heading starts one. Optional attributes:
## Title {#id .build}; .build reveals parts as cues reach them.Narration: every plain paragraph is spoken, labels included, each voiced separately: never start one with "Narration:" or "Slide 3:". Put identifiers in
backticks;[text]{say="spoken"}fixes pronunciation.Shown text:
>lines are shown, never spoken; under the first heading, one is the subtitle.Layout:
>under a heading is its takeaway; {.side} puts one to three>lines beside the visual, {.pair} shows two visuals side by side, {.full} the visual edge to edge; a slide with only a>sentence is a statement. {icon=name} on a heading, and:name:before a list item, stat label or>line, add a Lucide icon. Vary the look from slide to slide.Visual: at most one per slide: fenced code, diff,
mermaid diagram,math formula, pipe table, list, image,
chart bar|hbar|line,terminal session,tree of files,stat numbers,chat exchange,svg drawing (consecutivesvg step blocks are versions that glide into each other;svg sketch looks hand-drawn) or ```drawio file=path, a draw.io diagram the project already has. Syntax and examples: resource showntell://slide-kinds.Choose the visual by the idea's shape: a change → diff, not the new code alone; flow, steps, causes and effects →
mermaid; numbers → chart or stat; something physical or spatial →svg drawing; commands → ```terminal; dated events → .timeline list. Lists and tables only for words with no shape, never three in a row.Code options:
scrollfor long code; consecutive ```lang step blocks are versions of one code slide.Code from disk, with an empty body and the file's own line numbers in the gutter:
Inline code may set start=10.
Diff:
python old thenpython new blocks;diff with -/+ lines, one hunk per slide; ordiff file=path rev=A (against the working tree), rev=A..B (two commits) or rev=A...B (B against the commit where it branched off A: what a pull request shows).List:
- **Title**: text {#id}; without {#id}, the id is the title, lowercased and hyphenated.1.items are steps; .cards on the heading shows cards; .timeline puts dates, the bold titles, on a line; .quiz makes two to four- [ ]items with one- [x]a multiple-choice question, choices #a to #d, the answer shown when a cue points at it.Cues are links in narration around the words that name the target. The pointer lands as the label's first word is spoken, within the current slide only. label line 12 | #L12-18 a range | label only that text on line 12 | #-L5 old side, #+L7 new side of a diff | #id a list item, card, Mermaid node, chart bar or series, tree entry, drawing element (also by its or text as a slug) or draw.io cell (also by a unique label) | #row-2 the second table row, or a {#id} ending its last cell | # the whole visual; label finds that text in it. Also #step-2 (only with step blocks), #a->b->c flowchart edge path, #Sender->>Receiver a sequence-diagram message, #@l,t,w,h image, drawing or draw.io region; {.circle}, {.arrow}, {.zoom} etc. after a cue (see showntell://slide-kinds).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes | Handle from start_walkthrough. | |
| markdown | Yes | Slides in Markdown: one to three whole slides, nothing already sent. Only when the opening was not sent with start_walkthrough: the first call carries just the title slide and one or two spoken sentences. |