← Играть

Путь по ссылке: клавиши Даши

«…needs to find a letter on the keyboard…» — вернуть исходную механику как самостоятельную игру. Даша говорит только по-русски.
Проверенная среда: https://baby-button-locker.vercel.app/keyboard
Проверенный функциональный код: ff2d55c971ebc896491fcb22b7a64576cdf29fc6
Код до: f49d4612d23d9188baa7aa6703f1ad29dc2057f1
21 октября 2026
Публичная реальная сборка390×844 + 1440×10007 игровых механикБез входа и новых аккаунтов

Персоны: Даша — реальный ребёнок из запроса Петра; её собственная игра ещё не проверена. Новый взрослый — сценарий первого входа без аккаунта. Словарь настоящий; учебная история на снимках создана браузерной проверкой, а не реальными ответами Даши.

Публичная публикация → проверенная игра

Публичное меню: 390 пикселей
Публичное меню: 390 пикселей
Публичное меню: 1440 пикселей
Публичное меню: 1440 пикселей
Публичная ошибка и та же цель
Публичная ошибка и та же цель
Публичная награда по-русски
Публичная награда по-русски
Публичная награда на компьютере
Публичная награда на компьютере
Публичное дерево: телефон
Публичное дерево: телефон
Публичное дерево: компьютер
Публичное дерево: компьютер

Видит: Игра по прежней ссылке https://baby-button-locker.vercel.app/keyboard. Проверенный функциональный код ff2d55c971ebc896491fcb22b7a64576cdf29fc6; production READY dpl_7hXu4g95FEhJuRn6r7LYnz4ULHmp. Существующий проект baby-button-locker, prj_6VtjAWMrxS7H4Gq9dFf8EidM453o; новых доменов и проектов нет. Все три CI-задачи этой сборки завершились успешно. Этот отчёт добавляет факты после проверки; конечный deployment SHA записан отдельно в release-receipt.json, без самоссылки.

Жмёт: В анонимном браузере: главная → игра → семь механик; неверный ответ → повтор → верный ответ → награда → выход; пять раундов до конца. Записана тестовая русская история, проверена перезагрузка. Отчёт и его картинки открыты по публичным URL. Ни одного серверного запроса записи; история только в отдельном браузере проверки.

Где застрянет: Играть с Дашей и прослушать настоящий динамик ещё предстоит. Публикация проверена отдельно от приёмки ребёнком и от родительского семейного медиасервиса.

Семейный медиаплеер → честная граница

Прежний семейный вход требует зачисления устройства
Прежний семейный вход требует зачисления устройства

Видит: Прежний /play сохранён отдельно и по-прежнему требует семейного зачисления устройства. Его файлы и API не менялись при восстановлении клавиатурной игры.

Жмёт: Открывает /play без регистрации и видит границу доступа. Для самостоятельной игры возвращается в /keyboard. Формы и генерация в этой проверке не отправлялись.

Где застрянет: Отдельный GET /api/sync/release с корректным синтетическим scope вернул HTTP500 «Offline release delivery unavailable». Это не проверенная доставка семейного контента и не заявленный HTTP401. Новые БД, ключи подписи и настройки безопасности не создавались. Клавиатурная игра работает независимо.

Mac: существующие archive/export прошли; development-подпись проверена, но Gatekeeper отклоняет приложение. ZIP сохранён локально с SHA256 в нативном release-receipt.json. Публичная нотарифицированная Mac-версия, установка и запуск не заявлены. Унаследованный Python CI нативного донора остаётся красным: 139 Ruff-замечаний и отсутствующий tests/; проверки Xcode прошли отдельно.

Ссылка → сразу понятная игра

До: Studio home на телефоне
До: Studio home на телефоне
После: семь игр и видимая кнопка запуска
После: семь игр и видимая кнопка запуска
После: выбор на компьютере
После: выбор на компьютере

Видит: Раньше — английский родительский Studio home без клавиатурной игры. Теперь — русское меню из семи механик. На телефоне кнопка «Давай играть» закреплена внизу и доступна до прокрутки.

Жмёт: Выбирает механику и нажимает «Давай играть». Системные клавиши остаются доступны.

Где застрянет: До: ребёнку предлагали родительские действия, а семейный медиаплеер отдельно требовал зачисления устройства. Исправлено: самостоятельный /keyboard без аккаунта; прежний семейный контур сохранён отдельно.

Буква → попытка → настоящая награда

Неверная клавиша: цель остаётся
Неверная клавиша: цель остаётся
Верная буква: слово и объяснение
Верная буква: слово и объяснение

Видит: Показывается русская буква. Неверная клавиша объясняется спокойно; прогресс не растёт. Верная клавиша даёт слово из исходного словаря, русское определение и доступную исходную иллюстрацию.

Жмёт: Нажимает физическую кириллическую клавишу или крупную букву на экране; затем «Дальше». Выход и Esc доступны весь раунд.

Где застрянет: До: исходная механика была потеряна при переходе к Owl. Исправлено: валидируемая буква, повтор, подсказка, награда, продолжение и конечная сессия из пяти раундов.

Слово → буква за буквой или пропуск

Собери слово
Собери слово
Верни пропавшую букву
Верни пропавшую букву

Видит: «Собери слово» принимает только следующую букву. «Пропавшая буква» скрывает конкретную позицию настоящего слова, а не заменяет весь раунд другой вывеской.

Жмёт: Печатает или касается букв; неверная попытка сохраняет позицию.

Где застрянет: Слишком длинное или редкое слово может оказаться сложным для ребёнка. Исправлено: реальная частота русского слова, предел длины, выбор набора, подсказки и отдельная нагрузка задания.

Услышь слово или смысл → выбери ответ

Слово на слух
Слово на слух
Русская подсказка по смыслу
Русская подсказка по смыслу

Видит: «Услышь и найди» произносит русское слово. «Отгадай слово» даёт русское определение, после которого нужно выбрать соответствующее слово или картинку. Это разные задания.

Жмёт: Повторяет звук, выбирает ответ, при необходимости нажимает «Подскажи».

Где застрянет: Голос зависит от устройства. Есть повтор и видимое раскрытие; отсутствие русского голоса обозначается. Настоящее прослушивание динамика и точность понимания Дашей не заявлены как проверенные.

Посмотри → запомни → повтори

Правильный порядок
Правильный порядок
Пять раундов закончены
Пять раундов закончены

Видит: Короткая последовательность сначала видна, затем скрывается. Даша повторяет порядок; ошибка не заполняет следующий слот. После пяти раундов есть конечный экран и новый осмысленный выбор.

Жмёт: Повторяет клавиши в порядке, использует подсказку или выходит.

Где застрянет: Механическое нажатие не должно завершать раунды без ответа. Повтор клавиши и ввод в награде отсечены; порядок и точное совпадение проверяются.

Родитель → исходный словарь → настоящая ротация

Слова, источник, история
Слова, источник, история
Настройки и исследования
Настройки и исследования

Видит: 149 исходных смысловых ID, 15 наборов, 298 en/ru лексем. Даша играет только на русском. Исходные 147 английских частотных записей сохранены как происхождение, а фильтрация использует заново проверенную частоту русского написания. Новые 149 русских учебных объяснений помечены как новый текст; исходные заглушки не выдаются за словарь.

Жмёт: Меняет набор, частоту, длину и соотношение нового/повторов; редактирует объяснение по смысловому ID; отмечает «знает / пока не знает» и экспортирует историю.

Где застрянет: До: маленький случайный список мог заменить обширное исследование. Используется существующий @daria/curriculum: due review, discovery, подавление недавних слов, граница сложности, объяснение выбора и неизменяемый журнал. Частота не означает, что Даша знает слово.

Полное исследование восстановлено прежним скриптом: по 1000 кандидатов en/ru. Русские кандидаты имеют частоту и морфологию, но не словарные определения. Только явно одобренный взрослым кандидат входит в локальную игру. Английские WordNet-смыслы остаются родительским справочным материалом; они не звучат в детской игре.

Дерево → раскрытие → перенос прогресса

Дерево на телефоне
Дерево на телефоне
Дерево на компьютере
Дерево на компьютере

Видит: Один корень, пять ветвей, квадратные узлы и явные условия приёмки. 19 из 21 листа реализованы; реальные Mac и игра с Дашей остаются запланированными.

Жмёт: Раскрывает ветку на месте или отдельно фокусируется на ней. Экспортирует JSON, импортирует его и сохраняет HTML-копию.

Где застрянет: Локальная заметка браузера не равна изменению исходного roadmap.json. Экспорт/импорт проверены; точные байты сохранённого HTML открыты на новом origin 8136 без исходного localStorage и сохранили заметку. Прямое file:// открытие отклонено транспортом инструмента и остаётся непроверенным.

Главные трения сегодня → исправления в сборке

  1. Игры не было по понятной ссылке. → /keyboard открыт без аккаунта, ссылка с главной страницы.
  2. Русскоязычному ребёнку попадал английский сценарий. → профиль Даши закреплён на русском; русские подсказки, определения, награды и ru-RU. OCR проверил 135 исходных картинок; 31 с латинскими словами или похожими фрагментами исключена. Дополнительный независимый визуальный просмотр нашёл короткие и стилизованные английские подписи; соответствующие картинки тоже исключены. Исходники сохранены.
  3. Правильная клавиша не была частью полного игрового пути. → вход, физический и сенсорный ответ, ошибка, повтор, награда, пять раундов, выход проверены.
  4. Пропадали частотность, смысл и ротация. → исходные meaningID и существующий планировщик; настоящая русская частотность; редкость и нагрузка написания раздельны от знания слова.
  5. Нельзя было понять, что реально сохранено и проверено. → история по лексемам, родительские исправления, экспорт, дерево с критериями, этот отчёт. Нативный lock и приёмка ребёнком честно открыты.
СегодняНовый путьПроверка
Родительский экранРусское меню → играСвежий переход с главной
Неверная клавишаСпокойный повтор той же целиВсе шесть конечных механик
УспехСлово + русский смысл → дальшеФизические клавиши и касания
СловарьЧастота/набор/длина → реальная подборкаРодительская смена + unit-проверки крайних фильтров
ПрогрессНеизменяемая локальная история и перенос дереваПерезагрузка, JSON и другая origin