원클릭으로
scrollclaw-score
Score UGC videos for virality before publishing. 7 criteria, 0-100 each. Only 70+ gets published.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Score UGC videos for virality before publishing. 7 criteria, 0-100 each. Only 70+ gets published.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
One-time brand initialization. Given a brand name and URL, researches the brand and generates the three workspace/brand/ files that the rest of the pipeline reads. Run once per brand before any campaign work.
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.
ScrollClaw system — core doctrine, format selection, pipeline routing, and anti-patterns. Loaded into every UGC conversation.
Assembly stage for UGC videos. Handles stitch mode, post mode, captions mode, or full-assemble mode when the user is explicitly working on finalizing an existing campaign video.
Animate first frames into A-roll talking head clips. Uses Sora 2 via fal.ai (primary) with Kling 3 auto-fallback when Sora is unavailable or sunset.
Generate B-roll environment and product shots with Kling 3 via fal.ai. Environment matching, cut timing, and visual-only clips that play under continuous voice.
| name | scrollclaw-score |
| description | Score UGC videos for virality before publishing. 7 criteria, 0-100 each. Only 70+ gets published. |
| metadata | {"openclaw":{"emoji":"📊","user-invocable":true,"triggers":["score video","virality score","ugc score","rate ugc","video quality check"]}} |
Score every video before publishing. Read references/virality-scoring.md for the full methodology.
7 dimensions, scored 0-100 each:
| Score | Action |
|---|---|
| 70+ | Publish. Ship it. |
| 60-69 | Polish — specific fixes can save it. Identify which dimensions are dragging. |
| Below 60 | Regenerate. Don't polish a bad clip. Go back to the failing stage. |
/first-frame (regenerate canonical face)/persona (restructure script)/persona (better language from research)/assemble (fix captions)/assemble (re-run S2S)| File | Purpose |
|---|---|
workspace/campaigns/<slug>/clips/final-*.mp4 | Video(s) to score |
workspace/campaigns/<slug>/brief.md | Original campaign goals — score against intent, not just virality |
workspace/campaigns/<slug>/persona-research.md | Whether the script language matches real customer language |
| File | Notes |
|---|---|
workspace/campaigns/<slug>/scores/score-<version>.md | Score card with per-dimension breakdown and go/no-go |
workspace/campaigns/<slug>/learnings.md | Append-only — what worked, what didn't, threshold notes |
📊 Score context loaded:
✓ Campaign: ridge-q1
✓ Final clips: 2 (workspace/campaigns/ridge-q1/clips/final-*.mp4)
✓ Brief: workspace/campaigns/ridge-q1/brief.md
✓ Persona research: workspace/campaigns/ridge-q1/persona-research.md
After every score, append to workspace/campaigns/<slug>/learnings.md:
## YYYY-MM-DD — <campaign-slug> <format>
**Score:** <average>/100 (<go/no-go>)
**Dimension breakdown:** Hook <n> | Emotional <n> | Pacing <n> | Captions <n> | Scroll-stop <n> | Completion <n> | Share <n>
**What worked:**
- [specific finding]
**What didn't:**
- [specific finding]
**Remediation:** [if no-go: which skill to route back to and why]
Never overwrite this file. Only append.
/assemble, workspace/campaigns/<slug>/brief.md, and persona-research.mdworkspace/campaigns/<slug>/scores/ plus append-only entries in learnings.mdworkspace/campaigns/<slug>/scores/score-<version>.mdworkspace/campaigns/<slug>/learnings.mdFor campaign batches, score all variants and rank. Publish only the 70+ tier. Below-60 variants get regenerated, not tweaked.
bash scripts/batch-campaign.sh \
--workspace workspace/campaigns/<slug> \
--creators workspace/campaigns/<slug>/creators/ \
--formats "talking-head,pov-demo,podcast-clip" \
--dual-output