CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/speaker-toolkit

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

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

camtasia-validation-authority.mdrules/

alwaysApply:
No
applyTo:
skills/screencast-editor/scripts/build-project.py, skills/screencast-editor/scripts/apply-captions.py, skills/screencast-editor/scripts/camtasia_model.py, skills/screencast-editor/scripts/camtasia-effects.json — when changing what the screencast editor writes into a Camtasia project
description:
Authority of record for the Camtasia rendering boundary's Platform-Bound Untestable Carve-Out

Camtasia Validation Authority

Carve-Out Claimed

  • jbaruch/coding-policy: testing-standards Platform-Bound Untestable Carve-Out.
  • Qualifying condition: Camtasia for Mac is a licensed GUI application with no headless mode, so no CI runner can open a project and render it.
  • Scope: Camtasia for Mac only. The screencast editor refuses to modify a project on any other platform.

Covered Artifact

  • Exempt: Camtasia for Mac's acceptance and rendering of a project written by skills/screencast-editor/scripts/build-project.py or modified by skills/screencast-editor/scripts/apply-captions.py. That is whether the app opens the bundle, draws the planned framing and inset, and shows the corrected dynamic captions.
  • Exempt: the live open-project probe, camtasia_open_files in skills/screencast-editor/scripts/camtasia_model.py, which asks macOS pgrep and lsof whether Camtasia holds a file in the bundle. Its decision logic is tested with those tools stubbed; the real interaction is validated by observation 6 below.
  • Not exempt: every byte those scripts write. Timing, framing geometry, clamping, effect ownership, caption alignment, staging, and refusal paths are deterministic and tested.

Precondition 1 — CI-Runnable Pieces Are Extracted and Tested

  • tests/test_screencast_editor.py builds projects from a synthetic template shaped like Camtasia's screen + camera recording layout. It asserts clip placement, keyframes, inset scale, effect preservation, noise-removal disablement, staging, rerun behaviour, and caption rebuilding against synthetic transcript keyframes.
  • Framing geometry is tested at the menu-bar boundary and across a zoom and focal-point sweep.

Precondition 2 — Manual Validation Procedure

Run on macOS with Camtasia installed, against a real screen + camera recording.

  1. Run the skill through Step 8, then open the generated bundle in Camtasia. Observe: it opens without a missing-media prompt, and the timeline shows three tracks named Screen, Presenter inset + audio, and Speaker full frame.
  2. Scrub every screen shot. Observe: each zoom ends on its cue, no canvas edge or menu bar shows, and the rounded inset sits bottom right with its border.
  3. Scrub every speaker shot. Observe: the presenter fills the frame and no inset shows.
  4. Play across three cuts. Observe: the audio is continuous with no doubled voice.
  5. Add dynamic captions, save, close, run the skill's Step 10 (apply-captions.py), and reopen. Observe: the corrected words show with the new size and position, a new caption block starts at each sentence, and the highlight tracks the speech.
  6. Close the project and rerun Step 10. Observe: it succeeds and writes a second backup. With the project open in Camtasia, rerun it. Observe: it refuses with "is open in Camtasia" and leaves project.tscproj byte-for-byte unchanged, which exercises the live open-project probe.

A pass requires all six observations. The skill's Step 10 is not complete until steps 5 and 6 pass.

Scope Limits

  • The carve-out covers only Camtasia's acceptance and rendering of the files named above. It does not extend to another script or to ffmpeg, which CI installs and exercises.
  • Adding a second exempt artifact requires naming it here with its own validation procedure.

README.md

tile.json