Individual skill

product-film

Make a showreel-grade product film (landing-page loop, launch video, promo, demo reel, social cut) in code with Remotion, built on the product's own design system, components and voice. Use when someone asks for a product video, landing video, promo, launch film, explainer or "motion design video" for their app, SaaS or codebase. It asks what to include, then covers design discovery, story, music sync, transitions, review loops and a verified final render.

plugins/product-film/skills/product-film/SKILL.md

Read pinned source

Source commit fe11efc429d5903e37274d0b294e1b95745b2881

What was checked

Matches the observed repository HEAD
Yes
Scanner rules are current
Yes
Repository scan complete
Yes
Skill scan complete
Yes
Observed behavior
Local scripts
Last checked
Nov 10, 2026

These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.

Install this skill

Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.

Claude Code

Destination .claude/skills/product-film

( set -euo pipefail destination='./.claude/skills/product-film' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Rieranthony/product-film-skill.git' "$work/repo" git -C "$work/repo" checkout --detach fe11efc429d5903e37274d0b294e1b95745b2881 git -C "$work/repo" archive --format=tar 'fe11efc429d5903e37274d0b294e1b95745b2881:plugins/product-film/skills/product-film' > "$work/skill.tar" mkdir -p -- './.claude/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
Codex

Destination .agents/skills/product-film

( set -euo pipefail destination='./.agents/skills/product-film' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Rieranthony/product-film-skill.git' "$work/repo" git -C "$work/repo" checkout --detach fe11efc429d5903e37274d0b294e1b95745b2881 git -C "$work/repo" archive --format=tar 'fe11efc429d5903e37274d0b294e1b95745b2881:plugins/product-film/skills/product-film' > "$work/skill.tar" mkdir -p -- './.agents/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
Cursor

Destination .cursor/skills/product-film

( set -euo pipefail destination='./.cursor/skills/product-film' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Rieranthony/product-film-skill.git' "$work/repo" git -C "$work/repo" checkout --detach fe11efc429d5903e37274d0b294e1b95745b2881 git -C "$work/repo" archive --format=tar 'fe11efc429d5903e37274d0b294e1b95745b2881:plugins/product-film/skills/product-film' > "$work/skill.tar" mkdir -p -- './.cursor/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
Gemini CLI

Destination .gemini/skills/product-film

( set -euo pipefail destination='./.gemini/skills/product-film' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Rieranthony/product-film-skill.git' "$work/repo" git -C "$work/repo" checkout --detach fe11efc429d5903e37274d0b294e1b95745b2881 git -C "$work/repo" archive --format=tar 'fe11efc429d5903e37274d0b294e1b95745b2881:plugins/product-film/skills/product-film' > "$work/skill.tar" mkdir -p -- './.gemini/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
GitHub Copilot

Destination .github/skills/product-film

( set -euo pipefail destination='./.github/skills/product-film' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Rieranthony/product-film-skill.git' "$work/repo" git -C "$work/repo" checkout --detach fe11efc429d5903e37274d0b294e1b95745b2881 git -C "$work/repo" archive --format=tar 'fe11efc429d5903e37274d0b294e1b95745b2881:plugins/product-film/skills/product-film' > "$work/skill.tar" mkdir -p -- './.github/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
OpenCode

Destination .opencode/skills/product-film

( set -euo pipefail destination='./.opencode/skills/product-film' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Rieranthony/product-film-skill.git' "$work/repo" git -C "$work/repo" checkout --detach fe11efc429d5903e37274d0b294e1b95745b2881 git -C "$work/repo" archive --format=tar 'fe11efc429d5903e37274d0b294e1b95745b2881:plugins/product-film/skills/product-film' > "$work/skill.tar" mkdir -p -- './.opencode/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )

Repository context

Repository stars (not skill ratings)
423
Repository last updated
Sep 26, 2026
License
MIT

Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.

Files and excerpt

File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.

Browse files
Read excerpt

# Product film

A film that looks like the product made it: its colors, type, components, logo and voice, cut to music. Built in Remotion inside (or beside) the product's codebase, so it reuses real components and stays editable.

## Non-negotiables

- **Their design wins.** Every rule comes from the product: its tokens, components, rules files, landing page and copy. Never carry another product's taste in, including anything in this skill that their design contradicts.
- **Ask, don't assume.** What the film shows and how it is made are the user's call. Interview them before writing the story ([reference/interview.md](reference/interview.md)). Offer options drawn from what you found in their code, never generic ones.
- **Every frame is a pure function of time.** No CSS transitions or keyframes, no timers, no `Date.now()`, no state carried between frames. A component that runs its own clock gets a frame-driven twin.
- **Measure, never guess.** Beats come from the audio, positions from the DOM (debug overlay), colors from decoded pixels of the final files.
- **Honest claims.** Show only what the product really does. Find its claims rules and approved lines before writing a word.
- **Ask first** before committing, pushing or publishing. Keep every rendered version (`out/<film>/v1`, `v2`, ...).

## Workflow
Back to top