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
{
"context": "Tests whether the agent correctly generates a speaker-profile.json from accumulated vault data: correct top-level structure, speaker badges grounded in specific vault statistics (not generic), signature patterns derived from usage counts, confirmed intents carried over from the tracking DB, and guardrail values in array format derived from talk data.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Required top-level keys",
"description": "speaker-profile.json contains all of the following top-level keys: speaker, infrastructure, presentation_modes, rhetoric_defaults, instrument_catalog, guardrail_sources, pacing, pattern_profile",
"max_score": 10
},
{
"name": "Speaker fields from config",
"description": "The speaker object contains name ('Taylor Okonkwo') and handle ('@t_okonkwo') matching the tracking DB config — not left empty or populated with placeholder values",
"max_score": 8
},
{
"name": "Speaker badges present",
"description": "The profile contains a speaker_badges array (at top level or under speaker) with at least 3 entries",
"max_score": 5
},
{
"name": "Speaker badges grounded in vault stats",
"description": "At least 2 of the speaker badges reference specific numbers from the vault data (e.g., '10/12 talks', '15+ patterns') — not generic titles like 'Great Speaker' or 'Consistent Narrator'",
"max_score": 12
},
{
"name": "Signature patterns with usage counts",
"description": "pattern_profile.signature_patterns contains at least 2 entries with usage_count values matching the analyses (narrative-arc and bookends should appear, both used 10+ times out of 12 talks)",
"max_score": 12
},
{
"name": "never_used_patterns listed",
"description": "pattern_profile.never_used_patterns contains at least 2 pattern IDs that do not appear in any of the provided talk analyses",
"max_score": 8
},
{
"name": "guardrail_sources.slide_budgets is array",
"description": "guardrail_sources.slide_budgets is a JSON array of objects (not a single flat object or a number), where each entry has at minimum: duration_minutes and max_slides fields",
"max_score": 10
},
{
"name": "instrument_catalog populated",
"description": "instrument_catalog contains at minimum two sub-keys: opening_patterns and narrative_structures, each with at least one entry derived from the vault analyses",
"max_score": 8
},
{
"name": "confirmed_intents carried over",
"description": "rhetoric_defaults or a confirmed_intents key at the top level contains at least one confirmed intent from the tracking DB (specifically the 'delayed_intro' intent about not using a traditional opening bio)",
"max_score": 12
},
{
"name": "pacing data populated",
"description": "The pacing object contains at least one field with a numeric value derived from the vault data — e.g., wpm_range, slides_per_minute, or average_duration_minutes — not empty or null",
"max_score": 8
},
{
"name": "antipattern_frequency present",
"description": "pattern_profile.antipattern_frequency is present as an array and contains at least one entry with a severity field (e.g., 'occasional', 'recurring', 'rare')",
"max_score": 7
}
]
}Install with Tessl CLI
npx tessl i jbaruch/speaker-toolkit@0.6.2evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
scenario-15
skills
presentation-creator
references
patterns
build
deliver
prepare
rhetoric-knowledge-vault