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.
96
Quality
96%
Does it follow best practices?
Impact
96%
1.57xAverage score across 15 eval scenarios
PPTX visual data extraction
Uses python-pptx
100%
100%
Skips static files
100%
100%
Skips conflict copies
100%
100%
Skips template files
100%
100%
Background color extraction
75%
100%
Per-slide output schema
30%
100%
Global design statistics
60%
100%
Shape type tracking
100%
75%
Font extraction
100%
100%
Footer detection
80%
100%
Recursive directory scan
100%
100%
With context: $1.1812 · 3m 34s · 41 turns · 358 in / 14,010 out tokens
Tracking database initialization
Top-level DB structure
20%
100%
Config fields present
0%
100%
Talk fields extracted
62%
100%
URL fields parsed
40%
100%
Pending status default
0%
100%
Skipped no sources
60%
100%
Slide source determination
0%
100%
Static files skipped
100%
100%
Conflict copies skipped
100%
100%
Template files skipped
100%
100%
PPTX-to-talk matching
100%
100%
State report format
66%
100%
With context: $1.0533 · 3m 22s · 36 turns · 36 in / 11,987 out tokens
Rhetoric dimension analysis
Opening pattern analyzed
100%
100%
Narrative structure analyzed
83%
100%
Humor documented
100%
100%
Audience interaction noted
100%
100%
Areas for improvement
100%
100%
Structured data fields
30%
100%
Opening type enum
0%
100%
Closing type enum
0%
100%
Verbatim signature phrases
25%
100%
Verbatim opening lines
62%
100%
Verbatim closing lines
37%
100%
Transition phrases extracted
25%
100%
JSON schema completeness
60%
80%
With context: $0.6538 · 4m 15s · 14 turns · 7,239 in / 10,918 out tokens
Speaker profile generation
Schema version
62%
100%
Speaker section
100%
100%
Infrastructure section
12%
100%
Presentation modes array
70%
100%
Design rules section
37%
100%
Rhetoric defaults
12%
100%
Confirmed intents preserved
100%
100%
Guardrail sources
10%
100%
Instrument catalog
10%
100%
Publishing process
0%
100%
Badges section
0%
100%
Talks analyzed count
25%
100%
With context: $0.8545 · 3m 48s · 19 turns · 22 in / 12,381 out tokens
Guardrail check execution
Slide budget check
100%
100%
Act 1 ratio check
33%
100%
Branding check
100%
100%
Profanity check
100%
100%
Data attribution check
100%
100%
Time-sensitive check
100%
100%
Closing completeness check
66%
100%
Cut line check
0%
100%
Anti-pattern flags
100%
100%
PASS/FAIL format
87%
100%
Guardrail summary block
100%
100%
With context: $0.6208 · 3m 59s · 16 turns · 18 in / 11,026 out tokens
Slide generation workflow
Template stripping code
100%
100%
Speaker notes via python-pptx
100%
100%
Notes batch injection
25%
100%
Footer on every slide
100%
100%
Layout selection from profile
100%
100%
No adjacent color repeat
50%
100%
White/black reserved
100%
100%
No slide numbers
100%
100%
Uses python-pptx library
100%
100%
Footer color adaptation
100%
100%
Deck plan document
100%
100%
With context: $0.7202 · 3m 21s · 20 turns · 21 in / 11,521 out tokens
Co-presenter handling
Speaker prefixes in notes
86%
100%
Footer includes co-presenter
100%
100%
Role split documented
100%
100%
Handoff points marked
100%
100%
Riley owns tooling section
100%
100%
Riley owns incident section
100%
100%
Morgan keeps opening/closing
75%
100%
Adaptation checklist produced
100%
100%
Three-part close preserved
100%
100%
Verbal handoff cues
100%
100%
With context: $0.5955 · 2m 38s · 17 turns · 3,450 in / 7,300 out tokens
CFP abstract writing
Abstract word count
100%
100%
Takeaway count
100%
100%
Speaker bio included
100%
100%
Title present
100%
100%
Presentation spec produced
100%
100%
Spec includes mode
100%
100%
No full architecture
100%
100%
Speaker voice in abstract
100%
100%
Spec includes duration
100%
100%
Spec includes profanity register
66%
100%
Spec includes commercial intent
100%
100%
Spec includes shownotes slug
0%
50%
Anti-sell awareness
100%
100%
With context: $0.4532 · 1m 55s · 15 turns · 18 in / 5,169 out tokens
Presentation outline format
Section time annotations
50%
100%
Typed placeholders
0%
100%
Independent numbering
0%
100%
Meme brief structure
50%
100%
Recurring element tracking
58%
100%
Cut line present
0%
100%
Opening sequence
100%
100%
Three-part closing
100%
100%
Slide budget compliance
100%
100%
Speaker notes present
100%
100%
Verbal signatures used
100%
100%
Slide budget header
33%
100%
With context: $1.4445 · 8m 38s · 18 turns · 20 in / 25,253 out tokens
Speaker profile schema generation
Required top-level keys
20%
100%
Speaker fields from config
100%
100%
Speaker badges present
100%
100%
Speaker badges grounded in vault stats
100%
100%
Signature patterns with usage counts
33%
66%
never_used_patterns listed
0%
100%
guardrail_sources.slide_budgets is array
0%
90%
instrument_catalog populated
0%
100%
confirmed_intents carried over
100%
100%
pacing data populated
62%
100%
antipattern_frequency present
14%
100%
Without context: $0.8245 · 4m 13s · 16 turns · 20 in / 17,844 out tokens
With context: $1.0923 · 5m 7s · 23 turns · 5,248 in / 15,476 out tokens
Presentation outline structure and placeholders
Presentation Spec block
70%
80%
Section time + slide range headers
80%
100%
Opening sequence structure
100%
100%
Multiple typed placeholder categories
0%
100%
Meme brief format
0%
100%
CUT LINE marker
100%
100%
Callback flags
0%
100%
Speaker notes in outline
90%
100%
Closing sequence completeness
100%
100%
Slide count within budget
100%
100%
Without context: $0.8860 · 7m 35s · 14 turns · 19 in / 22,152 out tokens
With context: $0.8937 · 5m 36s · 16 turns · 9,608 in / 16,205 out tokens
Guardrail checks and pattern strategy
All 9 guardrail items present
66%
100%
PASS/FAIL/WARN labels used
50%
100%
WARN for near-limit Act 1
0%
0%
4-tier Pattern Strategy present
100%
100%
Shake It Up has 1-2 items
100%
100%
[RECURRING] tag used
10%
100%
[CONTEXTUAL] tag used
0%
0%
Pattern score projection
100%
100%
Profile slide budgets used
100%
100%
Recurring issue flagged
100%
100%
Without context: $0.5757 · 4m 5s · 13 turns · 57 in / 12,901 out tokens
With context: $0.7373 · 4m 2s · 16 turns · 9,733 in / 10,373 out tokens
python-pptx deck generation from template
Uses _sldIdLst
0%
100%
Uses drop_rel()
0%
100%
Correct relationship namespace URI
0%
100%
Template stripping before content
0%
100%
Speaker notes in separate step
0%
100%
notes_text_frame access pattern
100%
100%
Text overflow prevention
20%
20%
Footer on slides
100%
100%
Final save call
100%
100%
Background color applied
100%
100%
Without context: $1.1057 · 5m 17s · 29 turns · 32 in / 20,508 out tokens
With context: $1.1905 · 5m 20s · 29 turns · 32 in / 19,194 out tokens
Talk processing status management
Full success status
100%
100%
Partial transcript fail
0%
100%
Partial slides fail
0%
100%
Both fail status
0%
100%
Missing sources skip
0%
100%
No video skip
0%
100%
Slide source pptx
100%
100%
Slide source both
0%
100%
Slide source pdf
0%
100%
Summary additive only
100%
100%
Summary has new content
100%
100%
Without context: $0.4173 · 2m 13s · 11 turns · 14 in / 8,208 out tokens
With context: $0.8798 · 4m 9s · 21 turns · 3,664 in / 13,871 out tokens
Multilingual rhetoric analysis and pattern scoring
Analysis file location
100%
100%
All 14 dimensions present
73%
100%
English-only quote format
0%
0%
Language-tagged verbal signatures
0%
100%
Structured data fields
25%
100%
Pattern score formula
0%
100%
Observable patterns only
100%
100%
Verbatim examples
22%
100%
Tracking DB updated
70%
100%
Areas for improvement present
0%
100%
Presentation Patterns Scoring section
50%
100%
Without context: $0.4121 · 2m 17s · 17 turns · 63 in / 6,777 out tokens
With context: $1.0350 · 5m 36s · 21 turns · 23 in / 15,775 out tokens
Install with Tessl CLI
npx tessl i jbaruch/speaker-toolkit@0.6.2Table of Contents