Six-skill presentation system: ingest talks into a rhetoric vault, run interactive clarification, generate a speaker profile, create presentations that match your documented patterns, produce the deck illustrations + thumbnail visual layer, and publish talk pages to a Jekyll shownotes site. Includes a 102-entry Presentation Patterns taxonomy (91 observable, 11 unobservable go-live items) for scoring, brainstorming, and go-live preparation.
89
94%
Does it follow best practices?
Impact
89%
1.30xAverage score across 25 eval scenarios
Advisory
Suggest reviewing before use
{
"context": "Tests that shownotes-publisher refuses placeholder values for unavailable fields. The user volunteers a UX intent that a baseline agent typically satisfies by writing `**Video:** Coming soon` or `**Video:** [Watch Video](#)`. The site's layout already produces the right badge through omission — placeholder values flip the badge the wrong way AND render broken embeds. The skill must omit, not placeholder.",
"type": "weighted_checklist",
"checklist": [
{
"name": "No **Video:** line of any kind",
"description": "There is no `**Video:**` line anywhere in the file — no `**Video:** TBD`, no `**Video:** Coming soon`, no `**Video:** Recording coming soon`, no `**Video:** [Watch Video](#)`, no `**Video:** [Coming soon](#)`, no `**Video:** [TODO]`. The whole line is absent.",
"max_score": 20
},
{
"name": "No frontmatter compensation for the missing video",
"description": "Frontmatter does not contain `video:`, `video_status:`, `video_pending:`, `video_coming_soon:`, or any similar key the agent might invent to express 'video coming'. Frontmatter remains minimal — `layout: talk` only.",
"max_score": 12
},
{
"name": "No body-text 'Coming soon' compensation",
"description": "The body does not contain a free-text paragraph or callout like 'Video coming soon', 'Recording forthcoming', or 'The video will be added when published' inserted to compensate for the omitted field. The site's layout handles the badge automatically — the skill leaves it to the layout.",
"max_score": 10
},
{
"name": "Slides line is present with a real URL",
"description": "The field block contains `**Slides:** [View Slides](https://drive.google.com/file/d/Vid-pending-12345/preview)` — using markdown-link syntax and the real provided URL. The slides URL is NOT also omitted (the speaker provided one).",
"max_score": 12
},
{
"name": "Filename uses the dated convention with the spec slug",
"description": "The produced file is named `2026-05-04-kafka-eu-2026-quiet-cache-failures.md` (date prefix + the slug from outline.yaml, verbatim) and lives under `_talks/`.",
"max_score": 10
},
{
"name": "Conference and Date field lines are present",
"description": "The field block contains `**Conference:** KafkaEU 2026` and `**Date:** 2026-05-04`, each on its own line, both with the bold-label format.",
"max_score": 8
},
{
"name": "Abstract is one flowing paragraph from talk.thesis",
"description": "The `## Abstract` section is exactly one paragraph derived from talk.thesis. No sub-headings, no lists, no code blocks inside the section.",
"max_score": 10
},
{
"name": "Body H1 matches talk.title",
"description": "The first body line is `# The Quiet Failures of Distributed Caches` — verbatim from outline.yaml's talk.title.",
"max_score": 8
},
{
"name": "Resources lists both approved entries",
"description": "The `## Resources` section contains exactly two bullets — the two approved entries from resources.json — each in markdown-link form.",
"max_score": 6
},
{
"name": "No HTML comments or TODO markers",
"description": "The output contains no `<!-- TODO -->`, no `<!--` HTML comments of any kind. No `TBD` or `Coming soon` literal text appearing as standalone tokens anywhere in the file.",
"max_score": 4
}
]
}evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
scenario-15
scenario-16
scenario-17
scenario-18
scenario-19
scenario-20
scenario-21
scenario-22
scenario-23
scenario-24
scenario-25
rules
skills
illustrations
presentation-creator
references
patterns
build
deliver
prepare
scripts
shownotes-publisher
vault-clarification
vault-ingress
vault-profile