# Formats batch · 2026-10-26 · carousels + short videos + Customer/Appointment Engine refresh Brain tasks: t-0c2cb3 (new formats) · t-260f56 (Customer + Appointment Engine refresh). Draft only: nothing uploaded to Meta, nothing published, no live pages edited. Review hub: https://ad-formats-26.funneling.ai (preview Worker `ad-formats-26`, OK/FIX per asset, cloned from the Ad Factory v1 hub). ## What's here | Path | What | |---|---| | `carousels/cars26.py` | 10 carousels, 61 cards (HTML templates on the creative-engine-2026-10-20 card kit) | | `carousels/render26.py` | headless Chrome → `carousels/png/F26_K??_.png` 1080×1080, DOM QA → `qa.json` (all clean) | | `video/specs.py` · `build_video.py` · `render.sh` | 10 HyperFrames compositions × 9:16 + 1:1 → `video/renders/F26_V??__.mp4` (silent, captions burned in) | | `copy.py` → `copy.json`, `COPY.md` | Meta primary text, headline, description, button, UTM URL for all 20 ads | | `copy.py` → `hooks.json`, `HOOKS.md` | 100 hooks, 25 per funnel | | `refresh/` | Customer Engine + Appointment Engine v-next copy and `PROPOSED-CHANGES.md` | | `site/build.py` → `site/worker/public` | review hub; `cd site/worker && npm test && npx wrangler deploy` | ## Concepts (one persona each; diversity over variants, per BSD/Andromeda) | ID | Funnel | Angle | Swipe/winner it borrows the pattern from | |---|---|---|---| | K01 | Session | What 100 verified leads look like | Ad Factory gift family | | K02 | Session | "If you sell a $5,000+ offer" premium callout | Cardone/Platten revenue-band callout carousels | | K03 | Session | ABCDE "save this" teach carousel | education carousel (saves + shares) | | K04 | Session | Native iOS alert "Join Nik's free live session?" | Iman Gadzhi top challenge concept (83 variants) | | K05 | VSL | Two calendars, which week is yours | Brook Hiddink two-calendar image (3 months, 36 variants) | | K06 | VSL | Who builds it (award, stage, results) | ANGLES show-don't-say proof stack | | K07 | VSL | "No offense, but why another agency?" | Iman "no offense" disqualify-the-old-way opener | | K08 | Customer Engine | Time your own lead form reply | set C winner C_COLD, reframed premium | | K09 | Customer Engine | Five places a customer slips away | set C C_EDU3 → list carousel | | K10 | Customer Engine | Your CRM already has clients (reactivation) | factory drop "old-list-revival" | | V01-V04 | Session | iOS alert · $5k callout · ABCDE 15 s · "stay to the end" 6 s GIF loop | as above | | V05-V07 | VSL | award walk · Day 1→7 rail · no-offense strike-through | as above | | V08-V10 | CE / Appointment | 8:47 PM lead · 9:04 PM missed call · CRM revival | set C/D winners | ## Rules applied Claims from `ad-studio/factory-v1/docs/COPY-RULES.md` and `sales/dfy-acquisition/ANGLES.md` only; client first names; "Individual results. Results vary." on every result; no phone-tier prices; no dates/weekdays; no $100 payout line; real photos of Nik only (brand-photos picks: 013, 014, 016, 017, 019, 022, award-stage-group, eight-figure-bookshelf, pink-blazer talking head, city-night silhouette); illustrative mockups labelled; humanizer pass by hand (no em dashes enforced in copy.py). ## Cost $0 (local Chrome + HyperFrames renders, no fal/HeyGen/Codex spend). Cloudflare KV namespace `ad-formats-26` (free tier).