Book Media Generator
Version: 1.0
Overview
This meta-skill generates static media for intelligent textbooks — slides, illustrations, sourced images, and audio. It consolidates six skills into a single entry point with on-demand loading of specific media guides.
FIRST: Slides Disambiguation Rule
Two routes make slide decks. Before routing any "make slides / a presentation / a deck" request, decide:
- Published on the site / embedded / web deck / shareable link →
references/marp-deck-guide.md (MARP → self-contained HTML in docs/slides/, iframe-embedded, added to the slides gallery and nav)
- Downloadable file / classroom lecture / "PowerPoint" / .pptx →
references/pptx-lecture-guide.md (pptxgenjs → .pptx with 4-act storytelling and speaker notes)
- Ambiguous (just "make slides for chapter 3") → ask ONE question: "Published on the site as a web deck, or a downloadable PowerPoint for classroom use?"
When to Use This Skill
Use this skill when users request:
- A slide deck or presentation from a topic, chapter, or document (see disambiguation rule above)
- An illustrated story / graphic novel about a scientist or historical figure (docs/stories/)
- Adding freely-licensed maps and photos to chapters (Wikimedia Commons, US government archives)
- Text-to-speech audio, voiceovers, or spoken narration (ElevenLabs)
- A "Pronounce" button with an MP3 pronunciation for a glossary term
Step 1: Identify Media Type
Routing Table
| Trigger Keywords |
Guide File |
Purpose |
| slide deck, slides, presentation, web deck, publish slides, MARP, deck on the site |
references/marp-deck-guide.md |
MARP → self-contained HTML deck in docs/slides/ with gallery + nav integration |
| powerpoint, pptx, lecture deck, classroom slides, downloadable deck, lecture presentation |
references/pptx-lecture-guide.md |
pptxgenjs → .pptx lecture with 4-act structure and speaker notes |
| story, graphic novel, illustrated narrative, historical figure story, scientist story, case study story |
references/story-guide.md |
Illustrated graphic-novel narratives in docs/stories/ with generated panel images |
| chapter images, add photos, add maps, wikimedia, image sourcing, freely licensed images, attribution |
references/chapter-images-guide.md |
Source real licensed media from Wikimedia/gov archives with captions + attribution |
| text to speech, tts, voiceover, narration, audio version, speech synthesis, elevenlabs |
references/text-to-speech-guide.md |
ElevenLabs TTS — voiceovers, voice apps, 70+ languages |
| pronounce, pronunciation, pronounce button, glossary audio, say the term |
references/pronounce-button-guide.md |
Generate an MP3 pronunciation and insert a Pronounce button into a glossary entry |
Decision Tree
Slides or a presentation?
→ Apply the Slides Disambiguation Rule (top of this file)
Narrative with illustrated panels about a person or case study?
→ YES: story-guide.md
Poster/infographic containing numeric claims or cited data?
→ NOT this skill: the fact-verified poster route lives in the
microsim-generator skill (references/verified-infographic-guide.md)
(purely decorative image with no factual claims → consider
the cover-image feature in book-installer instead)
Real photos/maps sourced from archives (not AI-generated)?
→ YES: chapter-images-guide.md
Audio from text?
→ Single glossary term pronunciation → pronounce-button-guide.md
→ Anything else (narration, voiceover, app) → text-to-speech-guide.md
Step 2: Load the Matched Guide
Read the corresponding guide file from references/ and follow its workflow.
Audio Routes: ElevenLabs API Key
Both audio routes (text-to-speech-guide.md, pronounce-button-guide.md) call the ElevenLabs API and need ELEVENLABS_API_KEY set in the environment. Check for it before starting; if missing, point the user at references/tts-installation.md.
Supporting Files
references/marp-mkdocs-integration.md, references/marp-authoring-guide.md, assets/marp/template.md — MARP route
references/pptx-slide-patterns.md, references/pptx-speaker-notes-guide.md — PowerPoint route
references/story-index-template.md, scripts/story/ (generate-images.py, verify-images.py, fix-references.py, uncomment-images.sh) — story route
references/tts-installation.md, references/tts-streaming.md, references/tts-voice-settings.md — TTS route
scripts/audio/generate-pronunciation.py — pronounce-button route
Examples
Example 1: Web Deck
User: "Turn chapter 4 into a presentation on the site"
Routing: "presentation" + "on the site" → references/marp-deck-guide.md
Action: Read marp-deck-guide.md; produce docs/slides// + gallery entry + nav
Example 2: Classroom PowerPoint
User: "I need a PowerPoint to lecture from for chapter 4"
Routing: "PowerPoint" + "lecture" → references/pptx-lecture-guide.md
Action: Read pptx-lecture-guide.md; generate the .pptx with speaker notes
Example 3: Ambiguous Slides
User: "Make slides for chapter 4"
Routing: Ambiguous → ask: web deck or downloadable PowerPoint? Then route accordingly.
Example 4: Story
User: "Add a graphic novel story about Ada Lovelace to the Stories section"
Routing: "graphic novel story" → references/story-guide.md
Action: Read story-guide.md; write index.md with panel prompts; run scripts/story/generate-images.py
Example 5: Fact-Checked Poster (routes elsewhere)
User: "Create an infographic about remote-work productivity statistics"
Routing: NOT this skill — fact-verified posters moved to microsim-generator → references/verified-infographic-guide.md
Action: Load the microsim-generator skill instead; it owns claim verification, the poster pipeline, and the gallery thumbnail script
Example 6: Pronounce Button
User: "Create a pronounce button for the term Mitochondria"
Routing: "pronounce button" → references/pronounce-button-guide.md
Action: Read pronounce-button-guide.md; run scripts/audio/generate-pronunciation.py; insert the button into glossary.md
1---2name: book-media-generator3description: Generates media for intelligent textbooks - slide decks and presentations (MARP web decks in docs/slides/ or PowerPoint .pptx lecture downloads), illustrated stories and graphic novels, freely-licensed chapter images from Wikimedia and government archives, and audio (text-to-speech voiceovers, glossary pronounce buttons via ElevenLabs). Routes to the appropriate media guide.4license: Creative Commons Attribution-NonCommercial 4.0 International (CC5---67# Book Media Generator89**Version:** 1.01011## Overview1213This meta-skill generates static media for intelligent textbooks — slides, illustrations, sourced images, and audio. It consolidates six skills into a single entry point with on-demand loading of specific media guides.1415## FIRST: Slides Disambiguation Rule1617Two routes make slide decks. Before routing any "make slides / a presentation / a deck" request, decide:1819- **Published on the site / embedded / web deck / shareable link** → `references/marp-deck-guide.md` (MARP → self-contained HTML in `docs/slides/`, iframe-embedded, added to the slides gallery and nav)20- **Downloadable file / classroom lecture / "PowerPoint" / .pptx** → `references/pptx-lecture-guide.md` (pptxgenjs → .pptx with 4-act storytelling and speaker notes)21- **Ambiguous** (just "make slides for chapter 3") → ask ONE question: "Published on the site as a web deck, or a downloadable PowerPoint for classroom use?"2223## When to Use This Skill2425Use this skill when users request:2627- A slide deck or presentation from a topic, chapter, or document (see disambiguation rule above)28- An illustrated story / graphic novel about a scientist or historical figure (docs/stories/)29- Adding freely-licensed maps and photos to chapters (Wikimedia Commons, US government archives)30- Text-to-speech audio, voiceovers, or spoken narration (ElevenLabs)31- A "Pronounce" button with an MP3 pronunciation for a glossary term3233## Step 1: Identify Media Type3435### Routing Table3637| Trigger Keywords | Guide File | Purpose |38|------------------|------------|---------|39| slide deck, slides, presentation, web deck, publish slides, MARP, deck on the site | `references/marp-deck-guide.md` | MARP → self-contained HTML deck in docs/slides/ with gallery + nav integration |40| powerpoint, pptx, lecture deck, classroom slides, downloadable deck, lecture presentation | `references/pptx-lecture-guide.md` | pptxgenjs → .pptx lecture with 4-act structure and speaker notes |41| story, graphic novel, illustrated narrative, historical figure story, scientist story, case study story | `references/story-guide.md` | Illustrated graphic-novel narratives in docs/stories/ with generated panel images |42| chapter images, add photos, add maps, wikimedia, image sourcing, freely licensed images, attribution | `references/chapter-images-guide.md` | Source real licensed media from Wikimedia/gov archives with captions + attribution |43| text to speech, tts, voiceover, narration, audio version, speech synthesis, elevenlabs | `references/text-to-speech-guide.md` | ElevenLabs TTS — voiceovers, voice apps, 70+ languages |44| pronounce, pronunciation, pronounce button, glossary audio, say the term | `references/pronounce-button-guide.md` | Generate an MP3 pronunciation and insert a Pronounce button into a glossary entry |4546### Decision Tree4748```49Slides or a presentation?50 → Apply the Slides Disambiguation Rule (top of this file)5152Narrative with illustrated panels about a person or case study?53 → YES: story-guide.md5455Poster/infographic containing numeric claims or cited data?56 → NOT this skill: the fact-verified poster route lives in the57 microsim-generator skill (references/verified-infographic-guide.md)58 (purely decorative image with no factual claims → consider59 the cover-image feature in book-installer instead)6061Real photos/maps sourced from archives (not AI-generated)?62 → YES: chapter-images-guide.md6364Audio from text?65 → Single glossary term pronunciation → pronounce-button-guide.md66 → Anything else (narration, voiceover, app) → text-to-speech-guide.md67```6869## Step 2: Load the Matched Guide7071Read the corresponding guide file from `references/` and follow its workflow.7273## Audio Routes: ElevenLabs API Key7475Both audio routes (`text-to-speech-guide.md`, `pronounce-button-guide.md`) call the ElevenLabs API and need `ELEVENLABS_API_KEY` set in the environment. Check for it before starting; if missing, point the user at `references/tts-installation.md`.7677## Supporting Files7879- `references/marp-mkdocs-integration.md`, `references/marp-authoring-guide.md`, `assets/marp/template.md` — MARP route80- `references/pptx-slide-patterns.md`, `references/pptx-speaker-notes-guide.md` — PowerPoint route81- `references/story-index-template.md`, `scripts/story/` (generate-images.py, verify-images.py, fix-references.py, uncomment-images.sh) — story route82- `references/tts-installation.md`, `references/tts-streaming.md`, `references/tts-voice-settings.md` — TTS route83- `scripts/audio/generate-pronunciation.py` — pronounce-button route8485## Examples8687### Example 1: Web Deck88**User:** "Turn chapter 4 into a presentation on the site"89**Routing:** "presentation" + "on the site" → `references/marp-deck-guide.md`90**Action:** Read marp-deck-guide.md; produce docs/slides/<deck>/ + gallery entry + nav9192### Example 2: Classroom PowerPoint93**User:** "I need a PowerPoint to lecture from for chapter 4"94**Routing:** "PowerPoint" + "lecture" → `references/pptx-lecture-guide.md`95**Action:** Read pptx-lecture-guide.md; generate the .pptx with speaker notes9697### Example 3: Ambiguous Slides98**User:** "Make slides for chapter 4"99**Routing:** Ambiguous → ask: web deck or downloadable PowerPoint? Then route accordingly.100101### Example 4: Story102**User:** "Add a graphic novel story about Ada Lovelace to the Stories section"103**Routing:** "graphic novel story" → `references/story-guide.md`104**Action:** Read story-guide.md; write index.md with panel prompts; run scripts/story/generate-images.py105106### Example 5: Fact-Checked Poster (routes elsewhere)107**User:** "Create an infographic about remote-work productivity statistics"108**Routing:** NOT this skill — fact-verified posters moved to `microsim-generator` → `references/verified-infographic-guide.md`109**Action:** Load the microsim-generator skill instead; it owns claim verification, the poster pipeline, and the gallery thumbnail script110111### Example 6: Pronounce Button112**User:** "Create a pronounce button for the term Mitochondria"113**Routing:** "pronounce button" → `references/pronounce-button-guide.md`114**Action:** Read pronounce-button-guide.md; run scripts/audio/generate-pronunciation.py; insert the button into glossary.md