CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/speaker-toolkit

Four-skill presentation system: ingest talks into a rhetoric vault, run interactive clarification, generate a speaker profile, 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.21x
Quality

93%

Does it follow best practices?

Impact

97%

1.21x

Average score across 30 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-5/

{
  "context": "Tests whether the agent applies the slide source hierarchy (pptx > pdf > video_extracted > none), treats video_url as the processability gate, handles fallback chains, and sets correct status per the error handling matrix.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "PPTX highest priority",
      "description": "When both PPTX and PDF are available (Microservices Myths), slide_source reflects that both are available — not just PDF",
      "max_score": 10
    },
    {
      "name": "Video-only talks are processable",
      "description": "CI Pipeline Masterclass (video_url but no slides_url, no pptx_path) is NOT skipped — it gets slide_source indicating video extraction and can reach a processed status",
      "max_score": 12
    },
    {
      "name": "No-video talks not processable",
      "description": "Testing in Production (has slides_url but no video_url) is marked as not processable / skipped — video_url is required to enter the processing pipeline",
      "max_score": 10
    },
    {
      "name": "Multiple slide_source values used",
      "description": "The output database uses at least 3 distinct slide_source values across the 8 talks — reflecting the different acquisition paths",
      "max_score": 10
    },
    {
      "name": "Video extraction output named by YouTube ID",
      "description": "For video-extracted talks, the output path or filename references the YouTube video ID (e.g., 'ghi789.pdf'), not a generic name",
      "max_score": 8
    },
    {
      "name": "Slides fail + video available = fallback to video",
      "description": "DevOps Culture Reset (slides download failed but has video_url) attempts video extraction as fallback — the processing log shows the fallback chain",
      "max_score": 10
    },
    {
      "name": "Partial processing when one source fails",
      "description": "Talks where transcript or slides (but not both) fail get a status distinct from full success — indicating partial analysis is possible",
      "max_score": 10
    },
    {
      "name": "All fail = distinct failure status",
      "description": "GitOps Journey (both transcript and slides failed) gets a status indicating download failure, distinct from the missing-sources skip",
      "max_score": 10
    },
    {
      "name": "Processing log explains decisions",
      "description": "The log explains the source selection rationale for at least 5 talks — not just listing outcomes but explaining why each source was chosen",
      "max_score": 20
    }
  ]
}

evals

README.md

tile.json