44 lines
3.4 KiB
Markdown
44 lines
3.4 KiB
Markdown
# 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-ов.
|