CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/speaker-toolkit

Five-skill presentation system: ingest talks into a rhetoric vault, run interactive clarification, generate a speaker profile, create presentations that match your documented patterns, and produce the deck illustrations + thumbnail visual layer. Includes a 102-entry Presentation Patterns taxonomy (91 observable, 11 unobservable go-live items) for scoring, brainstorming, and go-live preparation.

93

1.43x
Quality

94%

Does it follow best practices?

Impact

93%

1.43x

Average score across 21 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

Evaluation results

92%

12%

Presentation Analytics: Multi-Source Slide Ingestion

Criteria
Without context
With context

PPTX highest priority

100%

100%

Video-only talks are processable

100%

100%

No-video talks not processable

100%

90%

Multiple slide_source values used

100%

100%

Video extraction output named by YouTube ID

100%

75%

Slides fail + video available = fallback to video

100%

100%

Partial processing when one source fails

0%

100%

All fail = distinct failure status

0%

50%

Processing log explains decisions

100%

100%

92%

9%

Illustration Fix Triage and Quality Audit

Criteria
Without context
With context

Regenerate for content additions

0%

100%

Edit for content removal

100%

100%

Simplified anchor flagged

100%

100%

Safety suffix: no new elements

62%

100%

Safety suffix: background continuation

100%

100%

Explicit preservation instructions

100%

100%

Versioned output naming

100%

100%

Fix mode for near-perfect images

100%

0%

PIL masking flagged as wrong approach

100%

100%

Missing preservation flagged

100%

100%

Content modification via edit flagged

50%

100%

98%

58%

Conference Talk Rhetoric Analysis

Criteria
Without context
With context

Opening pattern analyzed

100%

100%

Narrative structure analyzed

100%

100%

Humor documented

100%

100%

Audience interaction noted

100%

100%

Areas for improvement

0%

100%

Structured data fields

0%

100%

Opening type categorized correctly

62%

75%

Closing type categorized correctly

62%

100%

Verbatim signature phrases

25%

100%

Verbatim opening lines

0%

100%

Verbatim closing lines

0%

100%

Transition phrases extracted

50%

100%

JSON schema completeness

0%

100%

99%

47%

Generate a Speaker Profile from a Completed Vault

Criteria
Without context
With context

Required top-level keys

20%

100%

Speaker fields from config

100%

100%

Speaker badges present

100%

80%

Speaker badges grounded in vault stats

100%

100%

Signature patterns with usage counts

50%

100%

never_used_patterns listed

0%

100%

guardrail_sources.slide_budgets is array

0%

100%

instrument_catalog populated

0%

100%

confirmed_intents carried over

100%

100%

pacing data populated

87%

100%

antipattern_frequency present

0%

100%

95%

52%

Rhetoric Vault: Process a Conference Talk

Criteria
Without context
With context

Analysis file location

100%

100%

All 14 dimensions present

60%

100%

English-only quote format

30%

50%

Language-tagged verbal signatures

12%

100%

Structured data fields

25%

100%

Pattern score formula

0%

100%

Observable patterns only

100%

100%

Verbatim examples

33%

100%

Tracking DB updated

20%

100%

Areas for improvement present

66%

100%

Presentation Patterns Scoring section

50%

100%

100%

14%

Conference CFP Submission

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

0%

100%

Spec includes profanity register

33%

100%

Spec includes commercial intent

33%

100%

Spec includes shownotes slug

100%

100%

Anti-sell awareness

100%

100%

98%

8%

Humor Post-Mortem and Blind Spot Debrief

Criteria
Without context
With context

Per-joke grading

50%

100%

Joke questions grounded in observations

91%

100%

Meme slide questions

87%

75%

Spontaneous humor capture

90%

100%

Promotion prompt

75%

100%

Blind spot questions

100%

100%

Demo reaction questions

100%

100%

Recency adaptation — recent

100%

100%

Recency adaptation — old

100%

100%

Structured output format

100%

100%

89%

51%

Illustrated Outline Quality Audit

Criteria
Without context
With context

Both checker scripts referenced

0%

93%

Data attribution FAIL surfaced

58%

100%

Closing FAIL surfaced

50%

100%

Cut-lines FAIL surfaced

0%

100%

Rushed-closing recurring issue noted

100%

62%

Vague image prompt flagged (slide 5)

100%

100%

Schema validation confirmed up front

0%

12%

Big-idea singleton confirmed

0%

100%

Thesis preview/payoff ordering confirmed

0%

100%

Illustration coverage commentary

71%

100%

Report distinguishes FAIL vs FLAG vs INFO

25%

100%

98%

81%

Illustrated Conference Talk Outline

Criteria
Without context
With context

outline.yaml validates against schema

21%

100%

style_anchor block present

0%

100%

Format-specific anchors

0%

100%

Visual continuity conventions documented

25%

100%

format field on every slide

0%

100%

EXCEPTION slides carry format_justification

25%

100%

image_prompt uses [STYLE ANCHOR] token

0%

100%

visual field present alongside image_prompt

0%

100%

Prompt richer than visual description

0%

100%

Visual continuity: FIG numbering

33%

100%

Visual continuity: progressive form

100%

100%

Standard outline structure preserved

33%

66%

68%

Generate Deck Illustrations Right After Picking a Model

Criteria
Without context
With context

Web-search precedes generation

0%

0%

No spurious model-change proposal

100%

100%

Proceeds to generation without re-litigating

100%

100%

Generation uses the outline's declared model

100%

100%

78%

68%

Generate Deck Illustrations for an Aged Outline

Criteria
Without context
With context

Web-search precedes generation

0%

68%

Outline model recognized as out-of-current-list

22%

100%

Explicit decision point before generation

0%

57%

No silent generation with stale model

27%

100%

73%

-12%

Route a Single Request to the Right Illustrations Mode

Criteria
Without context
With context

Request A routes to Strategy mode

86%

80%

Request B routes to Generation mode

85%

75%

Request C routes to Thumbnail mode

86%

80%

Step references resolve against the skill's canonical sequence

53%

26%

Request B includes builds because outline has Builds blocks

100%

100%

Request B includes apply-to-deck because .pptx exists

100%

100%

Request A finishes after Step 2

90%

50%

No mode confusion across requests

100%

100%

100%

38%

Pattern Strategy for a Conference Talk

Criteria
Without context
With context

4-tier structure present

60%

100%

Signature tier from profile

100%

100%

Contextual tier from profile

100%

100%

Shake It Up has 1-2 items

0%

100%

[RECURRING] tag used

40%

100%

[CONTEXTUAL] tag used

40%

100%

New to You from never_used

100%

100%

Actionable recommendations

100%

100%

95%

4%

Slide Deck Visual Audit Report

Criteria
Without context
With context

Skips static files

100%

100%

Skips conflict copies

100%

100%

Skips template files

100%

100%

Background colors extracted

70%

100%

Per-slide breakdown present

80%

100%

Global design statistics

100%

90%

Shape type detail

100%

100%

Font extraction

50%

50%

Footer detection

100%

100%

Recursive directory scan

100%

100%

Valid JSON output

100%

100%

95%

63%

Adding Progressive Reveals to an Illustrated Talk

Criteria
Without context
With context

Build specification format

10%

70%

Build step 0 is empty frame

0%

100%

Final build matches the full slide

90%

100%

Backwards-chaining workflow described

10%

100%

Build naming convention

12%

100%

Build slides count toward budget

75%

75%

Speaker notes on final step only

0%

100%

BLANK layout for all builds

87%

100%

Explicit preservation instructions

20%

100%

Safety suffixes mentioned

0%

100%

Parent slide replaced by build sequence

50%

100%

100%

2%

QR Generation with Bitly Custom Back-Half and Slug from outline.yaml

Criteria
Without context
With context

Talk slug read from outline.yaml

100%

100%

Shownotes URL constructed from pattern + outline.yaml slug

100%

100%

Bitly custom back-half is the talk slug

100%

100%

QR encodes bitly URL, not raw shownotes URL

100%

100%

generate-qr.py used, not qrcode library directly

100%

100%

Command uses --shownotes-url (not --short-url)

100%

100%

Tracking DB update mentioned

60%

100%

No silent degradation to raw URL

100%

100%

100%

15%

QR Generation for a Closing Slide

Criteria
Without context
With context

Agent surfaces missing shortener config

100%

100%

Agent asks user to choose a shortener

66%

100%

Agent does NOT generate QR with raw URL without asking

100%

100%

Shownotes URL uses slug from outline.yaml (talk.slug)

100%

100%

Talk slug matches spec exactly

100%

100%

Agent references generate-qr.py as the tool

0%

100%

Agent distinguishes missing config from opt-out

100%

100%

94%

27%

Talk Library Organizer

Criteria
Without context
With context

Top-level DB structure

70%

100%

Config captures source directories

100%

100%

Talk fields extracted

75%

100%

URL fields parsed

50%

100%

New talks default to pending

0%

100%

No-sources talk flagged as unprocessable

66%

100%

Slide source determination

0%

40%

Static files skipped

100%

100%

Conflict copies skipped

100%

100%

Template files skipped

100%

100%

PPTX-to-talk matching

100%

100%

Scan report with counts

100%

100%

100%

28%

Pick the Right Thumbnail Aesthetic from Vault Signals

Criteria
Without context
With context

Recommended aesthetic is comic_book

100%

100%

Decision cites the precedence step that produced the answer

13%

100%

Decision quotes the matched field value

50%

100%

No side-by-side comparison forced

100%

100%

Speaker photo path from profile

100%

100%

style_preference and title_position applied

100%

100%

Brand colors applied

100%

100%

Step 1 not silently skipped

0%

100%

Title argument is the speaker-confirmed hook verbatim

100%

100%

100%

12%

Plan Thumbnail Revision After Speaker Feedback

Criteria
Without context
With context

Iterate not restart strategy

53%

100%

Style changed to split_panel

100%

100%

Title position changed to top

100%

100%

Title text unchanged

100%

100%

Slide image unchanged

100%

100%

Face issue addressed via style variant, not preservation language

66%

100%

generate-thumbnail.py used

100%

100%

Slide image from illustrations directory

100%

100%

Original vs revised comparison

100%

100%

Speaker photo path unchanged

100%

100%

100%

8%

Video Slide Extraction Quality Diagnostics

Criteria
Without context
With context

Wide-angle detection

100%

100%

Hash threshold recommendation

90%

100%

Slide region crop suggestion

100%

100%

Multi-language transcript handling

90%

100%

Whisper hallucination detection

100%

100%

Transcript source tracking

100%

100%

Speaker identity verification

100%

100%

Recording type classification

40%

100%

Structured diagnostics output

100%

100%

Clean recording passes cleanly

100%

100%

Evaluated
Agent
Claude
Model
Claude Sonnet 4.6