Two-skill presentation system: analyze your speaking style into a rhetoric knowledge vault, then create new presentations that match your documented patterns. Includes an 88-entry Presentation Patterns taxonomy for scoring, brainstorming, and go-live preparation.
Overall
score
95%
Does it follow best practices?
Validation for skill structure
Detailed workflow for each phase. The SKILL.md has the overview; this file has the operational detail.
Read three vault documents in order from the vault root.
A. Rhetoric vault summary — rhetoric-style-summary.md
The constitution. Contains all cataloged patterns across rhetoric dimensions, areas for improvement, speaker-confirmed intent, and per-talk observation log.
Pay special attention to the Speaker-Confirmed Intent section. These are ground-truth
design decisions that override any pattern inference. Read the confirmed_intents array
in the speaker profile for the structured version.
B. Slide design spec — slide-design-spec.md
Visual design reference: background colors, typography, footer structure, shape census, template layout catalog, and generation rules.
C. Speaker profile — speaker-profile.json
Structured design decisions: presentation modes, rhetoric defaults, confirmed intents, guardrail sources, pacing data, infrastructure, and instrument catalog.
The summary is the rich narrative; the profile is the structured data. When you need nuance, voice examples, or context — read the summary. When you need thresholds, counts, or rules — read the profile.
Freshness check: Compare speaker-profile.json → generated_date against the
Last updated line in rhetoric-style-summary.md. If the summary is newer, warn:
"The vault summary was updated {date} but the speaker profile was generated {date}. Run 'update speaker profile' to sync, or proceed with the current profile?"
Extract from the conversation what the user has already shared. Common starting points:
Summarize what you know and what you need.
Don't dump all questions at once. Use AskUserQuestion for structured choices when
the vault provides a finite set of options, and conversational questions when the
answer is open-ended.
Batch questions logically:
Use the vault to inform questions. If the topic overlaps with existing talks in the vault, reference them: "This overlaps with your [talk name] territory. Should we build on that argument or take a different angle?"
If the spec has a co-presenter:
[SPEAKER A]: / [SPEAKER B]: prefixes in all speaker notes throughout the outlineBefore presenting the spec, cross-check:
Pre-fill the spec from the vault's analysis of the original talk:
{vault_root}/analyses/This phase is a conversation, not a monologue. For each decision:
instrument_catalog). The vault is the living source — new instruments appear
as more talks are parsed.Read presentation_modes[] from the speaker profile. Each mode has a when_to_use
field — use these to build a selection logic table dynamically. Present the modes
with their descriptions and match signals from the spec.
Read instrument_catalog.opening_patterns[] from the speaker profile. Each pattern
has a best_for field. Match to the spec's audience warmth, venue size, and context.
Read instrument_catalog.narrative_structures[] from the speaker profile. Each has
acts and time_allocation. Present the options with their time splits and best-for
context.
Read references/patterns/_index.md for the full taxonomy and
profile → pattern_profile for the speaker's pattern history.
Present patterns in 4 tiers:
PATTERN STRATEGY for "{talk title}"
===================================
YOUR TOOLKIT (signature):
✓ Narrative Arc (22/24 talks) — recommended for this format
✓ Bookends (18/24) — strong with this audience
✓ Expansion Joints (20/24) — essential for 45→20 min adaptation
WORTH CONSIDERING (contextual):
○ Talklet (3/24) — good fit for the 20-min constraint
○ Foreshadowing (7/24) — pairs well with your arc style
NEW TO YOU:
★ [NEW] Preroll — display bio/topic on screen before you start
★ [NEW] Seeding the First Question — plant an easy Q for Q&A
SHAKE IT UP:
⚡ [WILD CARD] Red, Yellow, Green — audience voting with colored cards
⚡ [WILD CARD] Cave Painting — one giant canvas instead of slides
WARNINGS:
⚠ Shortchanged (8/24 detections) — plan cut lines for the 20-min slot
⚠ Dual-Headed Monster — co-presented talk, define handoff points
===================================Tier logic:
mastery_level: signature patterns (80%+ usage), always shownnever_used_patterns, filtered by spec relevance, marked [NEW]never_used_patterns, NOT filtered by relevance.
Provocations, not prescriptions.Antipattern warnings — merge speaker's recurring antipatterns (from
pattern_profile.antipattern_frequency) + contextual warnings derived from the spec
(co-presented → Dual-Headed Monster, dense content → Bullet-Riddled Corpse,
new format → Shortchanged, etc.)
Summary-only mode (no profile yet): Pattern taxonomy still works — patterns come from the reference files alone (no usage stats). All patterns presented as "new" (no tier separation, just a flat relevant-patterns list). Contextual antipattern warnings still apply.
Enhance decisions 2-9 with pattern cross-references as shared vocabulary: when recommending an opening pattern, reference the taxonomy ID; when selecting a narrative structure, note which Presentation Patterns it maps to (e.g., "problem-solution" = Narrative Arc + Triad).
Read guardrail_sources.slide_budgets[] from the speaker profile. Match the spec's
duration to the closest budget entry. Read pacing for WPM and slides/min targets.
The outline needs to be:
# [Talk Title]
**Spec:** [mode] | [duration] | [venue] | [audience]
**Slide budget:** [N slides — from profile guardrail_sources.slide_budgets]
**Pacing target:** [from profile pacing.wpm_range]
---
## Opening Sequence [3 min, slides 1-5]
### Slide 1: Title Slide
- Visual: [description]
- Footer: [from profile design_rules.footer.pattern]
- Speaker: [no notes — title slide is visual-only]
### Slide 2: [Opening hook type — from Phase 2 architecture]
- Visual: [description]
- Speaker: "[opening lines in the speaker's voice]"
### Slide 3: Brief Bio
- Visual: [from profile speaker.bio_short]
- Speaker: "[brief intro]"
### Slide 4: Shownotes URL
- Visual: [from profile speaker.shownotes_url_pattern] with QR code
- Speaker: "Everything — slides, links, resources — [shownotes URL]"
### Slide 5: [First content beat]
...
## Act 1: [Title] [N min, slides X-Y]
...
## [CUT LINE: Everything below here can be dropped for short version]
...
## Closing Sequence [3 min, slides N-end]
### Slide N: Summary
### Slide N+1: CTA
### Slide N+2: Thanks / SocialProactively identify and suggest callback opportunities. Check the vault summary for whether the speaker uses within-talk callbacks as a structural device. Look for:
Flag every callback explicitly in the outline:
[CALLBACK: reference to {element} from slide {N} — {variation}]
[PROGRESSIVE LIST: {list name} gains Nth item from slide {N}]
[RUNNING GAG: Nth appearance of {gag}]Read verbal signatures from the vault summary (recurring phrases section) and the
profile's instrument_catalog.verbal_signatures[]. Place them where they fit
organically — don't force them.
General placement principles:
design_rules.default_bullet_symbol in the
profile, but proactively suggest contextual symbols where they fitThe specific phrases come from the vault, not from this file.
Use numbered, typed placeholders:
[AUTHOR 01: your specific data/story for this point]
[DEMO 01: description of what to demo]
[DATA 01: need survey stat — describe what's needed]
[SCREENSHOT 01: description of what to capture]Meme briefs — structured brief for each meme:
[MEME 01]
Template: [meme template name]
Search query: "[search terms to find the template image]"
Overlay text: [specific text to apply]
Rhetorical function: [what argument this meme serves]Each type uses independent numbering.
After each revision, run through references/guardrails.md systematically with
thresholds from the speaker profile. Present results as a checklist:
GUARDRAIL CHECK
===============
[PASS/FAIL] Slide budget: {actual}/{max from profile} for {duration}-min slot
[PASS/WARN/FAIL] Act 1 ratio: {%} (limit from profile)
[PASS/FAIL] Branding: footer elements from profile
[PASS/FAIL] Profanity: register from spec, on-slide rules from profile
[PASS/FAIL] Data attribution: sources visible
[PASS/FAIL] Time-sensitive: no expired content
[PASS/FAIL] Closing: summary + CTA + social present
[PASS/FAIL] Cut lines: present for adaptation
[INFO] Anti-patterns: checks from profile recurring_issuespresentation-outline.mdFull technical reference: references/slide-generation.md
Read the template path from speaker-profile.json → infrastructure.template_pptx_path.
Strip demo slides from template, keep layouts only (see slide-generation.md for code).
Save to the presentation file convention from the profile.
For each slide, select the layout from the profile's infrastructure.template_layouts[],
add via MCP, populate placeholders. See slide-generation.md for the workflow.
Batch-inject via python-pptx (MCP doesn't support notes). Key slides only — not every slide.
Save and present a generation report with slide count, layouts used, and placeholders needing author content.
Free-form conversation. The author gives feedback in whatever format is natural. Handle content changes (MCP), structural changes (python-pptx), and note changes (python-pptx). See slide-generation.md for patterns.
Save the .pptx. Export and publishing happen in Phase 6.
The publishing workflow is speaker-specific. Read publishing_process from
speaker-profile.json. If the section is missing or empty, fall back to asking
the author interactively and document their answers for next time.
Read publishing_process.export_format and publishing_process.export_method.
export_script is provided, run it (substituting the deck path)export_method is a description, follow its instructionsreferences/slide-generation.md)Read publishing_process.shownotes_publishing. If enabled:
method description (git push, CMS, manual)shownotes_repo_path and shownotes_template are provided, generate the pageshownotes_url_pattern from speaker to construct the final URLIf not enabled, skip.
Read publishing_process.qr_code. If enabled:
target URL)insert_into_deck is true, add to the deck at the specified slide_positionRead publishing_process.additional_steps[]. For each entry:
automated is true and script is provided, run itautomated is false, present the step to the author as a manual TODOBefore delivery, surface unobservable patterns from references/patterns/_index.md
(the "Unobservable Patterns — Go-Live Checklist" section) as a preparation reminder.
These are patterns the vault cannot score retroactively because they involve
pre-event logistics, physical stage behaviors, or external systems — but they still
matter for delivery quality.
GO-LIVE CHECKLIST — {talk title}
==================================
PRE-EVENT:
[ ] Preparation — backups, cables, hydration, room layout check
[ ] Carnegie Hall — completed 4 rehearsals (pace, delivery, fixes, groove)
[ ] The Stakeout — staging area identified near venue
[ ] Posse — supporter(s) confirmed for front row
[ ] Seeding Satisfaction — plan to arrive early and mingle
[ ] Shoeless — comfort ritual ready
DURING DELIVERY:
[ ] Lightsaber — if laser pointer needed, max 2-3 steady moments
[ ] Red/Yellow/Green — exit feedback cards set up (if venue supports)
AVOID:
[ ] Laser Weapons — don't wave the pointer; use built-in highlights
[ ] Bunker — step out from behind the podium
[ ] Backchannel — don't monitor social media during the talk
==================================PUBLISHING REPORT — {talk title}
==================================
[DONE/SKIP] Export: {format} → {output path}
[DONE/SKIP] Shownotes: {url or "not configured"}
[DONE/SKIP] QR code: {inserted at slide N or "not configured"}
[DONE/SKIP/TODO] {additional step name}: {status}
[INFO] Go-live checklist: {presented above}
==================================Install with Tessl CLI
npx tessl i jbaruch/speaker-toolkitevals
scenario-0
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
skills
presentation-creator
references
patterns
build
deliver
prepare
rhetoric-knowledge-vault