skills/golem-powers/presentation-builder/SKILL.md
Step-by-step presentation builder using Michal's Speakers Workshop method, Oren Efraim's rules, and Uri Alon's techniques. Three sessions: find the premise, build structure and slides, then practice delivery. Use when: preparing a talk, building slides, refining a pitch, practicing a presentation, or reviewing presentation structure. Supports VoiceLayer for spoken practice runs. NOT for: writing blog posts, LinkedIn content, or general writing tasks.
npx skillsauth add etanhey/golems presentation-builderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Standing-preference binding (inherited from coach, inlined here for standalone use).
When the user states a stylistic/structural preference 2+ times in a session ("less terms", "fewer bullets", "more visuals", "premise-only", "no headers", "shorter", "denser", "simpler"), treat it as a STANDING preference for the rest of the session — not a per-turn correction. On the 2nd occurrence: self-prompt before every subsequent deliverable with
"STANDING PREFERENCE (this session): {verbatim quote}. Conform before deliver.", run a self-check, and re-draft if non-compliant — do not deliver and ask "is this better?". Ifbrain_storeis available: at boot, first search fortag:standingentries from the last 2 hours withvalid_untilnot expired — adopt theirsession_idif found (compaction-safe), otherwise mint a freshsession-{YYYY-MM-DDTHH:MM:SSZ}fromdate '+%Y-%m-%dT%H:%M:%SZ'. Tag entries withsession-preference + standing + {session-id},importance:3, and put bothsession_id:andvalid_until: end-of-session-...in the body. Future-session searches must requiresession_idmatch (not just date) before applying. Ifcoachis also loaded, prefer its canonical definition.
Build great presentations step by step. Based on Michal's Speakers Workshop (TechGym/Melio), Oren Efraim's "Art of Building and Delivering Great Presentations", Uri Alon (Weizmann), and 6+ expert sources.
Full rules reference (local, gitignored):
docs.local/speakers-workshop/presentation-rules.md
/presentation-builder [workflow]
Workflows:
/presentation-builder premise — Find and refine the single premise (Session 1)/presentation-builder build — Frame, draft with AI, polish, slides, opening/closing (Session 2)/presentation-builder review — Review and practice a finished presentation (Session 3)/presentation-builder full — Walk through the entire process start to finish/presentation-builder rules — Show all extracted presentation rules (quick reference)Goal: One sentence that captures the entire talk. Everything else flows from this.
Process:
Uri Alon's Rule: Every good talk has ONE single premise. Write it FIRST. If a slide doesn't support it, cut it.
Output: A single premise sentence + audience definition + time constraint.
This is the main work session. Follow this order strictly:
Use Oren Efraim's 10-minute structure (scales to any length):
Ask the user to map their content to these 5 sections.
Help the user write a prompt for AI to generate a first draft:
Go through the draft and:
For each slide, check:
Oren Efraim: 10-30 seconds per slide. If you need more time, split the slide.
Opening is the LAST thing you write. You need to know all your slides before you know the best hook.
5 Hook Types (Oren Efraim):
| Type | How | Example | |------|-----|---------| | Question | Trigger curiosity | "What happens when you build something for yourself and it becomes a system?" | | Shared Pain | Empathy hook | "Remember deleting the production database?" | | Personal Story | Create proximity | "Two years ago I couldn't speak in front of anyone..." | | Stunning Fact | Challenge assumptions | "We see 1,200 presentations a year. We remember 3%." | | Paint a Future | Optimism hook | "Imagine a world where every talk you give is remembered." |
Closing: The LAST point MUST callback to the opening. Full circle = closure.
Session 2 output: A complete presentation wireframe — structure, polished slides, opening, closing. Ready to practice.
Goal: Make the presentation as good as possible. Practice, get feedback, refine.
This is where you take the wireframe from Session 2 and turn it into a performance.
If voice is available (VoiceLayer), use voice_ask for practice runs:
Show your opening, get live feedback, iterate. This is the final polish before the real event.
When VoiceLayer is available, use it for:
voice_ask — speak the opening, get timed feedbackvoice_ask — "How did it go? What would you change?"voice_speak — capture insights silently (use insight: prefix)voice_speak — hear it spoken, check if it sounds naturaldevelopment
Create, edit, and verify golem-powers skills using the standard SKILL.md structure, workflow files, adapters, templates, and eval fixtures. Use for new skills, structural edits, workflows/adapters, and pre-deploy validation. NOT for invoking existing skills, superpowers skills, or skill-creator agent workflows.
testing
Extract structured knowledge from any video source — YouTube URLs or local screen recordings. YouTube → gems workflow (yt-dlp transcript → keyword hotspots → frame extract → brain_digest → structured gems). Screen recordings → QA workflow (reuses /qa-video stalker pipeline). Use when user shares a YouTube link wanting deep extraction with frames, shares a .mov/.mp4 for QA processing, says "extract from video", "video gems", "process this recording", or mentions gem extraction from video content.
testing
Use when running or reviewing any recurring monitor loop for merge queues, worker queues, collab tails, or agent completion. Enforces drive-to-completion ticks: every tick must query live state with `!`, classify whether real progress happened, and then dispatch, verify-and-decrement, or escalate-park. Triggers on: monitor loop, /loop, recurring tick, keep monitoring, silent autonomous, merge gate, blocked review, no-progress loop.
tools
MeHayom freelance client management — daily updates, decision tracking, time logging. Use when drafting Yuval updates, logging scope changes, tracking hours, or any MeHayom client communication. Triggers: 'draft Yuval update', 'client update', 'daily update', 'log decision', 'track time', 'mehayom'.