From f0ea376aa9f7e4c677161a846aa1cc5f5893e824 Mon Sep 17 00:00:00 2001 From: Codex Date: Tue, 25 Aug 2026 21:02:26 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20spec=20#309=20revision=202=20=E2=80=94?= =?UTF-8?q?=20mandatory=20sections=20per=20review=20r1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Issue: #309 User-Visible: no --- docs/specs/309-junction-visual-limit.md | 37 ++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/docs/specs/309-junction-visual-limit.md b/docs/specs/309-junction-visual-limit.md index e184b123..14249064 100644 --- a/docs/specs/309-junction-visual-limit.md +++ b/docs/specs/309-junction-visual-limit.md @@ -1,9 +1,16 @@ # ТЗ #309 — Стыковочные узлы: визуальный лимит mitre и устранение паразитных парных патчей Issue: https://github.com/Matysh/houseplan-card/issues/309 -Статус: ревизия 1. +Статус: ревизия 2 (после SPEC-REVIEW-309-r1: добавлены обязательные разделы §7.1). База: #302 (полный mitre, веера узлов, детектор «без дыр», сет junction-сцен), #271 (thickLength-лимиты). +## 0. Сценарий + +Владелец дома рисует и правит план в Plan-редакторе и рассматривает результат в View/kiosk. В местах схождения стен — особенно под острыми углами, у толстых стен и при смешанных толщинах — он видит зубцы: шипы за торцом, пики над узлом, ступени. Узлы участвуют в каждом плане, дефект виден на любой поверхности, где рисуется кладка (Plan, View, kiosk, Static, скрытый слой Iso) — геометрия общая, из структурного кэша (docs/WALL-THICKNESS.md §3). + +**До:** из узла торчат клинья и пики длиной до 4 полутолщин, у крестов смешанных толщин — уступы в чужих квадрантах. +**После:** узел закрыт по чертёжному: вершины не дальше 1.5 полутолщины, сверх — аккуратная плоская фаска; кресты смешанных толщин идут по граням тонких стен без уступов. + ## 1. Проблема Полный mitre (#302, решение №5) ограничен только сектором и `MITRE_LIMIT = 4·max(h)`. На экспорте владельца три класса артефактов (все воспроизведены исполнением на dev dc68868): @@ -46,6 +53,34 @@ Issue: https://github.com/Matysh/houseplan-card/issues/309 - **Без фантомов (#271):** нет новых площадей за пределами `thickLength`. - Превью рисования (drawWallPreviewD и патчи превью) использует ту же парную логику — форма превью и персиста совпадает. +## 3.6 Скоуп и не-скоуп + +**Скоуп:** форма патчей парных стыков и вееров узлов ≥3 лучей в рендер-геометрии кладки; фильтр не-соседних пар; golden/юниты/мутанты; docs/WALL-THICKNESS.md §3. +**Не-скоуп:** модель данных и конфиг (толщины, ключи walls, партиции) не меняются; hit-зоны и снап не меняются; политика полного mitre в допустимом пороге (#302 решение №5) сохраняется; #308 (перегородка-дубликат) не трогается. + +## 3.7 UX + +Никаких новых контролов, диалогов или настроек. Меняется только форма отрисованной кладки у узлов на всех поверхностях, где она рисуется (Plan/View/kiosk/Static/hidden-Iso — общий структурный кэш). Превью рисования цепочки использует ту же парную логику — форма превью и персиста совпадает. + +## 3.8 Модель данных и миграция + +Нет. Чистая рендер-геометрия; конфиг, экспорт/импорт и compatibility-поля не затрагиваются. + +## 3.9 i18n + +Нет новых строк. + +## 3.10 Риски + +1. **Дыры на границе фаски** — фаска среза может разойтись с полосами/веерами: закрывается контрактным детектором (#302) на сценах и на полном экспорте отчёта (AC5). +2. **Регресс утверждённых форм** — прямые углы должны остаться байтово прежними (AC4); прочие изменившиеся golden-сцены пересматриваются поимённо (AC6). +3. **Удаление парных патчей в узлах ≥3 лучей** может вскрыть непокрытые сектора у экзотических конфигураций — решение «пропускать все или только не-соседние» принимается измерением с детектором, мёртвый слой не оставляется (§3.3). +4. **Перф** — клип полуплоскостью на узел добавляет O(1) операций на сектор; замер перф-смока в гейте. + +## 3.11 Release-артефакты + +Записи в `docs/CHANGELOG.md` и `docs/CHANGELOG.ru.md` (User-Visible: yes) в коммите реализации; обновление `docs/WALL-THICKNESS.md` §3 (правило порога и фаски, судьба парных патчей в узлах); скриншот-fingerprint при изменении src. + ## 4. Затрагиваемые поверхности `src/wall-thickness.ts` (обе ветки + константа), golden-сет (пересъёмка затронутых junction-сцен + 3 новые сцены), юниты формы, мутационный гейт, `docs/WALL-THICKNESS.md` §3.