CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/speaker-toolkit

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 102-entry Presentation Patterns taxonomy (91 observable, 11 unobservable go-live items) for scoring, brainstorming, and go-live preparation.

86

1.24x
Quality

92%

Does it follow best practices?

Impact

86%

1.24x

Average score across 26 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

shownotes-content-publish.mdrules/

alwaysApply:
Yes

Shownotes Content Publish

Why

  • The shownotes-publisher skill writes talk pages into the Jekyll shownotes site and pushes them to the site's default branch. These pages are prose and data a human audience reads directly, not code or agent-loaded context.
  • jbaruch/coding-policy: ci-safety's Content-Only Direct-Push Carve-Out permits a direct push to main for such content under its Form B client-side gate, used where a platform cannot express server-side allowlist enforcement (github.com personal repos). This rule is the authority-of-record satisfying precondition 1: it names the carve-out, the covered path globs, the enforcing gate script, and the review the direct-push does not carry.

Covered Paths

  • _talks/** — the Jekyll _talks/ collection; one markdown page per talk, authored for human reading on the shownotes site.
  • assets/images/thumbnails/** — talk thumbnail images the rendered pages reference.

These are the only paths a direct push may modify, and both are content surfaces a reader consumes directly. No code, rule, skill, script, manifest, workflow file, or configuration is in scope. A push touching anything else is out of scope and forces branch + PR.

Enforcement

  • Form B client-side gate: skills/shownotes-publisher/scripts/content-only-gate.sh is the deterministic gate (per jbaruch/coding-policy: script-delegation). It enumerates every path the push would land on the protected branch (committed-but-unpushed commits in origin/main..HEAD, plus pending staged, unstaged, and untracked changes) and exits 0 only when every one matches a covered glob above. Any out-of-glob path exits non-zero.
  • shownotes-publisher Step 9 runs the gate before publishing and direct-pushes only on exit 0. An out-of-glob path, or an indeterminate gate result, forces an automatic branch + PR fallback — never an operator override.
  • The allowlist is the ALLOWED_PREFIXES constant at the top of the gate script. The globs above and that constant stay in sync.

What Direct-Push Does NOT Carry

  • The direct push bypasses the pull-request review cycle on the shownotes site: no gh-aw policy review and no human or Copilot review runs on the content before it lands.
  • It does not bypass post-publish verification. ci-safety still requires watching the Pages deploy to a successful conclusion and confirming the live URL returns HTTP 200.

Scope Limits

  • The carve-out covers only the two globs above on the shownotes site. To extend it, name the new glob here AND add it to ALLOWED_PREFIXES in the gate script. Adding one without the other invalidates the precondition.
  • The carve-out does not widen to any other repo or branch. Every other path, and every change to this speaker-toolkit repo, still goes through pull requests.

CHANGELOG.md

README.md

tessl.json

tile.json