Four-skill presentation system: ingest talks into a rhetoric vault, run interactive clarification, generate a speaker profile, then create new presentations that match your documented patterns. Includes an 88-entry Presentation Patterns taxonomy for scoring, brainstorming, and go-live preparation.
96
93%
Does it follow best practices?
Impact
97%
1.21xAverage score across 30 eval scenarios
Advisory
Suggest reviewing before use
Fields below template_skip_patterns are asked during Step 5B (first session only)
when empty. The question column shows what to ask the speaker.
| Config field | Question |
|---|---|
speaker_name | "Name as it appears on slides?" |
speaker_handle | "Social handle for footers?" |
speaker_website | "Website for talk resources?" |
shownotes_url_pattern | "URL pattern for talk pages? (e.g., speaking.example.com/{slug})" |
shownotes_slug_convention | "How do you construct talk slugs for shownotes URLs? Example: {YYYY-MM-DD}-{conference-slug}-{talk-short-name} → 2026-04-16-devnexus-robocoders-judgment-day. What components and format?" |
template_pptx_path | "PowerPoint template path?" |
presentation_file_convention | "File organization? (default: {conference}/{year}/{talk-slug}/)" |
publishing_process.export_format | "How do you export final decks — PDF, keep .pptx only, or both?" |
publishing_process.export_method | "How do you produce the PDF? (e.g., PowerPoint AppleScript, LibreOffice CLI, manual)" |
publishing_process.shownotes_site | "What's the base URL where your shownotes are published? (e.g., https://speaking.example.com)" |
publishing_process.shownotes_publishing | "Do you publish shownotes for your talks? If yes, how?" |
publishing_process.qr_code | "Do you put QR codes in your decks? If yes, what do they link to?" |
publishing_process.qr_code.shortener | "Do you use a URL shortener for QR links? Options: bitly, rebrandly, or none." |
publishing_process.qr_code.bitly_domain | (Only if shortener=bitly) "Do you have a custom Bitly domain? (e.g., jbaru.ch, or leave blank for default bit.ly)" |
publishing_process.qr_code.rebrandly_domain | (Only if shortener=rebrandly) "What custom domain do you use with Rebrandly? (e.g., jbaru.ch, or leave blank for default)" |
publishing_process.qr_code.shortener_setup | (Only if shortener=bitly or rebrandly) "Add your API key to {vault_root}/secrets.json (chmod 600). Format: {\"bitly\": {\"api_token\": \"...\"}} or {\"rebrandly\": {\"api_key\": \"...\"}}. Alternatively, install the Bitly or Rebrandly MCP server for agent-driven shortening." |
gemini_api_key | "Add your Gemini API key to {vault_root}/secrets.json under gemini.api_key (chmod 600). Format: {\"gemini\": {\"api_key\": \"...\"}}. Get a key from https://aistudio.google.com/app/apikey. The GEMINI_API_KEY env var also works as a fallback." |
publishing_process.additional_steps | "Any other distribution steps after exporting?" |
{
"config": {
"vault_root": "~/.claude/rhetoric-knowledge-vault",
"vault_storage_path": "/actual/path/if/custom (null when using default location)",
"talks_source_dir": "/path/to/_talks",
"pptx_source_dir": "/path/to/Presentations",
"python_path": "/path/to/python3",
"template_skip_patterns": ["template"],
"speaker_name": "",
"speaker_handle": "",
"speaker_website": "",
"shownotes_url_pattern": "",
"shownotes_slug_convention": "",
"template_pptx_path": "",
"presentation_file_convention": "{pptx_source_dir}/{conference}/{year}/{talk-slug}/",
"clarification_sessions_completed": 0
}
}Stored in the confirmed_intents array of the tracking database. Populated during
clarification sessions when the speaker confirms a pattern is intentional.
{
"confirmed_intents": [{
"pattern": "delayed_self_introduction",
"intent": "deliberate|accidental|context_dependent",
"rule": "Use two-phase intro: brief bio at slide 3, full re-intro mid-talk",
"note": "Speaker confirmed this is an intentional rhetorical device"
}]
}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
scenario-26
scenario-27
scenario-28
scenario-29
scenario-30
rules
skills
presentation-creator
references
patterns
build
deliver
prepare
scripts
vault-clarification
vault-ingress
vault-profile