7a59b035ce
Закрыты расхождения с ТЗ: - Метки (§12) переименованы под спецификацию: role_player, game_dota2, format_help, interest_trial, interest_summer_intensive, manager_requested, source_main_menu, source_keyword_summer; убраны служебные age_*/level_* метки. - Сохранённые данные (§13): кодовое слово, дата запуска бота (started_at), дата передачи менеджеру (manager_at), интересы (пробное/интенсив). Карточка менеджеру дополнена этими полями, заголовок «Новый запрос из бота». - «Пока не знаю, нужен совет» (§7): показ собранных данных + свободный текст → менеджеру. - «Задать вопрос» (§9): промпт «напишите одним сообщением» → BAZA_QUESTION → передача. - Летний интенсив: свой набор уровней (§10.3), экран младше-12 (Передать менеджеру/ Другие тренировки), двухшаговая оплата (Оплатить интенсив → ссылка) (§10.4), различение запуска по кодовому слову vs меню. - Индивидуальная ветка без «пробного» (§6). Fallback-текст дословно по §15. - «Выбрать абонемент» ведёт на страницу тарифов ссылкой (§8). Тексты веток — по ТЗ. Тесты воронки обновлены и дополнены (интенсив-оплата, младше-12 интенсив, свободный вопрос, «нужен совет»). pytest 30 passed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>