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

rubric.jsonevals/scenario-11/

{
  "context": "Tests whether the agent produces a talk outline that follows the presentation-creator skill's structural conventions: the Presentation Spec block, opening sequence format, typed numbered placeholders (including meme briefs), callback flags, cut line markers, and closing sequence — all from a provided vault and conference brief.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Presentation Spec block",
      "description": "Output includes a PRESENTATION SPEC block (using that exact header or equivalent) containing at minimum: Title, Thesis, Audience, Venue, Mode, Duration target, and Shownotes slug fields",
      "max_score": 10
    },
    {
      "name": "Section time + slide range headers",
      "description": "Each major section of the outline includes both a time allocation (e.g., [10 min]) and a slide range (e.g., slides 5-14) in the section header or opening line",
      "max_score": 10
    },
    {
      "name": "Opening sequence structure",
      "description": "The opening sequence contains at minimum three of the following slide types: title slide, bio slide, shownotes URL slide (with QR code mentioned), and opening hook slide",
      "max_score": 10
    },
    {
      "name": "Multiple typed placeholder categories",
      "description": "The outline uses at least two distinct typed placeholder categories with independent numbering — e.g., [AUTHOR 01] and [MEME 01] are both present, with each type starting its own numbering sequence from 01",
      "max_score": 10
    },
    {
      "name": "Meme brief format",
      "description": "At least one [MEME XX] placeholder is expanded into a structured brief containing all four sub-fields: Template, Search query, Overlay text, and Rhetorical function",
      "max_score": 10
    },
    {
      "name": "CUT LINE marker",
      "description": "The outline contains at least one [CUT LINE] marker (or equivalent, e.g., '## [CUT LINE:...]') indicating where content can be dropped for a shorter slot",
      "max_score": 10
    },
    {
      "name": "Callback flags",
      "description": "At least one callback opportunity is explicitly flagged using [CALLBACK: ...], [PROGRESSIVE LIST: ...], or [RUNNING GAG: ...] notation — not just mentioned in prose",
      "max_score": 10
    },
    {
      "name": "Speaker notes in outline",
      "description": "At least half of the slide entries include a 'Speaker:' line with actual sample speaker text of 10+ words (not just '[speaker notes]', '[no notes]', or empty) — showing what the speaker would actually say",
      "max_score": 10
    },
    {
      "name": "Closing sequence completeness",
      "description": "The outline's closing section contains distinct slides (or slide descriptions) for all three components: a summary/recap, a call-to-action (CTA), and a social/contact slide with shownotes URL",
      "max_score": 10
    },
    {
      "name": "Slide count within budget",
      "description": "The total number of slides in the outline does not exceed 1.5 slides per minute of the stated duration (e.g., for a 45-minute talk: max 68 slides)",
      "max_score": 10
    }
  ]
}

Install with Tessl CLI

npx tessl i jbaruch/speaker-toolkit@0.6.2

evals

README.md

tile.json