| date | learning | source |
|---|---|---|
| 2026-10-06 | Dawn'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-06 | 5 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-06 | Live 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-06 | seedance_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-06 | ad_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-06 | fal 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-06 | Audit: 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-06 | scenes.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-06 | New 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-06 | manifest 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-06 | QA 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-06 | 10-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-06 | scripts/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-06 | Photoreal 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 |
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.