Eight-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, verify a recorded screencast against its storyboard, and edit a Camtasia screencast into a speaker-first video with corrected captions and chapters, all informed by 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
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
What the scripts read and write, as observed in Camtasia 2025 for Mac.
A .cmproj directory holding project.tscproj (JSON), bookmarks.plist,
docPrefs (property lists), and media/, originals/, recordings/. While a
project is open, Camtasia keeps a ~project.tscproj beside it.
editRate. Frame snapping is tick in
skills/screencast-editor/scripts/camtasia_model.py.timeline.sceneTrack.scenes[0].csml.tracks, with display
names in timeline.trackAttributes. Each clip has start, duration
(timeline ticks), mediaStart, mediaDuration (source ticks), and scalar
(speed as an exact fraction such as "57/47", or 1).ScreenVMFile and track 1
UnifiedMedia (camera video plus mic audio).translation0/translation1 in canvas pixels, center-relative,
y up. scale0/scale1 are relative to source pixels: 0.5 fits a 3840x2160
source to a 1080-high canvas.{"type": "double", "defaultValue", "interp": "eioe", "keyframes": [{"time", "endTime", "duration", "value"}]} with times relative
to the clip, plus animationTracks.visual entries {"endTime", "duration"}.RoundCorners effect followed by an
alpha-aware Border (type 1); AI noise removal is the audio effect
VSTEffect-DFN3NoiseRemoval. Definitions: skills/screencast-editor/scripts/camtasia-effects.json.sourceBin[].sourceTracks[type 2] .parameters.transcription.keyframes, one {"time", "value"} per word in
source ticks. %GAP marks the start of a pause; the first keyframe is a
%GAP at 0.Callout clip on its own track whose
def.modifier is dynamicCaption. Box size is def.width/def.height,
position the clip's translation0/translation1, and text size both
def.font.size and the fontSize entry of def.textAttributes.def.dynamic-caption-new-paragraph-for-each-sentence starts a caption block
at each sentence, so punctuation in the words changes the blocks..trec)An MP4 with three streams: the TSCC2 screen, the H.264 camera, and AAC mic.
The pointer is not drawn into the screen stream. A top-level TSCM atom
(64-bit size) holds records: <u32 count> "DATA" <u64 length> <16-byte GUID> <payload>, with the length spanning the record from the count field.
2b7b6af2-7a1f-11e2-83d0-0017f200be7f (raw bytes as listed) is the
pointer path: <u32 version> <u32 16> then <f64 seconds> <i32 x> <i32 y>
samples in global points.2b7b6af6-... is the capture rectangle: <u32 version> <u32 24> then
<f64> <i32 x> <i32 y> <i32 width> <i32 height>..tessl-plugin
rules
skills
illustrations
presentation-creator
references
patterns
build
deliver
prepare
scripts
screencast-editor
screencast-recorder
shownotes-publisher
vault-clarification
vault-ingress
references
scripts
vault-profile