--- name: og-assets description: Use when the user wants OG images, link-preview assets, animated OG loops, README GIFs, or social-card exports for any product (e.g. "/og-assets", "make an OG image and README gif"). --- # OG Assets **REQUIRED BACKGROUND:** marketing-studio skill; also read `${CLAUDE_SKILL_DIR}/../../docs/playbook/remotion.md`. Work in `${CLAUDE_SKILL_DIR}/../..`. Produces product-owned `og.mp4`, `og.gif`, `readme.gif`, and social-card exports under `/marketing/assets//`, optionally backed by an approved ComfyUI texture. ## Recipe 1. Toolchain + brand check per marketing-studio. Background loop staged for the brand (Blender `background_loop` scene; seam rules in `${CLAUDE_SKILL_DIR}/../../docs/playbook/remotion.md`) — or run with it null. 2. Optional AI hero: `node feeders/comfy/client.mjs hero --project --brand [--seed N]` (needs ComfyUI Desktop up + a checkpoint; exit 2 = fine, procedural fallback is spec-compliant). Read the hero PNG: dark, on-brand hue, no text/people/off-brand colors; re-roll seeds until it passes. Prompt lives in the client; adapt per brand. 3. Run the brand's statics renderer with `--project `; it writes product-owned props/output and passes the workspace public directory to Remotion. The AnimatedOG loop is SEAMLESS by construction — if you touch the template, every animated value must stay periodic over the full duration (loop rules in `${CLAUDE_SKILL_DIR}/../../docs/playbook/remotion.md`). 4. Verify one still (lockup sharp, CTA in the brand's positive color) + readme.gif legibility (extract frame 0 via ffmpeg if the gif exceeds Read limits). 5. Size check: GIFs are heavy; prefer og.mp4 for social embeds. For READMEs going to GitHub keep the gif under ~10MB (`--every-nth-frame=3`, lower `--scale`). 6. Run `verify-og-wired --project ` after deployment, then deliver per marketing-studio. This is a live wiring check, not permission to deploy.