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.
86
92%
Does it follow best practices?
Impact
86%
1.24xAverage score across 26 eval scenarios
Advisory
Suggest reviewing before use
PPTX highest priority
100%
100%
Video-only talks are processable
83%
100%
No-video talks not processable
0%
90%
Multiple slide_source values used
100%
100%
Video extraction output named by YouTube ID
75%
75%
Slides fail + video available = fallback to video
80%
100%
Partial processing when one source fails
50%
100%
All fail = distinct failure status
0%
50%
Processing log explains decisions
90%
100%
Regenerate for content additions
10%
100%
Edit for content removal
90%
100%
Simplified anchor flagged
100%
100%
Safety suffix: no new elements
87%
100%
Safety suffix: background continuation
100%
100%
Explicit preservation instructions
90%
100%
Versioned output naming
100%
100%
Fix mode for near-perfect images
87%
100%
PIL masking flagged as wrong approach
100%
100%
Missing preservation flagged
100%
100%
Content modification via edit flagged
37%
100%
Opening pattern analyzed
100%
100%
Narrative structure analyzed
100%
100%
Humor documented
100%
100%
Audience interaction noted
100%
100%
Areas for improvement
12%
100%
Structured data fields
20%
100%
Opening type categorized correctly
100%
100%
Closing type categorized correctly
75%
100%
Verbatim signature phrases
37%
100%
Verbatim opening lines
37%
100%
Verbatim closing lines
37%
100%
Transition phrases extracted
62%
100%
JSON schema completeness
10%
100%
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
58%
100%
never_used_patterns listed
0%
100%
guardrail_sources.slide_budgets is array
0%
100%
instrument_catalog populated
0%
100%
confirmed_intents carried over
100%
100%
pacing data populated
100%
100%
antipattern_frequency present
28%
100%
Analysis file location
100%
100%
All 14 dimensions present
73%
100%
English-only quote format
40%
100%
Language-tagged verbal signatures
37%
100%
Structured data fields
37%
100%
Pattern score formula
0%
100%
Observable patterns only
100%
50%
Verbatim examples
66%
100%
Tracking DB updated
40%
100%
Areas for improvement present
100%
100%
Presentation Patterns Scoring section
62%
100%
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%
60%
Speaker voice in abstract
100%
100%
Spec includes duration
0%
100%
Spec includes profanity register
66%
100%
Spec includes commercial intent
100%
100%
Spec includes shownotes slug
100%
83%
Anti-sell awareness
100%
100%
Per-joke grading
40%
100%
Joke questions grounded in observations
100%
100%
Meme slide questions
75%
100%
Spontaneous humor capture
100%
100%
Promotion prompt
87%
100%
Blind spot questions
100%
100%
Demo reaction questions
100%
100%
Recency adaptation — recent
100%
100%
Recency adaptation — old
100%
91%
Structured output format
100%
91%
Both checker scripts referenced
0%
13%
Data attribution FAIL surfaced
91%
91%
Closing FAIL surfaced
75%
91%
Cut-lines FAIL surfaced
60%
90%
Rushed-closing recurring issue noted
50%
87%
Vague image prompt flagged (slide 5)
100%
90%
Schema validation confirmed up front
0%
0%
Big-idea singleton confirmed
40%
100%
Thesis preview/payoff ordering confirmed
80%
100%
Illustration coverage commentary
85%
85%
Report distinguishes FAIL vs FLAG vs INFO
37%
75%
outline.yaml validates against schema
14%
100%
style_anchor block present
0%
100%
Format-specific anchors
0%
100%
Visual continuity conventions documented
37%
100%
format field on every slide
0%
100%
EXCEPTION slides carry format_justification
50%
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
66%
100%
Visual continuity: progressive form
83%
100%
Standard outline structure preserved
50%
100%
Request A routes to Strategy mode
86%
73%
Request B routes to Generation mode
85%
80%
Request C routes to Thumbnail mode
86%
80%
Step references resolve against the skill's canonical sequence
33%
33%
Request B includes builds because outline has Builds blocks
90%
100%
Request B includes apply-to-deck because .pptx exists
90%
80%
Request A finishes after Step 2
80%
70%
No mode confusion across requests
100%
100%
4-tier structure present
25%
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%
100%
Skips conflict copies
100%
100%
Skips template files
100%
100%
Background colors extracted
80%
80%
Per-slide breakdown present
90%
70%
Global design statistics
100%
100%
Shape type detail
100%
100%
Font extraction
37%
50%
Footer detection
100%
90%
Recursive directory scan
100%
100%
Valid JSON output
100%
100%
Build specification format
0%
70%
Build step 0 is empty frame
0%
90%
Final build matches the full slide
70%
60%
Backwards-chaining workflow described
10%
100%
Build naming convention
0%
100%
Build slides count toward budget
50%
87%
Speaker notes on final step only
0%
100%
BLANK layout for all builds
0%
100%
Explicit preservation instructions
20%
100%
Safety suffixes mentioned
0%
100%
Parent slide replaced by build sequence
50%
100%
Top-level DB structure
70%
50%
Config captures source directories
100%
100%
Talk fields extracted
100%
100%
URL fields parsed
50%
40%
New talks default to pending
0%
12%
No-sources talk flagged as unprocessable
53%
80%
Slide source determination
30%
20%
Static files skipped
0%
37%
Conflict copies skipped
50%
37%
Template files skipped
62%
87%
PPTX-to-talk matching
100%
80%
Scan report with counts
100%
100%
Recommended aesthetic is comic_book
100%
100%
Decision cites the precedence step that produced the answer
33%
100%
Decision quotes the matched field value
50%
100%
No side-by-side comparison forced
100%
100%
Speaker photo path from profile
100%
100%
style_preference and title_position applied
100%
100%
Brand colors applied
100%
100%
Step 1 not silently skipped
0%
100%
Title argument is the speaker-confirmed hook verbatim
100%
100%
Iterate not restart strategy
66%
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
20%
100%
generate-thumbnail.py used
100%
100%
Slide image from illustrations directory
100%
100%
Original vs revised comparison
100%
100%
Speaker photo path unchanged
100%
100%
Wide-angle detection
8%
100%
Hash threshold recommendation
0%
80%
Slide region crop suggestion
12%
100%
Multi-language transcript handling
40%
90%
Whisper hallucination detection
90%
100%
Transcript source tracking
100%
100%
Speaker identity verification
90%
100%
Recording type classification
40%
100%
Structured diagnostics output
90%
100%
Clean recording passes cleanly
16%
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
0%
0%
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
100%
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%
0%
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'
90%
90%
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%
43%
Baked model recognized as absent from current roster
45%
72%
Explicit decision point before generation
0%
0%
No silent generation with stale model
0%
83%
Model choice is priority-driven
80%
0%
Builds recognized as an edit-support requirement
24%
0%
Shortlist narrowed by data before rendering
40%
0%
Shortlist excludes the non-editing model and favors low cost
25%
0%
Confirms the choice visually, not from prose
46%
0%
Freshness gate precedes generation
15%
81%
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%
100%
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
100%
100%
Command uses --shownotes-url (not --short-url)
100%
100%
Tracking DB update mentioned
100%
100%
No silent degradation to raw URL
100%
50%
Agent surfaces missing shortener config
100%
100%
Agent asks user to choose a shortener
100%
73%
Agent does NOT generate QR with raw URL without asking
100%
100%
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
100%
100%
Agent distinguishes missing config from opt-out
100%
100%
Table of Contents