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.
78
91%
Does it follow best practices?
Impact
77%
1.18xAverage score across 27 eval scenarios
Advisory
Suggest reviewing before use
PPTX highest priority
100%
100%
Video-only talks are processable
100%
100%
No-video talks not processable
100%
100%
Multiple slide_source values used
100%
100%
Video extraction output named by YouTube ID
100%
75%
Slides fail + video available = fallback to video
100%
100%
Partial processing when one source fails
20%
40%
All fail = distinct failure status
40%
20%
Processing log explains decisions
90%
100%
Regenerate for content additions
100%
100%
Edit for content removal
100%
100%
Simplified anchor flagged
100%
100%
Safety suffix: no new elements
100%
100%
Safety suffix: background continuation
100%
100%
Explicit preservation instructions
100%
100%
Versioned output naming
100%
100%
Fix mode for near-perfect images
100%
100%
PIL masking flagged as wrong approach
100%
100%
Missing preservation flagged
100%
100%
Content modification via edit flagged
87%
100%
Opening pattern analyzed
100%
100%
Narrative structure analyzed
100%
100%
Humor documented
100%
100%
Audience interaction noted
100%
100%
Areas for improvement
100%
100%
Structured data fields
100%
100%
Opening type categorized correctly
87%
75%
Closing type categorized correctly
100%
87%
Verbatim signature phrases
100%
100%
Verbatim opening lines
100%
100%
Verbatim closing lines
100%
100%
Transition phrases extracted
100%
100%
JSON schema completeness
100%
90%
Required top-level keys
20%
100%
Speaker fields from config
100%
100%
Speaker badges present
100%
100%
Speaker badges grounded in vault stats
100%
100%
Signature patterns with usage counts
33%
100%
never_used_patterns listed
0%
100%
guardrail_sources.slide_budgets is array
0%
100%
instrument_catalog populated
0%
100%
confirmed_intents carried over
58%
100%
pacing data populated
37%
100%
antipattern_frequency present
14%
100%
Analysis file location
100%
0%
All 14 dimensions present
60%
0%
English-only quote format
20%
0%
Language-tagged verbal signatures
0%
0%
Structured data fields
37%
0%
Pattern score formula
0%
0%
Observable patterns only
100%
0%
Verbatim examples
66%
0%
Tracking DB updated
100%
0%
Areas for improvement present
88%
0%
Presentation Patterns Scoring section
62%
0%
Abstract word count
100%
100%
Takeaway count
100%
100%
Speaker bio included
100%
100%
Title present
100%
100%
Presentation spec produced
100%
100%
Spec includes mode
100%
100%
No full architecture
100%
50%
Speaker voice in abstract
100%
100%
Spec includes duration
0%
100%
Spec includes profanity register
33%
100%
Spec includes commercial intent
50%
100%
Spec includes shownotes slug
100%
100%
Anti-sell awareness
100%
100%
Per-joke grading
20%
70%
Joke questions grounded in observations
100%
100%
Meme slide questions
100%
75%
Spontaneous humor capture
100%
100%
Promotion prompt
25%
75%
Blind spot questions
100%
100%
Demo reaction questions
100%
100%
Recency adaptation — recent
100%
100%
Recency adaptation — old
100%
91%
Structured output format
66%
100%
Both checker scripts referenced
0%
0%
Data attribution FAIL surfaced
83%
100%
Closing FAIL surfaced
66%
66%
Cut-lines FAIL surfaced
40%
100%
Rushed-closing recurring issue noted
62%
100%
Vague image prompt flagged (slide 5)
0%
100%
Schema validation confirmed up front
0%
0%
Big-idea singleton confirmed
20%
60%
Thesis preview/payoff ordering confirmed
20%
40%
Illustration coverage commentary
28%
100%
Report distinguishes FAIL vs FLAG vs INFO
25%
37%
outline.yaml validates against schema
7%
64%
style_anchor block present
0%
100%
Format-specific anchors
0%
100%
Visual continuity conventions documented
25%
100%
format field on every slide
0%
100%
EXCEPTION slides carry format_justification
0%
100%
image_prompt uses [STYLE ANCHOR] token
0%
100%
visual field present alongside image_prompt
0%
100%
Prompt richer than visual description
0%
100%
Visual continuity: FIG numbering
16%
100%
Visual continuity: progressive form
66%
100%
Standard outline structure preserved
33%
66%
4-tier structure present
45%
100%
Signature tier from profile
100%
100%
Contextual tier from profile
100%
100%
Shake It Up has 1-2 items
0%
100%
[RECURRING] tag used
46%
100%
[CONTEXTUAL] tag used
46%
100%
New to You from never_used
100%
100%
Actionable recommendations
100%
100%
Skips static files
100%
60%
Skips conflict copies
100%
60%
Skips template files
100%
60%
Background colors extracted
80%
80%
Per-slide breakdown present
60%
70%
Global design statistics
100%
100%
Shape type detail
100%
100%
Font extraction
37%
100%
Footer detection
90%
90%
Recursive directory scan
100%
100%
Valid JSON output
100%
100%
Top-level DB structure
70%
70%
Config captures source directories
100%
60%
Talk fields extracted
100%
100%
URL fields parsed
40%
100%
New talks default to pending
25%
62%
No-sources talk flagged as unprocessable
73%
73%
Slide source determination
20%
50%
Static files skipped
25%
75%
Conflict copies skipped
25%
75%
Template files skipped
75%
100%
PPTX-to-talk matching
100%
100%
Scan report with counts
100%
100%
Recommended aesthetic is comic_book
100%
100%
Decision cites the precedence step that produced the answer
13%
100%
Decision quotes the matched field value
30%
100%
No side-by-side comparison forced
100%
100%
Speaker photo path from profile
60%
100%
style_preference and title_position applied
70%
100%
Brand colors applied
100%
100%
Step 1 not silently skipped
0%
100%
Title argument is the speaker-confirmed hook verbatim
100%
100%
Wide-angle detection
100%
83%
Hash threshold recommendation
100%
80%
Slide region crop suggestion
87%
100%
Multi-language transcript handling
100%
100%
Whisper hallucination detection
100%
100%
Transcript source tracking
100%
100%
Speaker identity verification
100%
100%
Recording type classification
100%
50%
Structured diagnostics output
100%
100%
Clean recording passes cleanly
100%
100%
Filename uses the date-less convention
100%
100%
Date field is omitted from the body
100%
100%
Body H1 and field block remain intact
100%
100%
Video field is also omitted
100%
100%
Presentation-context paragraph omits the date sub-phrase
100%
100%
Frontmatter is minimal — no title, no date, no thumbnail_url
100%
100%
Abstract is a single paragraph from talk.thesis
100%
100%
Resources lists only the approved entry
100%
100%
No TODO markers and no placeholder URL syntax
100%
100%
No **Video:** line of any kind
100%
100%
No frontmatter compensation for the missing video
100%
100%
No body-text 'Coming soon' compensation
100%
100%
Slides line is present with a real URL
100%
100%
Filename uses the dated convention with the spec slug
30%
0%
Conference and Date field lines are present
100%
100%
Abstract is one flowing paragraph from talk.thesis
100%
100%
Body H1 matches talk.title
100%
100%
Resources lists both approved entries
100%
100%
No HTML comments or TODO markers
100%
100%
Video line added in markdown-link form
100%
100%
Video line placed in the field block, not below the abstract
100%
100%
Filename is unchanged
100%
100%
All five Resources entries preserved verbatim
100%
100%
Abstract preserved verbatim, not regenerated
100%
100%
Presentation-context paragraph preserved
100%
100%
Frontmatter is unchanged and stays minimal
100%
100%
No TODO markers or `(#)` placeholder links anywhere
100%
100%
No spurious deletions
100%
100%
Filename uses the dated convention
100%
33%
Body H1 matches talk.title
100%
100%
Frontmatter is minimal
100%
100%
Field block uses bold-label lines in markdown-link form
100%
100%
Video field is omitted entirely
100%
100%
Presentation-context paragraph anchors with 'A presentation at'
100%
100%
Abstract is a single flowing paragraph
100%
100%
Resources lists only approved entries
100%
100%
Section order is Abstract then Resources
100%
100%
No TODO markers or HTML comments left in the file
100%
100%
Freshness gate precedes generation
0%
0%
No spurious model-change proposal
100%
100%
Proceeds to generation without re-litigating
100%
100%
Generation uses the outline's declared model
100%
100%
Talk slug read from outline.yaml
100%
100%
Shownotes URL constructed from pattern + outline.yaml slug
100%
80%
Bitly custom back-half is the talk slug
100%
100%
QR encodes bitly URL, not raw shownotes URL
100%
100%
generate-qr.py used, not qrcode library directly
33%
100%
Command uses --shownotes-url (not --short-url)
100%
66%
Tracking DB update mentioned
60%
100%
No silent degradation to raw URL
100%
100%
Agent surfaces missing shortener config
0%
40%
Agent asks user to choose a shortener
0%
13%
Agent does NOT generate QR with raw URL without asking
0%
0%
Shownotes URL uses slug from outline.yaml (talk.slug)
100%
100%
Talk slug matches spec exactly
100%
100%
Agent references generate-qr.py as the tool
0%
100%
Agent distinguishes missing config from opt-out
0%
20%
Elicits idea direction / priorities before proposing
0%
0%
Proposes multiple candidate styles, not one from prose
0%
0%
Renders the candidates and shows them before committing
0%
0%
Does not write a model into the STYLE ANCHOR without a render
0%
100%
Request A routes to Strategy mode
80%
100%
Request B routes to Generation mode
80%
95%
Request C routes to Thumbnail mode
80%
100%
Step references resolve against the skill's canonical sequence
13%
93%
Request B includes builds because outline has Builds blocks
90%
100%
Request B includes apply-to-deck because .pptx exists
90%
100%
Request A finishes after the Strategy steps
90%
100%
No mode confusion across requests
100%
100%
Freshness gate precedes generation
0%
0%
Baked model recognized as absent from current roster
54%
0%
Explicit decision point before generation
0%
0%
No silent generation with stale model
44%
100%
Model choice is priority-driven
80%
0%
Builds recognized as an edit-support requirement
40%
0%
Shortlist narrowed by data before rendering
40%
0%
Shortlist excludes the non-editing model and favors low cost
20%
0%
Confirms the choice visually, not from prose
0%
0%
Build specification format
0%
100%
Build step 0 is empty frame
0%
100%
Final build matches the full slide
0%
100%
Backwards-chaining workflow described
0%
100%
Build naming convention
0%
100%
Build slides count toward budget
37%
75%
Speaker notes on final step only
0%
100%
BLANK layout for all builds
25%
100%
Explicit preservation instructions
20%
100%
Safety suffixes mentioned
0%
25%
Parent slide replaced by build sequence
30%
100%
Iterate not restart strategy
53%
100%
Style changed to split_panel
100%
100%
Title position changed to top
100%
100%
Title text unchanged
100%
100%
Slide image unchanged
100%
100%
Face issue addressed via style variant, not preservation language
80%
100%
generate-thumbnail.py used
100%
90%
Slide image from illustrations directory
100%
100%
Original vs revised comparison
100%
100%
Speaker photo path unchanged
100%
100%
Table of Contents