← All runbooks
adewale / slide-maker★ Featured · worked examples

slide-maker

Generate presentation decks grounded in real GitHub projects, or walk through a structured brief-to-slides process. This skill supports creating and updating native Slidev deck projects — complete with a compiled slides.md, a deck.spec.md specification, a…

agent claude-codemodel anthropic/claude-sonnet-4.6snapshot python312-uveval programmatic13 stepsv1.2.0

Deploy slide-maker to your jetty.io

One-click installs this runbook into a collection on your Jetty account. You can run it from the Spot dashboard, schedule it, or pipe inputs in via the API.

Run time8–15 mins
Headline outputdeck.pdf · slides.md

Runs on Jetty's managed sandbox. No setup. Free for your first 10 runs.

Worked examples · 3

Real runs, real outputs.

The shape of the run

13 steps · start to finish.

  1. 1
    Step 1

    Environment Setup

    Verify the environment and install required dependencies.

    # Check Node.js and npm
    command -v node >/dev/null || { echo "ERROR: Node.js not installed"; exit 1; }
    command -v npm  >/dev/null || { echo "ERROR: npm not installed"; exit 1; }
    
    # Install Slidev CLI if not present
    npm list -g @slidev/cli 2>/dev/null || npm install -g @slidev/cli
    
    # Install the headless Chromium that `slidev export` uses to render the PDF
    npm list -g playwright-chromium 2>/dev/null || npm install -g playwright-chromium
    
    # Create the deliverables dir AND an isolated build dir.
    # Slidev project setup (npm install, build) happens in /app/work so that
    # node_modules/, dist/, and package*.json never pollute /app/results.
    mkdir -p /app/results/styles /app/work
    
    # The goal/mode/style come from the Inputs block above (substituted from the run
    # parameters), NOT from environment variables. Read them from there.
    GOAL="{{goal_or_update_instructions}}"
    MODE="{{mode}}"; [ -z "$MODE" ] || [ "$MODE" = "{{mode}}" ] && MODE="create"
    STYLE="{{style_preset}}"; [ -z "$STYLE" ] || [ "$STYLE" = "{{style_preset}}" ] && STYLE="auto"
    REPO="{{source_repo_url}}"; [ "$REPO" = "{{source_repo_url}}" ] && REPO=""
    
    if [ -z "$GOAL" ] || [ "$GOAL" = "{{goal_or_update_instructions}}" ]; then
      echo "ERROR: no goal/update instructions were provided to this run"
      exit 1
    fi
    echo "Setup complete. GOAL=$GOAL | MODE=$MODE | STYLE=$STYLE | REPO=${REPO:-<none, brief-driven>}"
    

    The work proceeds in eight phases. Every reference each phase needs is inline in the step shown below — read it when you reach that step rather than loading it all upfront.

    PhaseCovered byPurpose
    1. Determine modeStep 2Create vs. update
    2. Gather sourcesStep 3Source-material lookup, extraction heuristics, through-line, project identity
    3. IntakeStep 4 (Presentation principles + Narrative arcs)Rhetorical principles, narrative structure, through-line design
    4. Style directionStep 5 (Style Preset Catalog)Visual presets and token palettes
    5. Write specStep 6 (Deck-spec schema + Slide Kinds catalog)Spec schema and slide type catalog
    6. CompileStep 7 (Slidev reference + Compiler rules)Compilation rules, Slidev features
    7. ValidateStep 9 (Acceptance checklist + LLM tells)Quality gates
    8. DeliverSteps 10–11Export the deck to PDF, then write final deliverables
  2. 2
    Step 2

    Determine Mode

    Identify whether this is a create or update run.

  3. 3
    Step 3

    Gather Source Material (project decks only)

    For project decks (user provided a GitHub repo or codebase): - Clone or fetch the repository - Extract: project name, tagline, key architecture, noteworthy features, open issues, recent releases…

  4. 4
    Step 4

    Intake — Narrative Principles

    Shape the deck's arc before writing any slide: - Establish a clear through-line (one sentence that captures the deck's core argument) - Map a narrative structure (see Narrative arcs below) - Identify…

  5. 5
    Step 5

    Style Direction

    The full preset catalog is inline below — no external STYLE_PRESETS.md is required.

  6. 6
    Step 6

    Write or Revise `deck.spec.md`

    Write the slide deck specification to /app/results/deck.spec.md. The spec is the contract for Step 7 — compile only what the spec describes.

  7. 7
    Step 7

    Compile the Deck

    Compile /app/results/slides.md from the approved spec. Do NOT add content not in the approved spec.

  8. 8
    Step 8

    Iterate on Errors (max 3 rounds)

    If Step 6 validation or Step 7 compilation fails:

  9. 9
    Step 9

    Validate & Evaluate Quality

    Evaluate the deck against the acceptance checklist below, then scan every slide and speaker note for the LLM tells listed underneath.

  10. 10
    Step 10

    Export to PDF

    Print the validated deck to PDF with Slidev's built-in exporter. Run this after Step 9 passes so the PDF reflects the final slides.

  11. 11
    Step 11

    Deliver

    Write the final deliverables to /app/results/: - deck.spec.md — approved spec - slides.md — compiled Slidev slides - deck.pdf — the deck exported to PDF

  12. 12
    Step 12

    Write Validation Report

    Write /app/results/validation_report.json reflecting all stage outcomes. It MUST include an explicit pdf_export stage and a results_hygiene stage:

  13. 13
    Step 13

    Write Executive Summary

    Write /app/results/summary.md with run metadata, mode detected, through-line, slide count, preset used, validation results, and any issues.