# S07: Навигация, контакты и списки Собрать адаптивный shell и реальные roster/presence/avatars. Входной gate: S06-011. Выходной gate: S07-013. ## Задачи - [S07-001](../tasks/S07-001.md): Создать adaptive shell — front; todo. - [S07-002](../tasks/S07-002.md): Реализовать Back/selection routes — front; todo. - [S07-003](../tasks/S07-003.md): Создать ConversationRow — front; todo. - [S07-004](../tasks/S07-004.md): Реализовать search/sort policies — front; todo. - [S07-005](../tasks/S07-005.md): Подключить empty/no-results states — front; todo. - [S07-006](../tasks/S07-006.md): Реализовать roster initial/push — protocol; todo. - [S07-007](../tasks/S07-007.md): Реализовать presence reducer — protocol; todo. - [S07-008](../tasks/S07-008.md): Реализовать avatar fetch/publish adapter — protocol; todo. - [S07-009](../tasks/S07-009.md): Нормализовать avatar asset — media; todo. - [S07-010](../tasks/S07-010.md): Собрать ContactsView — front; todo. - [S07-011](../tasks/S07-011.md): Создать new direct chat flow — front; todo. - [S07-012](../tasks/S07-012.md): Проверить shell и roster UI — qa; todo. - [S07-013](../tasks/S07-013.md): Gate: Навигация, контакты и списки — qa; todo. ## Граница этапа Выходной gate проверяет evidence/готовые проверки, не реализует функции за остальные задачи. Если отдельная карточка требует слишком большой контекст — split с сохранением requirements coverage.