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.20x
Quality

95%

Does it follow best practices?

Impact

93%

1.20x

Average score across 34 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-34/

{
  "context": "Tests whether the agent runs the SKILL.md Step 2 freshness check before generating any deck illustrations when the outline's Model line was set in the past. A baseline agent without the illustrations skill loaded would jump straight to invoking generate-illustrations.py; the tile's contribution is to insert a model-landscape comparison and a speaker decision point before generation begins.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Web-search precedes generation",
      "description": "The agent calls WebSearch (or an equivalent live-web lookup) to identify current flagship image-generation models from major vendors BEFORE invoking generate-illustrations.py to produce any slide image. A run that goes straight to image generation without consulting the live model landscape fails this criterion.",
      "max_score": 32
    },
    {
      "name": "Outline model recognized as out-of-current-list",
      "description": "The agent recognizes that the outline's declared `**Model:**` value is not present in the current `skills/illustrations/scripts/generate-illustrations.py` `COMPARE_MODELS` constant, and names at least one specific model that IS in the current `COMPARE_MODELS` list as an alternative the speaker could move to. Deterministic against file state: both halves are checkable from the outline and the script as committed at eval time.",
      "max_score": 22
    },
    {
      "name": "Explicit decision point before generation",
      "description": "The agent presents a clear choose-one decision to the speaker — keep the baked model, update `COMPARE_MODELS` and re-run the comparison, or pick a different already-supported model — and waits for a response. Silently swapping the model, or proceeding to image generation without acknowledgement of the choice, fails this criterion.",
      "max_score": 28
    },
    {
      "name": "No silent generation with stale model",
      "description": "If image bytes are produced during this run, they use the model the speaker explicitly confirmed in response to the decision point above. A run that calls generate-illustrations.py with the outline's original `**Model:**` value before the speaker responds fails this criterion.",
      "max_score": 18
    }
  ]
}

evals

README.md

tile.json