Writing the spoken script for an existing slide deck: reading the deck as a listener, writing in a natural first-person voice at a calm speaking pace, calibrating each slide to a word budget from a timed rehearsal sample, marking pauses and emphasis the slides cannot show, and returning a timing table the presenter can rehearse from. Triggers when a deck already exists and someone asks for speaker script, talk track, presenter words, what to say on each slide, or a script that fits a set slot, including the call to cut a slide instead of scripting around it.
name: presentation_talk_track description: Writing the spoken script for an existing slide deck: reading the deck as a listener, writing in a natural first-person voice at a calm speaking pace, calibrating each slide to a word budget from a timed rehearsal sample, marking pauses and emphasis the slides cannot show, and returning a timing table the presenter can rehearse from. Triggers when a deck already exists and someone asks for speaker script, talk track, presenter words, what to say on each slide, or a script that fits a set slot, including the call to cut a slide instead of scripting around it. metadata: { "includeInPrompt": true }
Presentation Talk Track
Purpose
Turn an existing deck into words a presenter can actually say, slide by slide, inside a fixed slot. The deck already exists. This skill does not redesign it, restructure the talk, or adapt a prose document into a speech. It reads what is on each slide, works out what a listener needs to hear while looking at it, and writes that, at a length set by the presenter's own measured pace.
Existing speaker notes are raw material, not authority. Notes are often written for the author, months earlier, in shorthand, or by someone else. Read them, mine them for facts and intent, then write fresh spoken lines. If a note and the slide disagree, the slide the audience will see wins, and the disagreement gets flagged.
Workflow
- Fix the slot and the job. Get the total slot, how much is questions, who presents, who listens, and what the room must do or decide by the end. Subtract question time first. What remains is the spoken budget. If no slot is given, ask. A script with no slot has no length, and length is the whole problem here.
- Calibrate the presenter before writing a word. Have the presenter read a sample of their own material aloud, timed, at the pace they would use in the room. Compute the rate with words divided by minutes. The bundled script does it:
python3 scripts/talk_track_budget.py --calibrate --sample-words 390 --sample-seconds 180 prints the rate, 130 wpm in that example. Published ranges are only a fallback when no sample exists: presentations commonly run 100 to 150 wpm, and the National Center for Voice and Speech figure for average US conversational speech is about 150 wpm. A nervous presenter's room pace is usually faster than their rehearsal pace, so budget at the rehearsal rate and keep slack. Never budget at a rate the presenter has not demonstrated.
- Read the deck as a listener, not as its author. Go slide by slide and write, for each one, three things in your working notes: what the audience sees, what they will think it means, and what they still need to hear to get the point. If the headline is a full sentence assertion, the voice does not read it aloud. The headline serves a listener who glances up late. The voice states the same point in spoken words and then points at the evidence. This follows the assertion-evidence approach associated with Michael Alley at Penn State: a sentence headline stating the slide's claim, supported by visual evidence in the body.
- Set a word budget per slide before drafting. Multiply the presenter's rate by the minutes that slide deserves. At 130 wpm, a one minute slide is 130 words, minus the pause time you plan on that slide. Give the decision or main result slide the largest budget. Give title, agenda, and closing slides small ones. Write the budget at the top of each slide block in your draft. A slide with no budget grows until it eats a neighbour.
- Run the cut test before scripting any slide that looks heavy. Cut the slide instead of scripting around it when any of these hold: the point it makes is already stated on another slide in one sentence; it needs background the decision does not depend on; its honest script runs over twice its fair share of the slot; or the presenter would have to apologise for it, rush it, or say "I will skip this in the interest of time." A cut slide moves to an appendix or a handout, with one spoken line ready if someone asks. State every cut, with the reason, in the delivery. Never quietly drop a slide the presenter expects to see.
- Draft in a natural first-person voice. Write "I" and "we" the way the presenter actually uses them: "we" for the team's work, "I" for the presenter's own call or mistake. One idea per sentence. Most sentences under 20 words. Say numbers the way they are spoken, and keep one number per sentence where the room must hold it. The opening line of each slide does a job: it names what the slide shows, bridges from the last slide, or lands the point. It never opens with "So, moving on" and never reads bullet points aloud in order. If the slide already says it, the voice adds the why, the cause, the caution, or the consequence.
- Mark only what the slides cannot show. Use two marks, and use them sparingly: [PAUSE] for a full beat after a line the room must absorb, and bold for a word the presenter tends to flatten. Put pauses after bad news, after the recommendation, and before the ask. A page marked everywhere gets ignored in the room. Add a
Pause: N line in seconds at the top of a slide block when the pause is part of the timing, so the budget script counts it.
- Budget the draft with the script, then fix in the right order. Run
python3 scripts/talk_track_budget.py <track.md> --wpm <calibrated rate> --target-minutes <spoken budget>. The script prints words, speak time, pause time, slide total, and cumulative time per slide, and flags any slide taking over a quarter of the talk. If the total is over: first cut a slide, then cut whole ideas, then cut sentences. Never fix an overrun by writing a faster rate into the plan. If the total is under by a lot, check the pace is honest before adding anything. Slack of 5 to 10 percent of the slot is a feature. It absorbs a late start and a slow room.
- Do a timed rehearsal pass and revise from what actually happened. The presenter reads the full track aloud, timed per slide, ideally in the tool they will present from, since most slide tools can record per-slide rehearsal timings. Compare measured times against the table. Where a slide runs long in the mouth but not on paper, the sentences are wrong for speaking, so rewrite them shorter instead of blaming the presenter. Where the presenter keeps adding a line, that line belongs in the script. Update the table from the rehearsal, not from the word count alone.
- Check the worked example when the shape is unclear.
references/worked-talk-track.md is a complete fictional talk track for an 8 slide stakeholder deck, with a ninth slide cut and the reason stated. Its timing table is reproduced in the Output Contract below and can be regenerated by running the budget script on that file.
Output Contract
Deliver all of these:
- The talk track, one block per slide, headed
## Slide N: <headline or short title>, with a Pause: N line where a timed pause belongs, [PAUSE] and bold marks used sparingly, and the per-slide word budget stated in the handover note.
- A timing table with, per slide: word count, speak time at the calibrated rate, pause seconds, slide total, and cumulative time, plus the total against the spoken budget. Worked example, from the fictional deck in the references, at 130 wpm against a 7 minute spoken budget:
Slide 1, 86 words, 0:42, cumulative 0:42. Slide 2, 94 words, 0:46, cumulative 1:28. Slide 3, 112 words, 0:55, cumulative 2:23. Slide 4, 101 words, 0:49, cumulative 3:11. Slide 5, 111 words, 0:54, cumulative 4:06. Slide 6, 127 words, 1:03, cumulative 5:08. Slide 7, 102 words, 0:49, cumulative 5:57. Slide 8, 88 words, 0:44, cumulative 6:41. Total 821 words, 6:41, under the 7:00 budget by 0:19.
- The calibration record: sample word count, sample seconds, and the rate used, or a plain statement that a published fallback rate was used because no sample was available.
- A cut list: every slide cut or moved to an appendix, with the reason in one sentence each, and the one spoken line kept ready for questions on it.
- A rehearsal note: the measured full run time if a timed rehearsal happened, or a plain statement that it has not happened yet. Never report a rehearsed time that was not measured.
Operating Rules
- Accuracy rule. Every factual claim in a script must come from the deck, the presenter's material, or a checked source. Never invent numbers, dates, quotes, or results to make a slide sound stronger. A placeholder stays labelled as a placeholder.
- The presenter's measured rate beats every published range. Ranges set the first guess only.
- Existing speaker notes do not bind the script. Mine them, do not copy them, and flag any place they conflict with the slide.
- Do not redesign the deck inside this task. If a slide is unreadable or wrong, say so in one line and keep the script honest. Redesign is a separate job.
- Never solve a timing problem with speed. Cut words or cut a slide.
- Write lines a person can say in one breath, in the voice of the person who will say them. If the presenter would never say "synergy," the script does not say it either.
- Style: no em dashes in the script or the handover. Plain, direct language.
- If you write or modify Python CLIs, compile with
python3 -m py_compile before reporting done.
No ratings yet — be the first to rate it.