{"id":"771d6d86-9c1e-4c0f-bab9-c83a03cf76b5","shortId":"XNvPND","kind":"skill","title":"video-shortform","tagline":"Short-form video generation skill — 3-10 second clips for product\nreveals, motion teasers, ambient loops. Defaults to Seedance 2 but\nworks the same with Kling 3 / 4, Veo 3 or Sora 2. Output is one MP4\nsaved to the project folder. When the workspace also ships an\ninteractive-video","description":"# Video Shortform Skill\n\nShort-form (≤ 10s) is the sweet spot for current text-to-video models —\nthey're great at one **shot** with one **idea**, weaker at multi-cut\nnarratives. Plan one shot per call.\n\nSpecial case: `hyperframes-html` is **not** a photoreal text-to-video\nmodel. It's a local HTML-to-MP4 renderer. For that model, do not roleplay\ncinematography or \"real-world\" camera physics. Treat the brief as a motion\ndesign card / title-frame / product interstitial, ask at most one\nclarifying question, then dispatch immediately.\n\n## Resource map\n\n```\nvideo-shortform/\n├── SKILL.md\n└── example.html\n```\n\n## Workflow\n\n### Step 0 — Read the project metadata\n\n`videoModel`, `videoLength` (seconds), `videoAspect`. These are\nhard-locks — clamp the prompt to whatever the chosen model supports\n(Seedance 2 caps at 10s; Kling 4 supports up to 10s + image-to-video;\nVeo 3 supports 8s with audio).\n\n### Step 1 — Plan the shot\n\nWrite the shotlist BEFORE calling the model:\n\n| Slot | Content |\n|---|---|\n| Subject | What's in frame? |\n| Camera | Static / pan / push-in / orbit? |\n| Lighting | Key direction + temperature |\n| Motion | What moves, at what pace? Subject motion vs camera motion. |\n| Sound | Ambient bed? (only if the model supports audio) |\n\nNormally, show this to the user as a one-sentence plan before\ndispatching — they can redirect cheaply.\n\nFor `hyperframes-html`, skip the extra pre-dispatch narration once the\nuser has answered the discovery form. Collapse the plan into the actual\ngeneration prompt and dispatch immediately.\n\n### Step 2 — Compose the prompt\n\nUse the format the upstream model prefers (Seedance: motion + camera +\nmood; Kling: subject + camera + style; Veo: subject + cinematography +\nsound). Bind the project's `videoAspect` and `videoLength` directly to\nthe API parameters; never put them in prose.\n\nFor `hyperframes-html`, write a concise motion-design brief instead of a\ncamera-realism prompt. Focus on subject, layout, palette, motion\ncharacter, and overall tone. Do not spend turns narrating environment\nchecks, missing side files, or \"I am about to dispatch\" status updates.\n\n### Step 3 — Dispatch via the media contract\n\nUse the unified dispatcher — do **not** call provider APIs by hand:\n\n```bash\n\"$OD_NODE_BIN\" \"$OD_BIN\" media generate \\\n  --project \"$OD_PROJECT_ID\" \\\n  --surface video \\\n  --model \"<videoModel from metadata>\" \\\n  --aspect \"<videoAspect from metadata>\" \\\n  --length <videoLength seconds> \\\n  --output \"<short-slug>-<seconds>s.mp4\" \\\n  --prompt \"<assembled shot prompt from Step 2>\"\n```\n\nThe command prints one line of JSON: `{\"file\": {\"name\": \"...\", ...}}`.\nThe bytes land in the project; the FileViewer plays it automatically.\n\n### Step 4 — Hand off\n\nReply with: shot summary, the filename returned by the dispatcher, and\none sentence on what to try if the user wants a variation.\n\nFor `hyperframes-html`, keep the reply especially short: what was\nrendered, the filename, and one concrete variation idea.\n\n## Hard rules\n\n- One shot per turn. Multi-shot timelines belong in a hyperframes /\n  interactive-video skill, not here.\n- Match `videoAspect` exactly — re-renders are slow.\n- Never ship a video without saving the file — the user expects\n  something to play in the file viewer.\n- When the underlying model fails (NSFW filter, content policy,\n  timeout), report the error verbatim. Don't silently retry.\n- Do not claim a render has been \"sent\", \"started\", or \"is running\"\n  unless you have already called `\"$OD_NODE_BIN\" \"$OD_BIN\" media generate`.","tags":["video","shortform","open","design","nexu-io","agent-skills","ai-agents","ai-design","byok","claude","claude-code-for-design","claude-design"],"capabilities":["skill","source-nexu-io","skill-video-shortform","topic-agent-skills","topic-ai-agents","topic-ai-design","topic-byok","topic-claude","topic-claude-code-for-design","topic-claude-design","topic-coding-agents","topic-design-systems","topic-design-tools","topic-desktop-app","topic-figma-alternative"],"categories":["open-design"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/nexu-io/open-design/video-shortform","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add nexu-io/open-design","source_repo":"https://github.com/nexu-io/open-design","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 36607 github stars · SKILL.md body (3,514 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-11T06:52:27.450Z","embedding":null,"createdAt":"2026-05-01T18:52:34.296Z","updatedAt":"2026-05-11T06:52:27.450Z","lastSeenAt":"2026-05-11T06:52:27.450Z","tsv":"'-10':11 '0':161 '1':206 '10s':62,188,194 '2':24,37,185,304 '3':10,31,34,200,391 '4':32,190,449 '8s':202 'actual':297 'alreadi':573 'also':50 'ambient':19,247 'answer':288 'api':337,405 'ask':143 'aspect':423 'audio':204,254 'automat':447 'bash':408 'bed':248 'belong':504 'bin':411,413,577,579 'bind':327 'brief':132,354 'byte':438 'call':93,214,403,574 'camera':128,224,244,317,321,359 'camera-r':358 'cap':186 'card':137 'case':95 'charact':368 'cheapli':272 'check':378 'chosen':181 'cinematographi':123,325 'claim':560 'clamp':175 'clarifi':147 'clip':13 'collaps':292 'command':429 'compos':305 'concis':350 'concret':491 'content':218,547 'contract':396 'current':68 'cut':87 'default':21 'design':136,353 'direct':233,334 'discoveri':290 'dispatch':150,268,282,301,387,392,400,461 'environ':377 'error':552 'especi':482 'exact':516 'example.html':158 'expect':532 'extra':279 'fail':544 'file':381,435,529,538 'filenam':457,488 'fileview':444 'filter':546 'focus':362 'folder':46 'form':6,61,291 'format':310 'frame':140,223 'generat':8,298,415,581 'great':76 'hand':407,450 'hard':173,494 'hard-lock':172 'html':98,113,276,347,478 'html-to-mp4':112 'hyperfram':97,275,346,477,507 'hyperframes-html':96,274,345,476 'id':419 'idea':82,493 'imag':196 'image-to-video':195 'immedi':151,302 'instead':355 'interact':54,509 'interactive-video':53,508 'interstiti':142 'json':434 'keep':479 'key':232 'kling':30,189,319 'land':439 'layout':365 'length':424 'light':231 'line':432 'local':111 'lock':174 'loop':20 'map':153 'match':514 'media':395,414,580 'metadata':165 'miss':379 'model':73,107,119,182,216,252,313,422,543 'mood':318 'motion':17,135,235,242,245,316,352,367 'motion-design':351 'move':237 'mp4':41,115 'multi':86,501 'multi-cut':85 'multi-shot':500 'name':436 'narrat':88,283,376 'never':339,522 'node':410,576 'normal':255 'nsfw':545 'od':409,412,417,575,578 'one':40,78,81,90,146,264,431,463,490,496 'one-sent':263 'orbit':230 'output':38,425 'overal':370 'pace':240 'palett':366 'pan':226 'paramet':338 'per':92,498 'photor':102 'physic':129 'plan':89,207,266,294 'play':445,535 'polici':548 'pre':281 'pre-dispatch':280 'prefer':314 'print':430 'product':15,141 'project':45,164,329,416,418,442 'prompt':177,299,307,361,427 'prose':343 'provid':404 'push':228 'push-in':227 'put':340 'question':148 're':75,518 're-rend':517 'read':162 'real':126 'real-world':125 'realism':360 'redirect':271 'render':116,486,519,562 'repli':452,481 'report':550 'resourc':152 'retri':557 'return':458 'reveal':16 'roleplay':122 'rule':495 'run':569 's.mp4':426 'save':42,527 'second':12,168 'seedanc':23,184,315 'sent':565 'sentenc':265,464 'ship':51,523 'short':5,60,483 'short-form':4,59 'shortform':3,57,156 'shot':79,91,209,454,497,502 'shotlist':212 'show':256 'side':380 'silent':556 'skill':9,58,511 'skill-video-shortform' 'skill.md':157 'skip':277 'slot':217 'slow':521 'someth':533 'sora':36 'sound':246,326 'source-nexu-io' 'special':94 'spend':374 'spot':66 'start':566 'static':225 'status':388 'step':160,205,303,390,448 'style':322 'subject':219,241,320,324,364 'summari':455 'support':183,191,201,253 'surfac':420 'sweet':65 'teaser':18 'temperatur':234 'text':70,104 'text-to-video':69,103 'timelin':503 'timeout':549 'titl':139 'title-fram':138 'tone':371 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-design' 'topic-byok' 'topic-claude' 'topic-claude-code-for-design' 'topic-claude-design' 'topic-coding-agents' 'topic-design-systems' 'topic-design-tools' 'topic-desktop-app' 'topic-figma-alternative' 'treat':130 'tri':468 'turn':375,499 'under':542 'unifi':399 'unless':570 'updat':389 'upstream':312 'use':308,397 'user':260,286,471,531 'variat':474,492 'veo':33,199,323 'verbatim':553 'via':393 'video':2,7,55,56,72,106,155,198,421,510,525 'video-shortform':1,154 'videoaspect':169,331,515 'videolength':167,333 'videomodel':166 'viewer':539 'vs':243 'want':472 'weaker':83 'whatev':179 'without':526 'work':26 'workflow':159 'workspac':49 'world':127 'write':210,348","prices":[{"id":"e1576af2-fa3b-4607-bd8e-45900d1365df","listingId":"771d6d86-9c1e-4c0f-bab9-c83a03cf76b5","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"nexu-io","category":"open-design","install_from":"skills.sh"},"createdAt":"2026-05-01T18:52:34.296Z"}],"sources":[{"listingId":"771d6d86-9c1e-4c0f-bab9-c83a03cf76b5","source":"github","sourceId":"nexu-io/open-design/video-shortform","sourceUrl":"https://github.com/nexu-io/open-design/tree/main/skills/video-shortform","isPrimary":false,"firstSeenAt":"2026-05-01T18:52:34.296Z","lastSeenAt":"2026-05-11T06:52:27.450Z"},{"listingId":"771d6d86-9c1e-4c0f-bab9-c83a03cf76b5","source":"skills_sh","sourceId":"nexu-io/open-design/video-shortform","sourceUrl":"https://skills.sh/nexu-io/open-design/video-shortform","isPrimary":true,"firstSeenAt":"2026-05-07T20:43:03.093Z","lastSeenAt":"2026-05-07T22:41:57.310Z"}],"details":{"listingId":"771d6d86-9c1e-4c0f-bab9-c83a03cf76b5","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"nexu-io","slug":"video-shortform","github":{"repo":"nexu-io/open-design","stars":36607,"topics":["agent-skills","ai-agents","ai-design","byok","claude","claude-code-for-design","claude-design","coding-agents","design-systems","design-tools","desktop-app","figma-alternative","generative-ai","hermes-agent","local-first","nextjs","no-code","prototyping","ui-generator","vibe-coding"],"license":"apache-2.0","html_url":"https://github.com/nexu-io/open-design","pushed_at":"2026-05-11T06:48:43Z","description":"🎨 Local-first, open-source alternative to Anthropic's Claude Design. ⚡ 19 Skills · ✨ 71 brand-grade Design Systems 🖼 Generate web · desktop · mobile prototypes · slides · images · videos · HyperFrames 📦 Sandboxed preview · HTML/PDF/PPTX/MP4 export 🤖 Runs on Claude Code / Codex / Cursor / Gemini / OpenCode / Qwen / Copilot / Hermes / Kimi CLI.","skill_md_sha":"e197ed843801912a70dba0aacafa4fb4c8aa0772","skill_md_path":"skills/video-shortform/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/nexu-io/open-design/tree/main/skills/video-shortform"},"layout":"multi","source":"github","category":"open-design","frontmatter":{"name":"video-shortform","description":"Short-form video generation skill — 3-10 second clips for product\nreveals, motion teasers, ambient loops. Defaults to Seedance 2 but\nworks the same with Kling 3 / 4, Veo 3 or Sora 2. Output is one MP4\nsaved to the project folder. When the workspace also ships an\ninteractive-video / hyperframes skill, prefer composing several short\nshots into a single timeline rather than one long monolithic clip."},"skills_sh_url":"https://skills.sh/nexu-io/open-design/video-shortform"},"updatedAt":"2026-05-11T06:52:27.450Z"}}