Pipeline Hub

workflow-ugc-automation

Claude-orchestrated batch pipeline for DawnBands AI UGC/video ads: product URL -> brand-dna.json (scripts/brand_dna.py), reference ad -> per-second dissect -> <=15 s scene prompts, one base -> N variants swapping ONE variable (hook / actor / setting / product angle / delivery) with a variants manifest, generation fan-out bound to registry ROLES behind Fish's per-batch spend go, then QA + review sheet + ad-batch-hub staging.

Lane: ugc-omni (every photoreal-people unit, gates G0-G4) / cartoon-h3 / statics / seedance b-roll, picked per format; H3 native voice (yapper) is a side arm only · not built yet: 8 (see below) · source: /Users/ayden/.openclaw/workspace/skills/workflow-ugc-automation

SKILL.mdprocedure.mdsources.mdEvals (7)Learnings (14)
datelearningsource
2026-10-06Dawn's default PDP /products/dawn-morning-recovery-band 302s to /products/dawn-wake-band; <old-handle>.json 404s, so brand_dna.py follows the HTML redirect and reads <canonical>.json. Ad links must use the canonical URL.scripts/brand_dna.py test run, output/brand-dna/dawn-wake-band/brand-dna.json
2026-10-065 of 14 PDP images (hero + 4 colour shots 'display showing 07:48') show a LIT display; never use them as product-in-scene or i2v refs. Unlit ref = knowledge/brands/dawnbands/product-cutout-unlit.png.brand_dna.py lit-display flags
2026-10-06Live PDP price $44.99 (compare $85.00) vs product-truth.md $39.99: price test since 10-04. Offer lines take the live price; product-truth is Fish's to update.brand_dna.py warning; project_dawn_price_test_2026-10-04
2026-10-06seedance_broll_runner.py submits paid jobs unless --dry-run (opposite default to omni.py/run.py --spend). Always quote with --dry-run first.scripts/seedance_broll_runner.py argparse
2026-10-06ad_dissector.py returns beats + pacing, not <=15 s generation units; scene chunking is a Claude step until scene_chunker.py is built (needs Fish's go).scripts/ad_dissector.py
2026-10-06fal catalog API: GET https://api.fal.ai/v1/models?limit=100&cursor=... returns {models, next_cursor, has_more}; 1,505 endpoints on 10-06. Monthly refresh + per-category diff feeds registry candidates._MODEL-REGISTRY.md; output/model-catalog/fal-2026-10-06.json
2026-10-06Audit: the yapper chain-plan/keyframes/render lane listed as built is the exact overbuild Fish closed 10-05; marked CLOSED. Provider conflicts surfaced, not resolved: fal default vs Higgsfield-only seedance runner + vo-broll 9-15; ugc-omni on kie; omni nbp default arm vs NBP retirement. Added gate-6b draft->final step and the no-generated-hand-on-band rule; $WS was undefined in procedure §5.audit 2026-10-06; _FORMAT-CORE.md §4 6b; skills/vo-broll/SKILL.md; scripts/ugc_omni/omni.py
2026-10-06scenes.json units carry ref_map (one job per ref) and seam_out (cut|stated); prompts: one action + one camera per shot, same subject noun, critical first, ~60-100 words, positive constraints, clean-footage line. Not adopted: cinematic quality suffix on UGC, 2-4 variants per prompt, blur refs.starpop seedance-2-0-prompt-engineering-guide; how-to-use-seedance-2-0-to-make-ads; how-to-use-kling-3-0-to-make-ads; omni-reference-vs-start-end-frames
2026-10-06New variant axis 'delivery': identical words, one delivery change (calm/tired/skeptical/deadpan).starpop how-to-use-seedance-2-0-to-make-ads step 8; how-to-use-kling-3-0-to-make-ads step 11
2026-10-06manifest tracks takes to approved per unit; review.md reports cost per approved variant including failed takes (usable-output rate beats best-clip).starpop seedance-2-5-ads; top-5-ai-video-generators-realistic-ugc
2026-10-06QA order: product -> face/wardrobe -> hands/action -> dialogue -> continuity -> camera -> audio; diagnose one cause (reference/prompt/scope/settings) before any regen.starpop how-to-use-seedance-2-0-to-make-ads step 6-7; how-to-use-kling-3-0-to-make-ads step 8-9
2026-10-0610-06: H3 cartoon batches have a draft stage (run.py --draft, 480P, own dir) and a per-batch quote (run.py --dry-run → tiers.md; h3.py prices fixed). Other lanes still have none.scripts/cartoon_h3/run.py, h3.py, tiers.py (Builder B)
2026-10-06scripts/ugc_tools/ built: scene_chunker.py (script+dissect -> lane-capped scenes.json with prompt skeletons), batch_variation.py (plan/approve/check/log; check exits 2 without a go, on a grown quote or on variants edited after the go), review_sheet.py (manifest -> review.html + review.md, takes-to-approved, cost per approved). Fixed prompt overhead must stay ~45 words or the 60-100 word target breaks.output/ugc-tools-test/; scratch test 10-06
2026-10-06Photoreal units now = ugc-omni G0-G4 (Fish 10-06: THE photoreal engine). Single-take yapper rows route to omni mode oneshot (anchor_every 3, end_frame reveal); H3 native voice = side arm only. Generated band frames allowed only via omni product gate (pick --product >=7/10), real footage fallback; arms gpt2,sd5; no draft step for omni (G2 3x lock = smoke + proof); actor variant = new G1+G2. Base job shape in references/omni-job.example.json.skills/ugc-omni/SKILL.md; Fish 10-06