From ac99a2ff08f8a7f7e6a7b269863c6ec60652b433 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <209825114+claude[bot]@users.noreply.github.com> Date: Thu, 3 Sep 2026 05:52:52 +0000 Subject: [PATCH] docs: review document for #426 Issue: #426 User-Visible: no --- docs/reviews/SPEC-REVIEW-426-r1.md | 171 +++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 docs/reviews/SPEC-REVIEW-426-r1.md diff --git a/docs/reviews/SPEC-REVIEW-426-r1.md b/docs/reviews/SPEC-REVIEW-426-r1.md new file mode 100644 index 00000000..78d5d85b --- /dev/null +++ b/docs/reviews/SPEC-REVIEW-426-r1.md @@ -0,0 +1,171 @@ +# SPEC-REVIEW-426-r1 + +- **Issue:** https://github.com/Matysh/houseplan-card/issues/426 +- **Этап:** spec (ревью ТЗ, PROCESS.md §2.4) +- **Заход:** r1 · блокирующих циклов израсходовано 0 из 4 +- **Материал:** `docs/specs/426-room-hover-tooltip-toggle.md` на ветке + `issue/426-room-hover-tooltip-toggle`, SHA `587c20699c4bc1ada405c5c7f9775d34b2b78a39` + (совпадает с ревизией, заявленной автором в issue). +- **Трек:** полный (не `small`) — аналитик назвал нарушенные критерии §5 + корректно: новое compatibility-поле в `config.settings` и новый публичный + UX-контракт, изменение проходит через frontend и backend. + +## Скоуп + +Один глобальный переключатель «Показывать окно с информацией при наведении на +комнату» в «Общих настройках», управляющий только room-tooltip в View +(включая kiosk с мышью); hover-подсветка комнаты и все прочие тултипы не +меняются. Новое optional `settings.show_room_tooltip: boolean`, default `true` +материализуется отсутствием ключа. + +## Как проверялось + +Ревью ТЗ на этапе `spec` не запускает автотесты/гейты (кода ещё нет) — задача +ревьюера здесь одна: убедиться, что каждое AC однозначно, доказуемо, и что +факты о текущем коде, на которые опирается контракт, не являются +не помеченной догадкой. Поэтому весь разбор — очный аудит соответствия текста +ТЗ реальному состоянию репозитория `587c2069`: + +1. `docs/SCOPE.md`, `PROCESS.md`, `AGENTS.md` — трек, обязательные разделы + §7.1, класс изменений, шаблон вердикта. +2. Тело issue #426 и оба комментария (аналитика, занятие, готовность ТЗ) — + сверка с тем, что владелец зафиксировал сам (место настройки, точная + формулировка, default) против того, что ТЗ выдаёт за решённое. +3. `docs/USER-GUIDE.ru.md` (строка 203, 1871) — терминология «подсказка»/ + «наведение», состав room-tooltip (название, чистая площадь, температура, + влажность, LQI) — совпадает с описанием AC4. +4. `docs/UX-MODES.md`, `docs/TOUCH-SUPPORT.md` (pointer modality, hover + ownership) — независимость room hover-подсветки от tooltip и контракт + touch/pen уже существуют и не меняются этим ТЗ. +5. Построчная проверка каждого фактического утверждения ТЗ о текущем коде: + - `src/houseplan-card.ts:11578-11589` — локальный `tip`-замыкание на + `pointermove` комнаты, guard `if (this._mode !== 'view') return;`, + безусловный вызов `_showTip()` — подтверждает раздел «Проблема». + - `src/houseplan-card.ts:7282-7294` — `_showTip()` общий для комнаты и + устройства, проверяет `hoverEnabled`/`drag`, ничего не знает про + room-specific флаг — подтверждает риск «не трогать общий guard». + - `src/houseplan-card.ts:1032, 9542, 9659, 9668, 11626-11677` — `_hoverRoom` + и `room-hover-fill-layer`/`outline-layer` независимы от `tip`, + устанавливаются на `pointerenter` — подтверждает AC5. + - `src/houseplan-card.ts:12463-12472` — device tooltip гейтится + `_mode !== 'view' && _mode !== 'devices'`, использует тот же `_showTip()` + — подтверждает «Device tooltip... в View и Редакторе устройств». + - `src/houseplan-editor-runtime.ts:9023-9039, 10213-10253` — + `_openSettingsDialog`/`_saveSettingsDialog` уже хранят `sunRays` по схеме + «явный `true` пишется, falsy удаляется» через `settings: any = {...cfg.settings}` + — подтверждает, что план для `show_room_tooltip` (обратная схема: default + `true` → удаление ключа, `false` → явная запись) технически реализуем тем + же путём, а не гипотетичен. + - `src/houseplan-editor-runtime.ts:10537-10538` — `gs.hint` действительно + первая строка тела диалога — подтверждает «сразу после вводного текста». + - `src/houseplan-editor-runtime.ts:10622-10626` — `