CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/speaker-toolkit

Seven-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, create and publish talk-content Agent Skills with talk pages to a Jekyll shownotes site, and verify a recorded screencast against its storyboard. Includes a 113-entry Presentation Patterns taxonomy (83 observable: 64 patterns + 19 antipatterns; 30 unobservable: 21 patterns + 9 antipatterns) for scoring, brainstorming, and go-live preparation.

75

Quality

94%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

pattern-history-authorization.mdskills/presentation-creator/references/

Pattern-History Authorization — Detail

Load this after pattern_history_status.py returns and before consuming any catalog-derived historical field. Phase 0 runs the script; this file defines what its output authorizes.

The status payload

"{python_path}" "{speaker_toolkit_root}/skills/presentation-creator/scripts/pattern_history_status.py" \
  path/to/speaker-profile.json path/to/rhetoric-style-summary.md

Use - for the profile path in summary-only mode. The command emits {history_enabled, history_source, profile_schema_version, scored_talk_count, eligible_talk_count, opportunity_rows_available, classification_fields_available, available_classification_domains, policy_semantic_sha256, reason_codes, reasons, warning}.

history_enabled means at least one policy-bound domain is available. It is not permission to consume every derived field. In JSON, require membership in available_classification_domains for each use. Python consumers call domain_available(domain).

Domain contracts

DomainAuthorizes
mastery_and_noveltyMastery tiers, strengths, and New-to-You
underuseunderused_patterns
signature_combinationssignature_combinations
antipattern_recurrenceHistorical recurrence, consumed only through Phase 4's emitted recurring_antipatterns output
trendsPattern and antipattern movements, score/breadth trend, score drivers
modesby_mode history

[NEW] is exactly mastery_levels.never_tried / never_used_patterns. It is never first detection in the newest talk, and never a not_yet_observed classification.

A recurrence claim may be available without a trend claim.

Source selection

A non-null history_source selects the sole catalog-history input. Use the emitted value without reproducing source-selection logic and without merging inputs. Surface a disabled result's warning verbatim and recommend profile regeneration.

Continue using independent non-pattern fields regardless of history status: pacing, visual rules, presentation modes, infrastructure, publishing config, and confirmed intents.

Schema tiers

  • Stored profile schemas v1/v2/v3 remain readable for non-pattern fields only.
  • Schema v4 is occurrence-only.
  • Schema v5 binds derived classifications to a versioned policy.

Exact occurrence rows may remain auditable when opportunity_rows_available is true, but that status never authorizes a classification.

Suppress each catalog-derived historical field when its required domain is absent. Do not collapse the available domains behind the global history flag.

Top-level recurring issues and badges in schema-v4/v5 profiles remain usable only when their entries explicitly declare source_lane: "non_pattern". Legacy or ambiguous entries do not authorize history. Current-taxonomy scans of the new outline remain enabled.

Summary-only mode

If no profile exists, run in summary-only mode: default guardrail thresholds (1.5 slides/min, 45% Act 1 cap) and ask for template/publishing data interactively.

Section 15 v3 classifications are usable only when its uniquely delimited current block passes:

"{python_path}" "{speaker_toolkit_root}/skills/vault-profile/scripts/section15_pattern_history.py"

plus the same strict pattern-profile assessment. Require the relevant domain just as for profile history. Section 15 v2 is occurrence-only. Ordinary, stale, or occurrence-only Section 15 data authorizes taxonomy-only recommendations, never speaker-history claims.

Comparing two profiles

Compare pattern catalog fingerprints and scoring schemas first. A mismatch is a generation reset — do not call cross-generation pattern differences improvements or regressions.

Raw scores are also incomparable when the baseline reports an unavailable or changed opportunity_coverage_identity.

Within one catalog/scoring generation, a changed policy_semantic_sha256 is a classification-comparison reset: do not describe changed tiers, recurrence classes, combinations, or trends as speaker improvement or regression across that boundary.

skills

presentation-creator

references

alternate-entry-flows.md

deck-editing-setup.md

deckops-spec.md

idea-sourcing-wizard.md

pattern-history-authorization.md

phase0-intake.md

phase1-intent.md

phase2-architecture.md

phase3-content.md

phase4-guardrails.md

phase5-slides.md

phase6-publishing.md

phase7-post-event.md

SKILL.md

README.md

tile.json