# 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 | Done | 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 | Реализовать миникарту и механизм сохранения открытой карты у хоста так, чтобы состояние миникарты было общим для всех игроков мира. | | TASK-0027 | ToDo | Highest | gameplay-core | unassigned | 3d | docs/tasks/items/TASK-0027.md | Перевести player movement на host-authoritative NavMesh pipeline с server-side path planning и shared debug path preview для всех клиентов. | | TASK-0028 | Done | Highest | ai | unassigned | 2d | docs/tasks/items/TASK-0028.md | Перевести основной runtime pathing mode на interest-cluster-based coverage windows, чтобы убрать seam-разрывы region-based NavMesh и учитывать multiplayer interest set. | | TASK-0029 | ToDo | Highest | gameplay-core | unassigned | 1d | docs/tasks/items/TASK-0027.md | Реализовать пять канонических атрибутов, их derived combat scaling и интеграцию с классами Воина, Мага и Лучника. |