Add speaker memory aids to presentation decks paired with scripts. Takes a .pptx slide deck and a matching speaker script (.md), then adds concise speaker notes to every slide, optionally inserts new 'cue slides' with visual/text memory aids, adjusts the script when slides are added, and produces a change report with memorization tips. Trigger on: 'add speaker notes', 'presentation cues', 'help me remember my talk', 'speaker hints', 'memory aids for slides', 'presentation memory helpers', 'cue slides', 'I can't memorize this script', or any request to add notes, cues, or memory aids to a deck+script pair. Also trigger when the user mentions they need help remembering what to say during a presentation, or wants notes added to slides to support delivery of a talk.
Add memory aids, speaker notes, and optional cue slides to a presentation deck so the speaker can deliver their talk without memorizing a full script.
Use this skill whenever someone has:
.pptx slide deck AND a matching speaker script (.md file)[SLIDE N ...] or **SLIDE N ...**)Updated deck (new copy) with speaker notes on every slide containing:
Optional new "cue slides" inserted into the deck that:
Updated script (new copy) — only modified if new slides were added:
[SLIDE ... or **SLIDE ...)Change report (.md) documenting:
markitdown) and the full script[SLIDE vs **SLIDE etc.)For each slide, write concise speaker notes following these principles:
Format:
Memory Aids:
What NOT to put in notes:
Add a new slide when:
Do NOT add a cue slide when:
New slides should:
Use the pptx editing workflow:
python scripts/office/unpack.py input.pptx unpacked/<p:notes> / notes slide files)python scripts/add_slide.py to duplicate a thematically similar slide, then edit its content<p:sldIdLst> ordering if slides were addedpython scripts/clean.py unpacked/python scripts/office/pack.py unpacked/ output.pptx --original input.pptxCRITICAL — Slide File Numbers vs. Presentation Order:
Slide file names (slide1.xml, slide2.xml, ...) do NOT necessarily match the order slides appear in the presentation. For example, slide38.xml might be displayed at position 12. The actual display order is defined by the <p:sldIdLst> in ppt/presentation.xml, where each <p:sldId> entry has an r:id that maps to a slide file via ppt/_rels/presentation.xml.rels.
You MUST build a presentation-order-to-file mapping before assigning notes:
ppt/presentation.xml to get the ordered list of r:id values from <p:sldIdLst>ppt/_rels/presentation.xml.rels to map each r:id to a slide filenameIf you skip this step and assume file numbers match display order, notes will be misaligned for any deck where slides were inserted, reordered, or deleted during authoring.
Speaker Notes XML Pattern:
Notes are stored in ppt/notesSlides/notesSlideN.xml. If a notes slide doesn't exist for a given slide, you need to create one by duplicating an existing notes slide and updating the relationship in the slide's .rels file.
When creating a new rels file for a slide that previously had none, check whether the slide XML already references rIds for images (e.g., <a:blip r:embed="rId2"/>). If so, use a higher rId number for the notes relationship to avoid conflicting with those existing references. For example, if the slide uses rId1 through rId6 for images, assign the notes relationship to rId7.
For each new slide inserted:
## [SLIDE N — Title] format## **SLIDE N — Title** formatWrite a markdown report containing:
markitdown on the output deck to confirm notes are presentmarkitdown output, check that the slide title/content matches the notes content. Specifically spot-check slides in the middle and end of the deck, since those are most likely to be misaligned if file-order vs. presentation-order was handled incorrectly.