CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/speaker-toolkit

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

1.57x

Quality

96%

Does it follow best practices?

Impact

96%

1.57x

Average score across 15 eval scenarios

Overview
Skills
Evals
Files

Evaluation results

98%

13%

Slide Deck Visual Audit Tool

PPTX visual data extraction

Criteria
Without context
With context

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

100%

49%

Talk Library Organizer

Tracking database initialization

Criteria
Without context
With context

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

98%

46%

Conference Talk Rhetoric Analysis

Rhetoric dimension analysis

Criteria
Without context
With context

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

100%

63%

Speaker Profile Document Generation

Speaker profile generation

Criteria
Without context
With context

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

100%

21%

Presentation Quality Audit

Guardrail check execution

Criteria
Without context
With context

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

100%

11%

PowerPoint Deck Builder Script

Slide generation workflow

Criteria
Without context
With context

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

100%

4%

Co-Presented Talk Adaptation

Co-presenter handling

Criteria
Without context
With context

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

97%

5%

Conference CFP Submission

CFP abstract writing

Criteria
Without context
With context

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

100%

45%

Conference Talk Outline

Presentation outline format

Criteria
Without context
With context

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

95%

46%

Generate a Speaker Profile from a Completed Vault

Speaker profile schema generation

Criteria
Without context
With context

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

98%

34%

Build a Conference Talk Outline

Presentation outline structure and placeholders

Criteria
Without context
With context

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

80%

18%

Review a Draft Conference Talk

Guardrail checks and pattern strategy

Criteria
Without context
With context

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

96%

57%

Generate a Conference Deck from a Finalized Outline

python-pptx deck generation from template

Criteria
Without context
With context

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

100%

64%

Talk Processing Batch Report

Talk processing status management

Criteria
Without context
With context

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

90%

51%

Rhetoric Vault: Process a Conference Talk

Multilingual rhetoric analysis and pattern scoring

Criteria
Without context
With context

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.2
Evaluated
Agent
Claude Code
Model
Claude Sonnet 4.6

Table of Contents