# Task Index

## Purpose

Эта папка хранит единый реестр статусов и шаблон, а сами task-файлы лежат в `docs/tasks/items`, чтобы корень `docs/tasks` не превращался в свалку файлов.

Файлы задач должны описывать работу достаточно ясно, чтобы будущий человек или AI-агент мог продолжить ее без восстановления исходного замысла по истории переписки.

## Rules

- используйте `docs/tasks/_template.md` для каждой новой задачи
- храните одну задачу в одном файле
- храните task-файлы в `docs/tasks/items`, без подпапок по статусам
- не переименовывайте и не перемещайте файл задачи при смене статуса
- статус задачи считается каноническим по записи в этом индексе
- предпочитайте ссылки на канонические документы вместо копирования больших фоновых разделов
- обновляйте статус задачи в этом индексе по мере продвижения работы
- если завершенная задача меняет поведение системы или операционные процессы, отдельно обновляйте каноническую документацию
- указывайте `execution_time` в формате Jira, например `1d6h30m`
- значение `execution_time` должно быть кратно 30 минутам
- используйте приоритеты `Lowest`, `Low`, `Medium`, `High`, `Highest`
- держите реестр отсортированным по `ID`, а не группируйте задачи по статусным разделам

## Supporting Docs

- шаблон задачи: `docs/tasks/_template.md`
- task-файлы: `docs/tasks/items/*.md`

Все отдельные task-файлы храните в `docs/tasks/items/`.

## Statuses

- `BackLog` - идея или задача существует, но еще не готова к активному исполнению
- `ToDo` - задачу можно брать в работу сейчас
- `InProgress` - по задаче сейчас идет активная работа
- `Review` - задача ждет проверки, решения или следующего подтверждающего шага
- `Done` - работа завершена; оставьте короткую заметку по итогу и позже при необходимости переместите или переименуйте файл

## Task Registry

| ID | Status | Priority | Area | Owner | Execution Time | File | Summary |
| --- | --- | --- | --- | --- | --- | --- | --- |
| TASK-0001 | ToDo | Highest | architecture | unassigned | 1d | docs/tasks/items/TASK-0001.md | Зафиксировать MVP-архитектуру диаблоида на FishNet: разделение player/world, authority, детерминизм и контракты между подсистемами. |
| TASK-0002 | ToDo | Highest | networking | unassigned | 1d | docs/tasks/items/TASK-0002.md | Реализовать сетевой bootstrap FishNet, лобби, выбор мира и подготовку игрока к входу в сессию. |
| TASK-0003 | ToDo | Highest | worldgen | unassigned | 1d6h | docs/tasks/items/TASK-0003.md | Построить детерминированную voxel-генерацию мира по seed с биомами и стабильной структурой чанков. |
| TASK-0004 | ToDo | High | persistence | unassigned | 1d | docs/tasks/items/TASK-0004.md | Спроектировать раздельные сохранения мира и персонажей по модели Terraria-style. |
| TASK-0005 | ToDo | Highest | spawning | unassigned | 1d | docs/tasks/items/TASK-0005.md | Реализовать детерминированный спавн врагов по seed, биому и координатам чанка. |
| TASK-0006 | ToDo | Highest | persistence | unassigned | 1d | docs/tasks/items/TASK-0006.md | Реализовать побитовую систему состояния врагов в чанке и сохранить ее в world save. |
| TASK-0007 | ToDo | Highest | gameplay-core | unassigned | 1d | docs/tasks/items/TASK-0007.md | Построить базовую боевую систему, уровни персонажа и связь прогрессии с уровнем оружия. |
| TASK-0008 | ToDo | Highest | inventory | unassigned | 1d | docs/tasks/items/TASK-0008.md | Реализовать сетевой инвентарь и экипировку с сохранением в player save. |
| TASK-0009 | ToDo | Highest | equipment | unassigned | 1d | docs/tasks/items/TASK-0009.md | Ввести абстрактную систему оружия с общими параметрами, scaling и точками расширения. |
| TASK-0010 | ToDo | Highest | abilities | unassigned | 1d | docs/tasks/items/TASK-0010.md | Реализовать абстрактную систему скиллов и книг, которые вставляются в оружие. |
| TASK-0011 | ToDo | High | characters | unassigned | 1d | docs/tasks/items/TASK-0011.md | Сделать базовую модель классов персонажей для Воина, Мага и Лучника. |
| TASK-0012 | ToDo | Highest | ai | unassigned | 1d6h | docs/tasks/items/TASK-0012.md | Построить систему врагов на NavMesh с применением общей системы навыков. |
| TASK-0013 | ToDo | High | ui | unassigned | 1d | docs/tasks/items/TASK-0013.md | Реализовать меню лобби, выбор персонажа и выбор мира перед входом в игровую сессию. |
| TASK-0014 | ToDo | High | classes | unassigned | 1d | docs/tasks/items/TASK-0014.md | Реализовать MVP-скилл Воина: простой удар мечом через общую систему оружия и навыков. |
| TASK-0015 | ToDo | High | classes | unassigned | 1d | docs/tasks/items/TASK-0015.md | Реализовать MVP-скилл Мага: условный AOE-каст через общую систему оружия и навыков. |
| TASK-0016 | ToDo | High | classes | unassigned | 1d | docs/tasks/items/TASK-0016.md | Реализовать MVP-скилл Лучника: выстрел через общую систему оружия и навыков. |
| TASK-0017 | BackLog | Medium | networking | unassigned | 1d | docs/tasks/items/TASK-0017.md | Добавить reconnect/resume после дисконнекта с восстановлением позиции и session state. |
| TASK-0018 | BackLog | Medium | persistence | unassigned | 1d | docs/tasks/items/TASK-0018.md | Добавить миграции формата сохранений между версиями для world save и player save. |
| TASK-0019 | InProgress | High | worldgen | pretty_kotik | 1d6h | `docs/tasks/items/TASK-0019.md` | Добавить детерминированное размещение dungeon prefab в voxel-мире через stamp/carve в данных чанков. |
| TASK-0020 | BackLog | High | security | unassigned | 1d | docs/tasks/items/TASK-0020.md | Добавить серверные ограничения и валидации против читов и некорректных клиентских команд. |
| TASK-0021 | ToDo | High | architecture | unassigned | 2d | docs/tasks/items/TASK-0021.md | Привести проект в порядок: разнести код по asmdef, навести структуру Editor/Runtime и добавить базовые автотесты. |
| TASK-0022 | ToDo | Highest | worldgen | unassigned | 1d | docs/tasks/items/TASK-0022.md | Интегрировать спавн врагов в VoxelWorldGenerator: спавнить по загрузке чанка и учитывать kill-state. |
| TASK-0023 | InProgress | Highest | ai | abysscion | 2d | `docs/tasks/items/TASK-0023.md` | Реализовать runtime NavMesh bake для voxel-чанка и интегрировать обновление навигации при загрузке/изменении чанков. |
| TASK-0024 | ToDo | Highest | art | unassigned | 2d | docs/tasks/items/TASK-0024.md | Заменить Minecraft-placeholder арт на легальные ассеты для продакшена и зафиксировать источник/лицензии. |
| TASK-0025 | ToDo | Highest | build | unassigned | 1d | docs/tasks/items/TASK-0025.md | Описать и зафиксировать flow локального теста билда: сборка, запуск, host/client сценарий и обязательный smoke checklist. |
| TASK-0026 | BackLog | High | ui | unassigned | 2d | docs/tasks/items/TASK-0026.md | Реализовать миникарту и механизм сохранения открытой карты у хоста так, чтобы состояние миникарты было общим для всех игроков мира. |
