presentation-builder
Skill0 starsChanged 4 months agoMITView on GitHub
Build spoken presentations as PowerPoint decks through gated steps. Writes a spoken-voice script in a Hook, Core Arguments, Supporting Data/Story, Call to Action flow, focused on the audience's benefit, as bullet speaker notes with bolded key terms, using the CLEAR framework, about one minute per slide, drafts a markdown file of headings, candidate visuals, and notes for the user to prune, then renders the final deck strictly in the user's template. Use when user says "make a presentation", "build a slide deck", "turn my talk into slides", "write speaker notes", "PowerPoint for my talk", or "apply my template to this deck".
- Installs packages
14 other projects use a version of this.
Adopted by
Most recently taken up by
- databricks-industry-solutions/hls-skillstheir own version, first seen Nov 1, 2026
- jaskirat1616/grok-skillstheir own version, first seen Nov 1, 2026
- qa-aman/claude-skillstheir own version, first seen Nov 1, 2026
- jbaruch/speaker-toolkittheir own version, first seen Oct 20, 2026
- JayRHa/agent-skillstheir own version, first seen Oct 15, 2026
- guoliang1114-boop/AriaAItheir own version, first seen Aug 22, 2026
Other versions14 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 14
- guoliang1114-boop/AriaAI★ 40same name
- florianbonnet14/ThePowerOfAnalytics_ClaudeSkills★ 28same name
- qa-aman/claude-skills★ 24same name
- jaskirat1616/grok-skills★ 22same name
- jbaruch/speaker-toolkit★ 22same name
- JayRHa/agent-skills★ 12same name
- JayRHa/AgentSkills★ 12same name
- zacspa/PresentationBuilder★ 9same name
- RanNahmany/mamad-challenge-skills★ 7same name
- databricks-industry-solutions/hls-skills★ 6same name
4 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository16 other files it gives its agents.
- AGENTS.mdAGENTS.md
- clear-explanationSkill
- creative-writingSkill
- dataset-triageSkill
- excalidraw-system-sketchSkill
- figma-to-uiSkill
- frontend-designSkill
- mermaid-architecture-mapSkill
- newsletter-growthSkill
- no-ai-slopSkill
- outreach-emailSkill
- resume-helperSkill
- skill-authoringSkill
- stanford-researchSkill
- technical-writingSkill
- verification-loopSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
21 rules. 0 are common, 16 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 12 edited versions we read keep these.
16
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 11
Use for talks, pitches, lectures, and demos where a person presents live.
- Distinctive: line 13
Do not use for text-heavy handouts or read-ahead decks, formatting one existing slide, spreadsheet charts, or documents.
- Distinctive: line 17
Ask only for what is missing:
- Distinctive: line 34
Every slide tells the audience what they gain.
- Distinctive: line 44
Gate: before writing anything, ask the user:
- Distinctive: line 50
Wait for answers. Use only facts the user gives or source material confirms.
- Distinctive: line 54
Write the script section by section in this flow.
- Distinctive: line 68
No essay phrasing: no "furthermore", "in conclusion", or stacked clauses.
- Distinctive: line 74
Avoid "simply", "obviously", "basically", "as you know", and "of course".
- Very specific: line 78
Calibrate: no jargon. Bold each key term with term and define it in plain words at first use.
- Distinctive: line 86
Gate: ask the user to approve or edit the script.
- Very specific: line 100
Write deck/draft.md in this exact shape, one block per slide.
- Distinctive: line 119
Run from repo root:
- Very specific: line 137
If any slide reports no visual selected, ask the user for that slide.
- Very specific: line 141
Gate: ask for the template file they want used.
- Distinctive: line 154
Use only template colors. Prefer theme color references.
- Distinctive: line 155
Use only template fonts and font sizes.
- Distinctive: line 156
Use template layouts and their placeholder grid.
- Distinctive: line 158
If a selected visual cannot be built this way, ask the user: swap the visual, simplify it, or approve an outside asset by name.
- Very specific: line 182
No slide renderer: run check, then ask the user to open the deck and confirm layout.
- Distinctive: line 190
Use direct simple sentences.
“Common” is measured: kept by at least 6 in 10 of the 12 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Build a deck the user can speak to. Slides are visual backdrops. The script lives in speaker notes.
Scope
Use for talks, pitches, lectures, and demos where a person presents live.
Do not use for text-heavy handouts or read-ahead decks, formatting one existing slide, spreadsheet charts, or documents. For a handout request, state that this skill keeps on-slide text minimal and ask before continuing.
Inputs
Ask only for what is missing:
- What the user wants to say. Always ask first (Step 1).
- Talk length in minutes. Slide count equals minutes, at about one minute per slide.
- Source material: outline, doc, notes, data, or prior deck.
- Speaking pace if known. Default 5 to 8 bullets, 100 to 160 words per slide.
- Output folder. Default
deck/next to the source material. Do not commit deck files unless asked.
Audience: assume smart newcomers with no background in the topic. Do not talk down to them. Do not ask about familiarity. Change this only if the user explicitly names a more expert audience.
User owns the message, facts, visual picks, and template. Do not invent claims or data for notes.
Rules For Every Slide
- Slide shows a heading of at most 8 words plus visuals. No sentences from the script on the slide.
- Visuals complement what the speaker says at that moment. They never repeat it as text.
- Speaker notes are bullets, one idea each in short spoken sentences, so the speaker can read them word for word if needed. About one minute per slide.
- Every slide tells the audience what they gain.
- Bold key terms in the notes with
**term**. - Short labels on a chart or diagram are fine. Paragraphs are not.
Workflow
Steps 1, 2, 5, and 6 are user gates. Stop and wait at each gate. Do not skip a gate unless the user explicitly delegates that decision.
Step 1: Ask What They Want To Say
Gate: before writing anything, ask the user:
- What are the main points you want to make?
- What is the one thing the audience should remember?
- Which facts, numbers, stories, or examples must be included?
Wait for answers. Use only facts the user gives or source material confirms.
Step 2: Script By Section
Write the script section by section in this flow. Slide count still equals minutes.
- Opening Hook (1 slide): start with what the audience gains or a problem they already feel. Use a question, a user-supplied fact, or a short story.
- Core Arguments (most slides): one argument per slide, each framed as a benefit to the audience.
- Supporting Data/Story (1 to 2 slides): user-supplied numbers, examples, or a story that proves the arguments. Never invent data.
- Call to Action (last slide): restate the core idea in a bullet starting
In short:, then make one specific ask.
Notes per slide: 5 to 8 bullets, 100 to 160 words. Each bullet holds one idea in 1 or 2 short sentences, so the speaker can read it word for word.
Spoken voice:
- Short sentences, max 20 words. Contractions. Talk to the audience as "you".
- Conversational transitions between slides and sections. Examples: "So what does that mean for you?", "Here's the proof.", "Which brings me to my ask."
- Mark natural pauses with
[pause]: after the hook, after key numbers, before the ask. - No essay phrasing: no "furthermore", "in conclusion", or stacked clauses.
Respect the audience:
- Assume no background in the topic and full intelligence. Define a term in a quick clause, then move on.
- Lead each slide with why it matters to the audience, then how it works.
- Avoid "simply", "obviously", "basically", "as you know", and "of course".
Apply CLEAR (same framework as the clear-explanation skill) inside that flow:
- Calibrate: no jargon. Bold each key term with
**term**and define it in plain words at first use. - Link: introduce each new concept with one everyday analogy. State where the analogy stops if it could mislead.
- Envision: give each slide one simple shape the listener can hold: 3-step flow, before/after, cause and effect, or named stages. Step 3 visuals should show this shape.
- Abstract: one idea per bullet. Concrete nouns, active verbs. Cut detail that does not help the audience understand or act. Keep caveats that change decisions. Test: could a newcomer repeat the slide's point after one hearing? If not, simplify.
- Repeat: the Call to Action slide restates the core idea before the ask.
Present the script grouped by section, with heading and bullet notes per slide.
Gate: ask the user to approve or edit the script. Iterate until approved. Accuracy wins over simplicity.
Step 3: Candidate Visuals
For each approved slide write exactly 5 candidate visuals.
- Max 2 sentences each.
- Describe what appears and what it signals. Example:
Single upward line on a blank grid, one dot labeled "today". Signals momentum without numbers. - At least one candidate shows the slide's Envision shape. Another can picture the Link analogy.
- Vary type across the 5: icon composition, diagram, chart, photo or illustration, metaphor.
- Each must support the notes without restating them.
Step 4: Markdown Draft
Write deck/draft.md in this exact shape, one block per slide. Tag each slide with its section in parentheses: Opening Hook, Core Arguments, Supporting Data/Story, or Call to Action.
# Talk Title
## Slide 1 (Opening Hook): Proposed heading
### Visuals
- Candidate visual 1, max 2 sentences.
- Candidate visual 2.
- Candidate visual 3.
- Candidate visual 4.
- Candidate visual 5.
### Speaker notes
- Ever lost a day to a merge? [pause]
- A **merge** combines your work with everyone else's. It shouldn't cost you a day.Run from repo root:
uv run skills/presentation-builder/scripts/deck.py validate deck/draft.mdFix every FAIL line and rerun. validate fails on out-of-order or unknown sections. Fix WARN lines (bullet count, notes length, missing bold terms, long sentences, talking-down words, no "you") unless the user approved them.
Step 5: User Picks Visuals
Gate: send deck/draft.md and ask the user to delete every visual bullet they do not want, keeping their picks under each slide. Wait for the edited file.
Then run:
uv run skills/presentation-builder/scripts/deck.py selections deck/draft.md > deck/selections.jsonIf any slide reports no visual selected, ask the user for that slide. Do not pick for them.
Step 6: Template
Gate: ask for the template file they want used. Require .pptx. For .potx, Keynote, or Google Slides, ask for a .pptx export.
Run:
uv run skills/presentation-builder/scripts/deck.py inspect path/to/template.pptx > deck/template.jsonSummarize for the user: theme fonts, allowed sizes, color palette, layouts, and icon inventory.
Strict template rules:
- Template icons are the core visual source. Build each selected visual from them first.
- Use only template colors. Prefer theme color references.
- Use only template fonts and font sizes. Let placeholders inherit where possible.
- Use template layouts and their placeholder grid.
- Native shapes and charts are allowed when styled only with template colors, fonts, and sizes.
- If a selected visual cannot be built this way, ask the user: swap the visual, simplify it, or approve an outside asset by name.
Step 7: Render Final Deck
Load render-guide.md now. Build deck/final.pptx from the template file, one slide per entry in selections.json, carrying approved notes unchanged.
Verification
Run:
uv run skills/presentation-builder/scripts/deck.py check deck/final.pptx path/to/template.pptx --selections deck/selections.jsonIt must print PASS. It fails on non-template fonts, sizes, colors, or images, empty notes, and slide-count mismatch. Each approved outside asset will fail the image check; list those as approved exceptions.
Then render slide images and inspect each one for overflow, overlap, unreadable icons, low contrast, leftover template text, and empty placeholders. Confirm every slide's notes match the approved script.
Fallbacks
- Notes only requested: run Steps 1 and 2, then stop.
- User declines a template: offer a plain deck with a white background, black text, the heading, the chosen visuals, and notes. Do not invent a style.
- User delegates visual picks: choose one per slide, give a one-line reason each, and write
selections.jsonin the same shape. - No
uv:pip install python-pptxthenpython skills/presentation-builder/scripts/deck.py .... - No slide renderer: run
check, then ask the user to open the deck and confirm layout.
Output
At each gate return file paths and one direct question. At the end return deck/final.pptx, check result, slides reviewed visually, approved exceptions, and open issues.
Writing
Use direct simple sentences. Skip rhetorical flourishes. Avoid X-not-Y contrasts, self-answering rhetorical questions, em dashes, alliterative three-part phrases, vague inspirational pivots, unsourced claims, and unverified quotes.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

