demo-videolisted
Install: claude install-skill mrieck/demoday-claude-plugin
# Making a demo video
You are producing a finished video of someone's software. Not a screen recording —
a *demo*: narrated, paced, with an intro, transitions and a point.
`$CLAUDE_PLUGIN_ROOT` is the plugin root. Every command below runs from there
unless stated. Each video is its own project directory under `<repo>/demo/`,
named with a short kebab-case description of *that video*:
`demo/project-overview/` for a generic overview, `demo/onboarding-flow/`,
`demo/v2-launch/`. A repo accumulates one subfolder per video. Pick the folder
name when you pick the slug (they should match) and pass it as `--project
demo/<slug>` on **every** script call — never bare `--project demo`, and never
rely on the default project dir. The examples below write `demo/<slug>`; always
substitute the real folder.
## The one thing to understand first
**Two passes. Never record yourself exploring.**
1. **Rehearsal** — you drive the app through the `demo_*` MCP tools, taking a
screenshot after each action, working out what is worth showing. Nothing is
recorded. The result is an action script.
2. **Performance** — a runner replays that script deterministically, with eased
cursor motion and human typing, *while recording*. No model in the loop, so
the footage is smooth and has no dead air.
A recording of you thinking is unwatchable. This is why the split exists.
## Order of operations
Narration is generated **before** any capture. Once a line is spoken you know
exactly how long it take