# Metric Design & Experimentation: Маркетплейс готовых ИИ-агентов

> **Дата:** 2026-08-26 | **Контекст:** New launch — MVP маркетплейса
> **Ревизия 27.08.2026** — на основании `product/00-research-evidence-base.md` (27.08.2026, ~70 источников, ~60 карточек T1/T2). NSM переопределён с «установка» на «first successful business outcome»; добавлены успешные установки (doctor), time-to-first-successful-task, события guardrails/installer doctor. ZIP 2.1.243 (SIGSEGV/autoupdate) учтён как анти-паттерн.

---

## Executive Summary

**North Star Metric (NSM) — ревизия 27.08:**

| Метрика | Определение | Цель MVP | Почему |
|---|---|---|---|
| **NSM (primary): First Successful Business Outcome (FSBO)** | Пользователь получил **проверяемый бизнес-результат** своим Agent Kit (контент-план из 30 постов, карточка WB/Ozon создана, пачка писем разобрана, SEO-текст прошёл чек-лист) — подтверждено артефактом + doctor green | **≥5 FSBO / мес** (≥3 для беты) | Единственная метрика, доказывающая ценность сверх файла (ответ на Устинова «за что платить?» [00 §3.4, §4]); ведет к retention |
| **NSM (supporting): Успешные установки** | `install.sh` завершился + `doctor.sh` = PASS (все проверки зелёные) + проверочный сценарий Kit пройден | **≥7 / мес**, конверсия установки ≥70% | Предиктор FSBO; ловит барьер №1 [00 §3.3] |
| **Quality SLI: Time-to-first-successful-task (TTFS)** | Медиана минут от `install_started` до `first_successful_task` (первый FSBO) | **median <30 мин**, p90 <60 мин | Мерить надо TTFS, а не «скачал ZIP» [00 §3.3]; ловит трение CLI |

Все остальные метрики — воронка до FSBO или последствия после. **Гипотеза считается подтверждённой только если paid → FSBO ≥20%** (а не paid → download).

---

## Metric Hierarchy (ревизия 27.08)

### North Star

- **FSBO / мес** — как выше. Источник: событие `first_successful_business_outcome` + артефакт (файл/скрин/выгрузка) + `doctor_check_passed`.
- **Успешные установки / мес** — `doctor_check_passed` AND `smoke_scenario_passed`. Цель ≥70% от покупок.
- **TTFS median** — `first_successful_task_ts - install_started_ts`. Цель <30 мин.

Почему именно эта тройка:
- Отражает реальную ценность (результат, а не файл)
- Ведущая (FSBO → retention; установка → FSBO)
- Влияемая (installer/doctor/guardrails/карточка «что подготовить» влияют)
- Не подвержена Goodhart (сложно «накрутить» бизнес-артефакт)

### L1 Metrics (Input to NSM)

| L1 Metric | Описание | Цель MVP | Связь с NSM |
|---|---|---|---|
| Покупки за месяц (по цене 1990₽ бенчмарк) | Количество платных покупок (A/B 990/1990/2900) | ≥5–15 | Прямой input: покупка → установка → FSBO |
| Конверсия в установку | `doctor_check_passed` / `purchases` | ≥70% | Установка = предиктор FSBO |
| Конверсия установка → FSBO | `first_successful_business_outcome` / `doctor_check_passed` | ≥50% | Качество Kit (закрытый цикл [00 §3.6]) |
| TTFS median | Медиана времени до первого бизнес-результата | <30 мин | Трение онбординга |
| Бесплатные выдачи за месяц | Количество бесплатных Kit (только после проверки платных) | ≥30 (если запускаем) | Воронка: бесплатно → установка → платные |

### L2 Metrics (Input to L1)

| L2 Metric | Описание | Цель MVP | Связь с L1 |
|---|---|---|---|
| Конверсия карточка → покупка | Покупки / Просмотры карточек (на каждой цене) | ≥3% на 1990₽ | Воронка: интерес → WTP |
| Переход в Telegram | `telegram_started` / `buy_clicked` | ≥60% | Воронка: кнопка → бот |
| Doctor pass rate | `doctor_check_passed` / `doctor_check_started` | ≥85% | Качество installer |
| Guardrail block rate | `guardrail_blocked` / `guardrail_triggered` | **100%** | Безопасность [00 §3.5] |
| Повторное использование | Пользователи с ≥2 FSBO / Все FSBO | ≥30% | Retention |

### Input Metrics

| Input Metric | Описание | Цель MVP | Связь с L2 |
|---|---|---|---|
| Целевые посетители | Посетители из ЦА (экспертные предприниматели/SMM/маркетологи, НЕ офлайн-кофейни [00 §3.8]) | ≥100/мес | Трафик |
| Просмотры карточек | Уникальные просмотры карточек Kit | ≥500/мес | Интерес |
| Конверсия посетитель → карточка | Карточки / Посетители | ≥50% | Релевантность каталога |

---

## Воронка (ревизия 27.08 — до FSBO)

```
Визит → Просмотр карточки → Buy clicked → Telegram started → Оплата (990/1990/2900) →
Получил архив → install_started → doctor_check_started → doctor_check_passed (успешная установка) →
first_successful_task_started → first_successful_business_outcome (FSBO, артефакт создан) →
2-й FSBO (retention)
```

**Ключевой разрез воронки (было → стало):**
- Было: `покупка → установка` (конец)
- Стало: `покупка → doctor green (успешная установка) → FSBO (бизнес-результат) → TTFS` + guardrail-события параллельно

**WTP-воронка:** тестировать 3 цены на одном Kit (поведенческий checkout, не опрос): 990₽ vs 1990₽ (бенчмарк) vs 2900₽. Решение: ≥3% конверсия на 1990₽ → PASS; если <1% везде → FAIL гипотезы Kit (см. Intervention Triggers). Средний чек РФ ~2000₽/мес, мир $20 якорь / $90–100 потолок — 1990₽ внутри якоря [00 §3.4, §3.11].

---

## Counter-Metrics (Goodhart-resistant) — ревизия 27.08

| Primary Metric | Counter-Metric | Why It Guards | Порог |
|---|---|---|---|
| FSBO | Возвраты / Отмены + «FSBO без артефакта» | FSBO не должен расти за счёт фейковых отчётов | Возвраты <10% |
| Успешные установки | Обращения в поддержку / Установки + `doctor_check_failed` | Установки не должны расти за счёт игнора ошибок | Support/установка <30% |
| TTFS | `install_failed` + `doctor_check_failed` (скрытые) | TTFS не должен улучшаться за счёт отсева неуспешных | Doctor pass ≥70% |
| Покупки (1990₽) | Конверсия на 990₽ vs 2900₽ | Покупки не должны держаться только на скидке 990₽ | ≥3% хотя бы на одной цене |
| FSBO | `guardrail_triggered` / `guardrail_blocked` | FSBO не должен расти за счёт небезопасных действий (удаление писем, $80k штрафы [00 §3.5]) | Block rate = 100% |
| Бесплатные выдачи | Конверсия бесплатных в платные | Бесплатные не должны каннибализировать платные | ≥2% |

---

## Leading / Lagging Pairs (обновлены)

| Leading Indicator | Lagging Indicator | Temporal Lag |
|---|---|---|
| `doctor_check_passed` | `first_successful_business_outcome` | 0–3 часа (TTFS) |
| Просмотры карточек | Покупки (по цене) | 1–7 дней |
| Переходы в Telegram | Успешные установки | 1–3 дня |
| `first_successful_task_started` | Повторное FSBO | 7–14 дней |
| `guardrail_triggered` (частота) | Отток / возвраты / инциденты | 1–7 дней |
| `doctor_check_failed` (по типу) | TTFS p90 | 1 день |
| Обращения в поддержку | Отток | 7–30 дней |

---

## События (телеметрия) — ново, 27.08

### Installer / Doctor (ловит барьер №1 и ZIP 2.1.243 провал: SIGSEGV, autoupdate без отката)

| Событие | Когда | Поля |
|---|---|---|
| `install_started` | Запуск `install.sh` / `npx @kit/install` | `kit_id`, `version`, `platform` (claude/codex), `os`, `node_version`, `install_method` (npx/web) |
| `install_succeeded` / `install_failed` | Завершение installer | `duration_ms`, `error_code`, `error_stage` (deps/tokens/permissions) |
| `doctor_check_started` | Запуск `doctor.sh` | `kit_id`, `version` |
| `doctor_check_passed` | Все проверки зелёные | `duration_ms`, `checks` (deps_ok, token_ok, perms_ok, model_pinned_ok) |
| `doctor_check_failed` | Любая проверка красная | `failed_checks[]`, `error_code`, `hint_shown` |
| `doctor_hint_followed` | Пользователь кликнул подсказку доктора/бота | `failed_check`, `hint_id` |
| `smoke_scenario_passed` / `failed` | Проверочный сценарий Kit | `kit_id`, `scenario_id` |
| `first_successful_task_started` | Пользователь запустил первый бизнес-сценарий | `kit_id` |
| `first_successful_business_outcome` | **FSBO**: артефакт создан и прошёл чек-лист | `kit_id`, `artifact_type` (content_plan, wb_card, email_triage…), `artifact_url/hash`, `ttfs_ms` |
| `npx_fallback_used` | npx не сработал → веб-фолбэк | `reason` |
| `autoupdate_rollback` | Попытка autoupdate → откат (защита от ZIP 2.1.243) | `from_version`, `to_version`, `rollback_ok` |

**Требование:** `doctor_check_failed` логирует `failed_checks[]` без PII (не логировать токены/почту). TTFS считается только для `doctor_check_passed` → `first_successful_business_outcome`.

### Guardrails (killer-фича, hard-limits в коде транспорта [00 §3.5])

| Событие | Когда | Поля |
|---|---|---|
| `guardrail_triggered` | Агент попытался выйти за границу (удалить письмо, отправить без подтверждения, превысить лимит) | `kit_id`, `guardrail_id` (no_delete, need_confirm, rate_limit…), `action` (email.delete, direct.create…) |
| `guardrail_blocked` | Действие заблокировано, показан readback | `guardrail_id`, `blocked` (true), `confirm_shown` |
| `guardrail_overridden` | Пользователь подтвердил после readback | `guardrail_id`, `confirmed` (true), `action_executed` |
| `guardrail_bypass_attempt` | Попытка обойти guardrail (прямой вызов транспорта) | `kit_id`, `bypass_method` → **тревога, Kill Criteria** |
| `token_storage_check` | Проверка хранения токенов | `storage` (local/env/remote), `ok` (local only = ok) |
| `external_action_executed` | Любое внешнее действие (почта, Директ, CRM) | `kit_id`, `action`, `guardrail_id`, `confirmed` |

**Инвариант:** `guardrail_triggered` → `guardrail_blocked` должен быть 100% без `confirmed`. Любой `external_action_executed` с `confirmed=false` и `guardrail_triggered=true` = критический инцидент → стоп поставки.

### Воронка / коммерция

| Событие | Когда | Поля |
|---|---|---|
| `card_viewed` | Просмотр карточки Kit | `kit_id`, `price_shown` (990/1990/2900) |
| `buy_clicked` | Клик «Купить» | `kit_id`, `price` |
| `telegram_started` | Переход в бота | `kit_id`, `price`, `ref` |
| `payment_initiated` / `payment_succeeded` / `payment_failed` | Оплата (СБП/перевод, ручное подтверждение) | `kit_id`, `price`, `method`, `psp_fee` |
| `archive_delivered` | Архив выдан ботом | `kit_id`, `version`, `delivery_method` (bot/email/web) |
| `support_requested` | Обращение в поддержку (скриншот ошибки) | `kit_id`, `error_code`, `via` (bot/telegram) |
| `refund_requested` | Запрос возврата | `kit_id`, `reason` (install_failed, no_value, guardrail…) |

---

## Experiment Plans (ревизия 27.08)

### Experiment 1: Тест WTP (поведенческий, с реальными деньгами — заменяет опрос Van Westendorp)

| Параметр | Значение |
|---|---|
| Гипотеза | Конверсия карточка → покупка ≥3% хотя бы на одной цене (990/1990/2900) при бенчмарке 1990₽ |
| Метод | **Поведенческий A/B/C checkout** на одном Kit (Менеджер маркетплейса): реальная кнопка «Купить», реальная оплата (СБП), 3 цены ротируются |
| Размер выборки | 200+ уникальных просмотров карточки **на цену** (600 суммарно) |
| Длительность | 30 дней после запуска |
| Решение | ≥3% на 1990₽ → PASS (бенчмарк подтверждён); ≥3% только на 990₽ → пересмотреть ценность/пакет; <1% на всех ценах → FAIL гипотезы Kit (KILL Bet 1) |
| Guardrail | Возвраты <10%; иначе — проблема с обещанием карточки |

**Почему не Van Westendorp:** WTP за standalone-ZIP без сопровождения неизвестна (0 наблюдений) [00 §3.4]; опрос завышает. Мерим только реальный платёж → установка → FSBO.

### Experiment 2: Тест конверсии карточка → покупка (с разрезом по цене)

| Параметр | Значение |
|---|---|
| Гипотеза | Карточка с честным блоком «Кому подходит / Не подходит / Что подготовить / Что НЕ делает» + guardrails-фичей даёт ≥3% на 1990₽ |
| Метод | A/B: версия A (полная карточка с ограничениями) vs. версия B (упрощённая без «НЕ делает») |
| Размер выборки | 200+ уникальных посетителей карточки на вариант |
| Длительность | 30 дней после запуска |
| Решение | ≥3% → PASS; <1% → FAIL; 1–3% → дополнить интервью (почему не покупают) |

### Experiment 3: Тест установки + TTFS + Doctor (заменяет «≥70% за <15 мин»)

| Параметр | Значение |
|---|---|
| Гипотеза | ≥70% устанавливают до doctor green за <30 мин TTFS median (p90 <60 мин) без внешней помощи, кроме подсказок doctor/бота |
| Метод | Практический тест (n=10–15) из ЦА (экспертные предприниматели/SMM, НЕ офлайн-кофейни [00 §3.8]) + телеметрия `install_*`/`doctor_*`/`ttfs` |
| Размер выборки | 10–15 человек |
| Длительность | 1 сессия × 45 минут |
| Решение | ≥70% + median TTFS <30 мин → PASS; <50% ИЛИ median >60 мин ИЛИ doctor pass <70% → FAIL → улучшить installer (npx-first, без npm/pip вручную) + doctor hints |
| Анти-паттерн | ZIP 2.1.243: SIGSEGV, autoupdate без отката — любой такой кейс = блок релиза |

### Experiment 4 (новый): Guardrails — hard-limits держат

| Параметр | Значение |
|---|---|
| Гипотеза | 100% `guardrail_triggered` → `guardrail_blocked` без подтверждения; 0 `external_action_executed` без `confirmed` |
| Метод | Красная команда: по 3 попытки обойти каждый guardrail (удалить письмо, создать кампанию Директ, превысить лимит) + логи `guardrail_*` |
| Размер выборки | Все Kit с внешними действиями (минимум WB/Ozon, почта) |
| Длительность | До беты, затем непрерывно |
| Решение | 100% block → PASS; любой bypass → FAIL → чинить класс дефекта (запрет в коде транспорта, не в промпте [00 §3.5]), не шипать |

---

## Retention Design (обновлён — FSBO-когорты)

**Когортный анализ:** Пользователи группируются по дате `payment_succeeded`. Отслеживается:
- `doctor_check_passed` в течение 24 часов (успешная установка)
- `first_successful_business_outcome` в течение 72 часов (первый бизнес-результат) + TTFS
- 2-й FSBO через 7 / 14 / 30 дней (повторное использование)
- `guardrail_triggered` / `support_requested` как предикторы оттока

**PMF erosion detection:** Если installation → FSBO <30% после первых 30 дней ИЛИ retention 2-го FSBO через 7 дней <20% — проблема с ценностью Kit (не закрывает рутину [00 §3.6–§3.7]).

**Staleness:** пин моделей + канал обновлений; метрика «гниения» — доля `smoke_scenario_failed` после смены модели (цель <5%) [00 §3.9].

---

## Intervention Triggers (ревизия 27.08 — с guardrails и 1990₽)

| Метрика | Порог | Действие | Уверенность |
|---|---|---|---|
| `doctor_check_passed` / `purchases` <50% | После 10 покупок | Улучшить installer (npx-first, веб-фолбэк), расширить doctor hints, добавить видео | **H (T1)** [00 §3.3] |
| TTFS median >30 мин, p90 >60 мин | После 10 FSBO-попыток | Упростить чек-лист «что подготовить», улучшить шаблоны, добавить бота-коуча | **H (T1)** |
| `doctor_check_failed` по одному `failed_check` >30% | После 20 `doctor_check_started` | Точечно чинить этот чек (deps/tokens/perms) | **M–H** |
| Конверсия карточка → покупка <1% на 1990₽ | После 200 просмотров на цену | Пересмотреть карточку/цену (тест 990 vs 2900), проверить ЦА (не офлайн) | **M (T1 бенчмарк)** [00 §3.2] |
| <3 покупок за 30 дней на любой цене (990/1990/2900) | Через 30 дней при ≥100 визитов | **STOP:** гипотеза Kit отклонена (KILL Bet 1) | **M–H (T1)** |
| Повторное FSBO <10% через 30 дней | Через 30 дней | Пересмотреть качество Kit; добавить обновления/пин | **H** [00 §3.9] |
| `guardrail_blocked` / `guardrail_triggered` <100% | Немедленно, 1 случай | **STOP поставки Kit**, чинить hard-limits в транспорте, ревью всех внешних действий | **H (T1)** [00 §3.5] |
| `guardrail_bypass_attempt` >0 | Немедленно | Блок релиза, безопасностный ревью | **H** |
| `token_storage_check` != local | Немедленно | Блок релиза, мигрировать на локальное хранение | **H** |
| `install_failed` с SIGSEGV / autoupdate без отката | 1 случай | Блок релиза, npx-first + веб-фолбэк + rollback (урок ZIP 2.1.243) | **H** |

---

## Assumption Registry (ревизия 27.08)

| # | Допущение | Уверенность | Что опровергнет |
|---|---|---|---|
| 1 | Конверсия в установку (doctor green) ≥70% | **H (T1)** [00 §3.3] (было L/T6) | Тест: <50% ИЛИ TTFS median >60 мин |
| 2 | Конверсия карточка → покупка ≥3% на 1990₽ | **M (T1 бенчмарк)** [00 §3.2, §3.4] | A/B: <1% на всех ценах после 200 просмотров/цена |
| 3 | Установка → FSBO ≥50%, повторное FSBO ≥30% через 7 дней | **M–H (T1)** [00 §3.6] | Данные: <20% FSBO или <10% повтора |
| 4 | WTP 1990₽ разово подтверждается поведением | **M–H (T1)** [00 §3.4] | Поведенческий checkout: <1% на 990/1990/2900 |
| 5 | Guardrails держат 100% | **H (T1)** [00 §3.5] | Любой bypass / external без confirmed |
| 6 | TTFS median <30 мин достижим с installer+doctor | **H (T1)** [00 §3.3] | Практический тест >60 мин median |

