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 111-entry Presentation Patterns taxonomy (81 observable: 62 patterns + 19 antipatterns; 30 unobservable: 21 patterns + 9 antipatterns) for scoring, brainstorming, and go-live preparation.
—
—
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Run python3 skills/presentation-creator/scripts/guardrail-check.py <outline.yaml> <speaker-profile.json>
to compute guardrail checks. The script handles the
three-outcome PASS/WARN/FAIL logic:
[FAIL] — value exceeds the limit[WARN] — value is under the limit but within 5 percentage points of it[PASS] — value is under the limit by more than 5 percentage pointsThe script checks pattern-history authorization, slide budget, Act 1 ratio, closing
completeness, cut lines, data attribution, profanity, and branding. Its
recurring_antipatterns array is the complete catalog recurrence output. Render those
records without re-filtering them or adding movement data.
Add the remaining checks (time-sensitive, current-outline contextual antipatterns,
illustration coverage, pattern strategy) to the report manually.
A disabled pattern-history result affects only catalog-derived speaker history. Keep independent profile configuration and guardrails enabled. When history is partially available, require the exact domain for each derived field:
mastery_and_novelty for tiers, strengths, and novelty.underuse for underuse.signature_combinations for combinations.antipattern_recurrence domain only through the script's
recurring_antipatterns output.trends for movements and score/breadth trend.modes for by-mode history.Schema-v4/v5 top-level guardrail_sources.recurring_issues[] and badges[] are usable
only when each consumed entry explicitly declares source_lane: "non_pattern".
Suppress legacy or ambiguous entries. Catalog-derived warnings and reinforcement come
only from authorized pattern_profile history.
Every antipattern flag MUST be tagged as one of:
[RECURRING]. Render one guardrail-check.py recurring_antipatterns record.
recurrence_classification, evidence, and optional trend fields.[CONTEXTUAL] — detected in the current outline but NOT in the speaker's
authorized historical profile. It is a current-outline finding, not necessarily a
first-time issue when history is unavailable.Never use generic unlabeled antipattern warnings.
When pattern_history_status.py reports the mastery_and_novelty domain, organize
recommendations into exactly four tiers:
mastery_levels.signature patterns.mastery_levels.never_tried /
never_used_patterns entries that fit this talk.
not_yet_observed as
New-to-You.When the mastery domain is unavailable, do not manufacture those tiers from legacy profiles or unprovenanced prose. Present a flat relevant-pattern list from the current taxonomy without usage or novelty claims. A catalog fingerprint or scoring-schema change is a generation reset, never evidence of improvement or regression.
history_enabled: true means at least one policy-bound domain is available, not that
all classification fields are authorized. opportunity_rows_available: true is an
audit signal, not history authorization. Raw occurrence rows do not establish novelty,
mastery, recurrence, or trend. Profile schema v4 and Section 15 v2 are occurrence-only;
profile schema v5 and Section 15 v3 bind classifications to the versioned policy.
A catalog/scoring identity change is a generation reset. Within one generation, a
changed policy_semantic_sha256 is a classification-comparison reset. Neither reset is
ever evidence of speaker improvement or regression.
.tessl-plugin
rules
skills
illustrations
presentation-creator
references
patterns
build
deliver
prepare
scripts
shownotes-publisher
vault-clarification
vault-ingress
references
scripts
vault-profile