The Problem
Clients need a quick, zero‑editing way to create polished product‑launch videos. Traditional workflows rely on After Effects, stock templates, or expensive render farms, which slow feedback cycles and double the cost. This skill turns a simple URL into a 60 fps MP4, eliminating manual compositing and enabling rapid iteration.
What This Does
The skill reads a website URL, generates a brief, writes a story, and renders a single‑shot, 60 fps film with music, beat‑synced sound‑effects, and motion blur.
legacy/scripts/assemble.mjsbuilds an HTML frame skeleton from a JSON brief.legacy/scripts/transitions.mjsinjects closed‑form spring‑based transitions between UI states.legacy/scripts/word-timings.mjsaligns on‑screen text with the beat grid.legacy/scripts/level-sfx.mjsadds click, drag, and number‑roll sound‑effects.legacy/scripts/wire-audio.mjsandwire-grade.mjsmix music and SFX, then apply a WebGL glass pass if requested.legacy/scripts/master.shorchestrates the entire pipeline, calling the above scripts in sequence and finally invokingffmpegto render the 60 fps MP4.
The root SKILL.md exposes the skill to Claude Code; the README documents the public CLI npx skills add AbubakrChan/product-launch-motion.
How It Is Wired
Entry Point – master.sh is the single script invoked by the skill framework. Internal Call Graph –
master.sh
├─ assemble.mjs → builds frame skeleton from film.json
├─ transitions.mjs → injects spring transitions
├─ word-timings.mjs → syncs text to beat grid
├─ level-sfx.mjs → generates click/drag SFX
├─ wire-audio.mjs → mixes music+SFX
├─ wire-grade.mjs → applies color grading
└─ ffmpeg command → renders final MP4
What This Code Touches Outside Itself –
- Reads JSON briefs (e.g.,
legacy/assets/film.example.json). - Writes intermediate HTML frames (
frame-skeleton.html). - Calls external binaries:
ffmpeg,node, andffprobe. - Generates final media in
release/launch-film-1080p60.mp4.
What Each File Is Responsible For –
assemble.mjs: HTML skeleton generation.transitions.mjs: Spring‑based morphs and camera pushes.word-timings.mjs: Beat‑aligned text timings.level-sfx.mjs: SFX synthesis.wire-audio.mjs/wire-grade.mjs: Audio mixing and grading.master.sh: Orchestrator and FFmpeg wrapper.
The graph is acyclic; each file has a single responsibility, reducing the blast radius when modifying a component.
How To Use It
# 1. Install the skill
git clone https://github.com/moses-y/product-launch-motion
cd product-launch-motion
npx skills add AbubakrChan/product-launch-motion
# 2. Run the skill via Claude Code
# (In Claude, type: "Make a launch video for https://your-website.com")
No additional environment variables are required. The skill bundles its own dependencies (Node, FFmpeg) via the master.sh script.
Real‑World Use
A product marketing team can generate a preview for an upcoming feature launch by simply pointing the skill at the feature page. The resulting MP4 can be embedded in a marketing email, shared on social media, or used in a sales deck—no video editor needed.
Code Health & Issues
- Medium / SDLC – No test files detected – Severity: Medium – All code paths untested.
- Medium / SDLC – No CI/CD pipeline detected – Severity: Medium – Build and test gates missing.
- Low –
LICENSEis present, but nopackage.json– Severity: Low – No npm dependency list.
Other than the absence of tests and CI, the repository contains clear documentation (README.md, SKILL.md, references/prompts.md) and example media. The code is self‑contained and relies only on standard shell utilities and Node scripts.
The Bottom Line
This skill delivers a fully automated, 60 fps product‑launch video pipeline with minimal configuration. It excels for rapid prototyping and marketing teams that need to iterate on visual storytelling without a post‑production budget. The lack of tests and CI limits confidence for production use; adding a CI pipeline and unit tests would make the tool more robust for enterprise deployment.