/landing-experiment
Создать A/B-эксперимент на лендинге — из брифа и гипотезы сгенерировать вариант(ы) на одном URL (inline-сплит, SEO-безопасно), настроить трекинг варианта в Метрике/GA4, завести карточку эксперимента и записи в аудит-журнал, выдать чеклист запуска. Использовать, когда нужно
Claude Code
$ npx -y skills add monthu56/landforge --skill landing-experiment --agent claude-code
Codex
$ npx skills add monthu56/landforge --skill landing-experiment -a codex -y
Cursor
$ npx skills add monthu56/landforge --skill landing-experiment -a cursor -y
Gemini CLI
$ npx skills add monthu56/landforge --skill landing-experiment -a gemini-cli -y
GitHub Copilot
$ npx skills add monthu56/landforge --skill landing-experiment -a github-copilot -y
OpenCode
$ npx skills add monthu56/landforge --skill landing-experiment -a opencode -y
Windsurf
$ npx skills add monthu56/landforge --skill landing-experiment -a windsurf -y
SKILL.md
landing-experiment.SKILL.mdname: 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. Проверить
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`).
- Залогируй:
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`).
Read more
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. Проверить
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`).
- Залогируй:
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`).
Generate, A/B-test, deploy, and audit static landing pages — as Claude Code skills.
Other skills on landforge.
More skills from other plugins.
ab-testing
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use…
seo
Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…
brag
Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…
geo-audit
Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…
Questions about landing-experiment.
- Which coding agents can use landing-experiment?
- landing-experiment installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

