| name | scrollclaw | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| description | Router and orchestrator for AI UGC video production. Use for broad outcome requests like making a UGC video or running a campaign; it routes step-specific requests to the right sub-skill and can drive the full pipeline from persona research through virality-scored video. | |||||||||||||||||
| metadata |
|
AI-generated UGC videos that look like a real person pulled out their phone and started talking. Brands pay $500–$5,000 per UGC video from human creators. This pipeline produces them for $5–$50 in API costs.
Brand name + URL
↓
/brand-setup → One-time brand research + file generation (Step 0)
↓
Brand + Audience
↓
/persona → Persona research, creator profiles, approved script
/first-frame → Canonical face image (Nano Banana 2)
/animate → A-roll talking head clips (Sora 2 i2v)
/b-roll → Environment + product shots (Kling 3)
/assemble → Stitch + unified voice + post-production + captions
/score → Virality gate (70+ to publish)
↓
Scroll-stopping UGC video
Core doctrine: Read _system/SKILL.md for format selection, anti-patterns, taste calibration, and pipeline routing rules.
Brand & campaign context: Read _system/references/brand-campaign-context.md for workspace structure, context matrix, and persistence protocol.
When the user invokes ScrollClaw or asks about UGC video, route to the right sub-skill based on where they are in the pipeline:
| User says / wants | Route to |
|---|---|
| "Set up a brand" / "Initialize brand" / "New brand" / "Brand research" | /brand-setup — one-time, before first campaign |
| "Make me a UGC video" / "Start a campaign" / "I need ugc" | /persona — start at the beginning |
| "Research this brand" / "Create a creator profile" / "Write a script" | /persona |
| "Generate the first frame" / "Make a face image" / "Nano Banana" | /first-frame |
| "Animate this" / "Make a talking head clip" / "Sora" / "A-roll" | /animate |
| "Generate B-roll" / "Product shot" / "Kling" | /b-roll |
| "Stitch the clips" / "Add captions" / "Post-production" / "Assemble" | /assemble |
| "Score this video" / "Is this ready to publish?" | /score |
| "Run the full pipeline" | Start at /persona, proceed sequentially |
Broad outcome requests stay at the root. Start the pipeline instead of asking the user to pick a sub-skill.
Stage-specific requests bypass the root and go straight to that sub-skill.
If the user isn't sure where they are, ask: "Where are you in the pipeline?" and show them the 6 steps above.
- Required: brand/product context plus a campaign goal, or an existing campaign workspace if resuming
- Optional: format preference, creator profile, screen recordings/screenshots, existing clips, campaign slug
- Format: raw text, URL, file paths, or
workspace/campaigns/<slug>/files - Source: user prompt, campaign brief, and upstream
workspace/brand/files
- Produces: either a route decision to the correct stage or a sequential full-pipeline run starting at
/persona - Format: inline orchestration plus saved workspace artifacts produced by sub-skills
- Default behavior: broad requests like "make me a UGC video" or "start a campaign" start at
/personaand continue stage by stage until blocked by missing inputs, an approval gate, or a dependency failure - Downstream use:
/persona,/first-frame,/animate,/b-roll,/assemble, and/score
- Pre-conditions: workspace exists or can be initialized before generation steps begin
- Post-conditions: the user knows the current stage, the next stage, and which workspace artifacts were produced
- Failure checks: do not leave the user at a vague route; if blocked, name the exact missing file, asset, or approval needed
First campaign:
- Set up brand context (one-time per brand):
- Recommended: Run
/brand-setupwith your brand name + URL — it researches and generates all three brand files automatically - Alternative: Copy templates from
assets/and fill in manually (seeassets/for templates)
- Recommended: Run
- Initialize workspace:
CAMPAIGN="my-campaign" mkdir -p workspace/campaigns/$CAMPAIGN/{creators,scripts,frames,clips,scores} cp assets/campaign-brief-template.md workspace/campaigns/$CAMPAIGN/brief.md touch workspace/campaigns/$CAMPAIGN/output-log.md touch workspace/campaigns/$CAMPAIGN/learnings.md
- Fill in
workspace/campaigns/$CAMPAIGN/brief.md - Run
/persona→/first-frame→/animate→/b-roll→/assemble→/score
Check setup first:
bash scripts/check-deps.sh| Key | Required | Used by |
|---|---|---|
FAL_KEY |
Yes | Sora 2 (A-roll) + Kling 3 (B-roll) |
REPLICATE_API_TOKEN |
Yes | Nano Banana (first frames) |
OPENROUTER_API_KEY |
Recommended | Gemini (virality scoring) |
ELEVENLABS_API_KEY |
Optional | Multi-clip voice consistency (S2S) |
| Format | Duration | Best for |
|---|---|---|
| Talking Head | 15-25s | Product review, honest take |
| Hook Face + Demo | 15s max | App/tool demos |
| Podcast Clip | 8-20s | Authority, credibility |
| Wall of Text | 4-8s | Hot take, faceless |
| Visual Transformation | 10-25s | Before/after concept |
| Hybrid Transformation | 20-30s | Complex mechanism explanation |
- Sora's native voice > ElevenLabs TTS for talking head. TTS sounds fake.
- B-roll must be environment-matched. Extract a frame from A-roll → feed to Kling.
- Captions go LAST — after post-production. Grain degrades caption pills.
- AI cannot generate realistic app screens. Use real screenshots.
- ~1 in 3 Sora generations have hand artifacts. Reroll, don't fix the prompt.
- Multi-frame formats: chain from frame 1. Parallel generation causes face drift.
For full doctrine, format blueprints, anti-patterns, and taste calibration: _system/SKILL.md