10 KiB
SPEC-REVIEW-384-r2
Issue: #384 ·
этап: S4-spec-review · трек: small (ТЗ в теле issue) · заход r2 ·
SHA рабочего дерева на момент ревью: 3aac9bd2, ветка dev.
Скоуп
Родитель — #373 (fit: house). Продуктовый скоуп не изменился с r1: гейтить
вклад тел стен (:432), extras (:438) и нулевых стен (~:442) в кадре
fit: house тем же disp.showBorders, которым уже гейтится их рендер (:657,
:882, :914), и вернуть needsCanonicalWallGeometry (:388) к виду до #373.
Единственное изменение между r1 и r2 — правка раздела 7 ТЗ («i18n / Release-артефакты») в ответ на единственную находку r1 (M1). Код продукта не менялся и не мог меняться: реализации всё ещё нет, это ревью ТЗ.
Предыдущий раунд и дельта
- Вердикт r1: жёлтый, High: 0, Medium: 1 (в скоупе) — документ
docs/reviews/SPEC-REVIEW-384-r1.md, SHA9c162c09. - Дельта — правка тела issue #384, раздел 7, между комментарием ревьюера
(
IC_kwDOTOcLQM8AAAABReJaQw, 2026-08-30T07:38:09Z) и следующим комментарием владельца (IC_kwDOTOcLQM8AAAABReKJ9w, 2026-08-30T07:41:10Z: «Редакция 2 по SPEC-REVIEW-384-r1 M1 … Возвращаю S4»). - Проверено
git log --oneline 9c162c09..HEAD -- src/space-render.ts docs/USER-GUIDE.md docs/USER-GUIDE.ru.md docs/CANVAS.md— пусто;git diff 9c162c09..HEAD --statтрогает толькоdocs/reviews/SPEC-REVIEW-384-r1.mdи несвязанныйdocs/specs/385-audit-lows.md. Делта полностью локальна тексту issue, ни один файл кода или доки не менялся — сокращённый разбор оправдан (не ребейз, не смена контракта, не новая подсистема).
Закрытие раунда r1
| Находка r1 | Чем закрыта | Где это видно |
|---|---|---|
Medium: раздел 7 утверждал «Доки: не задеты», хотя docs/USER-GUIDE.md:798-800, docs/USER-GUIDE.ru.md:1543-1544 и docs/CANVAS.md:232-233 безусловно обещают стены/перегородки/колонны в кадре fit: house |
Раздел 7 переписан: явно называет все три файла с теми же номерами строк, требует добавить во все три места оговорку «если они видимы (show_borders)» по аналогии с существующей оговоркой про backdrop/decor, и добавляет способ проверки |
Тело issue #384, раздел «7. i18n / Release-артефакты»: «Доки (M1 r1): docs/USER-GUIDE.md:798-800, docs/USER-GUIDE.ru.md:1543-1544 и docs/CANVAS.md:232-233 сегодня безусловно обещают стены/перегородки/колонны в кадре fit: house — во все три места добавляется оговорка «если они видимы (show_borders)» … AC-док: grep на код-ревью.» |
Проверка закрытия — не только заявление автора:
- Строки
798-800вdocs/USER-GUIDE.md,1543-1544вdocs/USER-GUIDE.ru.mdи232-233вdocs/CANVAS.mdпрочитаны заново на текущем SHA — они всё ещё безусловны («fits every room, wall, partition, column…», «сохранит в кадре все комнаты, стены, перегородки, колонны…», «every sane room, positive/zero wall, independent wall or saved draft, column… participates») и все три ссылки в правке точно указывают на них — номера строк не съехали со времени r1 (код доков не менялся, см. дельту выше). - Раздел 7 теперь называет ровно те три файла, которые требовала находка r1,
с тем же предложением оговорки («если видимы»), и добавляет способ доказать
правку на код-ревью (
grep) — закрывает и требование «указание способа доказательства» для этого AC. - Асимметрия по проёмам (
hide_openings), которую r1 отдельно отметил как предсуществующий и вне-скоуповый пробел, в правке не тронута — это верно: r1 явно сказал, что её отсутствие не создаёт эта задача.
Находка r1 закрыта полностью, новых пробелов правка не вносит.
Унаследовано из r1
Без повторной проверки на этом раунде — документ
docs/reviews/SPEC-REVIEW-384-r1.md, SHA 9c162c09, дельта эту часть не
задевает:
- Фактическая база ТЗ: построчные ссылки на
src/space-render.ts(:388, :424-467, :654-657, :882, :914) и происхождение условияneedsCanonicalWallGeometry(реверт к состоянию до коммита #3730d33691f, исходно955de3e6) — подтверждены чтением кода иgit log -Sв r1. - Согласованность гейта:
disp.showBorders === trueне меняет поведение;floorMinusBodies(:791) использует сыройextras, путь «чистого пола» не задет. - AC1–AC3 однозначны и доказуемы (twin-фикстура
smoke_space_cardсshow_borders: false; регресс на существующих tight-ассертах, которые используют фиксированныйshow_borders: trueи физически не пересекаются с новым гейтом). - AC4 («полный гейт зелёный; бюджет ≈ 0») корректен по характеру изменения (два булевых гейта + возврат одного условия).
- План тестов и mutation-gate («убрать гейт → красный смок») пригодны.
- Откат — обычный
git revert, без флагов/миграций. - Раздел 8 («принятые предположения») — единственное предположение явно помечено как предположение, продуктового вопроса не требует.
- Проверка трека
small— все пять критериев §5 выполняются одновременно. - Открытых продуктовых вопросов нет.
Как проверялось (этот раунд)
- Прочитан текущий текст issue #384 и все три комментария (
gh issue view 384 --json body,comments). - Сопоставлен новый раздел 7 с формулировкой находки M1 из r1 — построчно, файл за файлом.
- Перепроверены сами три доковые ссылки на текущем SHA (см. выше) — не устарели.
git log/git diffподтвердили локальность дельты (только текст issue, никакой код или докфайл не менялся с r1).- Не перепроверялись AC1–AC4, факт-база ТЗ по коду, трек
small— дельта их не задевает, унаследованы из r1 (раздел выше).
Что проверено и корректно
- Единственная находка r1 (Medium, в скоупе) закрыта по существу: все три файла названы с теми же строками, оговорка сформулирована, способ проверки на код-ревью указан.
- Правка не вносит догадок, выданных за факт: формулировка «сегодня безусловно обещают» повторяет уже проверенный в r1 факт, новых непроверяемых утверждений нет.
- Правка не расширяет и не сужает скоуп задачи (AC1–AC4, раздел 2 «Объём» не
тронуты) и не меняет трек
small.
Чего не проверял
- Не запускал никакие гейты (
tsc,test,build, смоки, invariants) — это по-прежнему ревью ТЗ, реализации ещё не существует, кода для проверки нет. - Не проверял точную будущую формулировку доковой оговорки в трёх файлах —
ТЗ (лёгкий трек) обязано назвать файлы/строки и содержание оговорки, а не
дать готовый текст патча; точную формулировку и её реальное наличие в трёх
файлах проверит код-ревью через названный автором
grep. - Не проверял
fit: contentи i18n-строки интерфейса — вне дельты, и уже не проверялись в r1 по тем же причинам (гейт живёт только в блокеfit === 'house').
Вердикт
Зелёный. High: 0. Medium: 0. Единственная находка r1 закрыта по существу, новых находок делта не вносит. Готово к переходу в разработку.