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:
@@ -0,0 +1,36 @@
|
||||
# TASK-0001: Composition Root и зависимости
|
||||
|
||||
## Цель
|
||||
|
||||
Настроить корневую точку композиции проекта через VContainer так, чтобы orchestration-логика жила в plain C# классах, а MonoBehaviour использовались только как View-компоненты сцены.
|
||||
|
||||
## Что сделать
|
||||
|
||||
- Создать `GameLifetimeScope`.
|
||||
- Зарегистрировать сервисы и контроллеры через VContainer как managed dependencies.
|
||||
- Зарегистрировать `BootstrapEntryPoint` как entry point приложения.
|
||||
- Зарегистрировать `BootStatesController` как `IStatesController<BootStateCode>` и при необходимости как self.
|
||||
- Зарегистрировать `SplashState`, `LoadState`, `MenuState`.
|
||||
- Зарегистрировать scene View через `RegisterComponent(...)`.
|
||||
- Зарегистрировать settings asset через `[SerializeField]` и `RegisterInstance(...)`.
|
||||
|
||||
## Технические требования
|
||||
|
||||
- Использовать VContainer.
|
||||
- Сервисы регистрировать через `builder.Register<Impl>(Lifetime.Singleton).As<IInterface>()`.
|
||||
- Не использовать `RegisterInstance(...)` для сервисов и controller-объектов.
|
||||
- `RegisterInstance(...)` использовать только для settings/config assets.
|
||||
- Не использовать `FindObjectOfType`, `Singleton.Instance` и `static`-хранилища состояния.
|
||||
- MonoBehaviour не должны содержать orchestration-логику boot flow.
|
||||
|
||||
## Критерии готовности
|
||||
|
||||
- В сцене есть один `GameLifetimeScope`.
|
||||
- Все boot flow зависимости собираются через VContainer.
|
||||
- View-компоненты подключаются через ссылки из сцены, а не через поиск объектов.
|
||||
- Entry point запускается контейнером.
|
||||
- Сервисы и state machine не создаются вручную через `new` внутри MonoBehaviour.
|
||||
|
||||
## Заметки
|
||||
|
||||
Scene View допустимо регистрировать как компоненты, потому что они физически живут в сцене. Settings asset допустимо регистрировать через `RegisterInstance(...)`, потому что это данные, а не сервис с жизненным циклом.
|
||||
Reference in New Issue
Block a user