Files
enduro-trails/docs/work-items/ET-001/01-brd.md
claude-bot 12b239eebd
All checks were successful
CI / lint (push) Successful in 31s
CI / test (push) Successful in 49s
CI / build (push) Successful in 34s
analyst(ET): auto-commit from analyst run_id=3
2026-06-14 01:45:40 +03:00

6.3 KiB
Raw Blame History

type, work_item_id, title, version, status, created_at, updated_at, author, supersedes, relates_to
type work_item_id title version status created_at updated_at author supersedes relates_to
brd ET-001 BRD: Чекбокс показа/скрытия POI в кнопке рельефа 4 proposed 2026-06-14 2026-06-14 agent:analyst barriers-osrm (archive-2026-05-barriers-osrm/) ET-002

BRD — ET-001: Чекбокс показа/скрытия POI в кнопке рельефа

Важно для всех последующих этапов. Этот пакет артефактов переиспользует ID ET-001 под POI-задачу (ветка feature/ET-001-poi). Прежняя задача под этим ID — «Исключить шлагбаумы и тротуары из OSRM» — заархивирована в docs/work-items/ET-001/archive-2026-05-barriers-osrm/ (содержимое сохранено побайтно). Перезапись корневых файлов поэтому не деструктивна.

Запрошенная функциональность уже реализована и поставлена в рамках ET-002 (бизнес-запрос ET-002 дословно совпадает с ET-001). Поэтому данный BRD трактует ET-001 как верификацию уже поставленного поведения + одну косметическую дельту (подпись чекбокса), а не как новую разработку. Подробности — 08-analyst-finding-duplicate.md, 09-analyst-decision-required.md.

1. Контекст и проблема

На карте маркеры POI (точки интереса: вода, родники, виды, руины, пики, пещеры, броды) отображаются всегда и не отключаются. Пользователю нужна возможность скрывать их, чтобы разгрузить карту при планировании маршрута.

2. Цель

Дать пользователю управление видимостью слоя POI через чекбокс в попапе кнопки рельефа (#terrain-toggle#terrain-popup), с подписью «Показывать POI», включённый по умолчанию, с сохранением выбора между сессиями.

3. Бизнес-требования (Scope)

# Требование Текущая реализация (ET-002) Дельта ET-001
BR-1 В попапе кнопки рельефа есть чекбокс управления POI #poi-visible-cb в #terrain-popup
BR-2 Подпись чекбокса — «Показывать POI» ⚠️ сейчас «POI» изменить подпись
BR-3 По умолчанию чекбокс включён (POI видны) checked + дефолт «видимы»
BR-4 Снятие чекбокса скрывает все маркеры POI с карты слои poi-circles, poi-labelsvisibility:none
BR-5 Повторная установка возвращает POI
BR-6 Состояние сохраняется между сессиями браузера localStorage['poi-visible']
BR-7 Состояние не сбрасывается при смене темы восстановление после смены стиля

Единственная новая работа в ET-001 — BR-2: привести подпись чекбокса к формулировке заказчика «Показывать POI» (сейчас в UI — «POI»). Это правка одного текстового узла <span> в src/web/index.html.

4. Вне scope

  • Разбивка POI по типам (отдельные чекбоксы вода/виды/пики и т.п.).
  • Отдельная кнопка POI на панели карты.
  • Иконка-индикатор состояния POI на кнопке рельефа.
  • Изменение серверной отдачи POI в MVT-тайлах (/api/tiles) — видимость управляется только на клиенте.

5. Метрики успеха

  • Чекбокс «Показывать POI» виден в попапе рельефа, включён по умолчанию.
  • Снятие/установка скрывает/возвращает все маркеры POI на карте.
  • После перезагрузки и после смены темы выбранное состояние сохраняется.
  • Регрессии в ET-002 отсутствуют (unit-тесты poi_toggle зелёные).

6. Риски

Риск Митигация
Переименование подписи ломает существующий регресс-тест ET-002: tests/unit/test_poi_toggle.py:54 жёстко проверяет assert "<span>POI</span>" in html Обновить ожидание текста в этом тесте на <span>Показывать POI</span> в том же коммите, что и правку index.html:88. JS-тест poi_toggle.test.js подпись не проверяет — его трогать не нужно
Восприятие задачи как «нечего делать» (дубликат ET-002) Чёткая дельта BR-2 + полный регресс-пакет верификации
Коллизия артефактов с барьерной задачей под тем же ID Барьерные артефакты заархивированы; данный пакет — канонический для POI-ET-001

7. Открытый вопрос к Owner

Если переименование подписи не требуется (ET-002 уже принят с «POI»), то ET-001 следует закрыть как дубликат ET-002 (закрытие — за Owner/CI, правило CLAUDE.md №4). Данный пакет описывает минимально возможную реальную дельту, если задачу всё же нужно довести.