Фабрика affiliate-лендингов
Автономная сборка статичных HTML-сайтов под казино-офферы для гео FR · AU · NZ · DE. Заказчик кидает 4 параметра — команда из 39 агентов выкатывает готовый лендинг за 5–15 минут.
📑 Содержание
- TL;DR
- Цель проекта
- Входные данные от заказчика
- Автономный пайплайн
- Команды запуска
- Архитектура папок
- Технологический стек
- HTML-шаблон с плейсхолдерами
- Gemini-интеграция
- SEO + Compliance по гео
- Quality Gates (приёмка)
- Отчёт пайплайна
- Эволюция: от локалки к проду
- Roadmap
- Что нужно от заказчика сейчас
- Принципы работы команды
0TL;DR — что должно происходить
Заказчик кидает в чат одну строку:
@pm-admin сделай лендос domain=luckyspin-fr.com geo=FR offer=LuckySpin ref=lucky8fr.fr
Через 5–15 минут в папке D:\claw\landings\sites\luckyspin-fr.com\ лежит готовый комплект:
index.html— открываемый локально лендинг под FR-гео в стилеlucky8fr.frassets/img/*— Hero-картинка, логотип, иконки фич, превью слотов (всё сгенерено Gemini 3.1 Flash Image)seo/—robots.txt,sitemap.xml,schema.jsonBRIEF.md— заполненный бриф (что заказывали)REPORT.md— отчёт пайплайна: что сделал каждый агент, Lighthouse-score, скриншот превью
Заказчик открывает index.html двойным кликом, смотрит, говорит «ок» или «переделай вот это» — и идёт к следующему. Ноль ручной возни.
1Цель проекта
Запустить сетку статичных affiliate-лендингов под казино-офферы в нескольких гео. Сайты должны:
- Визуально походить на конкурентов из списка (см.
_competitors/COMPETITORS.md) - Конвертировать клик → регистрацию → депозит через affiliate-tracker
- Делаться за минуты, а не за дни — массовое производство
- Работать без билда — открываются как
index.htmlлокально - Деплоиться на любой статичный хостинг (Vercel · Cloudflare Pages · VPS)
Гео-таргеты
France
12 конкурентов в списке. Регулятор ANJ. Запреты на «gratuit», «garanti».
Australia
10 конкурентов. Терминология «pokies» вместо «slots». Гео-запрет IGA.
New Zealand
4 конкурента. Возрастной gate 20+ (по бренду).
Germany
1 cross-brand reference (win-airlines.com.de). GGL + OASIS-disclaimer.
2Входные данные от заказчика
Чтобы запустить пайплайн, нужно 4 параметра:
| Параметр | Что это | Пример |
|---|---|---|
domain | Домен или рабочее имя сайта | luckyspin-fr.com |
geo | Гео-таргет (FR / AU / NZ / DE) | FR |
offer | Бренд казино из _shared/offers/ | LuckySpin |
ref | Сайт-конкурент-референс (из списка) | lucky8fr.fr |
Опциональные параметры (с дефолтами)
| Параметр | Дефолт | Override-пример |
|---|---|---|
type | one-pager | multi-offer · cross-brand |
palette | по гео: dark-gold (FR), red-black (AU) | neon-purple |
mood | автодетект из ref | vegas-neon |
bonus | из _shared/offers/<offer>.json | 200% до 1000€ + 100FS |
cta_text | автогенерация под язык | Spin now |
lang | автоматом из geo | de-DE |
Если оффер новый и его ещё нет в _shared/offers/ — заказчик кидает affiliate-ссылку и параметры бонуса, агент content-manager автоматом создаёт JSON-карточку. Один раз — потом этот оффер можно использовать для любых лендингов.
3Автономный пайплайн
12 шагов. У каждого — свой агент. Заказчик ничего не делает, кроме старта.
Получение задачи pm-admin
Парсит команду заказчика, валидирует параметры, создаёт папку sites/<domain>/, копирует туда BRIEF_TEMPLATE.md → BRIEF.md и предзаполняет известное. Если каких-то данных не хватает — не спрашивает, а ставит дефолты и фиксит в REPORT.md.
Парсинг референса data-parser
Заходит на https://<ref> через Puppeteer (headless Chrome). Снимает: HTML, скриншоты desktop + mobile, цвета (top-5 палитры), шрифты, структуру H1/H2, список секций по порядку, тексты CTA, FAQ-блок (если есть). Сохраняет в _references/screenshots/<geo>/<ref>/ + summary.json.
Анализ оффера content-manager
Читает _shared/offers/<offer>.json (или создаёт его, если новый). Валидирует: tracking URL рабочий, бонус-параметры заполнены, гео-restrict не конфликтует с geo.
Дизайн-структура design-landing
На основе summary.json от парсера решает порядок секций для нашего сайта. Дефолтный шаблон под казино:
1. 18+ strip 7. Steps (как начать)
2. Sticky header 8. Payments
3. Hero + бонус-карточка 9. FAQ
4. Top games 10. Big CTA
5. Features (3-4 иконки) 11. Footer
6. Trust badges 12. Floating mobile CTA + cookie
Возвращает STRUCTURE.json — какие секции, в каком порядке, с какими пропсами.
Генерация визуала gemini-nano-banana-2
Это критическая часть. Подробности в разделе №8. Генерит через Gemini 3.1 Flash Image API:
- Hero-картинка (16:9, 1600×900) — сцена под бренд/настроение
- Логотип бренда (1:1, transparent PNG, 512×512)
- 6 game-thumbnails (3:4, 480×640) — в стиле слотов из топа
- 4 иконки фич (1:1, 256×256, transparent) — стиль flat/glass
Все картинки сохраняются в sites/<domain>/assets/img/.
Копирайт под гео seo-copywriter
Пишет все тексты лендинга на языке geo с локальной терминологией:
- FR «casino en ligne», «bonus de bienvenue», избегаем «gratuit» / «garanti»
- AUNZ «pokies» вместо «slots», «mate-tone» в CTA
- DE «Bonusangebot», формальный «Sie», без слов вне Glücksspielstaatsvertrag
Возвращает COPY.json со всеми строками: H1, под-H1, бонус-headline, 4 feature-текста, 3 step-текста, 5 FAQ Q+A, footer disclaimer.
Сборка HTML dev-frontend
Берёт компонент-шаблон из _shared/templates/casino-onepager.html, пропсит в него: STRUCTURE.json + COPY.json + ассеты + tracking URL. Inline CSS, без внешних зависимостей кроме Google Fonts (preconnect). Цель: один self-contained файл, < 50 KB, mobile-first.
SEO-обвязка seo-technical
Создаёт:
<head>meta: title (≤60), description (≤155), OpenGraph, Twitter Card, theme-colorseo/robots.txtиseo/sitemap.xml- Schema.org JSON-LD:
Organization + FAQPage + BreadcrumbList hreflang-альтернаты, если решено делать мультиязычно
Локализация localization-i18n
Проверяет: формат валюты (€ перед/после в зависимости от locale), формат даты, RTL не нужен. Если есть мультиязычные версии — синхронизация ICU-строк.
Compliance-обвязка legal-compliance
По гео автоматом подставляет:
- FR ссылка на
joueurs-info-service.fr, телефон09 74 75 13 13, 18+ - AU ссылка на
gamblinghelponline.org.au, BetStop badge, 18+ - NZ ссылка на
gamblinghelpline.co.nz, 20+ или 18+ по бренду - DE ссылка на
bzga.de, OASIS-disclaimer, 18+
Cookie-banner-текст под локаль.
Аудит дизайна design-auditor
Проверяет: контраст WCAG AA (4.5:1 для текста, 3:1 для UI), типографика (line-height, max-width абзаца), spacing (8px-grid), консистентность. Возвращает список нарушений → dev-frontend правит.
QA + Lighthouse dev-tester
Открывает index.html через Puppeteer, делает скриншоты desktop + mobile + tablet, гоняет Lighthouse, ловит broken links, missing alts, console errors. Цель: Performance 90+, Accessibility 90+, SEO 95+, Best Practices 90+.
Финальный отчёт pm-admin
Создаёт sites/<domain>/REPORT.md с прогрессом каждого шага, lighthouse-цифрами, ссылкой на скриншот превью. См. раздел 11.
4Команды запуска
4.1 Базовая (один лендос)
@pm-admin сделай лендос domain=luckyspin-fr.com geo=FR offer=LuckySpin ref=lucky8fr.fr
4.2 С опциональными параметрами
@pm-admin сделай лендос
domain=primaplay-au.com
geo=AU
offer=PrimaPlay
ref=primaplaycasino-au.com
palette=red-black
type=multi-offer
mood=vegas-neon
4.3 Массово (батчем)
@pm-admin сделай батч лендосов из batch.csv
Где batch.csv:
domain,geo,offer,ref,palette,type
luckyspin-fr.com,FR,LuckySpin,lucky8fr.fr,dark-gold,one-pager
primaplay-au.com,AU,PrimaPlay,primaplaycasino-au.com,red-black,one-pager
mafia-nz.org,NZ,MafiaCasino,mafia-casino.nz,purple-noir,one-pager
pm-admin запускает пайплайн параллельно по всем строкам (rate-limit на Gemini — макс 4 в параллель).
4.4 Только переделать секцию
@pm-admin переделай hero у luckyspin-fr.com mood=neon-purple
Запускается только Gemini → dev-frontend (re-injection). Остальное не трогаем.
4.5 Cross-brand (как win-airlines.com.de)
@pm-admin сделай cross-brand лендос
domain=top-casinos-de.com
geo=DE
offers=BrandA,BrandB,BrandC,BrandD,BrandE
ref=win-airlines.com.de
5Архитектура папок
D:\claw\landings\
├── README.md
├── TZ.md / TZ.html ← мастер-спецификация
│
├── _brief/
│ └── BRIEF_TEMPLATE.md ← шаблон брифа на сайт
│
├── _competitors/
│ └── COMPETITORS.md ← каталог рефа по гео
│
├── _references/
│ └── screenshots/<geo>/<domain>/
│ ├── desktop.png
│ ├── mobile.png
│ └── summary.json ← вывод data-parser
│
├── _shared/
│ ├── offers/<brand>.json ← affiliate-карточки
│ ├── templates/
│ │ ├── casino-onepager.html ← мастер-шаблон HTML
│ │ ├── casino-multi-offer.html
│ │ └── casino-cross-brand.html
│ ├── components/ ← переиспользуемые HTML-блоки
│ ├── palettes/<name>.css ← готовые палитры
│ └── locales/<geo>.json ← compliance-тексты, ссылки помощи
│
└── sites/<domain>/ ← каждый лендинг
├── index.html ← результат
├── BRIEF.md ← заполненный бриф
├── REPORT.md ← отчёт пайплайна
├── assets/
│ ├── img/ ← Gemini-картинки
│ └── screenshot.png ← превью самого лендинга
└── seo/
├── robots.txt
├── sitemap.xml
└── schema.json
6Технологический стек
🌐 Фронт
HTML5 + inline CSS · zero build · vanilla JS только для <details> и cookie-banner (≤50 строк) · Google Fonts через preconnect · картинки WebP с PNG-fallback.
⚙️ Pipeline
Node.js 24 для скриптов · Puppeteer (парсинг + скриншоты + Lighthouse) · Gemini 3.1 Flash Image API · sharp (resize + WebP).
☁️ Хостинг
Локалка → Vercel (preview) → Vercel (prod) или Cloudflare Pages · DNS на Cloudflare · BotID + Routing Middleware от Vercel.
Чего нет и почему
- React / Next.js / Tailwind CSS — лендинги статичные, билд только удлиняет время и режет Lighthouse Performance
- Внешних JS-библиотек — критично для Performance score, влияет на конверсию
- Аналитики на старте — добавляем GA4 / Microsoft Clarity опционально через ENV-переменную
7HTML-шаблон с плейсхолдерами
Файл _shared/templates/casino-onepager.html — это HTML с плейсхолдерами вида {{key}}, которые заполняются из STRUCTURE.json + COPY.json + offer.json.
Список плейсхолдеров
| Плейсхолдер | Источник | Пример |
|---|---|---|
{{lang}} | geo | fr |
{{title}} | seo-copywriter | LuckySpin Casino — 500€ + 200 FS |
{{description}} | seo-copywriter | … |
{{brand_name}} | offer | LuckySpin |
{{brand_logo}} | gemini | assets/img/logo.png |
{{hero_image}} | gemini | assets/img/hero.webp |
{{h1}} | seo-copywriter | Doublez votre dépôt avec… |
{{bonus_headline}} | offer | 100% jusqu'à 500€ + 200 FS |
{{bonus_min_dep}} | offer | 20€ |
{{bonus_code}} | offer | WELCOME500 |
{{cta_text}} | seo-copywriter | Réclamer le bonus |
{{cta_url}} | offer.tracking | https://aff.tracker/?c=… |
{{games[]}} | gemini + copy | массив из 6 объектов {img, name, tag} |
{{features[]}} | gemini + copy | массив из 4 {icon, title, text} |
{{steps[]}} | seo-copywriter | массив из 3 {num, title, text} |
{{payments[]}} | offer | ["VISA","MC","Skrill"…] |
{{faq[]}} | seo-copywriter | массив из 5 {q, a} |
{{compliance.18plus}} | locales/<geo> | Jeu réservé aux personnes majeures |
{{compliance.helpline}} | locales/<geo> | 09 74 75 13 13 |
{{compliance.help_url}} | locales/<geo> | https://joueurs-info-service.fr |
{{schema_jsonld}} | seo-technical | сериализованный JSON-LD |
Уже работающий пример: sites/_demo-fr/index.html — открывается локально, показывает что должно получиться. Соберётся из шаблона, если прогнать через пайплайн с параметрами FR/LuckySpin/lucky8fr.fr.
8Gemini-интеграция (визуал)
gemini-nano-banana-28.1 Промпты — точные шаблоны
A) Hero-image (1600×900, JPG/WebP)
Premium casino visual for "{{brand_name}}", {{geo}}-targeted audience.
Setting: {{mood}} (e.g., "luxurious dark casino floor with golden roulette wheel,
cinematic lighting, neon accents in {{palette_primary}}").
Style: photorealistic, high-detail, dramatic depth-of-field.
Composition: cinematic 16:9, leave 30% empty on right for text overlay.
Mood: aspirational, exciting, trustworthy.
No text in image. No people's faces. No real brand logos.
Resolution: 1600×900.
B) Logo (512×512, PNG transparent)
Minimalist casino logo for brand "{{brand_name}}".
Style: badge-style emblem, modern serif typography, gold and {{palette_secondary}}.
Elements allowed: stars, crowns, dice, cards, simple geometric shapes.
No photographic elements. No human figures.
Background: fully transparent.
Resolution: 512×512.
C) Game thumbnail (480×640, PNG) × 6
Цикл по 6 темам слотов: Egyptian / Sweet Bonanza / Wolf / Pirate / Aztec / Olympus.
Vertical slot machine thumbnail in {{theme}} theme.
Style: vibrant illustration, bright saturated colors, mobile game aesthetic.
Composition: 3:4 portrait, centered hero element with thematic background.
No text. No real game logos.
Resolution: 480×640.
D) Feature icons (256×256, PNG transparent) × 4
4 иконки: speed (молния), shield (щит), mobile (телефон), headset (наушники).
Flat glass icon, "{{icon_concept}}", in {{palette_secondary}} on transparent background.
Style: glassmorphism, soft glow, premium UI quality.
No text. Single object centered. 1:1 aspect ratio.
Resolution: 256×256.
8.2 Параметры API
{
model: "gemini-3.1-flash-image",
generationConfig: {
responseMimeType: "image/png",
candidateCount: 1,
safetySettings: "default"
}
}
8.3 Хранение и оптимизация
- Gemini выдал PNG → сохранить как
assets/img/<role>-original.png sharp→ ресайз и конверт в WebP →assets/img/<role>.webp- PNG-fallback для старых браузеров через
<picture>с<source srcset="*.webp">
8.4 Кэш и переиспользование
Кэш: если оффер уже использовал логотип/иконки на другом лендинге — не перегенерим, переиспользуем. Логотип бренда стабилен, иконки фич универсальны. Перегенерится только Hero-image (он зависит от mood и palette).
9SEO + Compliance по гео
9.1 Файл локали — единый источник правды
_shared/locales/<geo>.json — все compliance-данные, валюты, запреты в одном месте.
{
"FR": {
"lang": "fr-FR",
"currency": "EUR",
"currency_position": "after",
"min_age": 18,
"helpline_phone": "09 74 75 13 13",
"helpline_url": "https://www.joueurs-info-service.fr/",
"regulator": "ANJ",
"forbidden_words": ["gratuit", "garanti", "sans risque", "argent facile"],
"cta_examples": ["Jouer", "Réclamer le bonus", "S'inscrire"],
"cookie_banner_text": "Ce site utilise des cookies…",
"responsible_gambling_blurb": "Le jeu peut être addictif. Jouez avec modération."
},
"AU": {
"lang": "en-AU",
"currency": "AUD",
"min_age": 18,
"helpline_url": "https://www.gamblinghelponline.org.au/",
"regulator": "ACMA",
"slot_term": "pokies",
"forbidden_words": ["risk-free", "guaranteed", "win every time"]
},
"NZ": {
"lang": "en-NZ",
"currency": "NZD",
"min_age": 20,
"helpline_url": "https://www.gamblinghelpline.co.nz/",
"slot_term": "pokies"
},
"DE": {
"lang": "de-DE",
"currency": "EUR",
"currency_position": "after",
"min_age": 18,
"helpline_url": "https://www.bzga.de/",
"regulator": "GGL (Glücksspielbehörde)",
"forbidden_words": ["risikolos", "garantiert", "100% sicher"],
"extra_disclaimer": "Spielen kann süchtig machen. OASIS-Sperrsystem verfügbar."
}
}
9.2 Schema.org (минимум на лендос)
[
{"@type": "Organization", "name": "{{brand_name}}", "url": "https://{{domain}}"},
{"@type": "FAQPage", "mainEntity": [...{{faq[]}}]},
{"@type": "BreadcrumbList", "itemListElement": [...]}
]
9.3 Запреты по локалям
ANJ
Нельзя слова gratuit, garanti. Title не должен содержать «bonus de dépôt» напрямую.
GGL
Запрещено акцентировать «легко выиграть», обязателен OASIS-disclaimer.
IGA
Запрещён маркетинг online casino-pokies на резидентов AU. Affiliate-сайты живут через офшор.
DIA
Возрастной gate 20+ для некоторых брендов вместо 18+.
Агент legal-compliance подставляет всё это автоматом. Заказчику ничего знать не нужно — запреты, телефоны помощи, disclaimer'ы кладутся правильно для каждого гео.
10Quality Gates (приёмка)
Перед тем как пометить лендос «готов», pm-admin собирает чек-лист.
| Гейт | Минимум | Кто проверяет |
|---|---|---|
| Lighthouse Performance | ≥90 | dev-tester |
| Lighthouse Accessibility | ≥90 | dev-tester |
| Lighthouse SEO | ≥95 | dev-tester |
| Lighthouse Best Practices | ≥90 | dev-tester |
| HTML вес (без картинок) | ≤50 KB | dev-tester |
Все картинки имеют alt | 100% | design-auditor |
| Контраст текста WCAG AA | 4.5:1 | design-auditor |
| Tracking-ссылка кликабельна | ✓ | dev-tester |
| 18+ блок присутствует | ✓ | legal-compliance |
| Helpline-ссылка для гео | ✓ | legal-compliance |
| Schema.org валидна | ✓ | seo-technical |
| Title ≤60, Description ≤155 | ✓ | seo-technical |
| Mobile screenshot не сломан | ✓ | dev-tester |
| Forbidden_words в копии = 0 | 100% | legal-compliance |
Если хоть один гейт красный — pm-admin отправляет на доработку соответствующему агенту, не дёргая заказчика. Доработка делается до тех пор, пока все гейты не зелёные.
11Отчёт пайплайна
Шаблон файла sites/<domain>/REPORT.md, который генерится автоматом:
# Report — luckyspin-fr.com
**Started:** 2026-05-05 14:32:01
**Finished:** 2026-05-05 14:39:22
**Duration:** 7m 21s
## Pipeline
| # | Agent | Status | Duration | Notes |
|---|----------------------|--------|----------|--------------------------------------|
| 0 | pm-admin | ✅ | 0:02 | brief filled, defaults applied |
| 1 | data-parser | ✅ | 0:38 | lucky8fr.fr → 12 sections, dark+gold |
| 2 | content-manager | ✅ | 0:04 | LuckySpin offer loaded |
| 3 | design-landing | ✅ | 0:11 | structure: 12 sections |
| 4 | gemini-nano-banana-2 | ✅ | 2:48 | 12 images, 480 KB total, $0.48 |
| 5 | seo-copywriter | ✅ | 0:32 | FR copy, 0 forbidden words |
| 6 | dev-frontend | ✅ | 0:18 | HTML 18.6 KB |
| 7 | seo-technical | ✅ | 0:09 | meta + schema + sitemap |
| 8 | localization-i18n | ✅ | 0:04 | EUR/€ after, no RTL |
| 9 | legal-compliance | ✅ | 0:06 | FR helpline, joueurs-info-service.fr |
|10 | design-auditor | ⚠️→✅ | 0:21 | 1 contrast issue → fixed |
|11 | dev-tester | ✅ | 1:08 | LH 96/94/98/91 |
## Output
- index.html — 18.6 KB
- assets/img/ — 12 files, 480 KB
- seo/ — robots.txt, sitemap.xml, schema.json
- assets/screenshot.png — 320 KB
## Lighthouse
Performance: **96** · Accessibility: **94** · SEO: **98** · Best Practices: **91**
## Cost
Gemini 3.1 Flash Image: $0.48 · Compute (local): ~$0 · **Total: $0.48**
12Эволюция: от локалки к проду
Stage 1 — локалка сейчас
Лендинги генерятся в D:\claw\landings\sites\. Открываются через Start-Process index.html. Скрипты пайплайна запускаются вручную через @pm-admin.
Stage 2 — Vercel preview +5 дней
Каждая папка sites/<domain>/ становится Vercel-проектом (vercel.ts). vercel deploy создаёт preview URL. Заказчик ревьюит на реальном URL.
Stage 3 — продакшн +2 недели
Привязка реального домена через Cloudflare DNS. vercel --prod. BotID + Routing Middleware от Vercel — фильтр ботов. Edge Config для A/B-тестов CTA.
Stage 4 — система генерации +1 мес
Web-UI (Next.js + shadcn) на internal.claw.tools/landings/new. Форма: domain / geo / offer / ref → кнопка «Сделать». Бэкенд = тот же агентский пайплайн через Vercel Workflow (durable). Дашборд статусов, history, A/B-результаты.
Stage 5 — A/B + автооптимизация +1.5 мес
На каждый лендинг 2-3 варианта Hero/CTA через Gemini. Vercel Edge Config роутит трафик 33/33/34. data-analyst собирает CTR → выигравший вариант становится дефолтом автоматом.
13Roadmap
| Фаза | Срок | Что делаем | Ответственный |
|---|---|---|---|
| 0 | сейчас | Утвердить ТЗ (этот файл), сделать _demo-fr как референс | pm-admin |
| 1 | +1 день | Написать _shared/templates/casino-onepager.html с плейсхолдерами | dev-frontend |
| 2 | +1 день | Написать _shared/locales/{FR,AU,NZ,DE}.json | legal-compliance |
| 3 | +2 дня | Подключить Gemini API через gemini-nano-banana-2 | gemini-nano-banana-2 |
| 4 | +2 дня | Написать pipeline.js — orchestrator от pm-admin | dev-architect |
| 5 | +1 день | Тестовый прогон: domain=test geo=FR offer=LuckySpin ref=lucky8fr.fr | pm-admin |
| 6 | +1 день | Vercel deploy первого лендинга (preview) | dev-deployer |
| 7 | +3 дня | Cross-brand шаблон + batch.csv mode | dev-frontend |
| 8 | +неделя | Web-UI (Stage 4) | dev-frontend + design-ui |
14Что нужно от заказчика прямо сейчас
Чтобы завести первый реальный лендос (не демо), от тебя нужно:
1️⃣ Affiliate-офферы
Кинь 3–5 брендов, по которым работаем. По каждому:
- Brand name (
LuckySpin) - Tracking URL (с
{SUBID}-плейсхолдером) - Бонус-headline (
100% до 500€ + 200 FS) - Min deposit (
20€) - Гео-restrict (если есть)
- Лицензия (Curacao 8048/JAZ — типичная)
2️⃣ Gemini API key
Кинь в .env или скажи где лежит. Агент gemini-nano-banana-2 ждёт переменную окружения GEMINI_API_KEY.
Если ключа нет — могу заказать через AI Studio (бесплатный tier) или подключим Vercel AI Gateway для unified API.
3️⃣ Утверждение демо
Посмотри sites/_demo-fr/index.html:
- визуально ок или переделать?
- какие секции добавить / убрать?
- что не должно быть на наших лендингах?
4️⃣ Первая команда
Когда первые три пункта закрыты, кидай:
@pm-admin сделай лендос
domain=...
geo=...
offer=...
ref=...
И дальше — только смотреть на готовое.
15Принципы работы команды
- Минимум вопросов заказчику — все решения по дефолтам, fallback'и, серые зоны решает команда сама. Заказчик апрувит / корректирует на готовом результате.
- Один источник правды на гео —
_shared/locales/<geo>.json. Compliance-логика не дублируется в коде агентов. - Один источник правды на оффер —
_shared/offers/<brand>.json. Tracking URL и бонус нигде больше не хардкодятся. - Кэш картинок — Gemini-генерации кешируются по паре
(brand, role). Не перегенерим логотипы зря. - Никаких manual-touch финалов — если потребовалась ручная правка, это баг пайплайна → фиксим в шаблоне или агенте, а не в
index.htmlруками. - Каждый лендос → REPORT.md — без отчёта работа не считается завершённой.
- 18+ и helpline — обязательны, никогда не выпиливаем «для скорости».