mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
@@ -0,0 +1,113 @@
|
||||
# Ревью ТЗ — issue #179, цикл r2
|
||||
|
||||
- **Issue:** https://github.com/Matysh/houseplan-card/issues/179
|
||||
- **ТЗ:** `docs/specs/179-device-icons-redesign.md` (коммит `2310e6d`, ветка
|
||||
`issue/179-device-icons-redesign`)
|
||||
- **Трек:** обычный
|
||||
- **Вердикт:** зелёный · цикл r2/4 · High: 0 · Medium: 0 · Low: 0
|
||||
|
||||
## Скоуп ревью
|
||||
|
||||
Проверялась правка ТЗ, внесённая автором в ответ на `SPEC-REVIEW-179-r1.md`
|
||||
(вердикт жёлтый, 5 Medium + 2 Low, все в скоупе). Скоуп этого цикла — точечный:
|
||||
подтвердить, что каждая из 7 находок r1 закрыта фактически, а не текстом, и что
|
||||
правки не внесли новых противоречий или непроверяемых мест. Продуктовый код
|
||||
по-прежнему не существует (issue не дошёл до `S5-ready`), поэтому раздел
|
||||
«Гейты» PROCESS.md §8 к этому циклу неприменим — как и в r1.
|
||||
|
||||
## Как проверялось
|
||||
|
||||
1. Прочитаны `docs/SCOPE.md`, `AGENTS.md`, `PROCESS.md` (§2.4, §7.1, §7.2, §8,
|
||||
§12) и целиком `docs/reviews/SPEC-REVIEW-179-r1.md`.
|
||||
2. Прочитано тело issue #179 и все комментарии (`gh issue view 179 --json
|
||||
body,comments`), включая ответ автора от `2026-08-19T19:06:37Z` с перечнем
|
||||
исправлений.
|
||||
3. Получен точный diff редакции: `git diff 517a710 2310e6d -- docs/specs/
|
||||
179-device-icons-redesign.md` — правка сверялась по факту изменённых строк,
|
||||
а не по пересказу автора в комментарии.
|
||||
4. **Архив дизайнера передекачан и распакован** (`sha256sum` совпал:
|
||||
`63670C73E25D1E59DDAF1BE236F3D7F2FAC827B9B5D6DD4B77125EA9BC012025`), чтобы
|
||||
независимо перепроверить факты, на которых основана правка:
|
||||
- `grep -o feColorMatrix… "Light/Icon Default.svg"` → значения
|
||||
`0.145098/0.156863/0.176471` = `37/255, 40/255, 45/255` — подтверждает
|
||||
цвет тени из M1;
|
||||
- `diff "Dark/Icon Default.svg" "Dark/Icon Default No Blur.svg"` →
|
||||
единственное отличие — слой `foreignObject` с
|
||||
`backdrop-filter:blur(20px)` и атрибут `data-figma-bg-blur-radius`; core/
|
||||
stroke/filter-тень (`filter0_ddi_104_1541`) идентичны — подтверждает
|
||||
заявление M4/риска о сохранении геометрии;
|
||||
- `diff "Light/Icon Default.svg" "Light/Icon Default No Blur.svg"` → файлы
|
||||
побайтно идентичны, что согласуется с правилом «Light не содержит blur» и
|
||||
с пометкой `deprecated: true, aliasOf: "Light/Icon Default.svg"` для
|
||||
Light-варианта в `manifest.json` (у Dark-варианта такой пометки нет —
|
||||
перепроверено `grep -n -i "no blur" manifest.json` и чтением окружающего
|
||||
JSON, узел `qaFallback`);
|
||||
- `grep -in "presence\|green" SPECIFICATION.md ACTIVE_ANIMATION_SPEC.md
|
||||
DEVELOPER_HANDOFF.md` — подтверждает, что явного reason→color маппинга в
|
||||
архиве по-прежнему нет (это ожидаемо: M2 требовал не найти маппинг в
|
||||
архиве, а явно принять и промаркировать решение в ТЗ).
|
||||
5. Сверена цитата `docs/TOUCH-SUPPORT.md` — таблица контракта содержит ровно
|
||||
`| Device editor | … | Best effort |` — правка M5 воспроизводит источник
|
||||
точно, без искажения формулировки.
|
||||
6. Проверена трассируемость: `docs/specs/README.md` не расходится с ТЗ,
|
||||
коммит `2310e6d` несёт корректные трейлеры `Issue: #179` /
|
||||
`User-Visible: no`, изменения ограничены одним файлом ТЗ (класс C,
|
||||
документация, что не требует отдельного issue сверх текущего).
|
||||
7. Гейты не прогонялись — на этапе ревью ТЗ продуктового кода нет, раздел
|
||||
неприменим (как и в r1).
|
||||
|
||||
## Проверка находок r1 — построчно
|
||||
|
||||
| # | Требование r1 | Что внесено в `2310e6d` | Проверка |
|
||||
|---|---|---|---|
|
||||
| M1 | Заменить `rgb(0 0 0 / …)` на `rgb(37 40 45 / …)` в §7.1 | Обе Light-тени переписаны на `rgb(37 40 45 / 12%)` / `rgb(37 40 45 / 18%)` | Подтверждено `feColorMatrix` в реальном SVG — закрыто |
|
||||
| M2 | Явно зафиксировать mapping `presence→цвет` или исключить Green | §10.1/§10.4 получили mapping `presence→green, running/working/open/unlocked→amber, neutral→blue`; §20 п.9 маркирует это как явное техническое предположение | Архив по-прежнему не даёт этого маппинга текстом (перепроверено), решение корректно оформлено как предположение автора, а не выдано за факт архива — закрыто |
|
||||
| M3 | Добавить easing в §10.2/§10.3 | Обе секции получили `cubic-bezier(.22,.61,.36,1)` | Совпадает с `@keyframes` в `Animated/Light(Dark)/Short Activity Animated.svg` и `Alert Animated.svg` (сверено в r1, повторно не перекачивал анимационные SVG — не менялись) — закрыто |
|
||||
| M4 | Явное решение blur/No-Blur для Dark + запись в §17/AC13 | §7.1 фиксирует production = `Dark/Icon Default No Blur.svg`, `backdrop-filter` запрещён; риск и митигация добавлены в §17; AC13 явно требует отсутствия per-marker backdrop-composite layer | `diff` двух SVG подтверждает: различие ровно в blur-слое, геометрия/тень сохранены — закрыто, причём риск обоснован фактом, а не на глаз |
|
||||
| M5 | Добавить тег `Touch editor: …` | Добавлена строка `Touch editor: best effort / intentionally degraded` в §11 | Совпадает с канонической записью `TOUCH-SUPPORT.md` («Device editor … Best effort») — закрыто |
|
||||
| L1 | Отразить Light-only combo-эталоны в golden-матрице | §16.4 получил абзац: комбинации проверяются в обеих темах, Dark — по layer-contract, так как Dark combo-assets в архиве нет | Соответствует составу архива (5 Light-комбо-файлов, 0 Dark) — закрыто с явной записью |
|
||||
| L2 | Снять или обосновать оговорку про `static_icon` unavailable-hover | Оговорка `unavailable hover запрещён` удалена из §7.3 | Мёртвый кейс убран — закрыто |
|
||||
|
||||
Все 5 Medium и 2 Low из r1 закрыты точечными правками текста, без
|
||||
затрагивания архитектуры, AC-нумерации или скоупа задачи. Новых расхождений
|
||||
между текстом правки и архивом/каноническими документами не обнаружено.
|
||||
|
||||
## Проверено и признано корректным (сверх таблицы выше)
|
||||
|
||||
- Diff ограничен ровно тем, что заявлено в комментарии автора; посторонних
|
||||
правок вне перечня r1 нет (`git diff 517a710 2310e6d` просмотрен целиком).
|
||||
- Внутренняя согласованность новых формулировок: `§7.2` (таблица цветов),
|
||||
`§10.1` и `§10.4` используют один и тот же mapping `presence/running-working-
|
||||
open-unlocked/neutral` без расхождений между разделами.
|
||||
- `AC8` и `AC13` обновлены синхронно с текстом §10 и §7.1/§17 — доказательство
|
||||
(`pure resolver tests + DOM/style smoke` для AC8, `code assertion +
|
||||
performance_smoke.mjs` для AC13) остаётся конкретным и проверяемым после
|
||||
добавления новых пунктов.
|
||||
- Обязательные разделы §7.1 PROCESS.md по-прежнему все на месте (правка их не
|
||||
затронула); статус документа обновлён («ревизия 2 после жёлтого ревью r1»).
|
||||
- Трейлеры коммита `2310e6d` (`Issue: #179`, `User-Visible: no`) корректны;
|
||||
правка не меняет продуктовое поведение, только сам ТЗ-документ (класс C).
|
||||
- Открытых продуктовых вопросов владельцу по-прежнему нет; все 7 находок были
|
||||
техническими/точечными и решены автором без эскалации.
|
||||
|
||||
## Чего не проверял
|
||||
|
||||
- Часть проверок из r1 не повторялась, так как соответствующий текст ТЗ не
|
||||
менялся в этой правке (полная геометрия 32/96 px, границы LQI, приоритет
|
||||
замков, i18n-паритет, разделы §1–§6, §8, §9, §12–§15, §18–§19) — доверие к
|
||||
r1 обосновано тем, что `git diff` подтверждает: эти строки не тронуты.
|
||||
- Continuous/Short/Alert тайминги (кроме easing) не перепроверялись повторно
|
||||
по `@keyframes` — они не менялись в этой редакции, полная сверка уже была в
|
||||
r1.
|
||||
- Figma-фреймы (`99:1290`, `104:1539`) не открывались — ревью ограничено
|
||||
содержимым архива, как и в r1.
|
||||
- Производительность не измерялась — кода нет; оценка M4/AC13 остаётся
|
||||
решением на уровне текста, а не измеренным фактом.
|
||||
- Гейты `typecheck`/`test`/`build`/smoke/golden не запускались — этап ревью
|
||||
ТЗ, продуктового кода не существует, раздел неприменим.
|
||||
|
||||
## Итог
|
||||
|
||||
Все находки r1 закрыты фактически, каждая перепроверена по первоисточнику
|
||||
(архив, `TOUCH-SUPPORT.md`, сам diff), а не принята на слово из комментария
|
||||
автора. Новых Medium/High находок нет. ТЗ готово к разработке.
|
||||
Reference in New Issue
Block a user