# AI_LOG ## Использование AI AI использовался как помощник при планировании, реализации и проверке проекта. Работа велась итеративно по task-файлам из `Agent/Task/`. ## Какие промпты использовались - Изучить `TASK-0001` и файл `Agent/Agent.md`, заранее прочитать остальные задачи и подготовить базу под них. - Спланировать и реализовать TASK-0001 - TASK-0006 (с персональными правками под планирование). ## Где AI ошибся или требовал корректировки - После реализации lifecycle возник runtime bug `MissingReferenceException`: при уничтожении `LifetimeScope` cancellation вызывал `Release()` уже уничтоженного `MenuUIView`. Это потребовало отдельной диагностики и фикса в базовом `UIView`. - AI приходилось явно удерживать ограничения проекта. Например не использовать `FindObjectOfType`, не использовать `Singleton.Instance`, не использовать static-state, делать serialized поля через auto property с `[field: SerializeField]` и другие моменты. - Пытался игнорировать SOLID. ## Что было переписано или уточнено руками - Правки по stack trace для `MissingReferenceException` на основе этого был исправлен lifecycle в `UIView`. - Документы написаны с учетом фактической реализации, а не только первоначального плана. - Исправлены моменты TASK-ок которые нарушали задуманную архитекутру. - Scene references были настроены вручную. - Сборка UI с настройкой якорей для адаптивной работы на разных экранах. - Пронумировал enum, чтобы не ломалась сериализация при добавление стейтов. ## Что проверялось - Кодстайл проекта, соблюдение namespace. - Поиск запрещенных паттернов `FindObjectOfType`, `Singleton.Instance`, `static`, `async void`, `Task.Delay`, `Update`, `RemoveAllListeners`. - Проверка listener `AddListener(OnRestartClicked)` и `RemoveListener(OnRestartClicked)`. - Проверка, что states не вызывают `EnterStateAsync` сами. - Проверка, что ViewModel не наследуются от `MonoBehaviour`. ## Что важно проверить вручную - Открыть `Assets/Scenes/SampleScene.unity`. - Запустить Play Mode. - Проверить `Splash -> Loading -> Menu`. - Проверить, что `Text (Data_Status)` показывает актуальный этап. - Проверить, что `Slider` идет от `0` до `1`. - Нажать `Restart` и проверить повторный `Loading -> Menu`. - Остановить Play Mode на `Menu` и убедиться, что нету Warning-ов и Error-ов.