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, publish 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.
74
93%
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
Process steps in order. Do not skip ahead.
This skill verifies a take. It does not record one.
Resolve the absolute path of this loaded SKILL.md, then set
speaker_toolkit_root to the plugin root two directories above the directory
containing this file. Never derive it from the consumer working directory.
Treat {speaker_toolkit_root} as absolute in every toolkit-owned command;
sequence, media, and output paths remain consumer-owned.
python3 "{speaker_toolkit_root}/skills/screencast-recorder/scripts/resolve-interpreter.py" <vault_root>Emits {"ok": true, "python_path": ..., "vault_root": ..., "database": ...}.
Set python_path from that value; it is the interpreter authority for every
command below.
Exit 1 means it could not be resolved — the diagnostic names the cause. Repair through its owner:
Skill(skill: "vault-ingress")Never fall back to whichever python3 is on PATH.
Proceed immediately to Step 2.
The recording rig emits one JSON file describing the take: delivery resolution, narration words with real timestamps, per-clip entry/exit manifests and events, and the storyboard rows with their machine-checkable requirements. Shape, every field, and every finding code:
skills/screencast-recorder/references/sequence-contract.mdThe approved storyboard itself stays prose and stays human-approved. Conditions like "leave room for the laugh" are judgments no verifier makes. This file carries only the half a machine can decide.
Proceed immediately to Step 3.
"{python_path}" "{speaker_toolkit_root}/skills/screencast-recorder/scripts/verify-storyboard.py" <sequence.json>Exit 0 when every checked axis passes, 1 on any finding, 2 on usage error. The verdict names each finding's axis, subject, and what was expected against what was observed. Proceed immediately to Step 4.
An axis reads unverified for either of two reasons, and neither is a pass.
axes.pixels is always unverified. Three checks are outside this lane: a click
visible in the encoded frames, OS chrome absent from the crop, and confirming in
the delivered pixels what the readability check computes from the recorded
measurement.
Any other axis reads unverified when no row declared a requirement on it.
unverified_axes names which case applies.
Report those as unchecked. Never restate an unverified axis as a pass.
If findings exist, return to the earliest invalid artifact — the storyboard row, the clip, or the narration take. Do not accumulate local timing, cursor, or crop patches against a take that a gate already rejected. Finish here.
.tessl-plugin
rules
skills
illustrations
presentation-creator
references
patterns
build
deliver
prepare
scripts
screencast-recorder
shownotes-publisher
vault-clarification
vault-ingress
references
scripts
vault-profile