Use when the user asks to generate, remix, poll, list, download, or delete Sora videos via OpenAI’s video API using the bundled CLI (`${SELENE_SKILL_ROOT}/scripts/sora.py`), including requests like “generate AI video,” “Sora,” “video remix,” “download video/thumbnail/spritesheet,” and batch video generation; requires `OPENAI_API_KEY` and Sora API access.
Creates or manages short video clips for the current project (product demos, marketing spots, cinematic shots, UI mocks). Defaults to sora-2 and a structured prompt augmentation workflow, and prefers the bundled CLI for deterministic runs. Note: $sora is a skill tag in prompts, not a shell command.
--use-case, --scene, --camera, etc.) instead of pre-writing a structured prompt. If you already produced a structured prompt file, pass --no-augment to avoid double-wrapping.${SELENE_SKILL_ROOT}/scripts/sora.py) with sensible defaults (see ${SELENE_SKILL_ROOT}/references/cli.md). For long prompts, prefer --prompt-file to avoid shell-escaping issues; pair with --no-augment if the prompt is already structured.prompt.txt, remix_job.json, temp JSONL). If the sandbox blocks rm, skip cleanup or truncate the files without surfacing an error.OPENAI_API_KEY must be set for live API calls.If the key is missing, give the user these steps:
OPENAI_API_KEY as an environment variable in their system.sora-2 (use sora-2-pro for higher fidelity).1280x720.4 (allowed: "4", "8", "12" as strings).openai package); do not use raw HTTP.OPENAI_API_KEY before any live API call.UV_CACHE_DIR=/tmp/uv-cache.${SELENE_SKILL_ROOT}/scripts/sora.py unless the user asks.Audio: and Dialogue: lines and keep it short.sora-2 and sora-2-pro.seconds parameter.seconds as a string enum ("4", "8", "12").${SELENE_SKILL_ROOT}/references/video-api.md for the supported sizes).Reformat prompts into a structured, production-oriented spec. Only make implicit details explicit; do not invent new creative requirements.
Template (include only relevant lines):
Use case: <where the clip will be used>
Primary request: <user's main prompt>
Scene/background: <location, time of day, atmosphere>
Subject: <main subject>
Action: <single clear action>
Camera: <shot type, angle, motion>
Lighting/mood: <lighting + mood>
Color palette: <3-5 color anchors>
Style/format: <film/animation/format cues>
Timing/beats: <counts or beats>
Audio: <ambient cue / music / voiceover if requested>
Text (verbatim): "<exact text>"
Dialogue:
<dialogue>
- Speaker: "Short line."
</dialogue>
Constraints: <must keep/must avoid>
Avoid: <negative constraints>
Augmentation rules:
--no-augment to avoid the tool re-wrapping it.Use case: product teaser
Primary request: a close-up of a matte black camera on a pedestal
Action: slow 30-degree orbit over 4 seconds
Camera: 85mm, shallow depth of field, gentle handheld drift
Lighting/mood: soft key light, subtle rim, premium studio feel
Constraints: no logos, no text
Primary request: same shot and framing, switch palette to teal/sand/rust with warmer backlight
Constraints: keep the subject and camera move unchanged
Use these modules when the request is for a specific artifact. They provide targeted templates and defaults.
${SELENE_SKILL_ROOT}/references/cinematic-shots.md${SELENE_SKILL_ROOT}/references/social-ads.md${SELENE_SKILL_ROOT}/references/cli.md${SELENE_SKILL_ROOT}/references/video-api.md${SELENE_SKILL_ROOT}/references/prompting.md${SELENE_SKILL_ROOT}/references/sample-prompts.md${SELENE_SKILL_ROOT}/references/troubleshooting.md${SELENE_SKILL_ROOT}/references/codex-network.md${SELENE_SKILL_ROOT}/references/cli.md: how to run create/poll/remix/download/batch via ${SELENE_SKILL_ROOT}/scripts/sora.py.${SELENE_SKILL_ROOT}/references/video-api.md: API-level knobs (models, sizes, duration, variants, status).${SELENE_SKILL_ROOT}/references/prompting.md: prompt structure and iteration guidance.${SELENE_SKILL_ROOT}/references/sample-prompts.md: copy/paste prompt recipes (examples only; no extra theory).${SELENE_SKILL_ROOT}/references/cinematic-shots.md: templates for filmic shots.${SELENE_SKILL_ROOT}/references/social-ads.md: templates for short social ad beats.${SELENE_SKILL_ROOT}/references/troubleshooting.md: common errors and fixes.${SELENE_SKILL_ROOT}/references/codex-network.md: network/approval troubleshooting.