Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/jacobstephens2-explainer-video
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/explainer-video
What's inside
- Skill name
explainer-video- Description
- Make narrated, animated explainer videos. Use when the user wants an explainer, tutorial, demo, promo or executive-overview video, or a new version of one.
- License
- MIT
- Instructions
- 25 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (18)
- REFERENCE.md
- SKILL.md
- openai.yaml · agents/
- audiences.md · research/
- clarity.md · research/
- marketing.md · research/
- music.md · research/
- nontech-executives.md · research/
- tutorial.md · research/
- build.py · templates/
- gen_cues.py · templates/
- lib.js · templates/
- music.py · templates/
- package.json · templates/
- render.mjs · templates/
- style.css · templates/
- term.js · templates/
- tts.py · templates/
SKILL.md (first lines)
# Explainer video
Scenes are HTML pages whose `render(t)` is a pure function of time. Headless Chromium screenshots each frame, and ffmpeg joins the frames, narration and music. Work in a copy of `templates/` in a fresh project directory (the scratchpad unless the user names one), and run `npm install` there, as in every copied version. Gotchas for each step are in [REFERENCE.md](REFERENCE.md).
Leading words:
- **sourced:** every claim traces to a line in the product's docs or code.
- **word-synced:** each element appears on the word that names it, or up to 0.3 s early.
- **real output:** terminal text is captured from real runs.
- **new version:** a change is a copy, `vN` → `vN+1`, and earlier versions stay.
## Steps
1. **Ground.** Read the source of truth: README, guide, site pages and code. List the claims the video will make. *Done when* every planned claim has its file:line, and the user has picked the audience (engineers, executives, new users, public).
2. **Research the audience** with the `research` skill, unless a note in REFERENCE.md's "Research to reuse" covers it. *Done when* the note ends in checkable rules and a beat outline.
3. **Script** `narration.json`. Use one scene per idea, written conversationally, and speak every on-screen label. Overclaiming hides in "never", "only" and "free", in a bare "the" over a set ("the skills are adapted…" when most are), in a passive that hides who gave a permission ("allowed to add it" rather than "its owner allowed it to add it"), and in speed or productivity numbers. A proof point is a real, dated artifact the viewer can open, such as an issue and its PR: name each by its title rather than its number, and give times in the viewer's time zone. *Done when* every sentence is **sourced** and the word count at 140 wpm fits the audience.
4. **Voice.** Generate per-scene audio with timestamps using `tts.py`, with `ELEVENLABS_API_KEY` in the environment. On a new project, audition voices with the user. Then run `gen_cues.py` to get `cues/NN.js` and `plan.json`. *Done when* every scene has audio, cues and a planned length.
5. **Harness.** Write `storyboard.md`: the rules plus a direction for each scene. Adapt `style.css` and `lib.js` to the look, and set `window.BRAND` for the corner wordmark. *Done when* each direction gives its cue words in the order they are spoken, checked against `cues/NN.js`, and a still of a throwaway scene shows the loaded fonts and the wordmark, with an element landing on its cue word.
6. **Build scenes** with background subagents, one per scene, or one per group of scenes that share a continuous diagram. Give each the storyboard and its cues, and have it check its stills with Read before rendering video. *Done when* every `out/NN.mp4` matches `plan.json` within 0.05 s.
7. **Review.** An independent subagent that hasn't seen the code judges stills of every scene against the source, including one in each scene's final hold, after its last cue. It names any factual errors and at most one scene to fix. Check one frame of each new scene yourself as well. *Done when* the flagged fixes are made and every claim still holds against its source.
8. **Assemble** with `build.py`. It joins the scenes, places narration at each scene's lead, keeps music to the unnarrated head and tail, normalises loudness, and writes a WebVTT caption file and a player page. Make a poster from the strongest frame. *Done when* loudness reads −16 ±1 LUFS and the player loads its captions over http.
9. **Present** the video in a served index page: one card per video, newest version first, captions off by default. Add the card to an existing index page in place, since other sessions may be editing it. Open it in the user's browser. *Done when* the page is open and you've told the user what was checked and what wasn't. Review used stills, so no one has yet watched the video end to end with sound.
For a change to a finished video, make a **new version**: copy the project directory, change only what was asked, re-voice only the changed lines, and re-render the scenes whose cues or counters changed.From JacobStephens2/thirdshift, MIT.
More from JacobStephens2/thirdshift
- 0.558score
maintain-formal-verification-skill
JacobStephens2
Resync formal verification after covered code changes and distinguish model drift from product bugs.
SkillAFreshness: AClaude Code +9 - 0.558score
create-formal-verification-skill
JacobStephens2
Create a project-local formal verification skill for a high-risk property that tests rarely reach.
SkillAFreshness: AClaude Code +9 - 0.539score
codebase-design
JacobStephens2
Shared vocabulary for designing deep modules.
SkillAFreshness: AClaude Code +9 - 0.539score
domain-modeling
JacobStephens2
Build and sharpen a project's domain model.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 123
- Last commit (this folder)
- Oct 20, 2026 (8 days ago)
- Last release
- Oct 24, 2026 (4 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/JacobStephens2/thirdshift
- Website
- thirdshift.app
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from JacobStephens2
- 0.558score
create-formal-verification-skill
JacobStephens2
Create a project-local formal verification skill for a high-risk property that tests rarely reach.
SkillAFreshness: AClaude Code +9 - 0.558score
maintain-formal-verification-skill
JacobStephens2
Resync formal verification after covered code changes and distinguish model drift from product bugs.
SkillAFreshness: AClaude Code +9 - 0.539score
codebase-design
JacobStephens2
Shared vocabulary for designing deep modules.
SkillAFreshness: AClaude Code +9 - 0.539score
domain-modeling
JacobStephens2
Build and sharpen a project's domain model.
SkillAFreshness: AClaude Code +9 - 0.522score
prototype
JacobStephens2
Build a throwaway prototype to answer a design question.
SkillBFreshness: B★ 1Claude Code +9 - 0.522score
domain-modeling
JacobStephens2
Build and sharpen a project's domain model.
SkillBFreshness: B★ 1Claude Code +9
Cite this page
explainer-video skill. Agent Mart. https://agentmart.dev/skills/jacobstephens2-explainer-video (last updated 2026-10-24)