docs: review document for #665

Issue: #665
User-Visible: no
This commit is contained in:
claude[bot]
2026-09-26 13:14:50 +00:00
parent d06cca2c19
commit 2fdafb5bef
+137
View File
@@ -0,0 +1,137 @@
# CODE-REVIEW-665-r2
Issue: [#665](https://github.com/Matysh/houseplan-card/issues/665) — «2.5D: показатели комнаты под названием «плавают» при зуме».
Этап: code-review, заход r2, лёгкий трек `small`, лимит циклов 2, потрачен 1.
Материал: ровно `d06cca2c19a3b5a062b79b4073227e5682636c90`, рабочая копия уже
на нём (`git rev-parse HEAD` совпадает). Fetch/checkout не выполнялись.
## Скоуп
Дельта к материалу r1 (`8ffbdf8a28f8`, см. «Материал раунда» в
`docs/reviews/CODE-REVIEW-665-r1.md`):
```
git diff 8ffbdf8a..d06cca2c --stat
docs/reviews/CODE-REVIEW-665-r1.md | 216 +++++++++++++++++++++++++++++++++++++
1 file changed, 216 insertions(+)
```
Единственный новый коммит — `d06cca2c` (`docs: review document for #665`,
`User-Visible: no`) — публикация конвейером документа r1. Продуктовый код,
тесты, реестр мутаций, docs/ISOMETRIC.md, changelog не менялись ни на строку
с момента r1. Автор ответил на жёлтый вердикт r1 **комментарием в issue**, не
коммитом — это соответствует характеру находки: единственный Medium r1 был
не дефектом кода, а неточной записью о влиянии диффа на golden-матрицу, и её
устранение прямо ограничено записью в issue (сама находка так и
формулировала фикс: «Кода это не касается — правка чисто в разделе учёта
диффа»).
Работа по-прежнему закрывает J1/J5 (`docs/SCOPE.md`), скоуп и класс (A+B+C)
не изменились — оценка из r1 остаётся в силе, см. «Унаследовано из r1» ниже.
## Как проверялось
Раз код не менялся, повторный прогон дешёвых/тяжёлых гейтов не даёт новой
информации — «код изменился» (условие §2.10 для обязательного повтора
дешёвых гейтов) здесь ложно. Дешёвые гейты уже подтверждены зелёным Validate
именно на этом SHA `d06cca2c`
(https://github.com/Matysh/houseplan-card/actions/runs/36243964626) — не
перегонял. Тяжёлые гейты (`golden:verify`, мутант, оба смока, отрицательная
проба) были исполнены на r1 против идентичного кода — код с тех пор не
менялся, дельта не задевает ни одного AC, поэтому не перегонял; см.
«Унаследовано из r1».
Единственное, что реально проверялось в этом раунде — закрытие находки r1:
сверил текст нового комментария автора в issue (2026-09-26T13:04:07Z,
«Правка по `CODE-REVIEW-665-r1` (жёлтый) — учёт golden») построчно со
списком восьми сценариев, которые я сам получил в r1 прогоном
`golden:verify` HEAD vs `origin/dev` в отдельном worktree.
| Что проверял | Как | Результат |
|---|---|---|
| Материал ревью — ровно то же дерево, что у r1 + один docs-коммит | `git diff 8ffbdf8a..d06cca2c --stat`, `git status --short` | подтверждено: только `docs/reviews/CODE-REVIEW-665-r1.md`, рабочая копия чистая |
| Список из 8 golden-сценариев в новом комментарии автора совпадает с найденным ревьюером в r1 | построчное сравнение таблицы в комментарии `Matysh` (13:04) с таблицей находки в `CODE-REVIEW-665-r1.md` | совпадают все 8 id: `isometric-geometry-view-dark/light`, `isometric-touch-kiosk-dark`, `isometric-large-warm-remount-dark`, `isometric-stage3-overlays-light/dark`, `isometric-stage3-forced-colors-dark`, `isometric-stage3-no-filter-dark` |
| Эстафета на кандидат беты явно передана | чтение комментария | да: `npm run golden:accept -- --reviewed --from=<Linux-артефакт>`, вместе с 12 известными и кадрами #666 — названо прямо, тот, кто примет бету, не гадает |
| Трейлеры нового коммита | `git show --stat d06cca2c` | `Issue: #665`, `User-Visible: no` — корректно для docs-only правки, changelog не требуется |
## Находки
Нет. Единственная находка r1 (Medium в скоупе, учёт golden) закрыта записью
в issue — см. таблицу ниже. Новых находок дельта не создаёт: она добавляет
только опубликованный документ прошлого раунда, продуктового кода не
касается.
## Закрытие раунда r1
| Находка r1 | Чем закрыта | Где это видно |
|---|---|---|
| Medium (в скоупе) — хендофф автора занижал golden-влияние диффа: заявлено 0 задетых 2.5D-кадров с показателями, реально 8; эстафета на кандидат беты не передана | Комментарий автора в issue от 2026-09-26T13:04:07Z «Правка по `CODE-REVIEW-665-r1` (жёлтый) — учёт golden»: (1) признаёт ошибку прямо и называет команду проверки (`node -e "import('./demo/golden/matrix.mjs')..."`), (2) приводит таблицу всех 8 сценариев — построчно совпадает с найденной ревьюером в r1, (3) явно передаёт эстафету: `golden:accept -- --reviewed --from=<Linux-артефакт>` вместе с 12 известными и кадрами #666 | Issue #665, комментарий 2026-09-26T13:04:07Z; исходная находка — `docs/reviews/CODE-REVIEW-665-r1.md`, раздел «Находки → Medium» |
| Low, снято без возврата — расположение строки в `docs/ISOMETRIC.md` | Не требовало действия и в r1 (оставлено на усмотрение автора при следующей правке файла); дельта r2 файл не трогает | `docs/reviews/CODE-REVIEW-665-r1.md`, раздел Low |
## Унаследовано из r1
Всё, кроме учёта golden-влияния, принято без повторной проверки — код с
момента r1 не менялся (см. «Скоуп» выше), материал r1 доказан исполнением, а
не заявлением:
- **AC1** (отступ имя→показатели в 2.5D = Flat на обоих зумах) — доказан
запуском `demo/smoke_iso_room_label_metrics.mjs` на материале `8ffbdf8a`.
- **AC2** (цель касания 44×44 px) — доказан положительно и отрицательно
(ручной снятый `::before` красит `floorIs44`/`floorOwnsTheTarget` —
проба ревьюера, не автора).
- **AC3** (мутант `iso-room-label-44-box-centres-name`) — реально пойман
запуском `mutation-gate.mjs` без `--check`.
- **C3** (Flat/редакторы/`houseplan-space-card`/`isoRaisedOverlayHalfSize` не
задеты) — подтверждено чтением диффа (ограничен `plan.styles.ts`) и
прогоном `smoke_isometric_contract`.
- **Причина бага и приём фикса** (перенос пола 44×44 в `::before`,
копия `.oplock::before`, `z-index` локальный, не мировой) — проверено
построчно по коду.
- **Трейлеры** `c93b3a90`/`8ffbdf8a` — `Issue:`/`User-Visible:` корректны,
`yes` сопровождён правкой обоих changelog в том же коммите.
- **«Одно число — один источник»** — литерал `44px` в новом `::before`
повторяет существующую конвенцию (`.oplock::before`, `.dev`), не создаёт
второй источник истины.
- **`no-new-private-writes`** — второй коммит `8ffbdf8a` существует именно
для этого, проверено, что смок больше не пишет `card._view`.
- **Golden-влияние диффа** (сам факт: 8 новых `different`, все — ожидаемый
побочный эффект правильной работы фикса, не регрессия) — доказано двойным
прогоном `golden:verify` (HEAD и `origin/dev` в отдельном worktree) в r1;
в r2 проверялась только точность **записи** об этом факте, не сам факт.
Документ и SHA источника: `docs/reviews/CODE-REVIEW-665-r1.md`,
материал `8ffbdf8a28f89f956fe6a0e550aec7b1d42efbf5` (база `72d49040`).
## Чего не проверял
- Дешёвые гейты (`tsc --noEmit`, `npm test`, `npm run build`,
`bundle-policy --verify`, `check-docs`) — не перегонял: код не менялся с
r1, а на точном SHA этого раунда (`d06cca2c`) Validate уже зелёный.
- `golden:verify`, оба смока, мутант, отрицательная проба на AC2 — не
перегонял повторно: делал это в r1 против идентичного кода, дельта r2 их
доказательств не задевает.
- `pytest tests_backend`, `npm run invariants`, perf — как и в r1: диф не
трогает Python/геометрию модели, перф не в AC.
- Полную golden-матрицу/`golden:accept` — не входит в код-ревью; беты
кандидата это касается, не этой задачи.
## Вердикт
Единственная блокирующая находка r1 закрыта записью в issue, новых находок
нет. High: 0, Medium: 0 (в задаче).
---
---
<!-- material-anchors: сгенерировано конвейером (#414) -->
## Материал раунда
- Ветка: `issue/665-iso-label-metrics`, коммит `d06cca2c19a3` — ребейз его осиротит, и это нормально: ниже якоря, которые ребейз не меняет.
- Дерево материала: `8cdf9bae3bd399886d6fbd8d6f3d255e21827107`
```
git log --all --format='%H %T' | grep 8cdf9bae3bd3
```
- Тело issue: `8da493f662bb94963a92e6ca40c224f16235947efbd137e809e313833e01cc97`
- Вердикт конвейера: `green` · High 0