acestep
AI music generation with ACE-Step 1.5 — background music, vocal tracks, covers, stem extraction, audio repainting, and…
Product demo and release-notes videos with no screen recording. Rebuild the app's screens as static React from its source code, then drive them in Remotion with a scripted cursor and camera (lib/components Stage + Cursor). Use when making a product walkthrough, feature demo,
$ npx -y skills add digitalsamba/claude-code-video-toolkit --skill synthetic-ui-demo --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/synthetic-ui-demoContext preview
The summary Claude sees to decide when to auto-load this skill.
Product demo and release-notes videos with no screen recording. Rebuild the app's screens as static React from its source code, then drive them in Remotion with a scripted cursor and camera (lib/components Stage + Cursor). Use when making a product walkthrough, feature demo,
name: synthetic-ui-demo description: Product demo and release-notes videos with no screen recording. Rebuild the app's screens as static React from its source code, then drive them in Remotion with a scripted cursor and camera (lib/components Stage + Cursor). Use when making a product walkthrough, feature demo, release-notes or changelog video for an app whose source you can read, or when a Playwright recording would be flaky, need test data, or go stale. Triggers include synthetic demo, rebuild the UI, release video, feature walkthrough, product demo from source, scripted cursor, camera zoom on UI, no screen recording.
Nothing is screen-recorded. Claude Code reads the product's repo, rebuilds only the screens a scene shows as static React, and a scripted cursor and camera perform the flow in Remotion. Every click is a frame number, so a scene re-renders identically, never needs a seeded account or a live environment, and is updated by editing code when the product changes.
**Reference builds** (read them alongside this skill; both build without the product repos):
Its `src/Demo.tsx` is a single timeline with every cursor keyframe, click and camera move.
the scenes, `src/scenes/` has one file per release item, and `src/room/` and `src/ac/` are the screen kits.
| Synthetic (this skill) | Playwright recording (`/record-demo`) | |---|---| | You can read the app's source | You only have the running app | | Release notes and feature tours that get redone every release | One-off capture of real behaviour or real data | | The flow needs data you don't have (a full call, other users, an admin view) | The real thing is easy to reach and looks right as is | | Camera moves, exact click timing, re-renders after a voice change | Long, complex interactions that would be costly to rebuild |
import { Stage, typed, cursorAt, near } from '../../../../lib/components';
<Stage
url="app.example.com/settings" // address bar; host darker than path
camera={CAMERA} // [{ f, z, x, y }] in canvas px, eased, clamped to the window
path={PATH} // [{ f, x, y }] cursor keyframes in canvas px
clicks={CLICKS} // frames that squash the cursor and throw a ripple
aiNote // "People shown are AI-generated" (or pass your own text)
canvasWidth={1440} canvasHeight={810} // the defaults
>
<SettingsScreen field={typed(frame, 'Q4 Product Review', 128)} />
</Stage>zIndex 100. At zoom 1 the window is `fit` (0.8625) of the frame width. Keyframes repeat a value to hold it.
Send one subagent per app or area, in parallel, and have each return a compact spec rather than file dumps:
(`public/locales/en/*.json`, `src/i18n/locales/en/*`). Never paraphrase UI text.
the ones you need into a small JSON and render them as `<svg><path d=...>`. Otherwise copy the SVG components.
Read the default branch from the remote (`git show origin/main:path`, or `git fetch` then read `origin/<default>`). **Local checkouts are often stale** and will give you last quarter's UI.
For release notes, trace each item to the commit and component that ship it first. That gives you the exact strings and the default values to show.
that matter as constants (`SAVE_BTN = { x, y, w, h }`), so click targets are arithmetic, not guesses.
`--max-wpm 165`). Read the measured durations.
comment is the source of truth (see "Audio-Anchored Timelines" in CLAUDE.md).
UI state switches (`frame >= C.save` shows the dialog). Export the click frames so the parent can place click SFX.
A line that lists several things ("scheduling, contacts, recordings and transcripts") is too fast for one shot. Split the audio at its pauses into phrase files (`07a`, `07b`, ...), give each phrase its own shot, and place each phrase on its own beat.
Tell Claude Code what video you want — it writes the script, generates the voiceover, music, and visuals, and renders the MP4.
AI music generation with ACE-Step 1.5 — background music, vocal tracks, covers, stem extraction, audio repainting, and…
Generate AI voiceovers, sound effects, and music using ElevenLabs APIs. Use when creating audio content for videos, podcasts, or…
Video and audio processing with FFmpeg. Use for format conversion, resizing, compression, audio extraction, and preparing assets…
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web…
Prompting patterns for Ideogram 4 text-to-image — best-in-class in-image text rendering and exact color/layout control via…
AI video generation with LTX-2.3 22B — text-to-video, image-to-video clips for video production. Use when generating video clips,…