Создать A/B-эксперимент на лендинге — из брифа и гипотезы сгенерировать вариант(ы) на одном URL (inline-сплит, SEO-безопасно), настроить трекинг варианта в Метрике/GA4, завести карточку эксперимента и записи в аудит-журнал, выдать чеклист запуска. Использовать, когда нужно подготовить A/B-тест, вариант под гипотезу или несколько вариантов лендинга для проверки.
Scanned 6/8/2026
Install via CLI
openskills install monthu56/landforge---
name: landing-experiment
description: Создать A/B-эксперимент на лендинге — из брифа и гипотезы сгенерировать вариант(ы) на одном URL (inline-сплит, SEO-безопасно), настроить трекинг варианта в Метрике/GA4, завести карточку эксперимента и записи в аудит-журнал, выдать чеклист запуска. Использовать, когда нужно подготовить A/B-тест, вариант под гипотезу или несколько вариантов лендинга для проверки.
---
# landing-experiment — A/B-эксперименты на лендинге
Готовит A/B-тест по правилам проекта (правила A/B встроены в этот скилл):
варианты живут **на одном URL** (inline-сплит, без клоакинга), вариант прокидывается в
аналитику, всё фиксируется в аудит-журнале. Опирается на готовую A/B-инфраструктуру в
`index.html` (`AB_ACTIVE`, cookie-сплит, `ym(...,'params',{ab:…})`).
## Жёсткие правила
1. **Один URL, без клоакинга (SEO-безопасность).** Роботу и людям — один контент.
Control (вариант A) — в HTML; вариант B применяется JS поверх. Никаких скрытых от роботов
текстов/ключей. Отдельные URL под варианты — только с `canonical`+`noindex` (не наш случай).
2. **Одна переменная за тест** (иначе результат не интерпретировать).
3. **Анти-FOOC и анти-CLS:** вариант фиксируется до первого paint, подмена не двигает вёрстку.
4. **Трафик-гейт:** всерьёз тест запускают после аналитики и **≥100 визитов/день**. Меньше —
фоновый сплит без выводов или честный before/after (пометка «B/A»).
5. **Каждый шаг — в аудит-журнал** (skill `landing-journal`).
## Workflow
### 1. Определить эксперимент
Зафиксируй (шаблон — [`reference/experiment-design.md`](reference/experiment-design.md)):
- **Гипотеза** в форме «Если [изменение], то [метрика] вырастет, потому что […]».
- **Переменная** — ровно одна. Бери из бэклога гипотез (приоритизация по ICE) или сформулируй.
- **Variant A (control)** и **Variant B** — точное различие.
- **Primary-метрика** + MDE; **secondary/прокси**; **guardrail** (что не ухудшить).
- **Сплит** 50/50, cookie 30 дней; **длительность** ≥ целого числа недель; **критерий решения**.
Если гипотеза/метрика не заданы — добери через `AskUserQuestion` (предложи топ по ICE из §3).
### 2. Подготовить варианты
- Control — существующий контент лендинга (в HTML).
- Variant B — реализуй inline-сплитом по [`reference/ab-implementation.md`](reference/ab-implementation.md):
настрой `TEST`-имя, cookie-сплит, применение варианта до paint, передачу варианта в
Метрику (`params`) и GA4 (event/dimension), цели с меткой варианта (`data-goal`).
- Несколько вариантов (B, C…) — допустимо, но это A/B/n: нужно больше трафика; помни про MDE.
### 3. Проверить
```bash
python3 .claude/skills/landing-experiment/scripts/check_experiment.py <лендинг.html> [--experiment <id>]
```
Плюс прогони контракт лендинга: `.claude/skills/new-landing/scripts/check_landing.py`.
### 4. Завести карточку и записать в журнал
- Создай `experiments/<id>/experiment.md` по шаблону (id вида `H2-hero-narrative`).
- Залогируй:
```bash
python3 .claude/skills/landing-journal/scripts/log_event.py \
--event experiment_designed --landing <slug> --experiment <id> \
--summary "<гипотеза кратко>" --details "primary=<метрика>; MDE=<..>; split=50/50"
python3 .claude/skills/landing-journal/scripts/log_event.py \
--event variant_added --landing <slug> --experiment <id> --summary "Variant B: <различие>"
```
### 5. Ветка, превью, чеклист запуска
- Ветка `exp-<id>` от `dev`, коммит (тем же коммитом — записи журнала), пуш → превью-URL.
- Выдай **чеклист запуска**: трафик-гейт (≥100 визитов/день?), выставить `AB_ACTIVE=true` при
старте, какие цели смотреть, длительность, honest stopping (не «подглядывать»), что считается
победителем (выше primary без проседания guardrail).
- Запуск/раскат — решение человека; при запуске залогируй `launched`, при раскате `rolled_out`.
## Что НЕ делает этот skill (отдельные шаги/скиллы)
- Создание рекламных кампаний и UTM-трафик → будущий `landing-ads` (артефакты; API — при токенах).
- Сбор статистики и расчёт значимости → будущий `landing-stats` (при токенах/бэкенде).
Сейчас результаты заносятся в журнал и карточку вручную (`stats_collected`, `decided`).
No comments yet. Be the first to comment!