Add a new expert to the Remotion experts page
日本語の概要は準備中です。原文の説明を表示しています。
Brand-grounded Remotion video pipeline. Take a brief, ground it in `brand/` (voice, audience, positioning, creative-kit), write a beat sheet, scaffold a fresh Remotion project, generate any required assets, compose with frame-driven animations, and bake a final MP4. Use this skill whenever the user wants to build a NEW Remotion video from scratch — product films, motion graphics, code-driven shaders, CRT/glitch effects, HTML-in-canvas demos, React video. Triggers on requests like "make a remotion video", CRT/glitch/scanline effects, html-in-canvas demos, video shaders, WebGL video, and frame-driven React video. This is the mktg-native sibling of the personal `/cmo-video` skill: `/cmo-video` recreates the *style* of an existing reference video; `/cmo-remotion` builds something new from a brief. Always load `remotion-best-practices` before stage 5 (compose).
インストールする前に、エージェントに与えられる指示の中身を確認できます。
The mktg-native end-to-end pipeline for building a new Remotion video from a brief. Brief in, MP4 out. Brand memory grounds it; remotion-best-practices powers the compose stage.
The user wants a Remotion video that is theirs — voiced like their brand, aimed at their audience, hitting their positioning. They do not want a generic motion-graphics template, and they do not want to recreate someone else's video literally.
This skill is the Remotion equivalent of /cmo-video, with one key difference: /cmo-video is a style transfer pipeline — point it at a reference URL and it deconstructs the reference, generates fresh assets in that idiom, and ships a recreation. /cmo-remotion is a brief-to-render pipeline — start from a goal ("explain our product in 30s", "demo the CRT shader", "ad for our launch"), ground it in brand/, and ship.
You collaborate with the user across six stages, the same way /cmo collaborates across the marketing skill stack: suggest, ask one question at a time, push back when the brief is too big, and never silently advance. Show the beat sheet, get a yes, then scaffold. Show the asset list, get a yes, then generate. Show a single frame at composition midpoint, get a yes, then bake the full render.
| User says | Route to | Why |
|---|---|---|
| "make a video like this <URL>" | personal /cmo-video | That pipeline is style-transfer from a reference. Stop after stage 2 if they only want the deconstruction. |
| "I have these PNG slides, make a video" | /video-content | Three-tier ffmpeg/Remotion pipeline that takes existing slides → video. No scaffold, no compose-from-scratch. |
| "make me a TikTok slideshow" | /tiktok-slideshow | Format-specific orchestrator that chains /slideshow-script → /paper-marketing → /video-content. |
| "build me a Remotion video about X" | this skill | New composition from a brief. Code-driven, frame-driven, brand-grounded. |
| "make a CRT shader / glitch / scanline video" | this skill | Stage 5 loads remotion-best-practices/rules/html-in-canvas.md and points you at the CRT template. |
| "edit my finished video" | Not this skill | Remotion is a video generator, not an editor. Use a real NLE for cuts on existing footage. |
| "transcribe / summarize this video" | mktg transcribe then /summarize | Different intent. |
1. BRIEF capture goal + audience + runtime + aspect + one-line takeaway
2. SCRIPT beat sheet (scene · duration · voiceover · onscreen · visual · motion)
3. SCAFFOLD npx create-video@latest --yes --blank --no-tailwind <slug>
4. ASSETS generate PNGs via /codex:image or /image-gen → rembg → public/
5. COMPOSE load remotion-best-practices, pick rule files by intent, build frame-driven
6. BAKE single-frame midpoint check → npx remotion render → MP4
Each stage produces a checkpoint artifact under marketing/video/<slug>/<n>-<stage>/. The pipeline is resumable — read pipeline.json, pick a stage, continue. Never re-run a completed stage unless the user explicitly asks for "redo stage X".
Capture in one short conversation:
brand/audience.md is populated, propose the most relevant persona; ask if it's right.If brand/voice-profile.md, brand/positioning.md, or brand/creative-kit.md are present, ground every brief decision in them. Quote the relevant line back: "Your voice profile says you avoid hype words — so the takeaway shouldn't lead with 'revolutionary'. How about 'the part of {X} no one shows you'?"
A beat sheet is a table — one row per scene — with these columns:
| Scene | Duration | Voiceover (if any) | Onscreen text | Visual | Motion |
|---|
The script is the load-bearing stage. A bad script makes a beautiful render boring. Co-write it: propose 2–3 beats, get a reaction, revise. Don't dump 8 beats in one shot.
Before approving, run the one-line gut check: "If I read just the voiceover column out loud, does it tell the story?" If not, rewrite.
npx create-video@latest --yes --blank --no-tailwind <project-slug>
cd <project-slug>
npm install
Use --blank so we don't inherit the demo composition. Use --no-tailwind so the project stays minimal — Remotion has no inherent need for Tailwind, and the styles we author live alongside the components.
Project lives at marketing/video/<slug>/project/. Add out/, node_modules/, and any large generated assets to .gitignore if not already there.
If the video is code-driven (CRT shader, type-only, geometric) — skip this stage. The composition needs no PNGs.
Otherwise:
/codex:image (preferred for craft-grade prompting) or /image-gen (Gemini Nano Banana 2 — model gemini-3.1-flash-image-preview, never older).rembg. Image models lie about transparency.<project>/public/.This stage is a prerequisite gate, not a reference. Before you write the composition, load:
marketing-cli/skills/remotion-best-practices/SKILL.md — top-level entry to the rules.| Intent | Rule file |
|---|---|
| Code-driven shader / CRT / glitch | rules/html-in-canvas.md |
| Typewriter / animated text | rules/text-animations.md + rules/assets/text-animations-typewriter.tsx |
| Scene-to-scene cuts and crossfades | rules/transitions.md |
| Voiceover narration | rules/voiceover.md + rules/audio.md |
| Captions / subtitles | rules/subtitles.md + rules/import-srt-captions.md |
| Light leaks / film texture | rules/light-leaks.md |
| 3D / Three.js | rules/3d.md |
| Lottie | rules/lottie.md |
| Map embeds | rules/mapbox.md |
| Local fonts | rules/local-fonts.md |
| Google fonts | rules/google-fonts.md |
For the CRT shader intent specifically, copy the canonical drop-in: see ./templates/CRTComposition.tsx.
Compose against the brand. Pull primary/secondary colors from brand/creative-kit.md. Match typography to the visual identity. The Remotion <Composition> is just the renderer — the grammar comes from the brand.
Always render-then-inspect. Never trust the first render.
# Sanity check at composition midpoint (catches static layout bugs cheap)
npx remotion still <CompositionId> out/check.png --frame=<half-of-durationInFrames>
# Full render
npx remotion render <CompositionId> out/<name>.mp4
# WebGL effects (HtmlInCanvas, three.js, shader compositions) need ANGLE
npx remotion render --gl=angle <CompositionId> out/<name>.mp4
After the first render, sample frames at 0%, 12.5%, 37.5%, 62.5%, 90% of duration with npx remotion still. Eyeball each. Fix what bugs the user. Re-render.
You must load these before you scaffold a Remotion project — they catch the framework-fighting mistakes early:
/Users/moizibnyousaf/projects/mktgmono/marketing-cli/skills/remotion-best-practices/SKILL.md — top-level entry.rules/<topic>.md file(s) matching your intent (the table in Stage 5 lists them).If you skip this and "just start coding," you will end up writing CSS keyframes, you will hit "WebGL not enabled in render," and you will need to redo it. Loading the rules first costs ~30 seconds. Skipping costs ~30 minutes.
These are not preferences. Skipping them produces broken or low-quality videos.
useCurrentFrame() + interpolate() + spring(). Never CSS @keyframes, never Tailwind animate-* classes. CSS animations run on wall-clock time and render with all elements stuck at their starting opacity in the produced MP4.brand/creative-kit.md and brand/voice-profile.md before you write the composition's TSX. Colors and tone are not afterthoughts.remotion-best-practices before stage 5. Compose without the rules and you will fight the framework.--gl=angle on render. HtmlInCanvas with WebGL2 in Studio works without it; CLI render does not.The templates/ directory ships drop-in components you can copy into a freshly scaffolded project.
| Template | What it is | When to use |
|---|---|---|
| ./templates/CRTComposition.tsx | Full HtmlInCanvas + WebGL2 fragment shader CRT effect over a typewriter terminal scene. ~10s, 1920×1080, 60fps. | The canonical example for code-driven shader videos. Demonstrates barrel distortion, scanlines, vignette, chromatic aberration, and frame-modulated intensity. |
| ./templates/Root.tsx | Remotion <Composition> registration for the CRT example. | Drop-in alongside CRTComposition.tsx. |
| ./templates/index.ts | registerRoot(Root) entry. | Replace the scaffolded src/index.ts. |
| ./templates/README.md | How to copy these into a freshly scaffolded project, preview in Studio, and render. | Read once before using the templates. |
| User says | Route to | Why |
|---|---|---|
| "recreate this video" + URL | personal /cmo-video | Reference-driven style transfer pipeline. |
| "I have PNG slides, make a video" | /video-content | Three-tier slides-to-video pipeline. |
| "make me a TikTok slideshow" | /tiktok-slideshow | Format-specific orchestrator. |
| "ANY new Remotion video from a brief" | this skill | Brief-to-render. |
| "make a shader video" / "CRT effect" / "glitch" | this skill + load html-in-canvas.md + use the CRT template | Code-driven, no asset gen. |
| "render the existing project I already have" | this skill, stage 6 only | Skip stages 1–5; just the bake protocol. |
| "edit a finished MP4" | Not this skill | Remotion generates; doesn't edit. |
| Anti-pattern | Why it fails | Instead |
|---|---|---|
| Skipping stage 1 (BRIEF) and going straight to scaffold | The composition will lack a runtime/aspect/takeaway and you'll thrash on basic decisions inside Stage 5. The brief is 5 minutes of conversation, not bureaucracy. | Always capture goal · audience · runtime · aspect · one-sentence takeaway before scaffolding. |
| Skipping stage 2 (SCRIPT) | Without a beat sheet, the composition becomes a pretty slideshow in arbitrary order. Pacing collapses. The script also tells you what assets you actually need in stage 4. | Always produce the beat sheet before generating any asset or writing TSX. |
| Generating assets before the script is approved | You'll generate assets that don't match the final beat sheet and burn the budget. Cost discipline starts here. | Stage 4 reads from stage 3's beat sheet. Order matters. |
Using CSS @keyframes or Tailwind animate-* classes inside Remotion | They run on wall-clock time, not composition frames. The video renders with elements stuck at opacity: 0. | Frame-driven only. useCurrentFrame() + interpolate() + spring(). See remotion-best-practices/rules/. |
Trusting /codex:image / /image-gen PNGs to have transparent backgrounds | Image models lie about transparency. Even with explicit prompts, they bake in white or off-white backgrounds intermittently. | Always batch-cut every transparent asset through rembg before composition. |
Rendering WebGL compositions without --gl=angle | The render runs but every WebGL effect renders as a blank canvas. You'll only notice after the full render finishes and you watch the MP4. | Always pass --gl=angle for any composition that uses HtmlInCanvas with WebGL, three.js, or any GPU shader. |
| Rendering the full composition before sampling stills | First render is almost never right. Layout bugs at the midpoint waste an entire render cycle. | Run a single-frame still at composition midpoint first. Then npx remotion still at 5 evenly-spaced frames. Then full render. |
Loading every rule file in remotion-best-practices/rules/ "just in case" | Context bloat. The 30+ rule files are an index, not a manifest. | Pick by intent. Shader → html-in-canvas.md. Type → text-animations.md. Voice → voiceover.md. The table in Stage 5 lists the mapping. |
Composing without reading brand/voice-profile.md (when present) | The voiceover and onscreen text drift off-voice. Then the user has to ask you to "make it sound more like us" in stage 6. | Read the voice profile before writing the script. Quote it back to anchor the writing. |
mktg status --json. If health: "needs-setup", route to /mktg-setup first — same as /cmo.voice-profile.md, audience.md, positioning.md, creative-kit.md exist and are non-template. Surface what's populated and what's missing.node --version ≥ 22, npx --version reachable. If the user's video uses voiceover, also confirm mktg doctor shows the voice provider (ElevenLabs).--auto to run stages 1, 3, 4 unattended (script and compose always require approval — they're not cheap to redo).This skill is the mktg-native counterpart to the personal-library /cmo-video skill. /cmo-video predates this one and is purpose-built for recreating a reference video. /cmo-remotion covers the larger case: building a new Remotion video from a brief, grounded in brand/. The two skills share philosophy (frame-driven only, render-then-inspect, conversation-not-pipeline) but split on the inception path.
The CRT template ships in v1 because it's the load-bearing demo for the HtmlInCanvas API — a code-driven, asset-free composition that proves out the WebGL render path end-to-end.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Add a new expert to the Remotion experts page
日本語の概要は準備中です。原文の説明を表示しています。
Add a new sound effect to @remotion/sfx
日本語の概要は準備中です。原文の説明を表示しています。
Use when setting up a secure email inbox for any AI agent — configuring inbound email via Resend, webhooks, tunneling for local development, and implementing security measures to prevent prompt injection attacks. Also use when someone mentions 'agent email', 'bot inbox', 'receive emails for agent', 'agent webhook', 'email security for AI', 'prompt injection via email', 'inbound email for bot', or wants their AI agent to receive and respond to emails securely.
日本語の概要は準備中です。原文の説明を表示しています。
Builds, measures, and improves an Answer Engine Optimization program across ChatGPT, Perplexity, Claude, Gemini, Google AI Overviews, and Copilot. Use for AEO, GEO, LLMO, AI search visibility, AI citations, brand mentions, answer-engine monitoring, llms.txt, AI crawler audits, or questions like 'what does AI say about us?' and 'why are competitors cited instead of us?'. Produces a durable evidence report and prioritized gameplan, not a one-shot content checklist.
日本語の概要は準備中です。原文の説明を表示しています。
Generate Apple App Store screenshot pages as a Next.js app with html-to-image export at required resolutions. Screenshots are advertisements, not documentation — every screenshot sells one idea. Use when building App Store screenshots, generating exportable marketing screenshots for iOS apps, or creating programmatic screenshot generators. Triggers on 'app store screenshots', 'App Store', 'screenshot generator', 'iOS screenshots', 'marketing screenshots', 'phone mockup', 'ASO screenshots', 'app store assets', 'app listing', 'app store page', or 'app preview images'. Also use when someone is about to submit an app and needs store assets, or when they say 'make my app store page look good'. Includes iPhone and iPad mockup components with pre-measured dimensions.
日本語の概要は準備中です。原文の説明を表示しています。
Build detailed buyer personas and audience profiles from research. Use this skill whenever the user mentions audience, buyer persona, ideal customer, target market, ICP, watering holes, 'who am I selling to', customer research, or audience profile. Also use when content feels unfocused or generic (that's an audience problem), when conversion is low because messaging doesn't resonate, when starting any new project (audience should be first), or when any downstream skill needs audience.md but it doesn't exist yet. Even if the user doesn't explicitly ask for audience research, trigger this if they're writing copy or building a landing page without a clear audience defined. Three approaches: Quick Profile, Persona Build, Community Mining.
日本語の概要は準備中です。原文の説明を表示しています。