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-6/

{
  "context": "Tests whether the agent writes a deck-building script that follows the skill's specific python-pptx patterns: template stripping via drop_rel, speaker notes via python-pptx (not MCP), footer on every slide, layout selection from profile, and background color strategy.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Template stripping code",
      "description": "Script includes the template slide-stripping pattern: iterating slides._sldIdLst, getting rId, calling part.drop_rel(rId), and removing sldId elements",
      "max_score": 12
    },
    {
      "name": "Speaker notes via python-pptx",
      "description": "Script injects speaker notes using python-pptx (slide.notes_slide.notes_text_frame.text = ...), NOT via an MCP tool call or placeholder",
      "max_score": 12
    },
    {
      "name": "Notes batch injection",
      "description": "Speaker notes are injected as a batch operation AFTER all slides are created (not interleaved with slide creation), using a notes_map or similar pattern",
      "max_score": 8
    },
    {
      "name": "Footer on every slide",
      "description": "The script adds a footer text element to every slide (not just some), using position/font data from the profile",
      "max_score": 10
    },
    {
      "name": "Layout selection from profile",
      "description": "The script selects slide layouts by index from the profile's template_layouts array (matching slide type to layout use_for), not by hardcoded layout names",
      "max_score": 10
    },
    {
      "name": "No adjacent color repeat",
      "description": "Background color assignment logic ensures no two adjacent slides share the same color (checking previous slide's color before selecting)",
      "max_score": 10
    },
    {
      "name": "White/black reserved",
      "description": "White or black/transparent backgrounds are only assigned to full-bleed image or meme slides, with colored backgrounds for all other slide types",
      "max_score": 8
    },
    {
      "name": "No slide numbers",
      "description": "The script does NOT add slide numbers (or explicitly respects the 'never' setting from the profile)",
      "max_score": 6
    },
    {
      "name": "Uses python-pptx library",
      "description": "The script imports and uses python-pptx (from pptx import Presentation) as the primary library",
      "max_score": 8
    },
    {
      "name": "Footer color adaptation",
      "description": "Footer text color adapts based on background color (e.g., white text on dark backgrounds, dark text on light backgrounds)",
      "max_score": 8
    },
    {
      "name": "Deck plan document",
      "description": "The deck_plan.md maps each outline slide to a specific layout index and describes the build decisions",
      "max_score": 8
    }
  ]
}

Install with Tessl CLI

npx tessl i jbaruch/speaker-toolkit@0.6.2

evals

README.md

tile.json