Skip to main content
Glama

Add slides

add_slides

Append 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 alt, chart bar|hbar|line, terminal session, tree of files, stat numbers, chat exchange, svg drawing (consecutive svg 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: scroll for 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 then python new blocks; diff with -/+ lines, one hunk per slide; or diff 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

NameRequiredDescriptionDefault
handleYesHandle from start_walkthrough.
markdownYesSlides 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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare it is a non-idempotent, non-destructive write; the description goes well beyond that by disclosing the blocking return condition ('returns when the link is playable, with the full guide'), the reply shape (problems with codes, errors before warnings), and hard invariants (never resend earlier Markdown, never split a slide or code block across calls). That is exactly the context an agent needs before invoking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well front-loaded and organized under Calls/Format headings, but it is very large for a two-parameter tool and reproduces reference material that it also points to (showntell://slide-kinds) for visual syntax, icons and cue modifiers. Several bullets (chart/terminal/tree/chat/svg enumeration, draw.io cell addressing) read as documentation to be consulted rather than selection guidance, inflating the always-loaded description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description covers the return contract (problems with codes, ordering) and the full authoring grammar needed to produce valid input. Given the complexity of the Markdown dialect and the absence of an output schema, nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline would be 3, but the description substantially enriches `markdown`: heading-based slide boundaries, attribute syntax, narration vs shown-text rules, one-visual-per-slide constraint, file/line/diff sourcing, and cue-link semantics. It adds meaning the schema's one-line description cannot carry.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource: append slides to a walkthrough, authored in Markdown. It also implicitly separates itself from start_walkthrough (which carries the opening) and revise_slide (which fixes already-sent slides). The only gap is that the deck/walkthrough concept itself is never characterized, but the action is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to send the opening here versus in start_walkthrough's `opening` field, what the first call must contain and return, how later calls should be batched (one short slide, then one to three whole slides), and routes error remediation to revise_slide while deferring warnings to later slides. Real when/when-not/alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.