723657f2f7
- Add Status section requirement in Agent.md guidelines - Define valid status values (Planned, Ready, In Progress, Done, Blocked) - Update TASK-0001 with Ready status - Add Status section to TASK_TEMPLATE.md with Planned default Обновлена документация агента и отслеживание статусов задач: - Добавлено требование раздела Статус в руководствах Agent.md - Определены допустимые значения статусов (Planned, Ready, In Progress, Done, Blocked) - Обновлён TASK-0001 со статусом Ready - Добавлен раздел Статус в TASK_TEMPLATE.md с значением Planned по умолчанию
2.5 KiB
2.5 KiB
TASK-0001: Composition Root и зависимости
Статус
Ready
Цель
Настроить корневую точку композиции проекта через 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(...), потому что это данные, а не сервис с жизненным циклом.