feat: add agent tasks and update documentation

- Create 7 new task files (TASK-0001 through TASK-0007)
- Add task template file for future use
- Update Agent.md with project information
- Update TASK.md with task tracking
This commit is contained in:
2026-05-27 03:36:25 +07:00
parent b980566288
commit 6c46b3043a
10 changed files with 320 additions and 7 deletions
+33
View File
@@ -0,0 +1,33 @@
# TASK-0004: UI база и ViewModel слой
## Цель
Создать базовый UI слой, в котором View отвечает только за Unity-ссылки и биндинги, а логика находится во ViewModel или state/flow сервисах.
## Что сделать
- Создать `IUIViewModel`.
- Создать `UIView : MonoBehaviour` с методами `Initialize()` и `Release()`.
- Создать `UIView<TVm> : UIView where TVm : IUIViewModel`.
- Добавить явную привязку ViewModel во View через метод вроде `Bind(TVm vm)` или `Setup(TVm vm)`.
- Сделать `Release()` идемпотентным для всех View.
- Подготовить View для splash, loading и menu экранов.
## Технические требования
- ViewModel должна быть обычным C#-классом, не `MonoBehaviour`.
- Runtime-данные передавать во View явно, а не через DI-поля MonoBehaviour.
- View не должна содержать orchestration-логику boot flow.
- Все подписки и listeners должны сниматься в `Release()`.
- Повторный вызов `Release()` не должен приводить к ошибкам.
## Критерии готовности
- Есть базовые классы `UIView` и `UIView<TVm>`.
- ViewModel можно передать во View явно перед `Initialize()`.
- `Release()` безопасен при повторном вызове.
- View не вызывает `FindObjectOfType`, не хранит глобальное состояние и не управляет переходами state machine.
## Заметки
MonoBehaviour должны оставаться presentation layer. Это соответствует задаче: логика находится в VM или сервисах, View только показывает состояние и прокидывает UI-события.