This commit is contained in:
2025-10-06 08:11:43 +03:00
parent 8cfad121b2
commit 9500d747b1
3 changed files with 103 additions and 6 deletions

View File

@@ -0,0 +1,97 @@
<?xml version="1.0" encoding="UTF-8"?>
<WorkOrder>
<Configuration>
<MaxConcurrentAgents>1</MaxConcurrentAgents>
<MaxIterations>25</MaxIterations>
<TaskChannel>
<Implementation>
<Plugin>filesystem</Plugin>
<Parameters>
<BasePath>tasks/temp</BasePath>
</Parameters>
</Implementation>
</TaskChannel>
<MetricsSink>
<Implementation>
<Plugin>xml_file</Plugin>
<Parameters>
<OutputPath>logs/metrics</OutputPath>
</Parameters>
</Implementation>
</MetricsSink>
<LogSink>
<Implementation>
<Plugin>xml_file</Plugin>
<Parameters>
<OutputPath>logs/main</OutputPath>
</Parameters>
</Implementation>
</LogSink>
</Configuration>
<Objective>
<HumanReadable>Создать полнофункциональный экран "Inventory", который будет отображать список предметов инвентаря. Экран должен использовать существующую архитектуру и компоненты.</HumanReadable>
</Objective>
<SystemContext>
<System>
<OperatingSystem>Linux</OperatingSystem>
<Shell>/usr/bin/zsh</Shell>
</System>
<Project>
<Name>Homebox Lens</Name>
<Framework>Android (Jetpack Compose)</Framework>
<Language>Kotlin</Language>
<BuildSystem>Gradle</BuildSystem>
<Architecture>MVVM, Clean Architecture</Architecture>
</Project>
</SystemContext>
<InitialContext>
<File>
<Path>domain/src/main/java/com/homebox/lens/domain/model/ItemSummary.kt</Path>
</File>
<File>
<Path>app/src/main/java/com/homebox/lens/ui/screen/inventorylist/InventoryListScreen.kt</Path>
</File>
</InitialContext>
<AcceptanceCriteria>
<Criterion>
<Description>Создан новый Gradle-модуль `feature:inventory`.</Description>
</Criterion>
<Criterion>
<Description>В модуле `feature:inventory` реализован `InventoryScreen`, `InventoryViewModel` и `InventoryUiState`.</Description>
</Criterion>
<Criterion>
<Description>`InventoryViewModel` использует `SearchItemsUseCase` для получения списка предметов.</Description>
</Criterion>
<Criterion>
<Description>`InventoryScreen` отображает список предметов, используя `ItemSummary` в качестве модели представления для каждого элемента списка.</Description>
</Criterion>
<Criterion>
<Description>Новый экран интегрирован в навигацию приложения.</Description>
</Criterion>
<Criterion>
<Description>Весь новый код соответствует стайлгайду проекта и семантически корректен.</Description>
</Criterion>
</AcceptanceCriteria>
<Workflow>
<Step>
<Name>Создание модуля</Name>
<Description>Создать новый feature-модуль с именем `inventory`.</Description>
</Step>
<Step>
<Name>Реализация ViewModel</Name>
<Description>Создать `InventoryViewModel` который будет запрашивать данные из `SearchItemsUseCase` и управлять состоянием экрана `InventoryUiState`.</Description>
</Step>
<Step>
<Name>Реализация UI</Name>
<Description>Создать `InventoryScreen`, который будет отображать список `ItemSummary` из `InventoryUiState`. Для каждого элемента списка создать `ItemRow` composable.</Description>
</Step>
<Step>
<Name>Интеграция навигации</Name>
<Description>Добавить `InventoryScreen` в граф навигации приложения.</Description>
</Step>
<Step>
<Name>Рефакторинг</Name>
<Description>Удалить старый `InventoryListScreen` из `app` модуля, если он больше не нужен.</Description>
</Step>
</Workflow>
</WorkOrder>