← ClaudeAtlas

generate-videolisted

Generate short-form video via a 5-stage human-in-the-loop pipeline — concept, first frame, last frame, motion, final render — with approval at every stage before credits are spent. Triggers on "/generate-video", "make a video", "video for P12", "animate this image", "reel from this", "image to video", "video post", or any calendar post whose content_type is video, reel, or story. Models and prices are resolved live, never hardcoded; sound costs extra — quote it first.
teachskillofskills-ai/SocialForge-techshu · ★ 0 · Code & Development · score 76
Install: claude install-skill teachskillofskills-ai/SocialForge-techshu
# /socialforge:generate-video — Video Production Kit Generate video production assets through a 5-stage human-in-the-loop pipeline. Each stage requires user approval before advancing. ## Context efficiency Asset-heavy skill. **Grep before Read** the asset catalog (`${CLAUDE_PLUGIN_DATA}/socialforge/brands/<brand>/asset-index.json`) — never list the asset directory. Reference generated images / videos by path, not by loading metadata. Brand profile loads once per session. ## Prerequisites - Credentials must be configured via `/socialforge:setup`: - **Vertex AI** (Nano Banana Pro / Gemini 3 Pro Image, resolved via `latest-image-google`) — used for first-frame and last-frame keyframe generation - **WaveSpeed API** — used for image-to-video generation via Kling v3.0 Pro - Brand profile must be active (`/socialforge:switch-brand` if needed) - Calendar must be parsed (`/socialforge:parse-calendar`) with video posts identified ## The 5-Stage Pipeline ### Stage 1: Video Concept + Script (no API call) Claude generates **2-3 video concept ideas** based on the post brief, brand voice, and platform requirements. Each concept includes: - Working title and hook - Visual narrative arc (opening, middle, close) - Suggested duration and pacing - Tone and style direction The user picks one concept (or requests refinements). Then **fill the script scaffold** (`generate_script` in generate_video.py) from the chosen concept and the post's actual brief, in the brand's voice — every `[F