# ТЗ на MVP образовательной платформы «АРХИМЕД»

> Версия: 0.9 (черновик для команды разработки)
> Источники: `ПРОЕКТ_АРХИМЕД.md` (концепция), `ИНТЕРВЬЮ_ГАЙД.md`, `otchet_motivaciya_olimpiadnaya_matematika_fizika.md`, `otchet_nishi_i_boli.md`, `otchet_ximiya.md`
> Обозначения: **[уточнить]** — факт/параметр отсутствует в исходных документах, требуется решение продакта или методолога.
> Аудитория документа: команда разработки (2 full-stack, 1 ИИ-инженер), геймдизайнер, методолог.

---

## 1. Цель и рамки MVP

### 1.1. Цель MVP

Проверить на реальной аудитории ядро ценности «АРХИМЕДА»: **игровая вселенная + олимпиадная подготовка + видимый результат для родителя** — и набрать метрики готовности (см. 1.4). MVP — это не «урезанный продукт», а полный контур микро-петли (зашёл → получил задание → решил 3–5 задач с подсказками → награда → «решение Архимеда») на двух островах.

### 1.2. Объём MVP (из концепции, §9 Roadmap)

| Блок | Объём |
|---|---|
| Острова | **2 острова × 3 темы** (см. 1.3) |
| Банк задач | **100–150 задач** (математика + физика) |
| Подсказки-лестница | 3 уровня, стоимость в игровой валюте |
| «Решение Архимеда» | элегантный разбор после каждой задачи |
| Виртуальная лаборатория | **10 физических экспериментов** |
| Дуэли 1v1 | матчмейкинг, рейтинг Эло |
| Олимпиадный симулятор | базовый: таймер + протокол [в концепции полный симулятор — этап «Релиз»; базовый вариант включён в MVP решением продакта] |
| Кабинет родителя | дашборд, прогноз, лимиты, уведомления |
| Монетизация | freemium: «1 остров бесплатно» + подписка «Исследователь» (590–990 ₽/мес) |

### 1.3. Острова MVP

| Остров | Сеттинг | Темы (3 на остров) |
|---|---|---|
| **Сиракузы** | Античность, осада города | Комбинаторика, логика, принцип Дирихле / инварианты |
| **Башня Ньютона** | XVII век, Лондон | Механика, законы Ньютона, кинематика |

### 1.4. Модуль «Химия» — фаза 2 MVP (stretch-goal)

> Примечание: в концепции (§4.4) химия отнесена к этапу «Бета/Релиз». По решению продакта она вынесена в **фазу 2 MVP** как stretch-goal с отдельным гейтом запуска (см. 7.4).

**Состав фазы 2 MVP:**

| Элемент | Содержание |
|---|---|
| Остров | **«Лаборатория Лавуазье»** (стехиометрия, законы сохранения) |
| Темы (2) | Стехиометрия; качественный анализ |
| Банк задач | **20–30 расчётных задач** с химическим верификатором |
| Виртуальная химлаборатория | **базовая: титрование** (выбор реактива, объём, индикатор, расчёт концентрации) |

**Что добавляет фаза 2 к архитектуре:**
- **Химический верификатор**: символьная проверка стехиометрических расчётов (моли, массы, концентрации) с допуском; балансировка уравнений реакций (символьный решатель); проверка ответа «вещество» по базе свойств.
- **Карточки знаний** (номенклатура, свойства веществ) + интервальные повторения — фактологический слой химии (из концепции §4.4).
- **Движок титрования**: детерминированная симуляция (объём-концентрация-индикатор), расчёт точки эквивалентности, оценка точности.
- **Тег-сет химии**: раздел (стехиометрия/анализ), приём, класс, этап ВсОШ, источник (vos.olimpiada.ru/chem, chem.msu.ru, IChO, Менделеевская, USNCO).

**Условие старта фазы 2 (gate):** фаза 1 MVP достигла ≥ 60% плана по DoD (см. 1.5) и команда не в перегрузке; нужен отдельный методист-химик (из концепции §4.4).

### 1.5. Критерии готовности MVP (DoD)

| Метрика | Цель |
|---|---|
| Активные пользователи | **500 MAU** |
| Удержание | **D30 ≥ 25%** |
| Лояльность | **NPS ≥ 40** |
| Пилоты | **≥ 3 пилотных кружка** |
| Вовлечённость | **средняя сессия ≥ 15 мин** |

### 1.6. Анти-скоуп (что НЕ входит в MVP)

- ❌ Полноценный ИИ-генератор олимпиадных задач (в MVP — только шаблонные вариации с подстановкой параметров, §4).
- ❌ ML-прогноз результатов (в MVP — правила-эвристика, §5.3).
- ❌ Автоматическая проверка эссе-решений (разбор только шаблонный/ручной, §3.5).
- ❌ Командные турниры (этап «Бета»).
- ❌ Мобильные приложения (только web/PWA).
- ❌ Полный контент (6 островов — этап «Релиз»); «Семейная олимпиада» и олимпиадный симулятор — только базовые версии.
- ❌ Интеграция с календарём ВсОШ/перечневых олимпиад.

---

## 2. Функциональные требования по ролям (MoSCoW)

### 2.1. Ученик

| ID | Требование | Приоритет | Комментарий |
|---|---|---|---|
| FR-U-01 | Онбординг-тест: серия задач → определение уровня и персонального трека | **Must** | Число вопросов **[уточнить]** (предложение: 10–15, смешанные темы) |
| FR-U-02 | Карта вселенной: 2 острова, прогресс по главам, сюжетные блокировки | **Must** | Прогресс по сюжету — только через решение |
| FR-U-03 | Решатель задач: 4 типа ответа (число / выражение / конструкция / эссе-решение) | **Must** | Эссе в MVP не проверяется автоматически |
| FR-U-04 | Подсказки-лестница: 3 уровня, стоимость в игровой валюте, последняя подсказка = ключевая идея (не ответ) | **Must** | Валюта и стоимость **[уточнить]** |
| FR-U-05 | «Решение Архимеда» после задачи (успех / после исчерпания подсказок) | **Must** | Короткое элегантное решение |
| FR-U-06 | Профиль героя: уровень, навыки-суперсилы, ачивки, коллекция «трофеев» | **Should** | «Инвариант» (щит), «Оценка + пример» (меч), «Граф» (телепорт) |
| FR-U-07 | Дневник Архимеда: статистика, серии (streaks), план на неделю | **Should** | План — из слабых мест |
| FR-U-08 | Дуэли 1v1: матчмейкинг по Эло, синхронный режим (WebSocket) | **Should** | Асинхронный режим как эскалация |
| FR-U-09 | Виртуальная лаборатория: 10 экспериментов (рычаги, блоки, цепи, линзы, маятники), измерения, погрешности, графики, протокол | **Should** | Конкретный список 10 установок **[уточнить]** |
| FR-U-10 | Олимпиадный симулятор: таймер, набор задач в формате тура, протокол | **Should** | Базовый вариант |
| FR-U-11 | Режим «Семейная олимпиада» (родитель + ребёнок) | **Could** | Базовый сценарий |
| FR-U-12 | Анти-списывание: лимит попыток, запрет «вытянуть ответ» у ИИ | **Must** | См. §4.4 |

### 2.2. Родитель

| ID | Требование | Приоритет | Комментарий |
|---|---|---|---|
| FR-P-01 | Дашборд: прогресс по навыкам, время, зоны роста, недельный отчёт | **Must** | «Продукт для двоих» — ядро ценности |
| FR-P-02 | Прогноз результата на этапах ВсОШ (правила-эвристика, без ML) | **Should** | См. §5.3 |
| FR-P-03 | Лимиты экранного времени и уведомления о превышении | **Should** | |
| FR-P-04 | Уведомления: «сегодня сын закрыл слабое место — делимость» | **Should** | |
| FR-P-05 | Управление подпиской (тарифы, отмена, семейный тариф) | **Must** | |

### 2.3. Учитель / кружок (базовое)

| ID | Требование | Приоритет | Комментарий |
|---|---|---|---|
| FR-T-01 | Создание класса и приглашение учеников | **Should** | |
| FR-T-02 | Назначение островов/глав группе | **Should** | |
| FR-T-03 | Просмотр группы: прогресс, активность (без турниров) | **Should** | Турниры — этап «Бета» |
| FR-T-04 | Экспорт отчётов | **Could** | |

### 2.4. Админ

| ID | Требование | Приоритет | Комментарий |
|---|---|---|---|
| FR-A-01 | Управление контентом: CRUD задач, паспорт задачи, статусы | **Must** | См. §3 |
| FR-A-02 | Модерация: жалобы, флаги, блокировка контента | **Must** | |
| FR-A-03 | Аналитика: дашборд продуктовых метрик (§8) | **Should** | |
| FR-A-04 | Управление пользователями и ролями (RBAC) | **Should** | |
| FR-A-05 | Управление ИИ: логи диалогов, чёрные списки промптов, бюджет | **Should** | См. §4 |

---

## 3. Требования к контенту

### 3.1. Структура задачи («паспорт задачи»)

| Поле | Описание |
|---|---|
| Условие | Сюжетное, вшитое в историю острова (§5 концепции: «взорви ворота Сиракуз…») |
| Тип ответа | число / выражение / конструкция / эссе-решение (см. Приложение B) |
| Сложность | 1–7, калибровка на этапах ВсОШ |
| Теги | тема олимпиадной программы, приём/навык, класс, источник, статус |
| Подсказки | 3 уровня (наводящая → сужающая → ключевая идея) |
| «Решение Архимеда» | элегантное решение-«фокус» |
| Типичные ошибки | разбор ловушек (механика Veritasium: «А ты уверен? Вот ловушка») |
| Метаданные | автор, ревьюер, версия, статус пайплайна |

### 3.2. Калибровка сложности (1–7)

Предложение привязки к этапам ВсОШ **[уточнить с методологом]**:

| Сложность | Ориентир |
|---|---|
| 1–2 | школьный этап |
| 3–4 | муниципальный этап |
| 5–6 | региональный этап |
| 7 | заключительный этап |

Калибровка уточняется по статистике решений (см. пайплайн: шаг «калибровка»).

### 3.3. Пайплайн контента

```
Методист (пишет/адаптирует) → Редактор (проверка) → Верификатор (Python-песочница)
→ Калибровка сложности (статистика решений) → Публикация
```

- **Цель на плато: ~500 задач/мес.** Для MVP: 100–150 задач за ~8–10 недель (план для методолога + контент-редактора).
- **Запрет «сырых» задач в продакшн** — только прошедшие все стадии пайплайна (из концепции §7).
- Статусы задачи: `черновик → на ревью → верифицирована → в калибровке → опубликована → в архиве`.

### 3.4. Банк задач MVP

- **100–150 задач** (математика + физика) + **20–30 химических** (фаза 2).
- **Источники (с соблюдением авторских прав, указанием источника):**
  - Математика: problems.ru, журнал «Квант» (kvant.digital), Турнир городов (turgor.ru), Математический праздник (ЦПМ), архивы ВсОШ и перечневых (РСОШ), МЦНМО, AoPS Olympiad Archive, IMO.
  - Физика: IPhO (репозитории TeX, напр. astrosander/IPhO_TEX), виртуальные лаборатории СПбГУ как референс.
  - Химия (фаза 2): vos.olimpiada.ru/tasks/chem, банк задач химфака МГУ (chem.msu.ru), Менделеевская олимпиада (архивы), IChO (+ Kaggle 1968–2018), USNCO (ACS), задачники Лунина/Ерёмина, Бережной.
- **Авторский контент** — задачи методистов под сюжеты островов (ключевое преимущество: не встречаются на других платформах).

### 3.5. Верификатор решений

| Тип ответа | Что проверяется | Механизм |
|---|---|---|
| Число | значение с допуском (абсолютным/относительным), единицы измерения | числовое сравнение |
| Выражение | эквивалентность выражению-эталону | символьная проверка (sympy) |
| Конструкция | граф/схема/геометрическое построение | сравнение по JSON-схеме |
| Эссе-решение | **в MVP НЕ проверяется автоматически** | хранение + ручной/шаблонный разбор типичных ошибок |
| Химия (фаза 2) | стехиометрический расчёт с допуском; балансировка уравнения; вещество | символьный решатель + база свойств |

**Архитектура песочницы:**
- Python-песочница в изолированном контейнере; лимиты CPU/RAM/время выполнения.
- Запрет сети и доступа к ФС; без стандартного ввода; детерминированный запуск.
- Очередь задач на верификацию (см. §5.1); результат кэшируется.
- Юнит-тесты верификатора против эталонных решений (для лаборатории — против эталонных экспериментов, из концепции §7).

---

## 4. ИИ-слой

### 4.1. Что ВХОДИТ в MVP

| Компонент | Описание |
|---|---|
| Шаблонная генерация вариаций | Подстановка параметров в утверждённые шаблоны (числа, имена, сюжетные элементы); каждый экземпляр прогоняется через верификатор; публикация только после валидации |
| «ИИ-Архимед» — режим «коуч, не подсказка» | LLM с жёсткими промпт-правилами: не выдавать ответ, задавать наводящие вопросы, показывать «низшую ступень» рассуждения, отказ при запросе ответа → направление к подсказкам |
| Рутины вовлечения | Задание «сформулируй вопрос Архимеду» встроено в сценарий (урок Khanmigo NBER: доступ ≠ использование) |
| Модерация/цензура | фильтр входа/выхода LLM, чёрные списки, human-review при флагах |

### 4.2. Что НЕ входит в MVP

- ❌ Свободная LLM-генерация олимпиадных задач (нестабильна, нужна мультиагентная валидация — research-задача).
- ❌ ML-прогноз результатов (в MVP — правила).
- ❌ Автоматическая проверка эссе-решений.
- ❌ Персонализация стиля объяснения «на ошибках ученика» (полноценная версия — Бета).

### 4.3. Требования к безопасности ИИ

| Требование | Реализация |
|---|---|
| Анти-списывание | системный промпт запрещает выдачу ответа; лимит обращений к ИИ на задачу; логирование попыток «вытянуть ответ» |
| Валидация | всё, что попадает ученику, проходит верификатор/пре-модерацию |
| Стоимость | кэш ответов (повторяющиеся вопросы), мульти-провайдер, лимит токенов/сессию, локальная модель для дешёвых путей **[уточнить бюджет на пользователя]** |

---

## 5. Техническая архитектура и стек

### 5.1. Схема (адаптировано из концепции §7)

```
Клиенты: Web (React/Next.js), PWA
Рендер лаборатории: WebGL/Canvas (Three.js)
        │
API-шлюз (GraphQL/REST) → Auth (роли: ученик/родитель/учитель/админ)
        │
┌───────┴───────────────┬───────────────────────────┐
│ Игровой движок        │ Образовательный движок    │
│ (прогресс, квесты,    │ - Банк задач              │
│  дуэли, рейтинги,     │ - Верификатор (Python     │
│  матчмейкинг)         │   sandbox + символьная    │
│                       │   проверка)               │
│                       │ - Адаптивная модель       │
│                       │   (правила + спейсинг)    │
└───────────┬───────────┴─────────────┬─────────────┘
            │                        │
ИИ-слой: LLM (ИИ-Архимед, шаблонная генерация) + контроллер качества
            │
Данные: PostgreSQL, Redis (реалтайм), S3, ClickHouse/Postgres (аналитика), очередь задач
```

### 5.2. Стек

| Слой | Технология | Назначение |
|---|---|---|
| Frontend | React / Next.js + PWA | платформа, решатель |
| Лаборатория | WebGL/Canvas (Three.js) | 10 экспериментов; детерминированная симуляция |
| API | GraphQL (BFF) + REST | шлюз, роли |
| База | PostgreSQL | пользователи, прогресс, банк задач |
| Реалтайм | Redis (pub/sub) | дуэли 1v1, матчмейкинг |
| Файлы | S3 (или MinIO) | контент, ассеты, протоколы |
| Очереди | BullMQ/RabbitMQ | верификатор, LLM-задачи |
| Аналитика | ClickHouse (на старте допустим PostgreSQL) **[уточнить]** | события, метрики |

### 5.3. Адаптивный движок MVP (правила вместо IRT)

| Механика | Правило |
|---|---|
| Сложность | +1 при быстром успехе без подсказок; −1 при неудаче; **не ниже порога темы** (анти-паттерн «адаптивность вниз» запрещён — концепция §5.2) |
| Спейсинг-повторения | интервалы 1 → 3 → 7 → 14 → 30 дней **[уточнить]** («Повторения Архимеда») |
| Профиль уровня | по навыкам-суперсилам (приёмам), а не только по предмету |
| Прогноз результатов | правила-эвристика: уровень по шкале 1–7 + прогресс по навыкам → ожидаемый этап ВсОШ (школьный/муниципальный/региональный/заключительный); без ML |

### 5.4. Игровой движок

- Прогресс, квесты, ачивки (badges — «безопаснее» leaderboards; публичные таблицы — opt-in, концепция §5.2).
- Эло-рейтинг для дуэлей: K-фактор **[уточнить]**, начальный рейтинг, защита новичков.
- Матчмейкинг: WebSocket; синхронный режим; при недоступности соперника — асинхронный (эскалация из концепции §7).

### 5.5. Безопасность

| Аспект | Требование |
|---|---|
| 152-ФЗ | согласие родителей на обработку ПД детей до 14 лет; минимализация данных; шифрование; право на удаление |
| COPPA-принципы | родительский контроль, лимиты, отсутствие рекламы детям, минимум собираемых данных |
| Роли | RBAC: ученик/родитель/учитель/админ; родитель видит только своего ребёнка |
| Анти-списывание | лимит попыток, rate-limit на проверки, детект копипасты, логи ИИ |

### 5.6. Инфраструктура и нагрузка

- Целевые оценки: **1000 concurrent** (пик дуэлей/сессий), **100k MAU** (горизонт после MVP).
- Требования: автоскейлинг API (горизонтальный), Redis-кластер для реалтайма, CDN для контента, кэш верификатора.
- Лаборатория: симуляция на клиенте (WebGL), серверная валидация — только для фиксации результата эксперимента (снижает стоимость).
- Примерный расчёт: 1000 WebSocket-соединений обслуживаются одним узлом pub/sub + горизонтально масштабируемыми API-нодами **[уточнить смету инфраструктуры]**.

---

## 6. Пользовательские сценарии (user stories + acceptance criteria)

### US-1. Новичок проходит онбординг и решает первую задачу
- **Как** ученик 11 лет, **я хочу** быстро понять свой уровень и начать играть, **чтобы** сразу получить задачу «на грани возможностей».
- **AC:** онбординг-тест завершён за ≤ 15 мин; определён стартовый уровень; ученик видит карту вселенной; первая задача сюжетно обоснована; решена с 0–1 подсказкой; начислена награда.

### US-2. Ученик застрял на задаче и использует подсказки
- **Как** ученик, **я хочу** получать помощь, которая не даёт ответ, **чтобы** дойти до решения самому.
- **AC:** доступны 3 подсказки со стоимостью; последняя подсказка не содержит ответа; после исчерпания/2 неудач доступно «решение Архимеда»; ИИ-Архимед отвечает наводящими вопросами и отказывает в ответе; попытка «вытянуть ответ» логируется.

### US-3. Дуэль 1v1
- **Как** ученик, **я хочу** сразиться со сверстником на одинаковых задачах, **чтобы** проверить себя в соревновании.
- **AC:** матчмейкинг по Эло находит соперника ≤ 30 с (или асинхронный режим); обе стороны решают одинаковые задачи; таймер; рейтинг обновлён по Эло; результат виден; таблица лидеров — по умолчанию приватная.

### US-4. Родитель смотрит дашборд и получает прогноз
- **Как** родитель, **я хочу** видеть прогресс и прогноз результатов, **чтобы** понимать, за что плачу.
- **AC:** дашборд показывает прогресс по навыкам, время, зоны роста, недельный отчёт; прогноз этапа ВсОШ (правила-эвристика); уведомление «сын закрыл слабое место — делимость»; настройка лимитов экранного времени.

### US-5. Учитель создаёт класс и назначает остров
- **Как** учитель кружка, **я хочу** создать класс и назначить остров, **чтобы** вести группу.
- **AC:** класс создан, ученики приглашены по коду/ссылке; назначен остров «Сиракузы»; учитель видит прогресс и активность группы; экспорт отчёта (CSV).

### US-6. Ученик выполняет эксперимент в виртуальной лаборатории
- **Как** ученик, **я хочу** собрать установку и провести измерения с погрешностями, **чтобы** тренировать экспериментальный тур.
- **AC:** доступны 10 установок; сборка из деталей; измерения воспроизводят физику (детерминированная симуляция); вычисление погрешности; построение графика; оформление протокола; результат засчитан.

### US-7. Ученик проходит пробный тур в олимпиадном симуляторе
- **Как** ученик, **я хочу** пройти тур с таймером и протоколом, **чтобы** потренировать формат олимпиады.
- **AC:** набор задач в формате тура; таймер с обратным отсчётом; фиксация протокола; итог по баллам; разбор после тура.

---

## 7. Этапы и сроки

### 7.1. Команда (7–8 человек)

| Роль | Кол-во | Занятость |
|---|---|---|
| Full-stack разработчик | 2 | ядро платформы, решатель, лаборатория (WebGL) |
| ИИ-инженер | 1 | ИИ-Архимед, шаблонная генерация, верификатор, модерация |
| Геймдизайнер | 1 | сюжет, игровые петли, баланс |
| Методолог-олимпиадник | 1 | учебная программа, банк задач, верификация контента |
| Дизайнер | 1 | визуальный стиль, UX островов, персонаж Архимеда |
| Контент-редактор | 1 | пайплайн задач, модерация |
| (+ фриланс) | художник-аниматор, звук, методолог-физик для лаборатории | |

### 7.2. RACI (основные артефакты)

| Артефакт / решение | Продакт/геймдизайнер | Методолог | ИИ-инженер | Full-stack | Дизайнер | Контент-редактор |
|---|---|---|---|---|---|---|
| Структура острова/главы | **A/R** | R | C | C | R | I |
| Паспорт задачи и шаблоны | C | **R** | C | C | I | R |
| Верификатор (типы ответов) | C | C | **A/R** | R | I | C |
| ИИ-Архимед (промпт-правила) | R | C | **A/R** | I | C | I |
| Игровой движок (прогресс, Эло) | **R** | C | I | **A/R** | I | I |
| Кабинет родителя | **R** | C | I | **A/R** | R | I |
| Контент-пайплайн | C | **R** | C | C | I | **A/R** |
| Инфраструктура/деплой | I | I | C | **A/R** | I | I |

### 7.3. Спринты (фаза 1 MVP, 3–4 месяца; спринт = 2–3 недели)

| Спринт | Срок | Результат (definition of sprint done) |
|---|---|---|
| **S1: Онбординг + решатель** | недели 1–3 | Регистрация/авторизация; онбординг-тест; решатель с типами ответов «число» и «выражение»; верификатор (число/выражение); базовая авторизация ролей |
| **S2: Остров 1 + контент** | недели 4–7 | Остров «Сиракузы» (3 темы); 50–70 задач в пайплайне; подсказки-лестница; «решение Архимеда»; профиль героя (уровень, ачивки); адаптивный движок (правила) |
| **S3: Лаборатория + дуэли** | недели 8–11 | Виртуальная лаборатория: 10 экспериментов (рычаги, блоки, цепи, линзы, маятники), погрешности, графики, протокол; дуэли 1v1 (WebSocket, Эло, матчмейкинг); тип ответа «конструкция»; остров «Башня Ньютона» + контент физики |
| **S4: Кабинет родителя + freemium + бета-запуск** | недели 12–14 | Кабинет родителя (дашборд, прогноз-эвристика, лимиты, уведомления, подписка); freemium (1 остров бесплатно) + платёжный шлюз; базовый олимпиадный симулятор; кабинет учителя (класс, назначение, просмотр группы); PWA; **бета-запуск**; запуск 3 пилотных кружков |

### 7.4. Фаза 2 MVP: модуль «Химия» (stretch-goal, 4–6 недель после гейта)

| Этап | Результат |
|---|---|
| F2-1 | Остров «Лаборатория Лавуазье» (2 темы); 20–30 расчётных задач; **химический верификатор** (стехиометрия с допуском, балансировка, проверка вещества) |
| F2-2 | Базовая виртуальная химлаборатория: **титрование** (реактивы, индикатор, точка эквивалентности); карточки знаний + интервальные повторения |
| F2-3 | Калибровка сложности на статистике; публикация; метрики фазы 2 |

**Gate фазы 2:** фаза 1 DoD ≥ 60% (см. 1.5); методист-химик нанят.

---

## 8. Метрики и аналитика

### 8.1. Продуктовые метрики

| Метрика | Цель (MVP) | Источник |
|---|---|---|
| MAU | 500 | концепция §9 |
| D30 | ≥ 25% | концепция §9 |
| Средняя сессия | ≥ 15 мин | концепция §9 |
| NPS | ≥ 40 | концепция §9 |
| Доля платящих | ≥ 5–8% | концепция §12 |
| LTV/CAC | ≥ 3 | концепция §12 |
| «Семейная олимпиада» | ≥ 10% родителей играют с детьми ежемесячно | концепция §12 |

### 8.2. Обучающие метрики

| Метрика | Цель |
|---|---|
| Рост уровня ученика за 3 месяца | ≥ 1 ступень (шкала сложности 1–7) |
| Доля тем, закрытых «в срок» | ≥ 70% |
| Доля пользователей, вышедших на муниципальный/региональный этап ВсОШ (от занимающихся > 6 мес) | ≥ 15% (пост-MVP горизонт) |

### 8.3. Технические метрики

| Метрика | Цель | Примечание |
|---|---|---|
| p95 latency API | < 300 мс **[уточнить]** | |
| p95 время верификации | < 2 с **[уточнить]** | очередь + кэш |
| Uptime | ≥ 99,5% **[уточнить]** | |
| Доля ошибок (5xx) | < 1% | |
| Latency дуэлей (WebSocket) | < 500 мс между ходами **[уточнить]** | |

### 8.4. Ключевые события аналитики (собираем с S1)

- `onboarding_started`, `onboarding_completed` (уровень определён)
- `task_viewed`, `task_attempted`, `task_solved` (с подсказками/без, время), `task_failed`
- `hint_opened` (уровень 1/2/3), `archimedes_solution_viewed`
- `ai_coach_asked`, `ai_coach_refused_answer` (анти-списывание)
- `duel_started`, `duel_finished` (победа/поражение), `elo_changed`
- `lab_experiment_started/completed` (установка, погрешность), `protocol_submitted`
- `simulator_started`, `simulator_finished` (баллы)
- `parent_dashboard_viewed`, `forecast_viewed`, `screen_limit_changed`, `notification_clicked`
- `subscription_started/cancelled`, `paywall_viewed`
- `class_created`, `island_assigned`, `group_progress_viewed` (учитель)

Схема события: `{user_id, role, ts, event, properties, session_id}` → ClickHouse/Postgres.

---

## 9. Риски MVP и митигации

| # | Риск | Митигация |
|---|---|---|
| 1 | Контент не успевает за спринтами (100–150 задач) | Контент стартует в S1 параллельно разработке; пайплайн с приоритетом Must-тем; авторский контент + адаптация открытых архивов |
| 2 | Стоимость/сложность лаборатории | MVP на 10 установках, переиспользуемый движок; симуляция на клиенте; честная физика только через детерминированную симуляцию + юнит-тесты (концепция §7, §10) |
| 3 | ИИ выдаёт ответы / галлюцинирует | Жёсткие промпт-правила, отказ-паттерны, модерация, лимиты; запрет «сырых» генераций; валидация верификатором (концепция §7, §10) |
| 4 | Дуэли без онлайн-аудитории в начале | Асинхронный режим как эскалация; матчмейкинг по Эло с ботами-заглушками **[уточнить]** |
| 5 | «Адаптивность вниз» / демотивация слабых | Правило «не ниже порога темы»; приватные рейтинги по умолчанию; badges вместо публичных лидербордов (концепция §5.2) |
| 6 | Родительский скепсис к «игре» | Прозрачный кабинет, прогноз, недельные отчёты, лимиты (концепция §10) |
| 7 | Зависимость от LLM-провайдеров | Мульти-провайдер, кэш объяснений, локальная модель для дешёвых путей (концепция §10) |
| 8 | Юридические риски (детские данные) | 152-ФЗ: согласия, минимализация, удаление данных; COPPA-принципы (см. §5.5) |
| 9 | Химия (фаза 2) не успевает в stretch-goal | Химия — отдельный гейт; при перегрузке переносится в Бету без потери фазы 1 |
| 10 | Конкуренция (Фоксфорд, Школково) | Не конкурируем «в лоб»: другой формат (самостоятельный интерактив), партнёрства вместо войны (концепция §10) |

---

## 10. Приложение

### A. Глоссарий

| Термин | Определение |
|---|---|
| Остров | тематический мир-эпоха (Сиракузы, Башня Ньютона…) |
| Глава | сюжетная единица острова: завязка → задачи-испытания → босс-головоломка → развязка |
| Босс | финальная задача главы |
| Подсказка-лестница | 3 уровня помощи: наводящая → сужающая → ключевая идея |
| «Решение Архимеда» | короткое элегантное решение после задачи |
| Навык-суперсила | олимпиадный приём как способность героя (Инвариант-щит, Оценка+пример-меч, Граф-телепорт) |
| Дневник Архимеда | статистика, серии (streaks), план на неделю |
| Дуэль 1v1 | синхронное соревнование на одинаковых задачах, рейтинг Эло |
| Олимпиадный симулятор | пробный тур с таймером и протоколом |
| «Семейная олимпиада» | режим «родитель + ребёнок» |
| Верификатор | автопроверка ответов (Python-песочница + символьная проверка) |
| Песочница | изолированная среда выполнения кода верификатора |
| Паспорт задачи | структурированное описание задачи (см. §3.1) |
| Адаптивный движок | правила подбора сложности (+1/−1, спейсинг) |
| Прогноз результатов | эвристика «уровень → этап ВсОШ» |

### B. Типы ответов

| Тип | Пример | Проверка в MVP |
|---|---|---|
| Число | «Найдите x: 17» | допуск + единицы |
| Выражение | «x² − 4x + 3» | символьная эквивалентность |
| Конструкция | граф, схема цепи, геометрическое построение | JSON-схема |
| Эссе-решение | письменное обоснование | не проверяется автоматически |
| Химия: расчёт | «m(NaCl) = ? г» | допуск + балансировка |

### C. Шаблон паспорта задачи (JSON)

```json
{
  "id": "SYR-01-003",
  "island": "syracuse",
  "chapter": 1,
  "theme": "combinatorics",
  "skill": "invariant",
  "grade": [6, 7],
  "difficulty": 3,
  "answer_type": "number",
  "source": "problems.ru/12345",
  "status": "published",
  "statement": "…сюжетное условие…",
  "hints": ["…уровень 1…", "…уровень 2…", "…уровень 3 (идея)…"],
  "archimedes_solution": "…элегантное решение…",
  "common_mistakes": ["…типичная ошибка…"],
  "template": {"params": ["a", "b"], "variants": 5},
  "verification": {"type": "number", "tolerance": "relative:0.01"}
}
```

---

*Документ сформирован на основе концепции «АРХИМЕД» и исследовательских отчётов. Все параметры, помеченные **[уточнить]**, требуют решения продакта/методолога до старта соответствующего спринта.*
