Create terminal-based presentation slides using presenterm's markdown format with themes, diagrams, code highlighting, and more
92
90%
Does it follow best practices?
Impact
97%
2.15xAverage score across 5 eval scenarios
Passed
No known issues
{
"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
}
]
}