CtrlK
BlogDocsLog inGet started
Tessl Logo

gamussa/presenterm

Create terminal-based presentation slides using presenterm's markdown format with themes, diagrams, code highlighting, and more

92

2.15x
Quality

90%

Does it follow best practices?

Impact

97%

2.15x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-3/

{
  "context": "Tests whether the agent applies presenterm design patterns: narrative arc (setup/confrontation/resolution), bookends pattern, speaker note scripting with CUTTABLE markers, avoiding bullet walls, and the Intermezzi section break pattern.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Setup slides present",
      "description": "The presentation opens with slides that establish the problem/pain (REST API pain points) before introducing GraphQL — at least 2 early slides focus on the problem",
      "max_score": 10
    },
    {
      "name": "Confrontation/complexity slides",
      "description": "The middle section includes slides about the migration complexity, challenges, or uncertainty (not just jumping straight to the solution)",
      "max_score": 11
    },
    {
      "name": "Resolution slides present",
      "description": "Later slides present the resolution/outcome/lessons learned as the culmination of the arc",
      "max_score": 11
    },
    {
      "name": "Bookends pattern",
      "description": "The closing slide revisits the opening problem or uses the same visual/thematic treatment as the opening slide",
      "max_score": 10
    },
    {
      "name": "CUTTABLE speaker notes",
      "description": "At least one slide has a speaker note containing the word CUTTABLE to mark it as an optional/skippable section",
      "max_score": 10
    },
    {
      "name": "Speaker note syntax safety",
      "description": "All speaker notes (<!-- speaker_note: ... -->) are free of colons (:) and em dashes (—) inside the note text",
      "max_score": 12
    },
    {
      "name": "Section break pattern",
      "description": "At least one <!-- jump_to_middle --> command appears before a section-divider slide title",
      "max_score": 8
    },
    {
      "name": "Avoids bullet walls",
      "description": "At least 3 slides use something other than plain bullet lists (diagram, code block, image reference, column layout, or centered text)",
      "max_score": 8
    },
    {
      "name": "Dynamic code highlighting",
      "description": "The code example slide uses dynamic highlighting notation (e.g. {1-3|5-8|all}) rather than showing all code at once",
      "max_score": 8
    },
    {
      "name": "Diagram uses render attribute",
      "description": "The architecture diagram uses +render attribute (mermaid +render or d2 +render)",
      "max_score": 8
    },
    {
      "name": "Correct slide separator",
      "description": "Uses <!-- end_slide --> as the slide separator — does NOT use --- as slide separator",
      "max_score": 2
    },
    {
      "name": "Setext slide titles",
      "description": "Slide titles use setext header style (Title\\n===) not ATX headers (# Title) — applies to majority of slides",
      "max_score": 2
    }
  ]
}

evals

tile.json