mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
@@ -0,0 +1,147 @@
|
||||
# Ревью ТЗ — issue #211, цикл r2
|
||||
|
||||
- **Issue:** https://github.com/Matysh/houseplan-card/issues/211
|
||||
- **ТЗ:** `docs/specs/211-device-icons-visual-parity.md` (коммит `ce30464`,
|
||||
ветка `issue/211-device-icons-visual-parity`, поверх `93200eb`)
|
||||
- **Трек:** обычный (аналитика явно исключила `small`/`trivial`; лимит циклов — 4)
|
||||
- **Вердикт:** зелёный · цикл r2/4 · High: 0 · Medium: 0
|
||||
|
||||
## Скоуп ревью
|
||||
|
||||
Цикл r1 (`docs/reviews/SPEC-REVIEW-211-r1.md`) вынес один Medium (M1) и два Low
|
||||
(L1, L2), все — в скоупе задачи. Автор ответил правкой `ce30464` («docs:
|
||||
clarify device glyph parity contract») и комментарием в issue, перечислившим
|
||||
все три исправления. Скоуп этого цикла: (а) действительно ли `ce30464`
|
||||
устраняет M1/L1/L2 по существу, а не косметически; (б) не внесла ли правка
|
||||
новых нормативных утверждений без подтверждения источником; (в) не
|
||||
расширился ли скоуп/AC/архитектурное решение по ходу правки (§2.4, §9 п.9
|
||||
`PROCESS.md`). Полная переоценка ТЗ, уже пройденная в r1 (обязательные разделы
|
||||
§7.1, геометрия shell/core `1.26875`, value-pill `0.7875`/`0.39375`, цвета
|
||||
состояний, скоуп/не-скоуп, трассируемость), не повторялась заново с нуля —
|
||||
повторное независимое скачивание архива и измерение SVG не требовалось,
|
||||
поскольку эти числа в `ce30464` не менялись; проверялось построчно только то,
|
||||
что менялось.
|
||||
|
||||
## Как проверялось
|
||||
|
||||
1. Прочитан комментарий владельца/автора «Правки по SPEC-REVIEW r1» в issue
|
||||
#211 — что именно и в каком коммите исправлено.
|
||||
2. `git show --stat ce30464` — подтверждено, что коммит правит только
|
||||
`docs/specs/211-device-icons-visual-parity.md` (1 файл, 21 insertions/13
|
||||
deletions), никакой продуктовый или тестовый код не тронут; трейлеры
|
||||
`Issue: #211` / `User-Visible: no` корректны для документации без
|
||||
поведенческого изменения.
|
||||
3. `git show ce30464 -- docs/specs/211-device-icons-visual-parity.md` —
|
||||
построчный разбор диффа против находок r1.
|
||||
4. Полный текущий текст ТЗ прочитан целиком повторно (Read, 361 строка) —
|
||||
не только изменённые ханки, чтобы поймать возможное рассогласование между
|
||||
правленными и неправленными местами.
|
||||
5. `grep -n` по `0\.5|MDI viewport|COMPARISON_NOTES|Touch editor` по всему
|
||||
файлу — цель: убедиться, что не осталось иных мест, унаследовавших то же
|
||||
непроверенное число `0.5 × core` как факт, и что литеральный тег
|
||||
`Touch editor:` не задваивается/не конфликтует с остальным текстом.
|
||||
6. Свежий `git log --oneline -5 ce30464` — подтверждена цепочка коммитов
|
||||
(`93200eb` → `4fc0f7b` review doc → `ce30464` правка) и что HEAD ветки
|
||||
останавливается на `ce30464`, то есть ревьюер смотрит на тот же снимок,
|
||||
на который указывает комментарий автора.
|
||||
7. Код не запускался, гейты §8 `PROCESS.md` не прогонялись — на этапе ревью
|
||||
ТЗ по #211 продуктового кода не существует (issue не покидал `S3-spec`/
|
||||
`S4-spec-review`).
|
||||
|
||||
## Находки
|
||||
|
||||
Нет. Ни одна из находок r1 не выродилась в частичное исправление, и правка не
|
||||
внесла новых расхождений.
|
||||
|
||||
### Проверка M1 (закрыта)
|
||||
|
||||
`§3 п.2`, `§7.1` (таблица «Геометрический контракт»), `AC1` (`§12`) и `§16 п.6`
|
||||
до правки утверждали `0.5 × core` как прямую цитату архива наравне с
|
||||
проверенными числами (`1.26875`, `0.7875`). После `ce30464`:
|
||||
|
||||
- `§3 п.2` больше не заявляет «пакет использует `40×40` внутри `80×80`», а
|
||||
прямо цитирует измерение r1: общий glyph `≈0.417 × core`, Lock/Unlock
|
||||
`0.333…0.4375 × core`, и явно говорит «архив не задаёт универсальный
|
||||
viewport для всех MDI» — то есть признаёт отсутствие единого нормативного
|
||||
значения вместо того, чтобы его постулировать.
|
||||
- Строка «MDI viewport | width = height = `0.5`» в таблице `§7.1` заменена на
|
||||
«MDI glyph | painted bounding box того же reference glyph совпадает с
|
||||
соответствующим SVG; единого ratio для разных MDI нет» — критерий стал
|
||||
сравнением с эталонным SVG per-glyph, а не фиксированным числом.
|
||||
- `AC1` (`§12`) больше не требует «MDI viewport равен `0.5 × core`»; требование
|
||||
переформулировано в «painted bounding box reference glyph совпадает с прямым
|
||||
SVG» — то же самое per-glyph сравнение, проверяемое тем же browser smoke +
|
||||
side-by-side golden, что назван доказательством.
|
||||
- `§16 п.6` (новый) явно маркирует `0.5 × core` как «стартовый технический
|
||||
размер... не нормативная константа архива», который «реализация и код-ревью
|
||||
вправе скорректировать по прямому SVG/runtime сравнению, не меняя ТЗ» — то
|
||||
есть число перенесено именно в блок принятых технических предположений,
|
||||
как и предлагал вариант №2 находки M1, с обоснованием через ту же цифру
|
||||
`0.417`, которую я независимо подтвердил в r1.
|
||||
|
||||
Результат: контракт и AC1 больше не выдают непроверенную догадку за факт
|
||||
архива, а формулируют проверяемое per-glyph сравнение с прямым SVG — именно
|
||||
то, что должен доказывать независимый fixture из `§11`. `grep` (шаг 5 выше)
|
||||
подтвердил, что оставшиеся вхождения `0.5` в файле — это core radius (строка
|
||||
123), pill radius Text core (строка 126), допуск `0.5 CSS px` (строка 131) и
|
||||
сам explicit-assumption блок `§16 п.6` (строка 358): все легитимны, ни одно не
|
||||
восстанавливает старую формулировку.
|
||||
|
||||
### Проверка L1 (закрыта)
|
||||
|
||||
`§4` больше не называет `COMPARISON_NOTES.md` среди нормативных источников —
|
||||
список сузился до реально существующих в архиве `SPECIFICATION.md`,
|
||||
`DEVELOPER_HANDOFF.md`, `ACTIVE_ANIMATION_SPEC.md`. `grep` не находит
|
||||
`COMPARISON_NOTES` нигде в файле.
|
||||
|
||||
### Проверка L2 (закрыта)
|
||||
|
||||
`§8` теперь содержит буквальный канонический тег `**Touch editor: best effort
|
||||
/ intentionally degraded.**` перед описанием desktop-first редактора — ровно
|
||||
формат, требуемый `docs/TOUCH-SUPPORT.md` («Documentation rule»). Смысл не
|
||||
изменился относительно r1 (там расхождение было чисто формулировочным), тег
|
||||
встречается один раз, дублирования или противоречия с остальным `§8` нет.
|
||||
|
||||
## Проверено и признано корректным
|
||||
|
||||
- **Изменение точечное**: дифф `ce30464` касается ровно трёх мест,
|
||||
соответствующих M1/L1/L2, плюс синхронного пояснения к допуску в `§7.1`
|
||||
(«Для glyph сравнивается painted path... а не bounding box элемента
|
||||
`ha-icon`») и правки формулировки `AC9`, где `0.62` теперь описан как
|
||||
«переразмеренного reference glyph» вместо голого числа — обе правки
|
||||
согласуются с новой формулировкой `AC1`/`§7.1` и не вводят новых фактов.
|
||||
- **Скоуп, не-скоуп, архитектурный контракт (§5, §6, §10) не менялись** —
|
||||
диффу не тронуты; это подтверждает комментарий автора и подтверждает
|
||||
повторное чтение всего файла.
|
||||
- **Не осталось несогласованных остатков старой формулировки**: ни `MDI
|
||||
viewport`, ни `COMPARISON_NOTES.md` не встречаются нигде в текущем тексте.
|
||||
- **Трассируемость и трейлеры**: `ce30464` несёт `Issue: #211` и
|
||||
`User-Visible: no`, что верно для правки только документации ТЗ.
|
||||
- Всё, что было «проверено и признано корректным» в r1 (геометрия shell/core,
|
||||
value-pill, цвета состояний по всем темам/состояниям, разрешение регрессии
|
||||
`Dark/Unlock.svg`, обязательные разделы §7.1 `PROCESS.md`, границы скоупа,
|
||||
touch/security-инвариант), не тронуто этой правкой и остаётся в силе без
|
||||
повторной независимой перепроверки архива — числа, лежащие в основе тех
|
||||
находок, в `ce30464` не менялись.
|
||||
|
||||
## Чего не проверял
|
||||
|
||||
- Архив дизайнера повторно не скачивался и SVG повторно не измерялись — все
|
||||
числа, подтверждённые в r1 (`1.26875`, `0.7875`, `0.39375`, цвета состояний,
|
||||
измерения bbox `0.417`/`0.333–0.4375`), в `ce30464` не изменились; правка
|
||||
затронула только формулировку контракта вокруг уже добытых в r1 фактов.
|
||||
- Figma-фреймы (`99:1290`, `104:1539`) по-прежнему не открывались — тот же
|
||||
повод, что в r1.
|
||||
- Продуктовый код, гейты `typecheck`/`test`/`build`/smoke/golden — не
|
||||
запускались; кода по #211 всё ещё не существует (issue в `S4-spec-review`).
|
||||
- Производительность не измерялась — предмета для измерения нет.
|
||||
|
||||
## Итог
|
||||
|
||||
Все три находки r1 устранены по существу, не косметически: M1 закрыт переносом
|
||||
непроверенного числа в explicit-assumption и заменой нормативного критерия на
|
||||
проверяемое per-glyph SVG-сравнение; L1 и L2 — точечными правками текста без
|
||||
побочных эффектов. Скоуп, AC-нумерация, архитектурное решение и остальные
|
||||
разделы ТЗ не расширились. Открытых находок нет.
|
||||
|
||||
Вердикт — зелёный. Issue готов к переходу в «Готово к разработке» (`S5-ready`).
|
||||
Reference in New Issue
Block a user