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
Generate or update speaker-profile.json from vault data. This profile is the
structured bridge between the vault and the presentation-creator skill.
The vault lives at ~/.claude/rhetoric-knowledge-vault/ (may be a symlink).
Read tracking-database.json from there to get vault_root.
| File / Reference | Purpose |
|---|---|
tracking-database.json | Source of truth — talks, config, confirmed intents |
rhetoric-style-summary.md | Running rhetoric & style narrative |
slide-design-spec.md | Visual design rules from PDF + PPTX analysis |
speaker-profile.json | Output — machine-readable profile |
| references/speaker-profile-schema.md | Profile JSON schema |
| references/schemas-config.md | Config fields + confirmed intents schema |
config.clarification_sessions_completed >= 1.Read rhetoric-style-summary.md, slide-design-spec.md, and confirmed_intents.
rhetoric-style-summary.md is missing, abort with: "No rhetoric summary found.
Run vault-ingress first to process talks."structured_data, warn and fall back to prose extraction.Aggregate structured_data from processed talks (skip empty, fall back to prose).
If template_pptx_path is set, extract slide layouts via python-pptx.
See the pptx-extraction script (in vault-ingress references) for the approach.
Generate speaker-profile.json per references/speaker-profile-schema.md.
Map config → speaker/infrastructure, summary sections →
instrument_catalog/presentation_modes, confirmed intents →
rhetoric_defaults, aggregated data → pacing/guardrail_sources,
pattern observations → pattern_profile, illustration style observations
(dimension 13f) → visual_style_history.
The output must include these top-level sections with their expected structure:
{
"schema_version": 1,
"generated_date": "YYYY-MM-DD",
"speaker": { "name": "...", "handle": "...", "website": "...", "bio_short": "..." },
"infrastructure": {
"template_pptx_path": "...", "template_layouts": [],
"presentation_file_convention": "..."
},
"presentation_modes": [
{ "id": "...", "name": "...", "when_to_use": "...", "description": "..." }
],
"instrument_catalog": {
"opening_patterns": [{ "name": "...", "best_for": "...", "examples": [] }],
"narrative_structures": [{ "name": "...", "acts": [], "time_allocation": {} }],
"humor_techniques": [], "closing_patterns": [], "verbal_signatures": []
},
"rhetoric_defaults": {
"profanity_calibration": "...", "on_slide_profanity": "...",
"default_duration_minutes": 45, "three_part_close": true,
"modular_design": true
},
"confirmed_intents": [],
"guardrail_sources": {
"slide_budgets": [{ "duration_min": 45, "max_slides": 70, "slides_per_min": 1.5 }],
"act1_ratio_limits": [{ "duration_range": "20-30", "max_percent": 40 }],
"recurring_issues": [{ "pattern": "...", "severity": "...", "guardrail": "..." }]
},
"pacing": { "wpm_range": [140, 170], "slides_per_minute": 1.5 },
"pattern_profile": {
"pattern_usage": [{ "pattern_id": "...", "times_used": 22, "mastery_level": "signature" }],
"antipattern_frequency": [{ "pattern_id": "...", "times_detected": 8, "severity": "recurring" }],
"never_used_patterns": ["..."]
},
"visual_style_history": {
"default_illustration_style": "...", "style_departures": [],
"mode_visual_profiles": [], "confirmed_visual_intents": []
},
"publishing_process": {
"export_format": "pdf", "export_method": "...",
"shownotes_publishing": {}, "qr_code": {}, "additional_steps": []
},
"design_rules": {
"background_color_strategy": "...", "footer": { "pattern": "...", "elements": [] },
"slide_numbers": "never", "default_bullet_symbol": "..."
},
"badges": []
}See references/speaker-profile-schema.md for the complete schema with all fields and descriptions.
Validate — verify all required top-level keys exist and schema_version is 1.
If validation fails, fix and retry before saving.
Diff against existing profile; report changes (new instruments, revised thresholds, new guardrails). Flag new presentation modes prominently.
Save to {vault_root}/speaker-profile.json.
Generate speaker badges — fun, self-deprecating achievements grounded in real vault data (e.g., "Narrative Arc Master 22/24", "Pattern Polyglot 12+ patterns").
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