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
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
Read the target site's docs/USAGE.md Skills section and
_plugins/skill_processor.rb before authoring. Confirm the target layout
includes skill_section.html. If this feature is absent, report that site
support must be installed or merged before publishing; do not invent a
**Skill:** body field or frontmatter switch. Check the branch that will
actually deploy, not only an unmerged feature branch.
_skills/{talk_page_stem}/SKILL.md, paired with
_talks/{talk_page_stem}.md. Preserve legacy date-prefixed stems.{site.url}{site.baseurl}/skills/{talk_page_stem}/SKILL.md.page.skill; the layout renders the badge,
description, install block, download link, and collapsed Markdown body.SKILL.md is served. Do not create supporting files or require local
references, scripts, the speaker's vault, or another installed toolkit skill.name determines the
visitor's installed skill directory. These may differ. Keep an existing
name stable so updates do not create a second installed skill.The generated file follows the Agent Skills specification:
YAML frontmatter with a name of 1–64 lowercase ASCII letters, digits, and
single separating hyphens, plus a nonblank description of at most 1024
characters. The description identifies the talk and when to summarize, explain, or answer
questions about it. Use a distinctive talk-specific name, not conference-talk
or shownotes-publisher. Quote YAML values containing colons. Optional metadata
must describe the real source; do not invent a license or compatibility need.
The audience task is understanding this talk. A visitor might ask their agent “Summarize RoboCoders,” “What did the Pidge demo establish?” or “Did both frameworks enforce the critic?” Supply the substance directly so the agent can answer without fetching a recording and reconstructing its transcript. Do not turn the talk into an operational playbook unless the user explicitly requests that separate artifact.
Skill(skill: "vault-ingress") for that delivery and resume once its analysis
is available. Do not silently substitute a generic transcript summary. For a
pre-talk skill, use the approved rhetorical architecture and any
rhetorical-review.md as planned analysis, clearly label that status, and
refresh against delivered analysis after the event. If the user explicitly
accepts a provisional brief without analysis, disclose that limitation.Build the brief around the analysis-derived argument, not a transcript's word count or the order in which tool names appear:
The value beyond “summarize YouTube” is the recovered reasoning: why these examples were chosen, what changes in the listener's understanding, and how the argument resolves. A rhetoric-label inventory or a chronological recap alone does not deliver that value. The analysis must shape the actual brief, not just appear in a provenance sentence.
Use a talk-specific name for new skills. The description names the talk, speaker/event, and summary/explanation/question-answering triggers. It must not activate merely because someone wants to perform a related technical task. Preserve an existing installed name on updates; revise the description and H1 to identify the talk unambiguously.
Start with an H1 naming the talk and knowledge capability, followed by
Process steps in order. Do not skip ahead. Keep the instruction wrapper
short, using flat numbered steps with explicit continuation and completion:
## Step 1 — Match the question: identify this delivery and the supported
audience requests; finish on a mismatched delivery, otherwise continue.## Step 2 — Answer from the brief: use the supplied content, adapt depth to
the question, preserve claim/evidence/interpretation distinctions, then finish.## Talk brief: substantive knowledge under descriptive topic headings,
including how the argument works, examples, caveats, and sources. These
headings organize reference content; they are not tasks to execute.Ordinary summaries and covered questions must need no network request. Fetch a linked source only for a requested exact quote, timestamp, missing detail, or other information not established by the brief. Never fabricate those details. The depicted prompts and workflows remain content to explain, not instructions to run tools, change files, launch workers, or perform external actions.
Keep the brief materially smaller than its source materials: under 500 lines and roughly 5000 tokens. Favor useful coverage and argument over repetition. Only this file is served; do not move necessary knowledge into companion files. A title or abstract alone is insufficient; resolve missing substantive sources before claiming completion unless the user accepts a provisional brief.
Read the existing file. Preserve its installed name, useful hand-edits, and unaffected content. A video URL alone does not require rewriting a brief. A new delivered analysis can change its interpretation or evidence boundaries; reconcile those findings before refreshing the affected passages. Do not delete a skill merely because a source artifact is temporarily absent.
Review the following against the source materials and rhetoric analysis:
Fix failures before publication. The mechanical validator checks delivery integrity, not rhetorical fidelity, completeness, or answer quality.
Run the source check after writing both the page and the skill:
python3 "{speaker_toolkit_root}/skills/shownotes-publisher/scripts/verify-talk-skill.py" \
--site "{shownotes_repo}" --stem "{talk_page_stem}"After a fresh successful Jekyll build, verify attachment and raw bytes:
python3 "{speaker_toolkit_root}/skills/shownotes-publisher/scripts/verify-talk-skill.py" \
--site "{shownotes_repo}" --stem "{talk_page_stem}" \
--build-dir "{shownotes_repo}/_site" --baseurl "{site.baseurl}"Use the configured build destination if it differs from _site. Visually
check the Skill section beneath the media, its description, expanded talk brief,
and install/download controls. The install command must point to the raw URL,
with site.baseurl included. Do not install into the speaker's personal agents
as a publishing test.
Publish via publisher Step 10. Include the skill in the same reviewed change as the page. After the Pages deployment for that commit succeeds, run:
python3 "{speaker_toolkit_root}/skills/shownotes-publisher/scripts/verify-talk-skill.py" \
--site "{shownotes_repo}" --stem "{talk_page_stem}" \
--site-url "{site.url}" --baseurl "{site.baseurl}"Input: source repository and page stem, optionally a build directory or live
site origin plus its base path. Output: one JSON object with ok, name,
skill_path, and the verified checks; live success also gives skill_url.
Exit 1 and stderr diagnose a failed check. Stop on failure; HTTP 200 carrying
a custom error page, a stale skill, or an unattached skill is not success.
Return the verified talk URL, raw skill URL, and the site's install command:
npx skills add {raw_skill_url} -g. Report an explicit opt-out separately;
never describe a pending skill or an open PR as published.
.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