Landing experiment
Static landing-page generation system built on Claude Code skills — SEO, A/B testing, analytics, deploy and change-audit built in.
npx -y skills add monthu56/landforge --skill landing-experimentAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 10 stars10 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Создать A/B-эксперимент на лендинге — из брифа и гипотезы сгенерировать вариант(ы) на одном URL (inline-сплит, SEO-безопасно), настроить трекинг варианта в Метрике/GA4, завести карточку эксперимента и записи в аудит-журнал, выдать чеклист запуска. Использовать, когда нужно подготовить A/B-тест, вариант под гипотезу или несколько вариантов лендинга для проверки.
SKILL.md
6.0 KB, as published. Nobody here has run it
landing-experiment — A/B-эксперименты на лендинге
Готовит A/B-тест по правилам проекта (правила A/B встроены в этот скилл):
варианты живут на одном URL (inline-сплит, без клоакинга), вариант прокидывается в
аналитику, всё фиксируется в аудит-журнале. Опирается на готовую A/B-инфраструктуру в
index.html (AB_ACTIVE, cookie-сплит, ym(...,'params',{ab:…})).
Жёсткие правила
- Один URL, без клоакинга (SEO-безопасность). Роботу и людям — один контент.
Control (вариант A) — в HTML; вариант B применяется JS поверх. Никаких скрытых от роботов
текстов/ключей. Отдельные URL под варианты — только с
canonical+noindex(не наш случай). - Одна переменная за тест (иначе результат не интерпретировать).
- Анти-FOOC и анти-CLS: вариант фиксируется до первого paint, подмена не двигает вёрстку.
- Трафик-гейт: всерьёз тест запускают после аналитики и ≥100 визитов/день. Меньше — фоновый сплит без выводов или честный before/after (пометка «B/A»).
- Каждый шаг — в аудит-журнал (skill
landing-journal).
Workflow
1. Определить эксперимент
Зафиксируй (шаблон — 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: настрой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).