Files
houseplan-card/docs/reviews/INDEX.md
T

292 KiB
Raw Blame History

Индекс ревью

Генерируется node scripts/reviews-index.mjs (#635) — не редактировать руками. Документов: 1100, issue: 392. Вердикт: 🟢 зелёный · 🟡 жёлтый · 🔴 красный · ⚪ не распознан (свободная форма старых документов). H/M — число High/Medium по строке вердикта или заголовкам находок. Файлы — пути, названные в находках; ищите по имени файла: grep form-kit INDEX.md.

Issue Документ Этап · раунд Вердикт H M Находки Файлы
#673 CODE-REVIEW-673-r1.md code · r1 🟡 жёлтый 0 0 docs/images/screenshots.json: закоммиченный sourceFingerprint не совпадает с тем, что р…; Комментарий автора в issue #673 называет SHA реализации 557d4e38e26b647437f2c931454737f… docs/images/screenshots.json demo/golden/matrix.mjs scripts/source-fingerprint.mjs accept.mjs policy.mjs AGENTS.md baselines-index.json
#673 CODE-REVIEW-673-r2.md code · r2 🟢 зелёный 0 0 — —
#672 CODE-REVIEW-672-r1.md code · r1 🟢 зелёный 0 0 — —
#671 CODE-REVIEW-671-r1.md code · r1 🟢 зелёный 0 0 — —
#670 CODE-REVIEW-670-r1.md code · r1 🟢 зелёный 0 0 — —
#669 SPEC-REVIEW-669-r1.md spec · r1 🟡 жёлтый 0 1 AC3 не гарантирует заявленную цель issue; фактическая неточность в «Проблема» (не блокирует) —
#669 SPEC-REVIEW-669-r2.md spec · r2 🟢 зелёный 0 0 — —
#669 CODE-REVIEW-669-r1.md code · r1 🟢 зелёный 0 0 — —
#667 CODE-REVIEW-667-r1.md code · r1 🟢 зелёный 0 0 — —
#666 CODE-REVIEW-666-r1.md code · r1 🟢 зелёный 0 0 — —
#665 SPEC-REVIEW-665-r1.md spec · r1 🟢 зелёный 0 0 заявленная правка docs/ISOMETRIC.md docs/ISOMETRIC.md docs/adr/160-isometric-stage3-overlays.md check-docs.mjs ISOMETRIC.md
#665 CODE-REVIEW-665-r1.md code · r1 🟡 жёлтый 0 1 golden-влияние диффа занижено в отчёте автора вдвое-без-остатка: 0 заявлено, 8 подтверж…; , снято без возврата — расположение строки в docs/ISOMETRIC.md golden-report.json demo/golden/matrix.mjs demo/golden/harness.mjs AGENTS.md docs/ISOMETRIC.md src/iso-tiles.ts src/styles/iso-tiles.styles.ts src/styles/plan.styles.ts
#665 CODE-REVIEW-665-r2.md code · r2 🟢 зелёный 0 0 — —
#664 CODE-REVIEW-664-r1.md code · r1 🟢 зелёный 0 0 — —
#663 SPEC-REVIEW-663-r1.md spec · r1 🟡 жёлтый 1 0 §6.2 (wall snap) и §8 (canonicalization/Optimize) описывают два; AC7 называет четыре состояния сломанной; AC13 не называет конкретный бюджет docs/CANVAS.md docs/WALL-THICKNESS.md
#663 SPEC-REVIEW-663-r2.md spec · r2 🟢 зелёный 0 0 — —
#663 CODE-REVIEW-663-r1.md code · r1 🟡 жёлтый 0 3 AC3 разметка ступеней неверна для direction: 'backward'; защитный AC7 (состояния битой ссылки) без mutation witness; защитный AC11 (round-trip/совместимость) без mutation witness src/stairs.ts stairs.ts test/stairs.test.mjs scripts/mutation-registry.mjs demo/smoke_stairs.mjs custom_components/houseplan/import_export.py
#663 CODE-REVIEW-663-r2.md code · r2 🟡 жёлтый 0 2 AC12: golden-эталон устарел для 4 сцен с лестницами, фикс AC3 не сопровождён обновление…; AC2 smoke-свидетель wallMagnetUsesPhysicalFace статистически ненадёжен из-за бага в соб… demo/golden/matrix.mjs src/stairs.ts demo/smoke_stairs.mjs src/junction-limits.ts
#663 CODE-REVIEW-663-r3.md code · r3 🟢 зелёный 0 0 — —
#662 SPEC-REVIEW-662-r1.md spec · r1 🟡 жёлтый 0 1 «Входящие» не существует в UI, и текущая классификация каталога кладёт неразмещённую ле…; «Не скоуп» отсутствует внутри формального ## ТЗ src/device-inbox.ts USER-GUIDE.ru.md docs/USER-GUIDE.ru.md demo/smoke_led_strip_bind.mjs device-inbox.ts SPEC-REVIEW-661-r1.md
#662 SPEC-REVIEW-662-r2.md spec · r2 🟢 зелёный 0 0 — —
#661 SPEC-REVIEW-661-r1.md spec · r1 🟢 зелёный 0 0 — —
#660 SPEC-REVIEW-660-r1.md spec · r1 🔴 красный 2 1 Раздел ## ТЗ в теле issue отсутствует целиком; Изменение прямо противоречит двум местам; AC «расстояние уменьшено ровно вдвое» не docs/process/AUTHOR.md REVIEWER.md test/core-file-budget.test.mjs scripts/smoke-select.mjs demo/helpers/hp-test.mjs docs/UX-MODES.md docs/reviews/SPEC-REVIEW-647-r1.md
#660 SPEC-REVIEW-660-r2.md spec · r2 🔴 красный 1 0 Скоуп п.3 переносит крестик внутрь .modes, но .modes src/styles/chrome.styles.ts src/houseplan-card.ts docs/USER-GUIDE.ru.md docs/UX-MODES.md src/houseplan-editor-runtime.ts src/header-menu.ts smoke_mobile_view_header.mjs
#660 SPEC-REVIEW-660-r3.md spec · r3 🟢 зелёный 0 0 — —
#660 CODE-REVIEW-660-r1.md code · r1 🟢 зелёный 0 0 — —
#657 CODE-REVIEW-657-r1.md code · r1 🔴 красный 1 0 после fast-forward слияния (dev не двигался за время ревью) docs/reviews/INDEX.md остаё… docs/reviews/INDEX.md test/reviews-index.test.mjs _process.yml merge-candidate.mjs test/merge-candidate.test.mjs scripts/reviews-index.mjs
#657 CODE-REVIEW-657-r2.md code · r2 🟢 зелёный 0 0 из r1 — проверка закрытия scripts/merge-candidate.mjs PROCESS.md mutation-registry.mjs INDEX.md
#656 CODE-REVIEW-656-r1.md code · r1 🟢 зелёный 0 0 — —
#654 SPEC-REVIEW-654-r1.md spec · r1 🟡 жёлтый 0 1 «Release-артефакты» не называют обновление docs/ISOMETRIC.md docs/ISOMETRIC.md docs/CHANGELOG.md docs/CHANGELOG.ru.md docs/reviews/INDEX.md
#654 SPEC-REVIEW-654-r2.md spec · r2 🟢 зелёный 0 0 — —
#654 CODE-REVIEW-654-r1.md code · r1 🟢 зелёный 0 0 — —
#651 SPEC-REVIEW-651-r1.md spec · r1 🟡 жёлтый 0 1 устаревшая формулировка «экспериментальный 2.5D-вид» противоречит текущему статусу функции CHANGELOG.md CHANGELOG.ru.md docs/ISOMETRIC.md docs/USER-GUIDE.ru.md docs/STATUS.md USER-GUIDE.ru.md
#651 SPEC-REVIEW-651-r2.md spec · r2 🟢 зелёный 0 0 — —
#651 CODE-REVIEW-651-r1.md code · r1 🟡 жёлтый 0 2 AC1 «другая комната исключена» не доказан ни тестом, ни мутацией; AC4 «деградированный fallback группы» не доказан ни тестом, ни мутацией; неточная формулировка в комментарии к реализации (снято без правки) src/iso-overlays.ts test/iso-overlays.test.mjs scripts/mutation-registry.mjs
#651 CODE-REVIEW-651-r2.md code · r2 🟢 зелёный 0 0 — —
#650 CODE-REVIEW-650-r1.md code · r1 🟢 зелёный 0 0 — —
#649 SPEC-REVIEW-649-r1.md spec · r1 🟡 жёлтый 0 1 в скоупе задачи (возвращается автору); принято ревьюером с записью, правки не требует lab.js houseplan-card.ts
#649 SPEC-REVIEW-649-r2.md spec · r2 🟢 зелёный 0 0 — —
#649 CODE-REVIEW-649-r1.md code · r1 🟡 жёлтый 0 1 AC7: обрезка барьерами (физические тела и Solid-перегородки) луча света в 2.5D нигде не…; Устаревшие «alpha/hidden»-формулировки, оставшиеся рядом с уже исправленным текстом в т…; Число в хендоффе не совпадает с фактическим значением в диффе. Комментарий автора в iss…; isoTileStateCss() жёстко считает торец состояний в theme: 'light' без ветки .theme-dark…; AC5: явно не проверены «Alert > чистый Hover» и «Alert > чистый Selected» по отдельност…; Нет отдельного теста на виртуальные устройства (Q1: «без пунктира, как обычные»). noRin… src/iso-sun.ts physical-geometry.ts houseplan-card.ts test/iso-stage6.test.mjs demo/smoke_iso_sun.mjs docs/DEVELOPMENT.md docs/ARCHITECTURE.md iso-scene-render.ts
#649 CODE-REVIEW-649-r2.md code · r2 🟢 зелёный 0 0 — —
#648 SPEC-REVIEW-648-r1.md spec · r1 🟢 зелёный 0 0 «Сценарий» не называет персону и; AC10 называет provenance-gate docs/SCOPE.md scripts/validate-commit-provenance.mjs validate.yml
#648 CODE-REVIEW-648-r1.md code · r1 🟡 жёлтый 0 1 AC3 документально обещает browser smoke demo/smoke_sections_resize.mjs docs/TESTING.md smoke_sections_resize.mjs
#648 CODE-REVIEW-648-r3.md code · r3 🟢 зелёный 0 0 — —
#647 SPEC-REVIEW-647-r1.md spec · r1 🟡 жёлтый 0 2 П.4 ТЗ переносит на новый слот прежнее; ТЗ не упоминает и не защищает документированный src/styles/dialogs.styles.ts src/styles.ts smoke_glow_blending.mjs smoke_test_facade.mjs smoke_unified_wall_tool.mjs docs/UX-MODES.md docs/reviews/CODE-REVIEW-195-r1.md src/styles/chrome.styles.ts
#647 SPEC-REVIEW-647-r2.md spec · r2 🟢 зелёный 0 0 — —
#647 CODE-REVIEW-647-r1.md code · r1 🟢 зелёный 0 0 — —
#646 CODE-REVIEW-646-r1.md code · r1 🟢 зелёный 0 0 — —
#645 SPEC-REVIEW-645-r1.md spec · r1 🟡 жёлтый 0 2 Отсутствует обязательная строка Touch editor: … из docs/TOUCH-SUPPORT.md → «Documentati…; ТЗ не учитывает существующую зависимость live-подписей Resize от позиции кнопки «Настро…; / Low docs/TOUCH-SUPPORT.md docs/reviews/SPEC-REVIEW-449-r1.md docs/specs/359-furniture-placement-preview.md docs/specs/449-double-fit-all.md src/houseplan-editor-runtime.ts src/houseplan-card.ts src/resize-labels.ts docs/process/REVIEWER.md
#645 SPEC-REVIEW-645-r2.md spec · r2 🟢 зелёный 0 0 — —
#645 CODE-REVIEW-645-r1.md code · r1 🟡 жёлтый 0 1 Resize-preview безвозвратно стирает ещё валидную временную позицию кнопки; мёртвый gearPtCache src/houseplan-editor-runtime.ts src/room-gear-drag.ts scripts/fix-test-build.mjs smoke_resize_labels.mjs room-gear-drag.test.mjs src/houseplan-card.ts
#645 CODE-REVIEW-645-r2.md code · r2 🟢 зелёный 0 0 — —
#643 CODE-REVIEW-643-r1.md code · r1 🟢 зелёный 0 0 — —
#642 SPEC-REVIEW-642-r1.md spec · r1 🟢 зелёный 0 0 — —
#642 CODE-REVIEW-642-r1.md code · r1 🟢 зелёный 0 0 — —
#642 CODE-REVIEW-642-r2.md code · r2 🟢 зелёный 0 0 Идентичность дерева коду, который уже разобрал r1; Что именно принёс второй ребейз (до 7bb55c2a) — не заявление, а diff; Полный построчный разбор диффа origin/dev...HEAD (72 файла); Гейты — что унаследовано, что перепрогнано лично на этом SHA —
#642 CODE-REVIEW-642-r3.md code · r3 🟢 зелёный 0 0 Идентичность дерева коду, который разобрали r1 и r2; Что именно принёс третий ребейз — не заявление, а diff; Гейты — что унаследовано из Validate CI на этом точном SHA, что перепрогнано лично —
#641 CODE-REVIEW-641-r1.md code · r1 🟡 жёлтый 0 1 нет исполняемого автотеста на ключевой guard в accept.mjs accept.mjs demo/golden/accept.mjs test/golden-wsl-artifact.test.mjs wsl-attestation.json test/golden-capture-provenance.test.mjs scripts/mutation-registry.mjs scripts/golden-wsl-artifact.mjs
#641 CODE-REVIEW-641-r2.md code · r2 🟢 зелёный 0 0 — —
#640 SPEC-REVIEW-640-r1.md spec · r1 🟢 зелёный 0 0 AC3 называет browser-smoke «unit»-тестом demo/smoke_furniture_lazy_art.mjs
#640 CODE-REVIEW-640-r1.md code · r1 🟢 зелёный 0 0 — —
#639 CODE-REVIEW-639-r1.md code · r1 🟡 жёлтый 0 1 Новая запись smoke-links.mjs для smoke_space_settings_form.mjs описывает проверку, кото… smoke-links.mjs smoke_space_settings_form.mjs scripts/smoke-links.mjs demo/smoke_space_settings_form.mjs src/editors/space-form.ts form-kit.ts
#639 CODE-REVIEW-639-r2.md code · r2 🟢 зелёный 0 0 — —
#638 CODE-REVIEW-638-r1.md code · r1 🟢 зелёный 0 0 — —
#637 CODE-REVIEW-637-r1.md code · r1 🟡 жёлтый 0 1 ложный «—» вместо настоящего «0 ч» в медианах scripts/process-metrics.mjs
#637 CODE-REVIEW-637-r2.md code · r2 🟢 зелёный 0 0 — —
#636 CODE-REVIEW-636-r1.md code · r1 🟢 зелёный 0 0 — —
#635 CODE-REVIEW-635-r1.md code · r1 🟡 жёлтый 1 0 индекс молчаливо теряет находки и врёт числами по текущему docs/reviews/CODE-REVIEW-639-r1.md CODE-REVIEW-637-r1.md docs/reviews/CODE-REVIEW-594-r1.md docs/LESSONS.md
#635 CODE-REVIEW-635-r2.md code · r2 🟡 жёлтый 1 1 docs/reviews/INDEX.md, зафиксированный в материале ревью, устарел на собственном SHA — …; parseFindings/parseFiles: фолбэк «первая строка тела блока» вырезает начало буллета и п… docs/reviews/INDEX.md SPEC-REVIEW-625-r1.md SPEC-REVIEW-625-r2.md CODE-REVIEW-625-r1.md CODE-REVIEW-625-r2.md process.yml test/reviews-index.test.mjs INDEX.md
#635 CODE-REVIEW-635-r3.md code · r3 🟢 зелёный 0 0 firstParagraph: ветка нет\b в фильтре мёртвая из-за ASCII-only \b в JS-регэкспах, расхо… scripts/reviews-index.mjs
#634 CODE-REVIEW-634-r1.md code · r1 🟢 зелёный 0 0 — —
#633 CODE-REVIEW-633-r1.md code · r1 🟢 зелёный 0 0 — —
#632 CODE-REVIEW-632-r1.md code · r1 🟡 жёлтый 0 1 trivial-трек не входит в признаки продуктового потока scripts/task-packet.mjs task-packet.mjs
#632 CODE-REVIEW-632-r2.md code · r2 🟢 зелёный 0 0 — —
#632 CODE-REVIEW-632-r3.md code · r3 🟢 зелёный 0 0 — —
#631 CODE-REVIEW-631-r1.md code · r1 🟢 зелёный 0 0 — —
#631 CODE-REVIEW-631-r2.md code · r2 🟢 зелёный 0 0 — —
#630 CODE-REVIEW-630-r1.md code · r1 🟢 зелёный 0 0 — —
#629 SPEC-REVIEW-629-r1.md spec · r1 🟢 зелёный 0 0 — —
#629 CODE-REVIEW-629-r1.md code · r1 🟢 зелёный 0 0 — —
#629 CODE-REVIEW-629-r2.md code · r2 🟢 зелёный 0 0 — —
#628 CODE-REVIEW-628-r1.md code · r1 🟡 жёлтый 0 1 Новый раздел разрывает существующую секцию «Local Windows workstation» и меняет владель… docs/DEVELOPMENT.md
#628 CODE-REVIEW-628-r2.md code · r2 🟢 зелёный 0 0 — —
#627 SPEC-REVIEW-627-r1.md spec · r1 🟢 зелёный 0 0 избыточное (не противоречивое) условие в AC2; влияние на touch не названо явным пунктом docs/TOUCH-SUPPORT.md
#627 CODE-REVIEW-627-r1.md code · r1 🟡 жёлтый 0 1 demo/smoke_danger_confirmation.mjs не переведён на ожидание составного гейта; диалог оп… demo/smoke_danger_confirmation.mjs src/houseplan-card.ts de.ts smoke_danger_confirm_branches.mjs
#627 CODE-REVIEW-627-r2.md code · r2 🟢 зелёный 0 0 — —
#627 CODE-REVIEW-627-r3.md code · r3 🟢 зелёный 0 0 — —
#626 SPEC-REVIEW-626-r1.md spec · r1 🟢 зелёный 0 0 Раздел «что человек увидит» —
#626 CODE-REVIEW-626-r1.md code · r1 🟡 жёлтый 0 1 Потеряна прямая регрессионная проверка HTTP-загрузки при admin_only=true (значение по у…; custom_components/houseplan/auth.py:35-37 — комментарий «HA normally exposes admin grou… tests_backend/test_ha_upload.py http_api.py scripts/mutation-registry.mjs test_ha_upload.py custom_components/houseplan/auth.py
#626 CODE-REVIEW-626-r2.md code · r2 🟢 зелёный 0 0 — —
#625 SPEC-REVIEW-625-r1.md spec · r1 🟡 жёлтый 0 1 новый инвариант markers[].id не описывает исход для уже испорченной хранимой конфигурации; продуктовые формулировки §7.1 неполны; не проговорены явные «нет» по i18n/touch validation.py __init__.py
#625 SPEC-REVIEW-625-r2.md spec · r2 🟢 зелёный 0 0 — —
#625 CODE-REVIEW-625-r1.md code · r1 🟡 жёлтый 0 0 Три из четырёх точек вызова validate_active_marker_ids не имеют ни одного теста, exerci…; AC5 текстуально обещает «отдельные тесты сохраняют поведение при отсутствующем length» …; store.py:async_save_config_state — controller.async_flush() и последующий controller.re… custom_components/houseplan/websocket_api.py test_validation.py
#625 CODE-REVIEW-625-r2.md code · r2 🟢 зелёный 0 0 — —
#624 SPEC-REVIEW-624-r1.md spec · r1 🟡 жёлтый 0 1 AC1-b: «чем краснеет» не соответствует заявленному свидетелю scripts/gate-small.mjs scripts/bundle-budget.mjs scripts/monolith-baseline.json
#624 SPEC-REVIEW-624-r2.md spec · r2 🟢 зелёный 0 0 — —
#624 CODE-REVIEW-624-r1.md code · r1 🟢 зелёный 0 0 — —
#623 CODE-REVIEW-623-r1.md code · r1 🟢 зелёный 0 0 — —
#622 CODE-REVIEW-622-r1.md code · r1 🟢 зелёный 0 0 — —
#621 CODE-REVIEW-621-r1.md code · r1 🟢 зелёный 0 0 — —
#620 CODE-REVIEW-620-r1.md code · r1 🟢 зелёный 0 0 — —
#619 CODE-REVIEW-619-r1.md code · r1 🟢 зелёный 0 0 — —
#618 SPEC-REVIEW-618-r1.md spec · r1 🟢 зелёный 0 0 нотация h в B5 не встречается в коде docs/FILTERING.md
#618 CODE-REVIEW-618-r1.md code · r1 🟢 зелёный 0 0 1. Число gzip лениво-редактора продублировано трижды с расхождением в 2 байта. Хендофф-…; / Medium scripts/bundle-budget.mjs bundle-budget.mjs
#618 CODE-REVIEW-618-r2.md code · r2 🟢 зелёный 0 0 / Medium; Нет новых. Оба Low из r1 закрыты (см. «Закрытие раунда r1»), TODO не остаётся —
#617 SPEC-REVIEW-617-r1.md spec · r1 🟢 зелёный 0 0 «новый необязательный параметр» уже существует src/backdrop-pick.ts houseplan-editor-runtime.ts
#617 CODE-REVIEW-617-r1.md code · r1 🟢 зелёный 0 0 — —
#617 CODE-REVIEW-617-r2.md code · r2 🟢 зелёный 0 0 — —
#616 SPEC-REVIEW-616-r1.md spec · r1 🟢 зелёный 0 0 AC8 не перечисляет поимённо весь набор golden-фикстур; AC2 не называет .projection-toggle в списке скрытых классов demo/golden/matrix.mjs houseplan-card.ts
#616 CODE-REVIEW-616-r1.md code · r1 🟢 зелёный 0 0 — —
#615 SPEC-REVIEW-615-r1.md spec · r1 🟡 жёлтый 0 1 AC3 называет несуществующую защиту от расползания на плашки цвета smoke_room_settings_form.mjs smoke_space_settings_form.mjs smoke_device_settings_form.mjs smoke_dialog_polish_605.mjs smoke_general_settings_form.mjs
#615 SPEC-REVIEW-615-r2.md spec · r2 🟢 зелёный 0 0 — —
#615 CODE-REVIEW-615-r1.md code · r1 🟢 зелёный 0 0 — —
#614 SPEC-REVIEW-614-r1.md spec · r1 🟢 зелёный 0 0 — —
#614 CODE-REVIEW-614-r1.md code · r1 🟡 жёлтый 0 1 AC1/AC2/AC3 требуют unit-тест, а он не написан test/dialog-baseline.test.mjs test/space-dialog.test.mjs general-form-state.ts space-form-state.ts marker-form-state.ts tsconfig.test.json dialog-baseline.ts scripts/mutation-registry.mjs
#614 CODE-REVIEW-614-r2.md code · r2 🟢 зелёный 0 0 — —
#613 SPEC-REVIEW-613-r1.md spec · r1 🟡 жёлтый 1 1 High. Принятое предположение о scroll-инвалидации не работает в основном заявленном сце…; Medium (в скоупе), сопутствует H1. AC1/AC2 не требуют, чтобы smoke-контейнер пересекал … demo/serve.mjs
#613 SPEC-REVIEW-613-r2.md spec · r2 🟢 зелёный 0 0 — —
#613 CODE-REVIEW-613-r1.md code · r1 🟢 зелёный 0 0 — —
#612 CODE-REVIEW-612-r1.md code · r1 🟢 зелёный 0 0 — —
#611 SPEC-REVIEW-611-r1.md spec · r1 🟡 жёлтый 0 1 контракт не называет второй код-путь с идентичным дефектом (_repair_target_space_refs) custom_components/houseplan/import_export.py import_export.py
#611 SPEC-REVIEW-611-r2.md spec · r2 🟢 зелёный 0 0 — —
#611 CODE-REVIEW-611-r1.md code · r1 🟢 зелёный 0 0 ветки live/ambiguous AC2 не имеют собственного мутанта import_export.py scripts/mutation-registry.mjs
#610 SPEC-REVIEW-610-r1.md spec · r1 🟢 зелёный 0 0 — —
#610 CODE-REVIEW-610-r1.md code · r1 🟢 зелёный 0 0 — —
#610 CODE-REVIEW-610-r2.md code · r2 🟢 зелёный 0 0 — —
#609 SPEC-REVIEW-609-r1.md spec · r1 🟢 зелёный 0 0 строки :558/574 для ветки ha-dialog в преамбуле устарели на ~8 строк; план автотестов не называет явно «влияние на производительность: нет» PROCESS.md
#609 CODE-REVIEW-609-r1.md code · r1 🟡 жёлтый 0 1 AC5 не доказан ни одним добавленным свидетелем; некорректная ссылка на AC в mutation-registry.mjs demo/verify_ha_form_shell_609.mjs demo/smoke_ha_form_shell_parity.mjs demo/srv/demo.html verify_ha_form_shell_609.mjs mutation-registry.mjs hp-dialog.ts scripts/mutation-registry.mjs
#609 CODE-REVIEW-609-r2.md code · r2 🟢 зелёный 0 0 — —
#608 SPEC-REVIEW-608-r1.md spec · r1 🟢 зелёный 0 0 «Шесть потребителей» на самом деле семь вызовов rangeLine; Ответ владельца на Q1–Q3 не оставлен отдельным комментарием marker-dialog.ts form-kit.ts docs/SCOPE.md
#608 CODE-REVIEW-608-r1.md code · r1 🟡 жёлтый 0 1 Русский changelog: сломанное предложение (Medium, в скоупе — правится в этой же задаче) docs/CHANGELOG.ru.md docs/CHANGELOG.md
#608 CODE-REVIEW-608-r2.md code · r2 🟢 зелёный 0 0 — —
#607 SPEC-REVIEW-607-r1.md spec · r1 🟢 зелёный 0 0 предварительный блок ## AC в начале тела issue называет несуществующую кнопку —
#607 CODE-REVIEW-607-r1.md code · r1 🟡 жёлтый 0 1 новые guard'ы AC4 проверяются только смоком, но не зарегистрированы в scripts/mutation-… scripts/mutation-registry.mjs demo/smoke_dialog_modal_recovery.mjs scripts/mutation-gate.mjs
#607 CODE-REVIEW-607-r2.md code · r2 🟢 зелёный 0 0 — —
#606 SPEC-REVIEW-606-r1.md spec · r1 🟢 зелёный 0 0 1. Предположение 1 («резолвер покрывает арт и lazy-gate») по буквальному прочтению не н… src/decor-image-editor.ts demo/smoke_furniture.mjs test/furniture-assets.test.mjs
#606 CODE-REVIEW-606-r1.md code · r1 🟢 зелёный 0 0 — —
#605 SPEC-REVIEW-605-r1.md spec · r1 🟢 зелёный 0 0 — —
#605 CODE-REVIEW-605-r1.md code · r1 🟢 зелёный 0 0 — —
#604 CODE-REVIEW-604-r1.md code · r1 🟢 зелёный 0 0 — —
#603 SPEC-REVIEW-603-r1.md spec · r1 🟢 зелёный 0 0 «Отменить» в discard-confirm пересекается с уже существующим термином «Отменить» = Undo docs/USER-GUIDE.ru.md
#603 CODE-REVIEW-603-r1.md code · r1 🟢 зелёный 0 0 — —
#602 SPEC-REVIEW-602-r1.md spec · r1 🟡 жёлтый 0 1 неоднозначность «уже настроенного» radar-toggle; неверная пара changelog-файлов src/editors/radar-section.ts src/radar-editor.ts src/radar-model.ts CHANGELOG.md docs/CHANGELOG.md docs/CHANGELOG.ru.md AGENTS.md scripts/validate-commit-provenance.mjs
#602 SPEC-REVIEW-602-r2.md spec · r2 🟢 зелёный 0 0 — —
#602 CODE-REVIEW-602-r1.md code · r1 🟡 жёлтый 0 0 golden:verify красный на материале ревью, обновление golden-сцен из плана тестирования … demo/golden/policy.mjs check-docs.mjs scripts/validate-commit-provenance.mjs
#602 CODE-REVIEW-602-r2.md code · r2 🟢 зелёный 0 0 — —
#601 CODE-REVIEW-601-r1.md code · r1 🟢 зелёный 0 0 — —
#600 SPEC-REVIEW-600-r1.md spec · r1 🟢 зелёный 0 0 регресс-гарантия для существующих кнопок действий не названа отдельным AC SPEC.md marker-dialog.ts test/space-copy-runtime.test.mjs test/space-dialog.test.mjs demo/smoke_danger_confirmation.mjs test/zigbee-topology.test.mjs demo/smoke_zigbee_topology_hover.mjs demo/smoke_space_copy.mjs
#600 CODE-REVIEW-600-r1.md code · r1 🟡 жёлтый 0 4 Room settings: подпись «Temperature» в 5-сегменте переносится посреди слова; Device dialog: у Glow radius появилась не согласованная владельцем блокировка Save; Дефект №5 (поповер «?» обрезается границей диалога комнаты) не имеет свидетеля закрытия; ACCEPTANCE.md: заявлено 11 эталонных сцен, фактически принято 13; docs/USER-GUIDE.ru.md:529 — испорченная строка таблицы —
#600 CODE-REVIEW-600-r2.md code · r2 🟢 зелёный 0 0 .hpf-seg label: min-width: fit-content (колонка не сжимается ниже слова) + overflow-wra…; glowRadiusValid/проблема marker-glow-radius удалены целиком; marker-dialog.ts больше не…; Свидетель добавлен: новый смок доказывает исполнением, что подсказка живёт вне скроллер…; Абзац переписан: явно «13 сцен» = 11 из ТЗ + 2 room-temperature-dialog-, с объяснением … —
#598 SPEC-REVIEW-598-r1.md spec · r1 🟡 жёлтый 0 1 судьба marker.run_target_gone не решена, счётчик i18n не сходится src/editors/marker-dialog.ts
#598 SPEC-REVIEW-598-r2.md spec · r2 🟢 зелёный 0 0 — —
#598 CODE-REVIEW-598-r1.md code · r1 🔴 красный 1 3 AC8 (эталоны) не выполнен: golden:verify красный на этом SHA; AC2/AC3 нарушены: изменён один из «неприкосновенных» .srcrow-смоков; Сегментированный переключатель обещан в семи местах ТЗ, реализован в одном; AC5 доказан мутантом только наполовину; AC1 не имеет обещанного автотеста для диалога «Пространство» (закрыто чтением) src/editors/general-settings-dialog.ts src/editors/space-settings-dialog.ts src/editors/marker-dialog.ts demo/smoke_tap_run.mjs smoke_general_settings.mjs smoke_tap_run.mjs demo/smoke_marker_dialog_cards.mjs space-settings-dialog.ts
#598 CODE-REVIEW-598-r2.md code · r2 🟢 зелёный 0 0 — —
#597 SPEC-REVIEW-597-r1.md spec · r1 🟡 жёлтый 0 2 AC2 заявляет проверку «ни одно из пяти правил не лежит в листе панели литералом», но на…; К3/AC3 заявляют байт-в-байт неизменность выхода formKitCss(CARD_DIALOG_FORM_KIT), но на… src/summary-panel-editor-style.ts test/form-kit.test.mjs test/styles-split.test.mjs styles-split.test.mjs
#597 SPEC-REVIEW-597-r2.md spec · r2 🟢 зелёный 0 0 — —
#597 CODE-REVIEW-597-r1.md code · r1 🟡 жёлтый 0 1 устаревший обязательный гейт check-docs не закрыт src/styles/form-kit.styles.ts src/summary-panel-editor-style.ts USER-GUIDE.ru.md docs/images/screenshots.json
#597 CODE-REVIEW-597-r2.md code · r2 🟢 зелёный 0 0 — —
#596 CODE-REVIEW-596-r1.md code · r1 🟢 зелёный 0 0 — —
#595 CODE-REVIEW-595-r1.md code · r1 🟢 зелёный 0 0 — —
#594 SPEC-REVIEW-594-r2.md spec · r2 🟡 жёлтый 0 1 Раздел «i18n» ТЗ не называет ключи для текста заголовков четырёх новых карточек-групп (… —
#594 SPEC-REVIEW-594-r3.md spec · r3 🟢 зелёный 0 0 — —
#594 CODE-REVIEW-594-r1.md code · r1 🟡 жёлтый 0 3 AC7 не закрыт до конца — эталоны не приняты; отпечаток скриншотов документации не обновлён; AC1 доказан у́же, чем заявлено docs/images/screenshots.json test/form-kit.test.mjs demo/smoke_room_settings.mjs smoke_color_picker_consumers.mjs smoke_room_temperature_thresholds.mjs
#594 CODE-REVIEW-594-r2.md code · r2 🟢 зелёный 0 0 — —
#594 CODE-REVIEW-594-r3.md code · r3 🟢 зелёный 0 0 — —
#593 SPEC-REVIEW-593-r1.md spec · r1 🔴 красный 1 0 Оба продуктовых решения (Р1 «кактус → plant», Р2 «при отказе чанка не рисуется ничего»)…; М1. AC9 и §7 заявляют защиту трёх бюджетов через npm run bundle:budget, но код гейта фа… PROCESS.md docs/FURNITURE.md scripts/bundle-manifest.mjs furniture-plan-art.generated.ts furniture-menu-art.generated.ts scripts/bundle-budget.mjs
#593 SPEC-REVIEW-593-r2.md spec · r2 🔴 красный 1 0 Воспроизведение test/furniture-assets.test.mjs assets/furniture/houseplan-0.3.0/README.md pack.json LICENSE.md README.md assets/furniture/houseplan-0.3.0/pack.json PROCESS.md
#593 SPEC-REVIEW-593-r3.md spec · r3 🟢 зелёный 0 0 — —
#593 CODE-REVIEW-593-r1.md code · r1 🟡 жёлтый 0 2 docs/ARCHITECTURE.md не обновлён, хотя ТЗ явно называет это условием; сцена tray-narrow-palette-en меняется, но не объявлена в списке golden-приёмки docs/ARCHITECTURE.md docs/FURNITURE.md docs/images/screenshots.json demo/golden/matrix.mjs scripts/golden-acceptance.mjs artifacts/golden/golden-report.json
#593 CODE-REVIEW-593-r2.md code · r2 🟢 зелёный 0 0 — —
#592 SPEC-REVIEW-592-r1.md spec · r1 🟡 жёлтый 0 0 М1. AC2 не называет один из golden-эталонов, который рендерит код именно внутри перенос…; Шапка «Аналитика» называет запас обоих ядер «4», фактический запас (по мере, которую ис… demo/golden/matrix.mjs demo/golden/harness.mjs
#592 SPEC-REVIEW-592-r2.md spec · r2 🟢 зелёный 0 0 — —
#592 CODE-REVIEW-592-r1.md code · r1 🟡 жёлтый 0 1 «перенесённая» строка в гейте no-new-any матчится по всему диффу, а не по паре файлов р…; Нет — все второстепенные наблюдения либо покрыты объяснением автора (device-icon-state-… scripts/no-new-any.mjs brand-new-feature.ts room-settings-dialog.ts space-settings-dialog.ts test/no-new-any.test.mjs test/houseplan-source.mjs
#592 CODE-REVIEW-592-r2.md code · r2 🟢 зелёный 0 0 — —
#588 SPEC-REVIEW-588-r1.md spec · r1 🟡 жёлтый 0 0 М1. Три ветки пылесоса, явно включённые в скоуп, не имеют ни одного AC/теста/мутанта; М2. docs/USER-GUIDE.ru.md и docs/FILTERING.md описывают «подсветку убираемой комнаты» п… src/houseplan-card.ts houseplan-card.ts test/device-presentation-policy.test.mjs smoke_static_icon.mjs device-value-badge.ts device-pulse.ts demo/smoke_static_icon.mjs docs/USER-GUIDE.ru.md
#588 SPEC-REVIEW-588-r2.md spec · r2 🟡 жёлтый 0 0 Третий факт AC6 (отсутствие .vacwarn) не доказывается способом, который сам же AC6 назы…; Новых Low-находок в дельте не найдено. Low из r1 (нечёткость «чем краснеет» AC7/бывший … demo/smoke_static_icon.mjs src/vacuum-routes.ts demo/smoke_vacuum_multifloor.mjs smoke_vacuum_multifloor.mjs
#588 SPEC-REVIEW-588-r3.md spec · r3 🟢 зелёный 0 0 — —
#588 CODE-REVIEW-588-r1.md code · r1 🟢 зелёный 0 0 docs/TESTING.md называет непроверяемую поверхность «PDF» docs/TESTING.md src/pdf/pdf-export.ts pdf-scene.ts src/pdf/pdf-scene.ts pdf-export.ts src/device-presentation.ts
#587 CODE-REVIEW-587-r1.md code · r1 🟢 зелёный 0 0 — —
#586 CODE-REVIEW-586-r1.md code · r1 🟢 зелёный 0 0 — —
#585 SPEC-REVIEW-585-r1.md spec · r1 🟢 зелёный 0 0 — —
#585 CODE-REVIEW-585-r1.md code · r1 🟡 жёлтый 0 1 устаревшая строка docs/STATUS.md и отсутствующий хендофф evidence docs/STATUS.md
#585 CODE-REVIEW-585-r2.md code · r2 🟢 зелёный 0 0 — —
#584 SPEC-REVIEW-584-r1.md spec · r1 🟡 жёлтый 0 1 влияние на touch не названо; 1. Раздел «UX» и «скоуп/не-скоуп» не оформлены отдельными заголовками. Содержание по фа… docs/TOUCH-SUPPORT.md
#584 SPEC-REVIEW-584-r2.md spec · r2 🟢 зелёный 0 0 — —
#584 CODE-REVIEW-584-r1.md code · r1 🟡 жёлтый 0 1 рост ленивого чанка furniture-plan-art.generated не назван числом, как того требует соб… scripts/bundle-budget.mjs
#584 CODE-REVIEW-584-r2.md code · r2 🟢 зелёный 0 0 — —
#583 SPEC-REVIEW-583-r1.md spec · r1 🟢 зелёный 0 0 1, снята решением ревьюера с записью —
#583 CODE-REVIEW-583-r1.md code · r1 🟡 жёлтый 0 1 Золотой (golden) семантический контракт для iso-дверей не обновлён под новое поведение … demo/golden/run.mjs demo/golden/matrix.mjs src/iso-openings.ts test/iso-openings.test.mjs test/isometric-contract.test.mjs demo/smoke_isometric_contract.mjs matrix.mjs
#583 CODE-REVIEW-583-r2.md code · r2 🟡 жёлтый 0 1 — —
#582 SPEC-REVIEW-582-r1.md spec · r1 🟢 зелёный 0 0 AC5 не несёт собственного независимого доказательства (снято ревьюером) houseplan-card.ts
#582 CODE-REVIEW-582-r1.md code · r1 🔴 красный 0 0 — —
#582 CODE-REVIEW-582-r2.md code · r2 🔴 красный 0 0 — —
#582 CODE-REVIEW-582-r3.md code · r3 🟢 зелёный 0 0 — —
#581 SPEC-REVIEW-581-r1.md spec · r1 🟢 зелёный 0 0 — —
#581 CODE-REVIEW-581-r1.md code · r1 🟢 зелёный 0 0 — —
#580 SPEC-REVIEW-580-r1.md spec · r1 🟡 жёлтый 0 1 ТЗ не отвечает на несколько обязательных пунктов §7.1 / чек-листа DoR §2.5, оставляя их…; Контракт п.4 использует немодальную формулировку («может оставаться видимым»), которую … docs/SCOPE.md PROCESS.md docs/TOUCH-SUPPORT.md docs/SUN.md
#580 SPEC-REVIEW-580-r2.md spec · r2 🟢 зелёный 0 0 — —
#580 CODE-REVIEW-580-r1.md code · r1 🟢 зелёный 0 0 — —
#580 CODE-REVIEW-580-r2.md code · r2 🟢 зелёный 0 0 — —
#579 SPEC-REVIEW-579-r1.md spec · r1 🟢 зелёный 0 0 — —
#579 CODE-REVIEW-579-r1.md code · r1 🟡 жёлтый 0 1 AC4 (матрица day cycle/Glow/room fills/hatching/фон) не имеет тестового доказательства; AC2 не имеет именованного мутанта. У AC2 («бюджет сохранён») нет специального MUTANT_DE… test/live-viewport.test.mjs demo/smoke_live_pan_coverage.mjs demo/screencast_visual_continuity.mjs demo/srv/demo.html src/houseplan-card.ts
#579 CODE-REVIEW-579-r2.md code · r2 🟢 зелёный 0 0 — —
#578 SPEC-REVIEW-578-r1.md spec · r1 🟢 зелёный 0 0 i18n закрыт только косвенно; сценарий «новый mouse pointerdown сразу после pinch» не назван явно ни в одном AC test/touch-gesture-click-guard.test.mjs
#578 CODE-REVIEW-578-r1.md code · r1 🟢 зелёный 0 0 — —
#577 SPEC-REVIEW-577-r1.md spec · r1 🟡 жёлтый 0 1 раздел «Release-артефакты» не называет два документа, которые эта же задача обязана обн… docs/CHANGELOG.md .ru.md docs/SUN.md docs/USER-GUIDE.ru.md docs/TESTING.md docs/WALL-THICKNESS.md docs/CONFIG-COMPATIBILITY.md WALL-THICKNESS.md
#577 SPEC-REVIEW-577-r2.md spec · r2 🟢 зелёный 0 0 — —
#577 CODE-REVIEW-577-r1.md code · r1 🟡 жёлтый 0 1 AC4 и AC7 объявляют доказательство golden, но ни один golden-сценарий и эталон для режи… demo/golden/matrix.mjs demo/smoke_sun.mjs test/sun.test.mjs
#577 CODE-REVIEW-577-r2.md code · r2 🟢 зелёный 0 0 — —
#576 CODE-REVIEW-576-r1.md code · r1 🟢 зелёный 0 0 — —
#573 CODE-REVIEW-573-r1.md code · r1 🟡 жёлтый 0 1 evaluateCiProof меняет поведение merge/review-потребителей без теста и вопреки утвержде… scripts/ci-proof.mjs scripts/merge-candidate.mjs scripts/validate-gate.mjs validate.yml merge-candidate.mjs validate-gate.mjs test/ci-proof.test.mjs test/merge-candidate.test.mjs
#573 CODE-REVIEW-573-r2.md code · r2 🟢 зелёный 0 0 — —
#571 CODE-REVIEW-571-r1.md code · r1 🟢 зелёный 0 0 — —
#570 SPEC-REVIEW-570-r1.md spec · r1 🟢 зелёный 0 0 — —
#570 CODE-REVIEW-570-r1.md code · r1 🟢 зелёный 0 0 — —
#569 CODE-REVIEW-569-r1.md code · r1 🟢 зелёный 0 0 — —
#568 CODE-REVIEW-568-r1.md code · r1 🟢 зелёный 0 0 — —
#567 CODE-REVIEW-567-r1.md code · r1 🟢 зелёный 0 0 — —
#566 CODE-REVIEW-566-r1.md code · r1 🟡 жёлтый 0 1 «наблюдение» ложно утверждает «владелец жив» там, где владелец не подтверждён scripts/model-invariants.mjs src/space-reference-repair.ts test/model-invariants.test.mjs
#566 CODE-REVIEW-566-r2.md code · r2 🟡 жёлтый 0 0 — —
#565 SPEC-REVIEW-565-r1.md spec · r1 🟢 зелёный 0 0 — —
#565 CODE-REVIEW-565-r1.md code · r1 🟡 жёлтый 0 1 Клавиатурная focus-tooltip тихо стирается наведением мыши на комнату — нарушает контрак… src/houseplan-card.ts src/logic.ts houseplan-card.ts docs/UX-MODES.md demo/smoke_household_journeys.mjs
#565 CODE-REVIEW-565-r2.md code · r2 🟢 зелёный 0 0 — —
#564 SPEC-REVIEW-564-r1.md spec · r1 🟡 жёлтый 0 1 DoR: «затронутые файлы и модули» не названы (Medium, в скоупе); «Сценарий» и «Что человек увидит» объединены без явной персоны на PROCESS.md src/styles/devices.styles.ts src/houseplan-card.ts src/houseplan-editor-runtime.ts hp-device-preview.ts docs/specs/213-device-marker-geometry.md docs/SCOPE.md
#564 SPEC-REVIEW-564-r2.md spec · r2 🟢 зелёный 0 0 — —
#564 CODE-REVIEW-564-r1.md code · r1 🟡 жёлтый 0 1 AC2 не имеет заявленного browser-smoke доказательства для Icon/Text/Double/legacy и чет… test/device-hit-owner.test.mjs docs/device-hit-owner.test.mjs demo/smoke_household_journeys.mjs src/device-hit-owner.ts src/styles/devices.styles.ts smoke_household_journeys.mjs test/device-hit-owner-contract.test.mjs
#564 CODE-REVIEW-564-r2.md code · r2 🟢 зелёный 0 0 — —
#563 SPEC-REVIEW-563-r1.md spec · r1 🟢 зелёный 0 0 сценарий и «что человек увидит» не выделены отдельными первыми PROCESS.md docs/SCOPE.md
#563 CODE-REVIEW-563-r1.md code · r1 🟢 зелёный 0 0 — —
#562 CODE-REVIEW-562-r1.md code · r1 🟡 жёлтый 0 1 task-packet.mjs определяет инфра-трек и право трогать класс A по тематической метке inf… task-packet.mjs PROCESS.md AGENTS.md scripts/process-gate.mjs process-gate.mjs test/task-packet.test.mjs
#562 CODE-REVIEW-562-r2.md code · r2 🟡 жёлтый 0 1 после фикса статусless infra-issue без опубликованной ветки получает заведомо неверную … scripts/task-packet.mjs AGENTS.md task-packet.mjs process-gate.mjs PROCESS.md
#562 CODE-REVIEW-562-r3.md code · r3 🟢 зелёный 0 0 — —
#561 SPEC-REVIEW-561-r1.md spec · r1 🟡 жёлтый 0 1 ТЗ не называет явно влияние на touch/View/kiosk — обязательный, блокирующий пункт DoR (…; Разделы «сценарий» и «что человек увидит до/после» не оформлены отдельными подзаголовка… docs/TOUCH-SUPPORT.md
#561 SPEC-REVIEW-561-r2.md spec · r2 🟡 жёлтый 0 0 — —
#561 CODE-REVIEW-561-r1.md code · r1 🟢 зелёный 0 0 — —
#560 CODE-REVIEW-560-r1.md code · r1 🟢 зелёный 0 0 process-gate даёт 1 предупреждение, а хендофф заявляет «предупреждений 0» scripts/process-gate.mjs
#558 CODE-REVIEW-558-r1.md code · r1 🟢 зелёный 0 0 — —
#557 CODE-REVIEW-557-r1.md code · r1 🟢 зелёный 0 0 — —
#556 CODE-REVIEW-556-r1.md code · r1 🔴 красный 1 0 Границу «модель не пишет в issue» PR не строит — permissions: per-job не влияет на реал… .github/workflows/process.yml src/github/token.ts process.yml docs/security.md
#556 CODE-REVIEW-556-r2.md code · r2 🔴 красный 0 0 — —
#555 CODE-REVIEW-555-r1.md code · r1 🔴 красный 1 0 relabel() может уронить весь прогон и никогда не эскалировать именно тот случай, ради к… scripts/process-reconcile.mjs process-reconcile.mjs process-reconcile.yml test/process-reconcile.test.mjs summary.json
#555 CODE-REVIEW-555-r2.md code · r2 🟢 зелёный 0 0 — —
#554 SPEC-REVIEW-554-r1.md spec · r1 🟢 зелёный 0 0 — —
#554 CODE-REVIEW-554-r1.md code · r1 🟢 зелёный 0 0 — —
#553 CODE-REVIEW-553-r2.md code · r2 🟡 жёлтый 0 1 Регрессионный тест #553 не защищает от отката формулировки, ради которого заведён; Стале-цитата правила в §11.4 после правки формулировки §5 test/review-doc-guard.test.mjs PROCESS.md AGENTS.md
#553 CODE-REVIEW-553-r3.md code · r3 🟡 жёлтый 0 0 — —
#551 CODE-REVIEW-551-r1.md code · r1 🟢 зелёный 0 0 — —
#551 CODE-REVIEW-551-r4.md code · r4 🟢 зелёный 0 0 — —
#550 CODE-REVIEW-550-r1.md code · r1 🟢 зелёный 0 0 — —
#549 CODE-REVIEW-549-r1.md code · r1 🟢 зелёный 0 0 — —
#549 CODE-REVIEW-549-r2.md code · r2 🟢 зелёный 0 0 — —
#548 CODE-REVIEW-548-r1.md code · r1 🟢 зелёный 0 0 — —
#547 CODE-REVIEW-547-r1.md code · r1 🟢 зелёный 0 0 — —
#546 CODE-REVIEW-546-r1.md code · r1 🟢 зелёный 0 0 — —
#545 SPEC-REVIEW-545-r1.md spec · r1 🟢 зелёный 0 0 — —
#545 CODE-REVIEW-545-r1.md code · r1 🟢 зелёный 0 0 — —
#544 SPEC-REVIEW-544-r1.md spec · r1 🟢 зелёный 0 0 — —
#544 CODE-REVIEW-544-r1.md code · r1 🟢 зелёный 0 0 — —
#543 SPEC-REVIEW-543-r1.md spec · r1 🟡 жёлтый 0 1 двусмысленная ссылка на тестовый артефакт в AC7 и списке файлов test/config-adoption-ownership.test.mjs docs/ARCHITECTURE.md test/config-adoption.test.mjs docs/CONFIG-COMPATIBILITY.md test/config-adoption-attempt.test.mjs config-adoption.test.mjs config-adoption-ownership.test.mjs
#543 SPEC-REVIEW-543-r2.md spec · r2 🟢 зелёный 0 0 — —
#543 CODE-REVIEW-543-r1.md code · r1 🟢 зелёный 0 0 — —
#542 CODE-REVIEW-542-r1.md code · r1 🟢 зелёный 0 0 — —
#541 CODE-REVIEW-541-r1.md code · r1 🟢 зелёный 0 0 — —
#536 SPEC-REVIEW-536-r1.md spec · r1 🟢 зелёный 0 0 1. «До/После» использует термин реализации. Формулировка «уходит тогда, когда контролле… —
#536 CODE-REVIEW-536-r1.md code · r1 🟢 зелёный 0 0 — —
#535 SPEC-REVIEW-535-r1.md spec · r1 🟢 зелёный 0 0 1. Не-скоуп не продублирован внутри ## ТЗ. Перечень «чего в этой задаче нет» (формулиро… —
#535 CODE-REVIEW-535-r1.md code · r1 🟢 зелёный 0 0 текст console.error панели изменён вопреки букве К2 ТЗ scripts/bundle-manifest.mjs
#534 SPEC-REVIEW-534-r1.md spec · r1 🟡 жёлтый 0 1 ключевое техническое допущение К2/«Принято предположительно» №2 неверно, и это открывае…; «их единицы» (К3) неточно описывает число проёмов src/styles/devices.styles.ts demo/smoke_space_switch_transitions.mjs test/device-marker-polish-contract.test.mjs test/space-order.test.mjs test/device-face.test.mjs
#534 SPEC-REVIEW-534-r2.md spec · r2 🟡 жёлтый 0 1 К2 распространяет keyed+repeat на список проёмов «для единообразия», но обоснование (К3… src/styles/plan.styles.ts src/houseplan-card.ts
#534 SPEC-REVIEW-534-r3.md spec · r3 🟢 зелёный 0 0 АС2а/К3 называют триггер проёмов «Plan ↔ View», код переключает шире src/houseplan-card.ts
#534 CODE-REVIEW-534-r1.md code · r1 🟢 зелёный 0 0 — —
#533 CODE-REVIEW-533-r1.md code · r1 🟡 жёлтый 0 1 AC1 закрыт частично: 19 из 22 вызовов pointer() не проверяют доставку события demo/smoke_room_resize.mjs
#533 CODE-REVIEW-533-r2.md code · r2 🟡 жёлтый 0 0 — —
#533 CODE-REVIEW-533-r3.md code · r3 🟢 зелёный 0 0 — —
#532 SPEC-REVIEW-532-r1.md spec · r1 🟢 зелёный 0 0 — —
#532 SPEC-REVIEW-532-r2.md spec · r2 🟢 зелёный 0 0 — —
#532 CODE-REVIEW-532-r1.md code · r1 🟡 жёлтый 0 2 чейнджлог утверждает то, что опровергает сам контракт задачи; docs/SUN.md приписывает измерение в Chromium браузеру Firefox docs/CHANGELOG.md docs/CHANGELOG.ru.md docs/SUN.md
#532 CODE-REVIEW-532-r2.md code · r2 🟢 зелёный 0 0 — —
#531 SPEC-REVIEW-531-r1.md spec · r1 🟡 жёлтый 0 1 второй триггер бюджета (К2) не имеет ни одного AC и ни одной названной константы; обязательные разделы §7.1 присутствуют по содержанию, но не как отдельные заголовки; сн… demo/benchmark_large_house.mjs
#531 SPEC-REVIEW-531-r2.md spec · r2 🟢 зелёный 0 0 — —
#531 CODE-REVIEW-531-r1.md code · r1 🟡 жёлтый 0 1 устаревший отпечаток скриншотов документации src/live-viewport.ts docs/images/screenshots.json
#531 CODE-REVIEW-531-r2.md code · r2 🟢 зелёный 0 0 — —
#530 SPEC-REVIEW-530-r1.md spec · r1 🟡 жёлтый 0 1 правка меняет два поведения, задокументированных в docs/PDF-EXPORT.md, но документ не н…; существующий мутант pdf-room-edge-dropped защищает ровно ту гарантию, которую контракт … docs/PDF-EXPORT.md src/pdf/pdf-scene.ts PDF-EXPORT.md scripts/mutation-gate.mjs
#530 SPEC-REVIEW-530-r2.md spec · r2 🟢 зелёный 0 0 — —
#530 CODE-REVIEW-530-r1.md code · r1 🟢 зелёный 0 0 — —
#529 SPEC-REVIEW-529-r1.md spec · r1 🟡 жёлтый 0 1 К4/AC5 описывают механизм самолечения, который не соответствует реальному пути записи c… —
#529 SPEC-REVIEW-529-r2.md spec · r2 🟢 зелёный 0 0 — —
#529 CODE-REVIEW-529-r1.md code · r1 🟢 зелёный 0 0 — —
#528 CODE-REVIEW-528-r1.md code · r1 🟢 зелёный 0 0 — —
#526 SPEC-REVIEW-526-r1.md spec · r1 🟡 жёлтый 0 1 Отсутствуют оба обязательных продуктовых раздела ТЗ: «сценарий» и «что человек увидит д…; Раздел «UX» не выделен явно. §7.1 перечисляет UX отдельным обязательным разделом. По со… docs/SCOPE.md
#526 SPEC-REVIEW-526-r2.md spec · r2 🟢 зелёный 0 0 — —
#526 CODE-REVIEW-526-r1.md code · r1 🟢 зелёный 0 0 — —
#525 SPEC-REVIEW-525-r1.md spec · r1 🟢 зелёный 0 0 не проговорены явные «нет» по четырём пунктам DoR; формулировка changelog называет только «открытие» —
#525 CODE-REVIEW-525-r1.md code · r1 🟢 зелёный 0 0 — —
#524 SPEC-REVIEW-524-r1.md spec · r1 🟢 зелёный 0 0 ТЗ не выделяет отдельными разделами «сценарий» и «что человек увидит до/после» (снято) —
#524 CODE-REVIEW-524-r1.md code · r1 🟢 зелёный 0 0 — —
#522 SPEC-REVIEW-522-r1.md spec · r1 🟢 зелёный 0 0 К3 называет неверное число диалогов с объявленным autofocus; К1 называет .close/ha-dialog «фолбэками без изменений», хотя их достижимость меняется hp-confirm.ts src/hp-dialog.ts
#521 SPEC-REVIEW-521-r1.md spec · r1 🟡 жёлтый 0 1 заявленный источник поведения не существует в названном документе docs/USER-GUIDE.ru.md AGENTS.md USER-GUIDE.ru.md
#521 SPEC-REVIEW-521-r2.md spec · r2 🟡 жёлтый 0 1 новая ссылка на несуществующий документ в том же абзаце, который правил находку r1 docs/USER-GUIDE.ru.md AGENTS.md CLAUDE.md PROCESS.md docs/SCOPE.md
#521 SPEC-REVIEW-521-r3.md spec · r3 🟢 зелёный 0 0 — —
#521 CODE-REVIEW-521-r1.md code · r1 🟡 жёлтый 0 1 AC5 заявляет доказательство, которого смок не даёт src/live-editor.ts demo/smoke_align_guides.mjs houseplan-card.ts
#521 CODE-REVIEW-521-r2.md code · r2 🟢 зелёный 0 0 тело issue правилось после зелёного ревью ТЗ без нового цикла S4-spec-review —
#520 SPEC-REVIEW-520-r1.md spec · r1 🟡 жёлтый 0 3 обязательный раздел «Риски» отсутствует (§7.1); AC3 не имеет дешёвого воспроизводимого способа доказательства; регрессия профиля изометрии показана в «Симптоме», но не отражена в контракте/AC PROCESS.md docs/specs/506-startup-performance.md test/config-adoption-ownership.test.mjs demo/benchmark_large_house.mjs demo/performance/budgets-large-house-isometric.json demo/performance/evaluate.mjs
#520 SPEC-REVIEW-520-r2.md spec · r2 🟡 жёлтый 0 1 амендированный AC4 не покрывает второе число из того же предложения «Симптома»: firstSt… demo/performance/evaluate.mjs budgets-large-house-isometric.json
#520 SPEC-REVIEW-520-r3.md spec · r3 🟢 зелёный 0 0 — —
#520 CODE-REVIEW-520-r1.md code · r1 🔴 красный 1 0 правка не устраняет регрессию, которую должна была устранить —
#520 CODE-REVIEW-520-r2.md code · r2 🟡 жёлтый 0 1 node scripts/check-docs.mjs красный на материале ревью: отпечаток скриншотов документац… src/houseplan-card.ts src/config-adoption.ts scripts/source-fingerprint.mjs config-adoption.ts docs/images/screenshots.json
#520 CODE-REVIEW-520-r3.md code · r3 🟢 зелёный 0 0 — —
#517 SPEC-REVIEW-517-r1.md spec · r1 🟡 жёлтый 0 2 Гарантия AC2 не держится при повторном применении зелёного вердикта (#499); Метка small не соответствует собственному описанию задачи как полнотрековой; У1 содержит неточное утверждение о текущем коде (не блокирует, для протокола) scripts/review-doc-guard.mjs process.yml scripts/process-gate.mjs task-packet.mjs
#517 SPEC-REVIEW-517-r2.md spec · r2 🟢 зелёный 0 0 Полнотрековый статус этой задачи формально расходится с ещё не изменённым §2.3 PROCESS.md
#517 CODE-REVIEW-517-r1.md code · r1 🟢 зелёный 0 0 — —
#516 CODE-REVIEW-516-r1.md code · r1 🟢 зелёный 0 0 — —
#516 CODE-REVIEW-516-r2.md code · r2 🟢 зелёный 0 0 — —
#515 CODE-REVIEW-515-r1.md code · r1 🟢 зелёный 0 0 — —
#514 SPEC-REVIEW-514-r1.md spec · r1 🟢 зелёный 0 0 — —
#514 CODE-REVIEW-514-r1.md code · r1 🟢 зелёный 0 0 — —
#514 CODE-REVIEW-514-r2.md code · r2 🟢 зелёный 0 0 — —
#514 CODE-REVIEW-514-r3.md code · r3 🟡 жёлтый 0 1 фолбэк-токен E2E_DISPATCH_TOKEN, если он scoped только на houseplan-e2e, молча ломает p… release.yml scripts/e2e-gate.mjs e2e-gate.mjs .github/workflows/release.yml houseplan-e2e/e2e.yml e2e.yml validate-gate.mjs PROCESS.md
#514 CODE-REVIEW-514-r4.md code · r4 🟢 зелёный 0 0 docs/specs/514-e2e-stable-release-gate.md:38 дословно цитирует старый текст TOKEN_HINT,… docs/specs/514-e2e-stable-release-gate.md scripts/e2e-gate.mjs
#513 CODE-REVIEW-513-r1.md code · r1 🟡 жёлтый 0 1 scripts/pre-push-gate.mjs продолжает называть полный мутационный реестр предрелизным ге… scripts/pre-push-gate.mjs mutation-gate.yml docs/TESTING.md pre-push-gate.mjs scripts/mutation-gate.mjs mutation-gate.mjs
#513 CODE-REVIEW-513-r2.md code · r2 🟢 зелёный 0 0 — —
#512 SPEC-REVIEW-512-r1.md spec · r1 🔴 красный 1 0 ТЗ не учитывает, что правка demo/docs/capture.mjs ломает captureScriptSha256 и красит d… demo/docs/capture.mjs docs/specs/512-golden-version-seam-and-docs-identical-accept.md scripts/check-docs.mjs scripts/source-fingerprint.mjs capture.mjs scripts/capture-environment.mjs accept.mjs policy.mjs
#512 SPEC-REVIEW-512-r2.md spec · r2 🟢 зелёный 0 0 — —
#512 CODE-REVIEW-512-r1.md code · r1 🟢 зелёный 0 0 — —
#511 SPEC-REVIEW-511-r1.md spec · r1 🟡 жёлтый 0 1 AC3 указывает не туда, реальный источник искажения не назван docs/performance/README.md docs/TESTING.md docs/DEVELOPMENT.md
#511 SPEC-REVIEW-511-r2.md spec · r2 🟢 зелёный 0 0 — —
#511 CODE-REVIEW-511-r1.md code · r1 🟢 зелёный 0 0 — —
#510 SPEC-REVIEW-510-r1.md spec · r1 🟡 жёлтый 0 0 1: место шага gate относительно reuse не зафиксировано и рискует сломать fast-path #499; 2: критерий «подходящий прогон» в validate-gate.mjs/merge-candidate.mjs не проверяет, ч…; 1: нет явной декларации «пользовательское поведение не меняется» и N/A по i18n/UX/модел… docs/specs/510-mutants-on-candidate-and-review-waits-validate.md process.yml review-doc-guard.test.mjs validate-gate.mjs merge-candidate.mjs validate-gate.test.mjs merge-candidate.test.mjs docs/specs/README.md
#510 SPEC-REVIEW-510-r2.md spec · r2 🟡 жёлтый 0 0 1: проводка gate → красный-возврат / продолжение ревью использует в трёх соседних предл… docs/specs/510-mutants-on-candidate-and-review-waits-validate.md
#510 SPEC-REVIEW-510-r3.md spec · r3 🟡 жёлтый 0 0 1: унификация «всё через proceed» ломает reuse-fast-path (#499) — деплой-зависимости, C… docs/specs/510-mutants-on-candidate-and-review-waits-validate.md process.yml test/review-doc-guard.test.mjs
#510 SPEC-REVIEW-510-r4.md spec · r4 🟢 зелёный 0 0 — —
#510 CODE-REVIEW-510-r1.md code · r1 🟡 жёлтый 0 1 Отменённый (cancelled) dispatch-прогон читается как красный, а не игнорируется — то же … scripts/validate-gate.mjs scripts/merge-candidate.mjs validate.yml validate-gate.mjs test/validate-gate.test.mjs test/merge-candidate.test.mjs scripts/release-gate.mjs
#510 CODE-REVIEW-510-r2.md code · r2 🟡 жёлтый 0 1 Файл: scripts/merge-candidate.mjs:145 — waitValidate внутри realOps: js const runs = al… scripts/merge-candidate.mjs test/merge-candidate.test.mjs merge-candidate.mjs scripts/validate-gate.mjs
#510 CODE-REVIEW-510-r3.md code · r3 🟢 зелёный 0 0 — —
#509 SPEC-REVIEW-509-r1.md spec · r1 🟡 жёлтый 0 2 отсутствует раздел «Принятые технические предположения» (PROCESS.md §7.1); контракт п.4 (прежнее значение при инвалидации мемо, без скелета) не доказан ни одним AC; критерий отказа от лёгкого трека не назван явно SPEC-REVIEW-505-r1.md docs/specs/493-...md
#509 SPEC-REVIEW-509-r2.md spec · r2 🟢 зелёный 0 0 способ инъекции счётчика вызовов для AC3 остался неназванным wall-thickness.ts
#509 CODE-REVIEW-509-r1.md code · r1 🟢 зелёный 0 0 — —
#508 SPEC-REVIEW-508-r1.md spec · r1 🟡 жёлтый 0 2 AC3 называет несуществующее доказательство: golden-сценариев summary- в репозитории нет; В ТЗ лёгкого трека нет раздела «откат»; Целевой файл документации для фразы про футер не определён. Пункт 3 «Изменений» называе…; Влияние на производительность не названо явно. DoR (§2.5) требует явного «нет», если вл… demo/capture_summary_panel_505.mjs docs/UX-MODES.md docs/ARCHITECTURE.md
#508 SPEC-REVIEW-508-r2.md spec · r2 🟢 зелёный 0 0 — —
#508 CODE-REVIEW-508-r1.md code · r1 🟢 зелёный 0 0 — —
#508 CODE-REVIEW-508-r2.md code · r2 🟢 зелёный 0 0 — —
#508 CODE-REVIEW-508-r3.md code · r3 🟢 зелёный 0 0 — —
#506 SPEC-REVIEW-506-r1.md spec · r1 🟢 зелёный 0 0 — —
#506 CODE-REVIEW-506-r1.md code · r1 🟢 зелёный 0 0 — —
#505 SPEC-REVIEW-505-r1.md spec · r1 🟡 жёлтый 0 2 отсутствуют обязательные первые разделы «Сценарий» и «Что человек увидит до и после» (P…; отсутствует обязательный раздел «Принятые технические предположения» (PROCESS.md §7.1/§7); неполный список визуальных пар в разделе доказательств (§8) docs/specs/505-summary-panel-design-parity.md docs/SCOPE.md docs/specs/493-summary-panel-hardening.md
#505 SPEC-REVIEW-505-r2.md spec · r2 🟢 зелёный 0 0 — —
#505 CODE-REVIEW-505-r1.md code · r1 🟢 зелёный 0 0 неиспользуемый ключ локализации summary.block_visible src/summary-panel-editor.ts
#505 CODE-REVIEW-505-r2.md code · r2 🟢 зелёный 0 0 — —
#502 SPEC-REVIEW-502-r1.md spec · r1 🟢 зелёный 0 0 — src/radar-setup.ts test/helpers/i18n-consumers.mjs test/i18n-dead-keys.test.mjs
#502 CODE-REVIEW-502-r1.md code · r1 🟢 зелёный 0 0 — —
#500 SPEC-REVIEW-500-r1.md spec · r1 🟡 жёлтый 2 0 Инвентаризация вызывающих adoptStructuralResponses неполна: 4 названных против 7 фактич…; Инвентаризация писателей тела serverCfg = тоже неполна: 6/16 названо, фактически 8 моду… houseplan-editor-runtime.ts houseplan-onboarding-runtime.ts demo/smoke_space_delete_adoption.mjs houseplan-card.ts plan-optimize-write.ts serialized-write-queue.ts space-copy-runtime.ts summary-panel-runtime-loaded.ts
#500 SPEC-REVIEW-500-r2.md spec · r2 🟡 жёлтый 1 0 новый текст r2 неверно утверждает, что adoptInitialSpace сегодня не вызывается ни на од… docs/specs/500-config-adoption-boundary.md src/houseplan-editor-runtime.ts houseplan-card.ts
#500 SPEC-REVIEW-500-r3.md spec · r3 🟢 зелёный 0 0 — —
#500 CODE-REVIEW-500-r1.md code · r1 🟡 жёлтый 0 1 Post-write гейт: отказ (asset-wait) не останавливает хвост вызывающего ни в одном из че…; Риск-таблица ТЗ §12 содержит неверный факт о static properties, но код всё равно корректен src/houseplan-editor-runtime.ts src/houseplan-onboarding-runtime.ts demo/smoke_post_write_adoption.mjs test/config-adoption.test.mjs
#500 CODE-REVIEW-500-r2.md code · r2 🟡 жёлтый 0 1 Единственный автоматический свидетель AC4/M1 красный на материале ревью — demo/smoke_po… demo/smoke_post_write_adoption.mjs
#500 CODE-REVIEW-500-r3.md code · r3 🟢 зелёный 0 0 — —
#498 SPEC-REVIEW-498-r1.md spec · r1 🟡 жёлтый 0 2 обязательный раздел «AC1…ACn» отсутствует, часть пунктов DoR не названа явно; предложенный алгоритм обхода графа ссылок (§6) не гарантирует заявленный предел глубины…; «После» в §1.2 смешивает пользовательский язык с деталями реализации decor_assets.py src/decor-image-editor.ts
#498 SPEC-REVIEW-498-r2.md spec · r2 🟢 зелёный 0 2 нумерация разделов «## 8» / «## 8.0» после вставки AC-раздела —
#498 CODE-REVIEW-498-r1.md code · r1 🟢 зелёный 0 0 — —
#495 SPEC-REVIEW-495-r1.md spec · r1 🟢 зелёный 0 0 — —
#495 CODE-REVIEW-495-r1.md code · r1 🟢 зелёный 0 0 — —
#493 SPEC-REVIEW-493-r1.md spec · r1 🟢 зелёный 0 0 лишняя пустая строка в конце файла ТЗ docs/specs/493-summary-panel-hardening.md
#493 CODE-REVIEW-493-r1.md code · r1 🟢 зелёный 0 0 — —
#492 SPEC-REVIEW-492-r1.md spec · r1 🟡 жёлтый 0 1 AC6 не называет способ доказательства docs/specs/492-exact-candidate-and-input-manifest.md check-inputs.mjs src/houseplan-card.ts test/gate-reuse.test.mjs
#492 SPEC-REVIEW-492-r2.md spec · r2 🟢 зелёный 0 0 — —
#492 CODE-REVIEW-492-r1.md code · r1 🟢 зелёный 0 0 — —
#491 SPEC-REVIEW-491-r1.md spec · r1 🟢 зелёный 0 0 — —
#491 CODE-REVIEW-491-r1.md code · r1 🟡 жёлтый 0 1 1; 0 custom_components/houseplan/websocket_api.py scripts/mutation-gate.mjs
#491 CODE-REVIEW-491-r2.md code · r2 🟢 зелёный 1 2 0; в скоупе — 0; вне скоупа — 1, заведена отдельным issue; 1 scripts/process-gate.mjs docs/TESTING.md TESTING.md scripts/mutation-gate.mjs
#490 SPEC-REVIEW-490-r1.md spec · r1 🟢 зелёный 0 0 — —
#490 CODE-REVIEW-490-r1.md code · r1 🟡 жёлтый 0 1 Recovery-адаптация обходит asset-readiness gate и continuity-overlay (в скоупе, Medium) src/summary-panel-runtime-loaded.ts houseplan-card.ts space-card.ts src/signing.ts visual-continuity.ts signing.ts demo/smoke_summary_panel.mjs
#490 CODE-REVIEW-490-r2.md code · r2 🟢 зелёный 0 0 — —
#489 SPEC-REVIEW-489-r1.md spec · r1 🟡 жёлтый 0 3 Условие существования зум-кнопок противоречит текущему рендеру и не-скоупу (Medium, в с…; Гейт свежести документации (check-docs) не назван обязательным при правке src/ (Medium,…; data-hp-mode="device" расходится с уже опубликованным именем mode-devices (Medium, в ск… docs/specs/489-data-hp-contract.md src/houseplan-card.ts src/styles/chrome.styles.ts docs/data-hp-contract.json STYLING-HOOKS.md demo/smoke_styling_hooks.mjs src/houseplan-editor-runtime.ts src/hp-dialog.ts
#489 SPEC-REVIEW-489-r2.md spec · r2 🟢 зелёный 0 0 — —
#489 CODE-REVIEW-489-r1.md code · r1 🟢 зелёный 0 0 — —
#488 CODE-REVIEW-488-r1.md code · r1 🟢 зелёный 0 0 — —
#487 SPEC-REVIEW-487-r1.md spec · r1 🟢 зелёный 0 0 расхождение с уже принятой формулировкой «наследовать» (в скоупе, не блокирует) docs/specs/487-room-temperature-thresholds.md src/houseplan-editor-runtime.ts
#487 CODE-REVIEW-487-r1.md code · r1 🟢 зелёный 0 0 — —
#486 SPEC-REVIEW-486-r1.md spec · r1 🟢 зелёный 0 0 Сверка утверждений о текущем коде с фактическим origin/dev; Проверка полномочий продуктовых решений; Проверка обязательных разделов ТЗ (PROCESS.md §7.1); Проверка непротиворечивости с продуктовым скоупом —
#486 CODE-REVIEW-486-r1.md code · r1 🟢 зелёный 0 0 1 Дешёвые гейты — приняты по ссылке, не перегонялись; 2 Тяжёлые гейты — не приняты вслепую, прослежены по истории CI ветки; 3 Что прогнал/перепроверил сам; 4 Вывод smoke-select.mjs (для протокола); 5 Таблица гейтов; 1 High — нет —
#485 SPEC-REVIEW-485-r1.md spec · r1 🟡 жёлтый 0 2 исключение из SCOPE.md для истории/тепловой карты не зафиксировано в самом SCOPE.md; этап 1 не декларирует touch-классификацию нового редактора (обязательное требование TOU… docs/SCOPE.md 485-radar-presence.md docs/TOUCH-SUPPORT.md 485-radar-presence-stage2.md 485-radar-presence-stage3.md 485-radar-presence-stage1.md
#485 SPEC-REVIEW-485-r2.md spec · r2 🟢 зелёный 0 0 — —
#485 SPEC-REVIEW-485-r3.md spec · r3 🟡 жёлтый 0 1 новый гейт видимости, по тексту, исключает ранее принятый адаптер «любой числовой сенсо… docs/specs/485-radar-presence-stage1.md stage1.md 485-radar-presence.md
#485 SPEC-REVIEW-485-r4.md spec · r4 🟢 зелёный 0 0 — —
#485 CODE-REVIEW-485-r1.md code · r1 🔴 красный 6 6 «partial» не существует как состояние здоровья; смешанные и полностью устаревшие данные…; гонка teardown/await воскрешает HA-подписки после выгрузки интеграции. custom_component…; нет проверки «то же устройство» для верифицированного адаптера LD2450. custom_component…; «Настроить на плане» отказывает для комнаты без контура вместо предупреждения и незанят…; известные занятые зоны (zones_v1) никогда не рисуются на плане. grep -n "zone" src/rada…; смена HA-привязки маркера может молча удалить уже сохранённую, откалиброванную конфигур… custom_components/houseplan/radar.py __init__.py custom_components/houseplan/radar_validation.py radar.py src/editors/radar-section.ts radar-model.ts radar-editor.ts editors/radar-section.ts
#485 CODE-REVIEW-485-r2.md code · r2 🟡 жёлтый 0 1 M-1 (продолжение M6 из r1, закрыто частично). Три из четырёх числовых гардов калибровоч…; Фикс H4 (комната без контура открывает мастер с предупреждением) корректен по чтению (s… radar_geometry.py src/radar-geometry.ts test/radar-geometry.test.mjs radar_websocket.py test_ha_radar_websocket.py custom_components/houseplan/websocket_api.py docs/specs/485-radar-presence-stage1.md custom_components/houseplan/__init__.py
#485 CODE-REVIEW-485-r3.md code · r3 🟡 жёлтый 0 1 M-1 (новая). Четвёртый числовой гвард двухточечного решателя — согласованность радиальн… custom_components/houseplan/radar_geometry.py src/radar-geometry.ts
#485 CODE-REVIEW-485-r4.md code · r4 🟢 зелёный 0 0 Нет golden-сцены для радара (find demo/golden -iname "radar" — по-прежнему пусто). Не э… radar.py
#484 SPEC-REVIEW-484-r1.md spec · r1 🟢 зелёный 0 0 — —
#484 CODE-REVIEW-484-r1.md code · r1 🟢 зелёный 0 0 — —
#483 CODE-REVIEW-483-r1.md code · r1 ⚪ — 0 0 — —
#482 SPEC-REVIEW-482-r1.md spec · r1 🟡 жёлтый 0 1 источник и лицензия векторного компаса заявлены как факт без проверяемой цитаты, аналог… docs/specs/482-pdf-export-polish.md docs/FURNITURE.md docs/PDF-EXPORT.md SPEC-REVIEW-159-r1.md
#482 SPEC-REVIEW-482-r2.md spec · r2 🟢 зелёный 0 0 — —
#482 CODE-REVIEW-482-r1.md code · r1 🟢 зелёный 0 0 — —
#481 SPEC-REVIEW-481-r1.md spec · r1 🟡 жёлтый 0 2 в скоупе задачи, чинится в этом же issue; снимаю с записью, не блокирует validate.yml test/mutation-gate.test.mjs test/validate-workflow.test.mjs
#481 SPEC-REVIEW-481-r2.md spec · r2 🟢 зелёный 0 0 — —
#481 CODE-REVIEW-481-r1.md code · r1 🟢 зелёный 0 0 — —
#478 SPEC-REVIEW-478-r1.md spec · r1 🟢 зелёный 0 0 — —
#478 CODE-REVIEW-478-r1.md code · r1 🔴 красный 2 4 TS и Python дают разные ID и разные решения accept/reject на одном и том же legacy JSON…; устаревшая v9-запись поверх уже мигрированного v10-документа не отклоняется (нарушение …; golden-харнесс не переименован вслед за полем, из-за чего сценарий превью толщины цепоч…; путь поглощения комнаты не атомарен при вырожденном spaceModel() (в скоупе, риск для AC9); AC13 (фикс-пойнт Optimize сразу после accept) не доказан через реальный путь редактора; мёртвые поля redundantDraftsRemoved/removedDrafts в моке смока src/wall-segment-model.ts custom_components/houseplan/wall_segment_model.py test-build/wall-segment-model.js wall_segment_model.py src/logic.ts test/wall-segment-model.test.mjs tests_backend/test_wall_segment_model.py custom_components/houseplan/validation.py
#478 CODE-REVIEW-478-r2.md code · r2 🟡 жёлтый 0 1 канонический документ подсистемы утверждает поведение, которого дельта только что лишил… docs/CONFIG-COMPATIBILITY.md test/fixtures/478-room-draft-migration-vectors.json wall-segment-model.ts src/wall-segment-model.ts custom_components/houseplan/wall_segment_model.py validation.py
#478 CODE-REVIEW-478-r3.md code · r3 🟢 зелёный 0 0 — —
#477 SPEC-REVIEW-477-r1.md spec · r1 🟢 зелёный 0 0 — —
#477 CODE-REVIEW-477-r1.md code · r1 🟢 зелёный 0 0 — —
#476 SPEC-REVIEW-476-r1.md spec · r1 🟡 жёлтый 0 1 §18 противоречит §7.3/AC4; §7.2 нумерованный список читается как безусловный docs/specs/476-color-picker-ok.md hp-color-opacity.ts
#476 SPEC-REVIEW-476-r2.md spec · r2 🟢 зелёный 0 0 — —
#476 CODE-REVIEW-476-r1.md code · r1 🟡 жёлтый 0 0 AC4: защита от обхода невалидного HEX повторным «ОК» не имеет постоянного свидетеля в s…; AC3/§7.2.4: заявленная защита «клик не проваливается в план/toolbar под поверхностью» н…; src/houseplan-card.ts:5932 — invalidHex: …, confirm: … на одной строке (git diff слепил… scripts/mutation-gate.mjs SPEC-REVIEW-476-r1.md demo/smoke_color_picker.mjs scripts/smoke-links.mjs src/houseplan-card.ts
#476 CODE-REVIEW-476-r2.md code · r2 🟢 зелёный 0 0 — —
#476 CODE-REVIEW-476-r3.md code · r3 🟢 зелёный 0 0 — —
#475 SPEC-REVIEW-475-r1.md spec · r1 🟡 жёлтый 0 1 job и guardFiles() не покрывают гарды бэкенда, хотя они уже есть в реестре .test.mjs scripts/mutation-gate.mjs custom_components/houseplan/frontend_registration.py tests_backend/test_ha_frontend_registration.py mutation-gate.mjs .github/workflows/validate.yml src/wall-merge.ts
#475 SPEC-REVIEW-475-r2.md spec · r2 🟢 зелёный 0 0 — —
#475 CODE-REVIEW-475-r1.md code · r1 🟡 жёлтый 0 1 триггер job не покрывает третье условие контракта; тест AC7 не покрывает четвёртый бэкенд-мутант, хотя код это делает .github/workflows/validate.yml scripts/mutation-gate.mjs test/validate-workflow.test.mjs validate.yml test/mutation-gate.test.mjs custom_components/houseplan/frontend_registration.py tests_backend/test_ha_frontend_registration.py
#475 CODE-REVIEW-475-r2.md code · r2 🟢 зелёный 0 0 — —
#474 SPEC-REVIEW-474-r1.md spec · r1 🔴 красный 1 0 Контракт §4.2–4.3 не даёт ensure() для палитры мебели без уже существующей мебели в кон… docs/specs/474-lazy-furniture-art.md decor-image-editor.ts src/i18n/language-runtime.ts furniture-plan-art.generated.ts src/decor-image-editor.ts src/houseplan-editor-runtime.ts demo/srv/demo.html demo/smoke_furniture.mjs
#474 SPEC-REVIEW-474-r2.md spec · r2 🟡 жёлтый 0 1 , в скоупе] Счётчик свидетелей в AC9 и §8 не обновлён после добавления седьмого docs/specs/474-lazy-furniture-art.md docs/reviews/SPEC-REVIEW-474-r1.md scripts/mutation-gate.mjs mutation-gate.mjs
#474 CODE-REVIEW-474-r1.md code · r1 🟢 зелёный 0 0 scripts/bundle-budget.mjs: печать не называет новый ленивый граф scripts/bundle-budget.mjs test/bundle-assets.test.mjs
#473 SPEC-REVIEW-473-r1.md spec · r1 🟡 жёлтый 0 3 AC7 недоказуем предписанным способом; --variants=60 не поддерживается скриптом, на который распространён контракт; четыре обязательных раздела §7.1 отсутствуют без пометки «не применимо» docs/specs/473-iso-perf-witnesses-and-smoke.md src/houseplan-render-lifecycle.ts src/houseplan-card.ts validate.yml scripts/mutation-gate.mjs .github/workflows/validate.yml houseplan-card.ts performance.yml
#473 SPEC-REVIEW-473-r2.md spec · r2 🟢 зелёный 0 0 риск «хрупкость мутантов к рефакторингу подписи кэша» не вошёл в таблицу §7.2 docs/specs/473-iso-perf-witnesses-and-smoke.md
#473 CODE-REVIEW-473-r1.md code · r1 🟢 зелёный 0 0 — —
#472 SPEC-REVIEW-472-r1.md spec · r1 🟡 жёлтый 0 2 2; 1 (не блокирует, на усмотрение автора) scripts/mutation-gate.mjs validate.yml mutation-gate.yml
#472 SPEC-REVIEW-472-r2.md spec · r2 🟡 жёлтый 0 1 1; 1 (не блокирует, на усмотрение автора) scripts/mutation-gate.mjs
#472 CODE-REVIEW-472-r1.md code · r1 🟡 жёлтый 0 1 Medium, в скоупе. SHA в отчёте — не тот, что был протестирован; Low, не блокирует. Поиск открытого issue по заголовку не проверен вживую —
#472 CODE-REVIEW-472-r2.md code · r2 🟢 зелёный 0 0 — —
#471 SPEC-REVIEW-471-r1.md spec · r1 🟢 зелёный 0 0 — —
#471 CODE-REVIEW-471-r1.md code · r1 🟢 зелёный 0 0 — —
#464 SPEC-REVIEW-464-r1.md spec · r1 🟢 зелёный 0 0 — —
#464 CODE-REVIEW-464-r1.md code · r1 🟡 жёлтый 1 0 реальный hover курсора оставляет hovered-source МАРКЕР под топологией, а не над ней (на… src/styles/devices.styles.ts src/hp-zigbee-topology-overlay.ts smoke_zigbee_topology_hover.mjs docs/SCOPE.md mutation-gate.mjs
#464 CODE-REVIEW-464-r2.md code · r2 🟢 зелёный 0 0 — —
#463 SPEC-REVIEW-463-r1.md spec · r1 ⚪ — 1 0 Раздел «Release-артефакты» содержит опровергнутое фактом утверждение: golden обязателен…; AC1: формулировка «backdrop непрозрачен» неоднозначна относительно действующей CSS demo/golden/harness.mjs demo/serve.mjs demo/srv/demo.html matrix.mjs docs/specs/README.md src/hp-dialog.ts
#463 SPEC-REVIEW-463-r2.md spec · r2 🔴 красный 0 0 — —
#463 CODE-REVIEW-463-r1.md code · r1 🟢 зелёный 0 0 — —
#462 SPEC-REVIEW-462-r1.md spec · r1 ⚪ — 0 1 пересечение нового баннера с существующим тостом #353; числовой touch-target 44×44 не имеет источника в каноне docs/USER-GUIDE.ru.md src/editor-runtime-loader.ts src/houseplan-card.ts PROCESS.md docs/TOUCH-SUPPORT.md docs/UX-MODES.md
#462 SPEC-REVIEW-462-r2.md spec · r2 🟡 жёлтый 0 1 новый контракт lovelace.resource_mode: yaml не подтверждён и; числовой touch-target 44×44; SHA не назван в вердикт-комментарии r1 SPEC-REVIEW-462-r1.md
#462 SPEC-REVIEW-462-r3.md spec · r3 🔴 красный 1 0 — —
#462 CODE-REVIEW-462-r1.md code · r1 🟢 зелёный 0 0 1 Backend (AC2, AC3, AC4, AC5, AC11); 2 Frontend (AC6–AC10, AC12); 3 Документация (AC1) и артефакты сборки (AC13) —
#461 SPEC-REVIEW-461-r1.md spec · r1 🟢 зелёный 0 0 1. §9.3, formula несогласованность между двумя scaling-проверками не объяснена одной фр… —
#461 CODE-REVIEW-461-r1.md code · r1 🟡 жёлтый 0 1 AC4 заявляет метод доказательства «unit + mutation witness» для «verdict fast/full совп…; §6.4 против фактической обработки !safe в commitDraftSegmentGeometry scripts/mutation-gate.mjs test/draft-live-preflight.test.mjs test/wall-union-isolation.test.mjs demo/smoke_wall_draw_click.mjs smoke_junction_limits.mjs smoke_wall_junctions.mjs smoke_multiwall_junction.mjs smoke_near_orthogonal_junction.mjs
#461 CODE-REVIEW-461-r2.md code · r2 🟢 зелёный 0 0 — —
#460 SPEC-REVIEW-460-r1.md spec · r1 🟢 зелёный 0 0 — —
#460 CODE-REVIEW-460-r1.md code · r1 🟢 зелёный 0 0 — —
#459 SPEC-REVIEW-459-r1.md spec · r1 🟡 жёлтый 0 1 AC не покрывают главное новое содержимое подсказки; фикстура для AC2 не покрыта в «Затронутых файлах» src/i18n/topology.ts src/houseplan-editor-runtime.ts
#459 SPEC-REVIEW-459-r2.md spec · r2 🟢 зелёный 0 0 help_aria не соответствует заявленному образцу; контракт и AC3 говорят «шесть пунктов легенды», перечисляя семь src/i18n/ru.json
#459 CODE-REVIEW-459-r1.md code · r1 🟢 зелёный 0 0 — —
#459 CODE-REVIEW-459-r2.md code · r2 🟢 зелёный 0 0 — —
#457 SPEC-REVIEW-457-r1.md spec · r1 🟢 зелёный 0 0 зафиксировано, без правки —
#457 CODE-REVIEW-457-r1.md code · r1 🟡 жёлтый 0 2 нормализация relationship отступает от принятого ТЗ §6.3; доказательство AC9 неполно: нет browser-smoke на аспектах/zoom src/zigbee-topology.ts test/zigbee-topology.test.mjs demo/smoke_zigbee_topology_hover.mjs src/live-viewport.ts zigbee-topology-overlay-bridge.ts
#457 CODE-REVIEW-457-r2.md code · r2 🟢 зелёный 0 0 — —
#456 SPEC-REVIEW-456-r1.md spec · r1 🟢 зелёный 0 0 — —
#456 CODE-REVIEW-456-r1.md code · r1 🟡 жёлтый 0 3 1 Дешёвые гейты (гоняю сам — зелёного Validate на этом SHA нет); 2 Живой браузерный прогон новой фичи (нет закоммиченного смока — см. M3); check-docs.mjs красный: отпечаток скриншотов устарел; golden:verify красный: footer диалога пространства изменился, эталон не обновлён; заявленный в ТЗ browser smoke для Copy отсутствует; Фокус поля имени при возврате из отменённого Optimize-warning (§6.2, §11: «при возврате… check-docs.mjs docs/images/screenshots.json space-copy.ts space-copy-runtime.ts plan-optimize-write.ts space-dialog.ts houseplan-editor-runtime.ts houseplan-card.ts
#456 CODE-REVIEW-456-r2.md code · r2 🟢 зелёный 0 0 1 Дешёвые гейты — прогнаны заново (код изменился, стоят минуты); 2 Гейты, закрывающие находки r1 — прогнаны целиком (не только для проверки на слово авт…; 3 Не прогонялось повторно — обосновано в §5 «Унаследовано» —
#454 SPEC-REVIEW-454-r1.md spec · r1 🟡 жёлтый 0 1 AC2 не доказуем тем способом, который сам называет; нет явных разделов «UX» и «i18n»; cohesion review-doc-guard.mjs SPEC-REVIEW-449-r1.md -r2.md -r1.md PROCESS.md review-doc-guard.mjs scripts/review-doc-guard.mjs scripts/review-round-counter.mjs
#454 SPEC-REVIEW-454-r2.md spec · r2 🟢 зелёный 0 0 — —
#454 CODE-REVIEW-454-r3.md code · r3 🟢 зелёный 0 1 страховка по комментариям может завысить и attempt, и spent через посторонний маркер в … process.yml CODE-REVIEW-441-r1.md CODE-REVIEW-230-r2.md test/review-doc-guard.test.mjs CODE-REVIEW-454-r3.md docs/specs/454-review-round-counter.md
#454 CODE-REVIEW-454-r4.md code · r4 🟢 зелёный 0 0 — —
#451 SPEC-REVIEW-451-r1.md spec · r1 🟡 жёлтый 0 3 docs/PERFORMANCE.md не существует, но назван обязательным артефактом (Medium, в скоупе); docs/SCREENSHOTS.md не существует (Medium, в скоупе); верхняя граница диапазона «наблюдавшихся» замеров в §11.3 не подтверждена ни одним исто… docs/PERFORMANCE.md docs/specs/451-render-performance.md demo/performance/README.md docs/DEVELOPMENT.md docs/SCREENSHOTS.md docs/reviews/CODE-REVIEW-126-r1.md PROCESS.md scripts/check-docs.mjs
#451 SPEC-REVIEW-451-r2.md spec · r2 🟢 зелёный 0 0 — —
#451 CODE-REVIEW-451-r1.md code · r1 🔴 красный 1 2 новый performance-профиль large-house-interaction-v1 не проходит собственный бюджет; обещанный в самом ТЗ «targeted production-bundle smoke» не создан; нет мутанта в scripts/mutation-gate.mjs для новых защитных механизмов; известная нестабильность smoke_smooth_zoom.mjs под нагрузкой (не регрессия, к сведению) demo/performance/budgets-large-house-interaction.json smoke_decor.mjs smoke_furniture.mjs smoke_decor_text.mjs smoke_resize_pointer_real_plan.mjs smoke_pan_any_zoom.mjs smoke_room_fit.mjs smoke_infinite_canvas.mjs
#451 CODE-REVIEW-451-r2.md code · r2 🔴 красный 3 0 отпечаток скриншотов документации устарел, docs-джоба красная; новый код добавляет 11 непрокомментированных any, гейт красный; resize потерял видимую fail-closed реакцию на невозможную геометрию посреди жеста validate.yml src/houseplan-card.ts src/houseplan-editor-runtime.ts src/junction-limits.ts src/live-editor.ts src/resize-controller.ts
#451 CODE-REVIEW-451-r3.md code · r3 🟡 жёлтый 0 1 не заявленный в ТЗ постоянный отказ от live-preflight на больших планах, противоречит с… src/resize-controller.ts src/houseplan-editor-runtime.ts demo/fixtures/large-house.mjs docs/CHANGELOG.md .ru.md
#451 CODE-REVIEW-451-r4.md code · r4 🟡 жёлтый 0 1 локальный кандидат для physical-geometry исключает соседнюю комнату, от которой зависит… src/resize-live-preflight.ts src/houseplan-editor-runtime.ts test/fixtures/278-wall-union-isolation.json test/resize-controller.test.mjs demo/benchmark_large_house.mjs smoke_room_resize.mjs
#450 CODE-REVIEW-450-r1.md code · r1 🟢 зелёный 0 0 — —
#449 SPEC-REVIEW-449-r1.md spec · r1 🟡 жёлтый 0 0 Строка Touch editor: not exposed, закрывающая M1, называет несуществующий четвёртый ред…; / Low docs/specs/449-double-fit-all.md docs/USER-GUIDE.ru.md docs/UX-MODES.md scripts/check-docs.mjs
#449 SPEC-REVIEW-449-r2.md spec · r2 🟢 зелёный 0 0 — —
#449 CODE-REVIEW-449-r1.md code · r1 🔴 красный 3 3 custom_components/houseplan/frontend/ не синхронизирован с dist/: пользователь не получ…; docs-гейт красный: скрипты не пересняты после правки src/; заявленное доказательство AC3 красное: demo/smoke_kiosk_pan_lock.mjs; $ npm test → not ok: "#438 полоса шире наблюдаемого шума метрики" error: 'сверху меньше…; bundle budget: запас ушёл ниже шумовой полосы; мутант room-fit-enters-kiosk-double-tap-sequence больше ничего не ловит dist/houseplan-assets/houseplan-card-CbNfZuwV.js custom_components/houseplan/frontend/houseplan-assets/houseplan-card-BgNWi9NC.js test/bundle-tree-committed.test.mjs test/release-contract.test.mjs dist/houseplan-card.js src/houseplan-card.ts src/room-fit.ts demo/smoke_kiosk_pan_lock.mjs
#449 CODE-REVIEW-449-r2.md code · r2 🟢 зелёный 0 0 — —
#448 SPEC-REVIEW-448-r1.md spec · r1 🟡 жёлтый 0 1 ТЗ не закрывает обязательный пункт DoR «влияние на touch» (docs/TOUCH-SUPPORT.md) docs/TOUCH-SUPPORT.md docs/specs/448-alpha-switch.md src/houseplan-card.ts
#448 SPEC-REVIEW-448-r2.md spec · r2 🟢 зелёный 0 0 — —
#448 CODE-REVIEW-448-r1.md code · r1 🟡 жёлтый 0 2 docs/RELEASE-NOTES.md потерял пункт #447 в обеих секциях; AGENTS.md §«Labs flags» не обновлён и описывает контракт, которого больше нет docs/RELEASE-NOTES.md docs/DEVELOPMENT.md AGENTS.md src/labs.ts docs/ISOMETRIC.md docs/STATUS.md
#448 CODE-REVIEW-448-r2.md code · r2 🟢 зелёный 0 0 — —
#447 SPEC-REVIEW-447-r1.md spec · r1 🔴 красный 1 0 AC4 и §3 путают единицы «шага сетки»: render-space gridPitch vs normalised GRID_STEP_N,… docs/specs/447-exterior-furniture-snap-keyboard-nudge.md src/space-geometry.ts space-render.ts houseplan-card.ts src/houseplan-editor-runtime.ts
#447 SPEC-REVIEW-447-r2.md spec · r2 🟢 зелёный 0 0 — —
#447 CODE-REVIEW-447-r1.md code · r1 ⚪ — 0 0 — —
#445 SPEC-REVIEW-445-r1.md spec · r1 🟡 жёлтый 0 1 угловой tie-break не имеет доказательства docs/specs/445-furniture-wall-face-snap.md
#445 SPEC-REVIEW-445-r2.md spec · r2 🟢 зелёный 0 0 — —
#445 CODE-REVIEW-445-r1.md code · r1 🟢 зелёный 0 0 — —
#443 SPEC-REVIEW-443-r1.md spec · r1 ⚪ — 0 1 раздел «Release-артефакты» не называет два канонических документа, которые эта же правк…; «Карта реализации» называет несуществующий путь для i18n docs/specs/README.md docs/VACUUM.md docs/CONFIG-COMPATIBILITY.md CONFIG-COMPATIBILITY.md docs/USER-GUIDE.ru.md
#443 SPEC-REVIEW-443-r2.md spec · r2 ⚪ — 0 0 — —
#443 CODE-REVIEW-443-r1.md code · r1 ⚪ — 0 0 — —
#442 SPEC-REVIEW-442-r1.md spec · r1 🟢 зелёный 0 0 Неточное имя функции в теле issue (не в ТЗ); Явного раздела «i18n» нет — контент есть, но не под заголовком src/houseplan-editor-runtime.ts
#442 CODE-REVIEW-442-r1.md code · r1 🟢 зелёный 0 0 — —
#441 CODE-REVIEW-441-r1.md code · r1 🟡 жёлтый 0 0 — —
#440 SPEC-REVIEW-440-r1.md spec · r1 🟢 зелёный 0 0 — —
#440 CODE-REVIEW-440-r1.md code · r1 🟢 зелёный 0 0 предсуществующий (не #440) неточный мутант, вне блокировки scripts/mutation-gate.mjs
#439 CODE-REVIEW-439-r1.md code · r1 🟢 зелёный 0 0 — —
#437 SPEC-REVIEW-437-r1.md spec · r1 🟡 жёлтый 0 1 Раздел 10 «i18n и визуальное соответствие» пропускает французскую локаль, которая являе…; Термин viewAllowed в формуле §5.3 не введён явно; Систематически пропущены пробелы перед числами в ряде мест текста docs/specs/437-summary-panel.md src/i18n/fr.json docs/CHANGELOG.md docs/CHANGELOG.ru.md docs/USER-GUIDE.ru.md CONTRIBUTING.md
#437 SPEC-REVIEW-437-r2.md spec · r2 🟢 зелёный 0 0 — —
#437 CODE-REVIEW-437-r1.md code · r1 🟡 жёлтый 0 4 существующий смок demo/smoke_kiosk.mjs падает необработанным исключением на этом SHA; исключение «удалённого устройства» в подсчёте Q2 не имеет свидетеля; tap-target реордер/удаления в форме настроек меньше заявленных 44×44 CSS px; идентичность карточки (AC21) не имеет ни выделенного резолвера, ни свидетеля теста demo/smoke_kiosk.mjs src/houseplan-card.ts scripts/smoke-select.mjs src/summary-panel-metrics.ts test/summary-panel.test.mjs src/summary-panel-style.ts summary-panel-editor.ts docs/TOUCH-SUPPORT.md
#437 CODE-REVIEW-437-r2.md code · r2 🟡 жёлтый 0 1 регресс восстановления камеры View при возврате из редактора, унаследован из r1-материа…; prepareCameraCommand, bootSoftCancel, stagePointerDown (houseplan-card.ts) объединяют п…; та же строка import { measuredCardHeaderHeight, settleSoftStageLayout } from './boot-so…; src/summary-panel-identity.ts: structuralPath() по-прежнему строит идентичность через c… demo/smoke_zoom_out.mjs docs/houseplan-card.ts smoke_zoom_out.mjs houseplan-editor-runtime.ts src/boot-soft-layout.ts houseplan-card.ts src/summary-panel-identity.ts
#437 CODE-REVIEW-437-r3.md code · r3 🟡 жёлтый 0 0 src/houseplan-card.ts:1448: measuredCardHeaderHeight(this.renderRoot, this._stageEl!, t…; docs/CHANGELOG.md/docs/CHANGELOG.ru.md (правка в этом же коммите, трейлеры соблюдены) о… src/houseplan-card.ts src/boot-soft-layout.ts docs/CHANGELOG.md docs/CHANGELOG.ru.md
#437 CODE-REVIEW-437-r4.md code · r4 🟢 зелёный 0 0 — —
#434 SPEC-REVIEW-434-r1.md spec · r1 🟡 жёлтый 0 1 , в скоупе] Неверная цифра «20-минутный timeout» job smoke — фактическая ошибка, а не п… .github/workflows/validate.yml validate.yml
#434 SPEC-REVIEW-434-r2.md spec · r2 🟢 зелёный 0 0 — —
#434 CODE-REVIEW-434-r1.md code · r1 🟢 зелёный 0 0 decorAssetsCapabilityChanged в space-card.ts:711-732 не влияет на; dangerConfirmLocaleGate геттер может вызвать languageRenderGate() space-card.ts smoke_space_card_decor_capability.mjs config-store.ts test/space-card-audit-lows.test.mjs src/i18n/language-runtime.ts houseplan-card.ts
#434 CODE-REVIEW-434-r2.md code · r2 🟢 зелёный 0 0 — —
#432 SPEC-REVIEW-432-r1.md spec · r1 🟢 зелёный 0 0 — —
#432 CODE-REVIEW-432-r1.md code · r1 🟢 зелёный 0 0 — —
#431 SPEC-REVIEW-431-r1.md spec · r1 🟢 зелёный 0 0 — —
#431 CODE-REVIEW-431-r1.md code · r1 🟢 зелёный 0 0 — —
#428 SPEC-REVIEW-428-r1.md spec · r1 🟢 зелёный 0 0 формулировка граничного значения mime: "" в таблице раздела 2 неполна —
#428 CODE-REVIEW-428-r1.md code · r1 🟢 зелёный 0 0 Первопричина и правка content_state(); content_manifest() (exporter); Plan-only проекция (_project_plan_only_decor, validate_plan_only_document); Тесты (tests_backend/test_ha_import_export.py); Документация и changelog (AC8) —
#427 CODE-REVIEW-427-r1.md code · r1 🟢 зелёный 0 0 — —
#426 SPEC-REVIEW-426-r1.md spec · r1 🟢 зелёный 0 0 — —
#426 CODE-REVIEW-426-r1.md code · r1 🟢 зелёный 0 0 — —
#425 SPEC-REVIEW-425-r1.md spec · r1 🟡 жёлтый 0 2 нет обязательных разделов «Сценарий» и «Что человек увидит до и после» (§7.1); AC4 (и частично AC5) не называют способ доказательства; раздел «Откат» задублирован docs/specs/425-core-file-budget.md
#425 SPEC-REVIEW-425-r2.md spec · r2 🟢 зелёный 0 0 — —
#425 CODE-REVIEW-425-r1.md code · r1 ⚪ — 0 0 — —
#424 CODE-REVIEW-424-r2.md code · r2 🟢 зелёный 0 0 — —
#423 SPEC-REVIEW-423-r1.md spec · r1 ⚪ — 0 0 — —
#423 CODE-REVIEW-423-r1.md code · r1 🟢 зелёный 0 0 — —
#422 SPEC-REVIEW-422-r1.md spec · r1 🟢 зелёный 0 0 AC9 не называет способ доказательства (снято) docs/specs/422-capture-and-anchor-gates.md
#422 CODE-REVIEW-422-r1.md code · r1 ⚪ — 1 2 коммит 653b9a76 кладёт в манифест неверный captureScriptSha256, гейт docs красный на эт…; AC8 не доказан: замера времени конвейера нет ни в issue, ни в коммитах; комитченный мутант AC1/AC2 не проверяет сам новый гейт; frameHashes/driftBetweenRuns бе…; комментарий в docs-screenshots.yml про «третий прогон» docs/images/screenshots.json demo/docs/capture.mjs capture.mjs clip.mjs check-docs.mjs validate.yml scripts/mutation-gate.mjs demo/docs/clip.mjs
#422 CODE-REVIEW-422-r2.md code · r2 🔴 красный 1 2 — —
#421 SPEC-REVIEW-421-r1.md spec · r1 🟡 жёлтый 0 1 отсутствуют обязательные разделы §7.1; неточная формулировка каденции новой browser probe (снимаю с записью) docs/specs/421-negative-test-proofs.md screenshots.json CONFIG-COMPATIBILITY.md verify-guard.mjs .github/workflows/validate.yml scripts/mutation-gate.mjs mutation-gate.mjs
#421 SPEC-REVIEW-421-r2.md spec · r2 🟢 зелёный 0 0 — —
#421 CODE-REVIEW-421-r1.md code · r1 🟢 зелёный 0 0 — —
#420 CODE-REVIEW-420-r1.md code · r1 ⚪ — 0 0 — —
#419 SPEC-REVIEW-419-r1.md spec · r1 🟢 зелёный 0 0 Формулировка «Full import/export и space-only import сохраняют контракты #126 без измен…; Контракт «второе подтверждение» (§3 п.4, AC6) и «ровно один confirmation refresh» (AC9)… CONFIG-COMPATIBILITY.md
#419 CODE-REVIEW-419-r1.md code · r1 🟢 зелёный 0 0 — —
#418 SPEC-REVIEW-418-r1.md spec · r1 🟢 зелёный 0 0 нет отдельных разделов «Сценарий» и «Что человек увидит до/после» (waived) PROCESS.md docs/SCOPE.md
#418 CODE-REVIEW-418-r1.md code · r1 🟢 зелёный 0 0 — —
#417 CODE-REVIEW-417-r1.md code · r1 🟢 зелёный 0 0 — —
#415 CODE-REVIEW-415-r1.md code · r1 ⚪ — 1 0 check-docs: отпечаток скриншотов документации устарел validate.yml src/houseplan-card.ts src/styles/plan.styles.ts src/styles/dialogs.styles.ts
#415 CODE-REVIEW-415-r2.md code · r2 🟢 зелёный 0 0 — —
#411 CODE-REVIEW-411-r1.md code · r1 🟢 зелёный 0 0 — —
#406 SPEC-REVIEW-406-r1.md spec · r1 🟡 жёлтый 0 2 , в скоупе] (а) Инвентарь мёртвых ключей .help.aria неверен — все 19, а не 6 из 19, исп…; , в скоупе] (б) AC6/AC7 не решают роль для HpConfirmKind.warning (диалог разблокировки) docs/specs/406-beta2-polish.md en.json houseplan-editor-runtime.ts houseplan-onboarding-runtime.ts houseplan-card.ts docs/SCOPE.md
#406 SPEC-REVIEW-406-r2.md spec · r2 🟡 жёлтый 0 2 , в скоупе] №1 — (д) контракт описывает уже исправленный дефект и расходится с тем, что…; , в скоупе] №2 — (б) контракт не называет механизм, которым HA-ветка hp-dialog получает… docs/specs/406-beta2-polish.md docs-accept.mjs test/docs-accept.test.mjs test/docs-acceptance.test.mjs demo/smoke_free_walls.mjs src/hp-dialog.ts demo/smoke_esc_dialogs.mjs
#406 SPEC-REVIEW-406-r3.md spec · r3 🟡 жёлтый 0 1 , в скоупе] №1 — UX и Release-артефакты утверждают «оформление не меняется», хотя разде… docs/specs/406-beta2-polish.md hp-dialog.ts hp-confirm.ts
#406 SPEC-REVIEW-406-r4.md spec · r4 🟢 зелёный 0 0 — —
#406 CODE-REVIEW-406-r1.md code · r1 🟡 жёлтый 0 1 стал устаревшим отпечаток скриншотов документации scripts/source-fingerprint.mjs src/hp-dialog.ts src/hp-confirm.ts src/device-area-relocation.ts docs/images/screenshots.json demo/docs/screenshots.mjs check-docs.mjs
#406 CODE-REVIEW-406-r2.md code · r2 🟢 зелёный 0 0 правка fix: preserve the ordinary dialog path не имеет собственного быстрого регресс-теста src/hp-dialog.ts check-docs.mjs docs/images/screenshots.json demo/smoke_danger_confirm_branches.mjs mutation-gate.mjs
#405 SPEC-REVIEW-405-r1.md spec · r1 🟡 жёлтый 0 2 таблица «Место» неполна: пропущена обёртка houseplan-card.ts:7856, и без неё правка не …; ссылка «#406 «д»» на несуществующий пункт houseplan-card.ts docs/specs/405-dropped-promise-and-witness-floor.md houseplan-editor-runtime.ts demo/srv/demo.html demo/serve.mjs src/houseplan-card.ts editor-secondary.ts scripts/docs-accept.mjs
#405 SPEC-REVIEW-405-r2.md spec · r2 🟢 зелёный 0 0 — —
#405 CODE-REVIEW-405-r1.md code · r1 🟢 зелёный 0 0 — —
#403 SPEC-REVIEW-403-r1.md spec · r1 ⚪ — 1 0 ТЗ не называет два обязательных пункта DoR — влияние на touch/kiosk и на производительн…; Номер строк для сниппета M1 отстал от кода на SHA 1f9d9014 docs/specs/403-area-relocation-safety.md TOUCH-SUPPORT.md docs/TOUCH-SUPPORT.md docs/SCOPE.md docs/USER-GUIDE.ru.md USER-GUIDE.ru.md src/houseplan-card.ts
#403 SPEC-REVIEW-403-r2.md spec · r2 🟡 жёлтый 1 0 — —
#403 CODE-REVIEW-403-r1.md code · r1 🟢 зелёный 0 0 — —
#402 SPEC-REVIEW-402-r1.md spec · r1 ⚪ — 1 1 ТЗ не называет влияние на touch/kiosk — обязательный, объявленный блокирующим пункт DoR; «Не-скоуп»-обоснование для tapConfirm/_vacCalConfirm содержит фактическую неточность docs/specs/402-confirm-outside-main-branch.md TOUCH-SUPPORT.md docs/TOUCH-SUPPORT.md houseplan-editor-runtime.ts src/houseplan-card.ts docs/SCOPE.md
#402 SPEC-REVIEW-402-r2.md spec · r2 🟢 зелёный 0 0 Число в цитате TOUCH-SUPPORT.md неверно; Явного упоминания touch-статуса пяти вызовов из houseplan-editor-runtime.ts по-прежнему… docs/specs/402-confirm-outside-main-branch.md docs/TOUCH-SUPPORT.md houseplan-editor-runtime.ts
#402 CODE-REVIEW-402-r1.md code · r1 🟢 зелёный 0 0 AC2 не покрыт смоком буквально (ветки fixed_floor pending/invalid, !space); AC3 не проверен буквальным сценарием issue (клик по корзине → deleteServerPlan); AC8: тап по scrim не проверен явно; confirmDanger не проверяет языковой гейт warm явно smoke_danger_confirm_branches.mjs src/houseplan-card.ts houseplan-onboarding-runtime.ts houseplan-card.ts smoke_danger_confirmation.mjs src/i18n/language-runtime.ts
#400 SPEC-REVIEW-400-r1.md spec · r1 🟢 зелёный 0 0 — —
#400 CODE-REVIEW-400-r1.md code · r1 🟡 жёлтый 0 1 Мутант furniture-edge-handles-steal-the-corner не воспроизводит регрессию, которую обяз…; AC4 доказан не тем видом теста, что назван в ТЗ; Число «2 654 Б gzip» для 38 help-строк в docs/ARCHITECTURE.md не перепроверено независимо scripts/mutation-gate.mjs src/houseplan-card.ts .github/workflows/mutation-gate.yml test/align-candidates.test.mjs demo/smoke_align_guides.mjs docs/ARCHITECTURE.md
#400 CODE-REVIEW-400-r2.md code · r2 🟡 жёлтый 0 1 Дополнительно к находке r1: комментарий автора от 2026-08-31T05:14:07Z заявляет закрыти… src/houseplan-card.ts smoke_furniture.mjs
#400 CODE-REVIEW-400-r3.md code · r3 🟢 зелёный 0 0 — —
#399 SPEC-REVIEW-399-r1.md spec · r1 🟡 жёлтый 0 1 «План автотестов» (п.4) не обновлён вслед за AC5 и описывает как раз ту слабую версию, … docs/specs/399-backend-gate-honesty.md validate.yml mutation-gate.yml
#399 SPEC-REVIEW-399-r2.md spec · r2 🟢 зелёный 0 0 — —
#399 CODE-REVIEW-399-r1.md code · r1 ⚪ — 1 0 AC5 не доказан автотестом: возврат к прежнему хардкод-списку из test/validate-workflow.test.mjs
#399 CODE-REVIEW-399-r2.md code · r2 🟡 жёлтый 1 0 — —
#398 SPEC-REVIEW-398-r1.md spec · r1 🟡 жёлтый 0 1 AC3 разрешает «путь 2», AC4 делает его невозможным docs/specs/398-sysmodules-guard-scope.md pure_imports.py conftest.py
#398 SPEC-REVIEW-398-r2.md spec · r2 🟡 жёлтый 0 1 устранение «пути 2» открывает новый конфликт: AC1/AC2 не совместимы с AC3 для tests_bac… tests_backend/pure_imports.py tests_backend/conftest.py tests_backend/test_junction_limits.py pure_imports.py test/backend-test-hygiene.test.mjs test_junction_limits.py conftest.py
#398 SPEC-REVIEW-398-r3.md spec · r3 🟢 зелёный 0 0 план автотестов не называет явно позитивный контракт-тест для pure_imports.py как второ…; нумерация критериев приёмки нарушена: AC8 вставлен между AC3 и AC4, AC7 не существует pure_imports.py docs/specs/398-sysmodules-guard-scope.md conftest.py tests_backend/pure_imports.py test/backend-test-hygiene.test.mjs
#398 CODE-REVIEW-398-r1.md code · r1 🟢 зелёный 0 0 — —
#397 SPEC-REVIEW-397-r1.md spec · r1 🟡 жёлтый 0 1 AC7 и половина AC5 не имеют способа доказательства; обрыв диапазона строк для persistDevicePlacement; отсутствует фраза "Доказательство" у AC3 PROCESS.md demo/smoke_layout_sync.mjs test/device-position-persist.test.mjs demo/smoke_device_position_history.mjs src/houseplan-card.ts
#397 SPEC-REVIEW-397-r2.md spec · r2 🟢 зелёный 0 0 SHA не назван в комментарии-вердикте r1 —
#397 CODE-REVIEW-397-r1.md code · r1 ⚪ — 0 1 AC3 не имеет ни одного; AC1 доказан не тем способом, что назвало ТЗ; Юнит-план, пункт 3 («каноническая позиция не создаёт лишней docs/specs/397-device-position-echo.md demo/smoke_device_position_history.mjs test/device-position-echo.test.mjs test/device-position-persist.test.mjs
#397 CODE-REVIEW-397-r2.md code · r2 🟢 зелёный 0 0 — —
#396 SPEC-REVIEW-396-r1.md spec · r1 🔴 красный 1 0 центральное фактическое утверждение B1 («семь мест») не совпадает с реальными вызовами … docs/specs/396-camera-transition-fixes.md houseplan-card.ts
#396 SPEC-REVIEW-396-r2.md spec · r2 🟡 жёлтый 0 1 таблица приписывает строки :4188/:4216 несуществующей функции load; вторая функция в строке :1159/:2363 не названа docs/specs/396-camera-transition-fixes.md src/houseplan-card.ts
#396 SPEC-REVIEW-396-r3.md spec · r3 🟢 зелёный 0 0 — —
#396 CODE-REVIEW-396-r1.md code · r1 🟢 зелёный 0 0 — —
#396 CODE-REVIEW-396-r2.md code · r2 ⚪ — 0 0 — —
#391 SPEC-REVIEW-391-r1.md spec · r1 🟢 зелёный 0 0 нет явного раздела «откат» PROCESS.md
#391 CODE-REVIEW-391-r1.md code · r1 🟡 жёлтый 0 1 стал протухшим отпечаток скриншотов документации scripts/source-fingerprint.mjs src/houseplan-editor-runtime.ts docs/images/screenshots.json
#391 CODE-REVIEW-391-r2.md code · r2 🟢 зелёный 0 0 — —
#390 CODE-REVIEW-390-r1.md code · r1 🟢 зелёный 0 0 Утверждение в сообщении коммита неверно —
#389 CODE-REVIEW-389-r1.md code · r1 🟢 зелёный 0 0 — —
#385 SPEC-REVIEW-385-r1.md spec · r1 🟡 жёлтый 0 1 Контракт (в) описывает предикат isRelease неполно, что рискует разойтись с AC4; «План автотестов» ссылается на несуществующий тестовый паттерн. Текст: «паттерн существ…; DoR-примечание не называет явно влияние на производительность. PROCESS.md §2.5 требует …; Формулировка «(б)–(г) — «мелкие уточнения»» в Release-артефактах двусмысленна. Раздел U… docs/specs/385-audit-lows.md scripts/process-gate.mjs AGENTS.md src/houseplan-editor-runtime.ts src/houseplan-card.ts
#385 SPEC-REVIEW-385-r2.md spec · r2 🟢 зелёный 0 0 Абзац-обоснование перед «Контрактом» (в) сохраняет старую неточную формулировку предика… docs/specs/385-audit-lows.md
#385 CODE-REVIEW-385-r1.md code · r1 🟢 зелёный 0 0 — —
#385 CODE-REVIEW-385-r2.md code · r2 🟡 жёлтый 0 0 — —
#385 CODE-REVIEW-385-r3.md code · r3 🟢 зелёный 0 0 — —
#384 SPEC-REVIEW-384-r1.md spec · r1 🟡 жёлтый 0 1 «Доки не задеты» неверно: три документа обещают безусловное участие стен/колонн в кадре docs/USER-GUIDE.md docs/USER-GUIDE.ru.md docs/CANVAS.md
#384 SPEC-REVIEW-384-r2.md spec · r2 🟡 жёлтый 0 1 — —
#384 CODE-REVIEW-384-r1.md code · r1 🟢 зелёный 0 0 — —
#383 SPEC-REVIEW-383-r1.md spec · r1 🟢 зелёный 0 0 i18n-ключи галочек отражения не в том namespace; переиспользование имён flip_h/flip_v без ссылки на существующий смысл src/i18n/ru.json houseplan-editor-runtime.ts docs/USER-GUIDE.ru.md validation.py coordinate_canonicalization.py import_export.py docs/CONFIG-COMPATIBILITY.md
#383 CODE-REVIEW-383-r1.md code · r1 🟡 жёлтый 0 1 скриншоты документации не пересняты, docs станет красным на dev; расхождение числа в хендоффе (не блокирует) src/houseplan-card.ts src/houseplan-editor-runtime.ts src/furniture.ts src/styles/plan.styles.ts
#383 CODE-REVIEW-383-r2.md code · r2 🟢 зелёный 0 0 — —
#381 SPEC-REVIEW-381-r1.md spec · r1 🟡 жёлтый 0 1 отсутствуют обязательные разделы «Риски» и «Откат» (§7.1); AC4 называет способ доказательства словом вне канонического словаря docs/specs/381-no-op-tap-action.md docs/specs/377-decor-default-persist.md docs/specs/378-value-face-source.md SPEC-REVIEW-376-r1.md
#381 SPEC-REVIEW-381-r2.md spec · r2 🟡 жёлтый 0 1 — —
#381 CODE-REVIEW-381-r1.md code · r1 🟢 зелёный 0 0 — —
#378 SPEC-REVIEW-378-r1.md spec · r1 🟢 зелёный 0 0 — —
#378 CODE-REVIEW-378-r1.md code · r1 🟡 жёлтый 0 1 AC2 не доказан golden-сценарием, как того явно требует принятое ТЗ; index-таблица docs/specs/README.md нарушает сортировку по номеру issue docs/specs/378-value-face-source.md demo/golden/matrix.mjs demo/smoke_value_face_source.mjs docs/specs/README.md
#378 CODE-REVIEW-378-r2.md code · r2 🟢 зелёный 0 0 нет новых. Low из r1 (docs/specs/README.md:113, нарушение docs/specs/README.md
#377 SPEC-REVIEW-377-r1.md spec · r1 🟡 жёлтый 0 1 контракт называет формат ключа DecorStyle неверно и не как предположение, а как провере… docs/specs/377-decor-default-persist.md src/editors/decor/types.ts src/editors/decor/geometry.ts types.ts
#377 SPEC-REVIEW-377-r2.md spec · r2 🟢 зелёный 0 0 — —
#377 CODE-REVIEW-377-r1.md code · r1 🟢 зелёный 0 0 — —
#377 CODE-REVIEW-377-r2.md code · r2 🟢 зелёный 0 0 — —
#376 SPEC-REVIEW-376-r1.md spec · r1 🔴 красный 1 2 трек small не проходит собственные критерии §5 одновременно; прямой прецедент #369 уже …; раздел «откат» отсутствует полностью; пункты (б) и (д) заявлены в скоупе, но не имеют собственного AC space-card.ts houseplan-card.ts houseplan-editor-runtime.ts validation.py docs/CONFIG-COMPATIBILITY.md SPEC-REVIEW-369-r1.md SPEC-REVIEW-369-r2.md docs/specs/369-audit-lows.md
#376 SPEC-REVIEW-376-r2.md spec · r2 🟢 зелёный 1 2 Тело issue #376, строка сразу после заголовка «# ТЗ (лёгкий трек, редакция 2)»; gh issu…; Тело issue #376, раздел 6 (отсутствовал в редакции 1); Тело issue #376, раздел «2. AC», пункты 2 и 4 (в редакции 1 их не было — было только AC… —
#376 CODE-REVIEW-376-r1.md code · r1 🟢 зелёный 0 0 — —
#376 CODE-REVIEW-376-r2.md code · r2 🟢 зелёный 0 0 — —
#376 CODE-REVIEW-376-r3.md code · r3 🟢 зелёный 0 0 — —
#375 SPEC-REVIEW-375-r1.md spec · r1 🟡 жёлтый 0 1 , в скоупе] Отсутствует обязательный раздел «Откат»; , не блокирует] DoR-пункты «миграция/compatibility» и «touch» не проговорены явно; , снято ревьюером] Заявленная сложность 4/10 против порога small ≤3 AGENTS.md PROCESS.md docs/CONFIG-COMPATIBILITY.md docs/TOUCH-SUPPORT.md glow-scene.ts space-render.ts
#375 SPEC-REVIEW-375-r2.md spec · r2 🟢 зелёный 0 0 — —
#375 CODE-REVIEW-375-r1.md code · r1 🟢 зелёный 0 0 — —
#374 SPEC-REVIEW-374-r1.md spec · r1 🟢 зелёный 0 0 — —
#374 CODE-REVIEW-374-r1.md code · r1 🟢 зелёный 0 0 — —
#373 SPEC-REVIEW-373-r1.md spec · r1 🟢 зелёный 0 0 docs/specs/README.md не обновлён docs/specs/README.md docs/specs/373-space-card-house-fit.md
#373 CODE-REVIEW-373-r1.md code · r1 🟢 зелёный 0 0 тест-план AC4/AC6 (state-tick + узкая/широкая ширина для house) не реализован в смоке, …; фолбэк «пустая/только-подложка структура → content-frame» не покрыт ни юнитом, ни смоко…; константы половины штриха (2.5, 0.6) в структурной рамке дублируют магические числа рен… demo/smoke_space_card.mjs src/space-render.ts test/canvas.test.mjs test/single-source-numbers.test.mjs
#373 CODE-REVIEW-373-r2.md code · r2 🟢 зелёный 0 0 — —
#372 SPEC-REVIEW-372-r1.md spec · r1 🟢 зелёный 0 0 — —
#372 CODE-REVIEW-372-r1.md code · r1 🟢 зелёный 0 0 — —
#371 SPEC-REVIEW-371-r1.md spec · r1 🟡 жёлтый 0 2 К2 не покрывает второй файл в bundle-manifest.mjs, который тоже хардкодит список локалей; AC1 не решает судьбу двух German-специфичных тестов качества, добавленных как часть ори…; формулировка AC5 избыточна и путает мутанта; DoR-пункты touch/perf не проговорены явным предложением scripts/bundle-manifest.mjs bundle-manifest.mjs test/i18n.test.mjs
#371 SPEC-REVIEW-371-r2.md spec · r2 🟢 зелёный 0 0 — —
#371 CODE-REVIEW-371-r1.md code · r1 ⚪ — 0 0 — —
#371 CODE-REVIEW-371-r2.md code · r2 🟢 зелёный 0 0 — —
#369 SPEC-REVIEW-369-r1.md spec · r1 🟢 зелёный 0 3 AC7 не станет буквально «grep по репо пуст» даже после точечной правки; положительная п… docs/specs/369-audit-lows.md docs/FURNITURE.md docs/reviews/CODE-REVIEW-269-r1.md
#369 CODE-REVIEW-369-r3.md code · r3 🟢 зелёный 0 0 — —
#368 CODE-REVIEW-368-r1.md code · r1 🟢 зелёный 0 0 — —
#366 SPEC-REVIEW-366-r1.md spec · r1 🟡 жёлтый 0 2 AC4 не называет проверяемое доказательство однозначно; визуальная деградация подана как факт, а не как решение с owner-видимостью; строки в ТЗ отстали от dev на единицы; docs/LIGHT.md не назван в release-артефактах demo/smoke_glow.mjs docs/LIGHT.md houseplan-card.ts AGENTS.md
#366 SPEC-REVIEW-366-r2.md spec · r2 🟢 зелёный 0 0 ′ (Low, не блокирует) — расхождение футера ревизии 2 с фактическим текстом ТЗ docs/LIGHT.md LIGHT.md
#366 CODE-REVIEW-366-r1.md code · r1 🟢 зелёный 0 0 — —
#363 SPEC-REVIEW-363-r1.md spec · r1 🟢 зелёный 0 0 — —
#363 CODE-REVIEW-363-r2.md code · r2 ⚪ — 0 0 — —
#362 SPEC-REVIEW-362-r1.md spec · r1 🟢 зелёный 0 0 — —
#362 CODE-REVIEW-362-r1.md code · r1 🟢 зелёный 0 0 верифицировано чтением, фикс не требуется src/houseplan-card.ts smoke_decor.mjs dialogs.styles.ts plan.styles.ts
#361 SPEC-REVIEW-361-r1.md spec · r1 🟡 жёлтый 0 1 план автотестов противоречит порядку гейтов из AGENTS.md AGENTS.md docs/specs/361-furniture-stroke-zoom.md demo/smoke_furniture.mjs
#361 SPEC-REVIEW-361-r2.md spec · r2 🟢 зелёный 0 0 — —
#361 CODE-REVIEW-361-r1.md code · r1 ⚪ — 0 1 Golden-бейзлайны с реальной мебелью не обновлены под новый физический stroke; npm run g… .github/workflows/validate.yml demo/golden/matrix.mjs
#361 CODE-REVIEW-361-r2.md code · r2 ⚪ — 0 0 — —
#360 SPEC-REVIEW-360-r1.md spec · r1 🟡 жёлтый 0 2 не назван обязательный touch-статус фичи. docs/TOUCH-SUPPORT.md (раздел «Documentation …; не описано, что сохранение свойств уже существующего объекта перезаписывает тот же deco… docs/TOUCH-SUPPORT.md houseplan-editor-runtime.ts
#360 SPEC-REVIEW-360-r2.md spec · r2 🟢 зелёный 0 0 — —
#360 CODE-REVIEW-360-r1.md code · r1 🟢 зелёный 0 0 — —
#360 CODE-REVIEW-360-r2.md code · r2 🟢 зелёный 0 0 — —
#359 SPEC-REVIEW-359-r1.md spec · r1 🟡 жёлтый 0 2 контрактный пункт 9 (invalid/unknown symbol) не имеет доказательства; «golden не требуется» слабо обосновано на фоне уже существующей практики docs/specs/359-furniture-placement-preview.md src/furniture.ts demo/golden/matrix.mjs
#359 SPEC-REVIEW-359-r2.md spec · r2 🟢 зелёный 0 0 — —
#359 CODE-REVIEW-359-r1.md code · r1 🔴 красный 1 0 1 docs/images/screenshots.json src/furniture.ts src/houseplan-card.ts src/houseplan-editor-runtime.ts src/styles/plan.styles.ts validate.yml docs/FURNITURE.md docs/USER-GUIDE.ru.md
#359 CODE-REVIEW-359-r2.md code · r2 🟢 зелёный 0 0 — —
#358 SPEC-REVIEW-358-r1.md spec · r1 🟢 зелёный 0 0 — —
#358 CODE-REVIEW-358-r1.md code · r1 🟢 зелёный 0 0 — —
#357 SPEC-REVIEW-357-r1.md spec · r1 🟢 зелёный 0 0 — —
#357 CODE-REVIEW-357-r1.md code · r1 🟢 зелёный 0 0 — —
#356 CODE-REVIEW-356-r1.md code · r1 🟢 зелёный 0 0 — —
#354 SPEC-REVIEW-354-r1.md spec · r1 🟢 зелёный 0 0 — —
#354 CODE-REVIEW-354-r1.md code · r1 🟡 жёлтый 0 1 юнит AC4 не проверяет то, что заявляет; docs/USER-GUIDE.ru.md не упоminает новый тост test/i18n-runtime.test.mjs src/i18n/registry.ts demo/smoke_german_locale.mjs docs/USER-GUIDE.ru.md USER-GUIDE.ru.md
#354 CODE-REVIEW-354-r2.md code · r2 🟢 зелёный 0 0 — —
#353 SPEC-REVIEW-353-r1.md spec · r1 🟡 жёлтый 1 1 K3: замена статического реэкспорта на «голый» import().catch() рвёт гарантию await impo…; , в скоупе] K2 не имеет ни одного AC/доказательства; , снято с запиской] docs/USER-GUIDE.ru.md не упомянут в объёме задачи, хотя описывает к… dist/houseplan-card.js houseplan-card.ts demo/srv/demo.html demo/docs/capture.mjs demo/smoke_entry_stale.mjs editor-runtime-loader.test.mjs docs/USER-GUIDE.ru.md
#353 SPEC-REVIEW-353-r2.md spec · r2 🟢 зелёный 0 0 , снято с запиской] AC5 не проговаривает, что структурная проверка обязана отличать «па… test/houseplan-source.mjs
#353 CODE-REVIEW-353-r1.md code · r1 🟢 зелёный 0 0 — —
#348 SPEC-REVIEW-348-r1.md spec · r1 🟢 зелёный 0 0 de-CH унаследует «ß», хотя стандартная швейцарская орфография его не использует; явного блока «принято предположительно, поменять свободно» в конце документа нет docs/specs/348-german-localization.md
#348 CODE-REVIEW-348-r1.md code · r1 🟡 жёлтый 0 1 AC8 не имеет обещанного в ТЗ smoke-доказательства «нет overflow». docs/specs/348-german…; src/i18n/language-runtime.ts определяет полноценный переиспользуемый класс LanguageRunt…; Initial View budget после follow-up-коммита — 255 986 / 256 000 B gzip, запас 14 байт и…; scripts/bundle-manifest.mjs: классификация editorRoots/onboardingRoots/ localeRoots сме…; Удалённые из en.json/ru.json ключи (title.add_device, title.show_all, title.markup_open… docs/specs/348-german-localization.md demo/smoke_dialog_footer_width.mjs demo/smoke_german_locale.mjs smoke_dialog_footer_width.mjs smoke_german_locale.mjs src/i18n/language-runtime.ts test/i18n-runtime.test.mjs src/i18n/registry.ts
#348 CODE-REVIEW-348-r2.md code · r2 🟢 зелёный 0 0 — —
#341 CODE-REVIEW-341-r1.md code · r1 🟢 зелёный 0 0 — —
#340 SPEC-REVIEW-340-r1.md spec · r1 🟢 зелёный 0 1 заведён отдельный issue; не блокирует, отмечено с решением «оставить как есть» custom_components/houseplan/websocket_api.py tests_backend/test_ha_websocket.py docs/TESTING.md docs/ARCHITECTURE.md docs/specs/340-config-set-revision.md
#340 CODE-REVIEW-340-r1.md code · r1 ⚪ — 0 0 — —
#339 CODE-REVIEW-339-r1.md code · r1 🟢 зелёный 0 0 — —
#337 SPEC-REVIEW-337-r1.md spec · r1 🟢 зелёный 0 0 — —
#337 CODE-REVIEW-337-r1.md code · r1 🔴 красный 5 3 Warm-remount коммитит editor mode в обход loader-гейта — падения на уже существующих sm…; Kiosk-контролы, явно названные в принятом ТЗ eager (§6.3: «kiosk controls остаются eage…; Безопасность resize «fail-closed» сломана: принудительный отказ preflight-проверки всё …; Стрелочная навигация по вкладкам инвентаря устройств падает с необработанным исключение…; Визуальная порча вторичного тулбара Device editor + 3 неподтверждённых golden-дельты по…; Два существующих smoke ожидают, что houseplan-card-editor уже зарегистрирован на страни… src/houseplan-card.ts docs/WARM-REMOUNT.md demo/smoke_preloader_lifecycle.mjs demo/smoke_warm_dialogs.mjs demo/smoke_warm_owners.mjs docs/SCOPE.md demo/smoke_kiosk.mjs demo/smoke_room_resize.mjs
#337 CODE-REVIEW-337-r2.md code · r2 🔴 красный 2 1 Warm-remount editor-камера теряет бит-точность — визуальный «прыжок» кадра, воспроизвод…; фикс устранил исключение, но обнажил под ним ещё один, ранее не наблюдаемый дефект в то… demo/smoke_warm_dialogs.mjs docs/WARM-REMOUNT.md src/houseplan-card.ts
#337 CODE-REVIEW-337-r3.md code · r3 🔴 красный 1 0 check-docs красный на ревьюемом SHA — стало устаревшим ровно из-за этого коммита, AC13 … scripts/source-fingerprint.mjs src/houseplan-card.ts docs/images/screenshots.json docs/specs/337-lazy-editor-chunk.md PROCESS.md
#337 CODE-REVIEW-337-r4.md code · r4 🟢 зелёный 1 0 — —
#335 SPEC-REVIEW-335-r1.md spec · r1 🟡 жёлтый 1 1 определение «маркер существует» игнорирует tombstone removed: true, из-за чего AC1 не з…; release-артефакты / User-Visible не названы src/devices.ts custom_components/houseplan/validation.py trails.py tests_backend/test_trail_recorder.py import_export.py src/houseplan-editor-runtime.ts docs/VACUUM.md houseplan-editor-runtime.ts
#335 SPEC-REVIEW-335-r2.md spec · r2 🟢 зелёный 0 0 — —
#335 CODE-REVIEW-335-r1.md code · r1 🟢 зелёный 0 0 — —
#333 SPEC-REVIEW-333-r1.md spec · r1 🟡 жёлтый 0 1 AC4 называет способ доказательства, который не проверяет заявленное (Medium, в скоупе з… scripts/check-docs.mjs README.md README.ru.md docs/USER-GUIDE.md .ru.md docs/TOUCH-SUPPORT.md docs/DECOR-EDITOR.md docs/VACUUM.md
#333 SPEC-REVIEW-333-r2.md spec · r2 🟡 жёлтый 0 1 — —
#333 CODE-REVIEW-333-r1.md code · r1 🟡 жёлтый 1 1 Optimize новым гейтом ломает существующий бэкенд-тест — подтверждённая регрессия junction_limits.py tests_backend/test_ha_websocket.py test/fixtures/optimize-storage-roundtrip.json optimize-storage-roundtrip.json
#333 CODE-REVIEW-333-r2.md code · r2 🟢 зелёный 0 0 — —
#331 SPEC-REVIEW-331-r1.md spec · r1 🔴 красный 1 4 Ключ узла квантуется через round(), а не через уже принятый в этом репозитории cross-la…; Собственный пример AC1 не проходит собственный порог инцидентности; Не решено, распространяется ли fail-closed §2.6 на сторону previous, и не создаёт ли эт…; Максимальная ветвь ищется DFS-перебором вариантов; наихудшая сложность не оценена и не …; Release-артефакты не называют docs/USER-GUIDE.ru.md; §1 не отвечает на два обязательных продуктовых вопроса ТЗ в открытой форме — какая перс… docs/specs/331-junction-limit-precision.md src/coordinate-canonicalization.ts custom_components/houseplan/coordinate_canonicalization.py coordinate_canonicalization.py custom_components/houseplan/junction_limits.py docs/USER-GUIDE.ru.md check-docs.mjs docs/SCOPE.md
#331 SPEC-REVIEW-331-r2.md spec · r2 🟡 жёлтый 0 1 M-r2-1 (наследник M2, закрыт частично). AC6 не различает сторону (previous/candidate) —…; §6 «Риски» (2) описывает механизм, которого §2.3 больше не содержит («максимальная ветв… docs/specs/331-junction-limit-precision.md
#331 SPEC-REVIEW-331-r3.md spec · r3 🟢 зелёный 0 0 — —
#331 CODE-REVIEW-331-r1.md code · r1 🟢 зелёный 0 0 — —
#330 SPEC-REVIEW-330-r1.md spec · r1 ⚪ — 2 1 Перф-бюджеты §5 недостижимы решением из §4: AC2 и AC6 непроверяемы как написаны; AC4 ссылается на бенч, который не вызывает изменяемый код; Отсутствуют обязательные разделы ТЗ по §7.1: i18n, touch, риски, release-артефакты docs/specs/330-junction-limits-performance.md junction_limits.py src/houseplan-card.ts benchmark_junction_limits.mjs demo/benchmark_safe_resize.mjs test-build/resize.js test-build/plan-geometry-preflight.js benchmark_safe_resize.mjs
#330 SPEC-REVIEW-330-r2.md spec · r2 🟢 зелёный 0 0 — —
#330 CODE-REVIEW-330-r2.md code · r2 ⚪ — 0 1 заявленная «поведенческая половина» AC4 не различает наличие и отсутствие кэша demo/smoke_junction_limits.mjs scripts/mutation-gate.mjs test/junction-limits.test.mjs
#330 CODE-REVIEW-330-r3.md code · r3 🔴 красный 1 0 докс-гейт красный на HEAD ревью (в скоупе, блокирует) src/houseplan-card.ts docs/images/screenshots.json
#330 CODE-REVIEW-330-r4.md code · r4 🟢 зелёный 0 0 — —
#329 SPEC-REVIEW-329-r1.md spec · r1 🟡 жёлтый 0 2 UX отказа записи заявлен как факт, а не как решение, и не согласован с уже существующим…; AC5 описывает два разных теста одной фразой и непроверяем в текущей формулировке; параллель «5 см = 1 клетка» вводит в заблуждение при нестандартном cell_cm docs/specs/329-junction-limits.md docs/USER-GUIDE.ru.md houseplan-space-test2-2026-08-27_16-14-48.json src/grid-scale.ts src/plan-optimizer.ts
#329 SPEC-REVIEW-329-r2.md spec · r2 🟡 жёлтый 0 0 — —
#329 SPEC-REVIEW-329-r3.md spec · r3 🟢 зелёный 0 0 — —
#329 CODE-REVIEW-329-r1.md code · r1 🔴 красный 1 4 Бэкенд отказывает в легитимной правке легаси-плана — прямое нарушение §3; Мёртвый код в wall-thickness.ts, чьё удаление коммит уже задекларировал; Дублированный раздел в docs/USER-GUIDE.ru.md; USER-GUIDE описывает канал Resize неполно — читатель не узнает про тост; AC10 (постусловие Optimize) не доказан ни тестом, ни явным разбором import_export.py test_junction_limits.py wall-thickness.ts src/wall-thickness.ts docs/USER-GUIDE.ru.md docs/USER-GUIDE.md src/houseplan-card.ts smoke_junction_limits.mjs
#329 CODE-REVIEW-329-r2.md code · r2 🔴 красный 1 4 — —
#329 CODE-REVIEW-329-r3.md code · r3 🟢 зелёный 0 0 — —
#324 CODE-REVIEW-324-r1.md code · r1 🟢 зелёный 0 0 избыточный повторный config/get при physicalGeometryRolledBack src/houseplan-card.ts
#323 CODE-REVIEW-323-r1.md code · r1 🟢 зелёный 0 0 — —
#319 SPEC-REVIEW-319-r1.md spec · r1 🟢 зелёный 0 0 — —
#319 CODE-REVIEW-319-r1.md code · r1 🟢 зелёный 0 0 — —
#318 SPEC-REVIEW-318-r1.md spec · r1 🟢 зелёный 0 0 — —
#318 CODE-REVIEW-318-r1.md code · r1 🟢 зелёный 0 0 — —
#317 SPEC-REVIEW-317-r1.md spec · r1 🟢 зелёный 0 0 1. Терминология HA Area/HA-зона в плане документации. ТЗ систематически использует «HA … docs/USER-GUIDE.ru.md USER-GUIDE.ru.md
#317 CODE-REVIEW-317-r1.md code · r1 🟢 зелёный 0 0 1. Нет юнит-теста на дублирующиеся live-маркеры одного binding в roomClimateMap. Коммен… src/devices.ts
#316 SPEC-REVIEW-316-r1.md spec · r1 🟡 жёлтый 0 2 ТЗ не закрывает несколько обязательных разделов §7.1 / чек-листа DoR §2.5; AC3 описывает фикстуру, не достижимую в названном ею механизме; коллизия термина «инертный» ru.json en.json docs/CHANGELOG.md docs/CHANGELOG.ru.md docs/specs/README.md wall-segment-model.ts scripts/config-field-registry.mjs docs/CONFIG-COMPATIBILITY.md
#316 SPEC-REVIEW-316-r2.md spec · r2 🟡 жёлтый 0 2 §5.1 указывает не тот абзац docs/CONFIG-COMPATIBILITY.md; §5.3 неточно утверждает отсутствие span+проём в существующих golden-сценах docs/CONFIG-COMPATIBILITY.md demo/golden/harness.mjs demo/golden/matrix.mjs baselines-index.json
#316 SPEC-REVIEW-316-r3.md spec · r3 🟡 жёлтый 0 1 §5.3 обосновывает «без изменений» неточным утверждением о контурных/независимых атомах demo/golden/harness.mjs 276-coincident-partition.json src/wall-segment-model.ts matrix.mjs src/houseplan-card.ts
#316 SPEC-REVIEW-316-r4.md spec · r4 🟢 зелёный 0 0 — —
#316 CODE-REVIEW-316-r1.md code · r1 🔴 красный 1 0 деградированный host (§3.3) может завести данные, которые бэкенд тут же отклоняет: мигр…; CHANGELOG заявляет то, чего код не гарантирует src/wall-segment-model.ts custom_components/houseplan/wall_segment_model.py websocket_api.py custom_components/houseplan/validation.py space-render.ts houseplan-card.ts physical-geometry.ts wall-segment-model.ts
#316 CODE-REVIEW-316-r2.md code · r2 🔴 красный 1 1 история ветки переписана поверх уже отревьюженного коммита r1; бэкенд-релаксация host-проверки шире границы, заявленной в §2 ТЗ docs/reviews/CODE-REVIEW-316-r1.md docs/specs/316-opening-host-auto-resolution.md custom_components/houseplan/validation.py houseplan-card.ts demo/golden/harness.mjs
#314 SPEC-REVIEW-314-r1.md spec · r1 🟢 зелёный 0 0 Сценарий не называет персону/job явно; Нет отдельного раздела «план автотестов» docs/specs/314-v8-draft-write-regression.md docs/SCOPE.md
#314 CODE-REVIEW-314-r1.md code · r1 🟢 зелёный 0 0 — —
#313 SPEC-REVIEW-313-r1.md spec · r1 🟢 зелёный 0 0 — —
#313 CODE-REVIEW-313-r1.md code · r1 🔴 красный 1 1 1; 1, в скоупе src/houseplan-card.ts src/types.ts docs/WALL-THICKNESS.md demo/serve.mjs scripts/mutation-gate.mjs test/wall-union-isolation.test.mjs mutation-gate.mjs demo/smoke_wallthick_standalone.mjs
#313 CODE-REVIEW-313-r2.md code · r2 🟢 зелёный 0 0 — —
#310 SPEC-REVIEW-310-r1.md spec · r1 🔴 красный 1 0 AC5 и Риск №2 называют детектор, который структурно не видит узел-пару — риск «дыры на …; Технические решения реализации не оформлены явным блоком «принято предположительно, пом… docs/specs/310-pair-apex.md wall-thickness.ts test/fixtures/309-junction-teeth.json test/wall-thickness.test.mjs
#310 SPEC-REVIEW-310-r2.md spec · r2 🟢 зелёный 0 0 — —
#310 CODE-REVIEW-310-r1.md code · r1 ⚪ — 1 1 недостоверный Baseline-Reviewed в коммите 0e6fbfb0; обещанный тест на пересечение #271+#310 отсутствует .github/workflows/validate.yml demo/golden/README.md PROCESS.md AGENTS.md validate-commit-provenance.mjs test/wall-thickness.test.mjs
#310 CODE-REVIEW-310-r2.md code · r2 🟢 зелёный 1 1 1 Честность нового Baseline-Reviewed; 2 Новый юнит-тест — умеет падать —
#309 SPEC-REVIEW-309-r1.md spec · r1 🟡 жёлтый 0 1 Отсутствуют несколько обязательных разделов §7.1, включая оба продуктовых; §3.5 и §4 повторяют формулировку «Все 16 junction-сцен» из docs/WALL-THICKNESS.md («Jun… docs/specs/309-junction-visual-limit.md docs/WALL-THICKNESS.md docs/CHANGELOG.md docs/CHANGELOG.ru.md docs/specs/README.md demo/golden/matrix.mjs AGENTS.md
#309 SPEC-REVIEW-309-r2.md spec · r2 🟡 жёлтый 0 1 Раздел «Скоуп и не-скоуп» (§3.6) не закрывает находку r1 полностью, и одна из двух его … src/wall-thickness.ts docs/WALL-THICKNESS.md PROCESS.md docs/TOUCH-SUPPORT.md
#309 SPEC-REVIEW-309-r3.md spec · r3 🟢 зелёный 0 1 Нумерация AC в §5 разъезжается: новая строка помечена «7a», но названа в прозе «AC8», а… PROCESS.md
#309 CODE-REVIEW-309-r1.md code · r1 🔴 красный 0 1 npm test красный на проверяемом SHA; AC5 доказана не буквально как записано в ТЗ test/golden-matrix.test.mjs demo/golden/matrix.mjs demo/golden/README.md docs/specs/309-junction-visual-limit.md test/fixtures/309-junction-teeth.json smoke_junction_holes.mjs 302-junction-artifacts.json scripts/wall-strip-containment.mjs
#309 CODE-REVIEW-309-r2.md code · r2 🟢 зелёный 0 0 — —
#307 SPEC-REVIEW-307-r1.md spec · r1 🟢 зелёный 0 0 — —
#307 CODE-REVIEW-307-r1.md code · r1 🟢 зелёный 0 0 — —
#306 SPEC-REVIEW-306-r1.md spec · r1 🟡 жёлтый 0 1 лимит wall_segments[] в ТЗ устарел и противоречит уже слитому #282 docs/specs/306-zero-thickness-walls.md custom_components/houseplan/validation.py docs/specs/282-stable-wall-segment-identity.md docs/specs/282-...md
#306 SPEC-REVIEW-306-r2.md spec · r2 🟢 зелёный 0 0 — —
#306 CODE-REVIEW-306-r1.md code · r1 🟡 жёлтый 0 0 1 Гейты — что прогнано; 2 Что НЕ прогонялось и почему; Отчёт «Оптимизировать планы» показывает退ый термин «виртуальный»/«virtual», который это …; docs/CHANGELOG.md/docs/CHANGELOG.ru.md не содержат обязательного предупреждения о backu…; Четыре i18n-ключа из таблицы §15 ТЗ реализованы не под тем именем/точным текстом src/i18n/en.json ru.json src/houseplan-card.ts src/plan-optimizer.ts plan-optimizer.ts houseplan-card.ts docs/CHANGELOG.md docs/CHANGELOG.ru.md
#306 CODE-REVIEW-306-r2.md code · r2 🟢 зелёный 0 0 1 Гейты — что прогнано лично; 2 Что НЕ прогонялось и почему; 3 Разбор смок-выборки по дельте —
#304 SPEC-REVIEW-304-r1.md spec · r1 🟢 зелёный 0 0 — —
#304 CODE-REVIEW-304-r1.md code · r1 🟡 жёлтый 1 0 два golden-сценария неродственных фич стали «different» на канонической Linux CI и не п…; AC1 фиксирует «шесть узлов» через частный unit/smoke fixture, а не через golden-сцену с… demo/golden/harness.mjs demo/golden/matrix.mjs
#304 CODE-REVIEW-304-r2.md code · r2 🟢 зелёный 0 0 — —
#303 SPEC-REVIEW-303-r1.md spec · r1 🟢 зелёный 0 0 — —
#303 CODE-REVIEW-303-r1.md code · r1 🟢 зелёный 0 0 счёт unit-тестов в отчёте разработчика на единицу отличается от факта —
#302 SPEC-REVIEW-302-r1.md spec · r1 🟢 зелёный 0 0 — —
#302 CODE-REVIEW-302-r1.md code · r1 ⚪ — 0 2 docs/WALL-THICKNESS.md не переписан под решение №5, хотя спека требовала это явно; мутант junction-fans-disabled не работает, вопреки заявлению «краснота проверена исполн…; bevelMultiWallPaper осталась мёртвым кодом docs/WALL-THICKNESS.md docs/specs/302-junction-node-material.md wall-thickness.ts PROCESS.md AGENTS.md scripts/mutation-gate.mjs demo/smoke_junction_holes.mjs ../test-build/wall-thickness.js
#302 CODE-REVIEW-302-r2.md code · r2 ⚪ — 0 1 AC6 не выполнен: узловая механика не «безоперационна по difference», спека это не признаёт src/wall-thickness.ts docs/specs/302-junction-node-material.md test/wall-thickness.test.mjs docs/WALL-THICKNESS.md
#302 CODE-REVIEW-302-r4.md code · r4 🟢 зелёный 0 0 стек-документация JunctionNodeGeometry описывает не тот контракт src/wall-thickness.ts docs/WALL-THICKNESS.md
#301 SPEC-REVIEW-301-r1.md spec · r1 🟢 зелёный 0 0 Контракт п.4.1/4.2 требует показывать entity_id вторичной подписью в двух местах (закры… PROCESS.md
#301 CODE-REVIEW-301-r1.md code · r1 🟢 зелёный 0 0 — —
#300 SPEC-REVIEW-300-r1.md spec · r1 🟡 жёлтый 0 2 временное скрытие кнопки настроек комнаты — недекларированная догадка, выданная за прин…; AC11 требует относительный регресс-бюджет, которого не существует у названного инструмента docs/specs/300-resize-measurement-layout.md docs/RESIZE.md docs/UX-MODES.md docs/USER-GUIDE.ru.md demo/benchmark_safe_resize_render.mjs demo/benchmark_safe_resize.mjs benchmark_safe_resize.mjs
#300 SPEC-REVIEW-300-r2.md spec · r2 🟡 жёлтый 0 1 новый текст утверждает, что footprint .rlgearbtn «screen-fixed», хотя размер кнопки явн… docs/specs/300-resize-measurement-layout.md styles.ts
#300 SPEC-REVIEW-300-r3.md spec · r3 🟡 жёлтый 0 1 §4 п.6 («Зафиксированные продуктовые решения») по-прежнему называет footprint кнопки «s… docs/specs/300-resize-measurement-layout.md src/space-geometry.ts src/styles.ts
#300 SPEC-REVIEW-300-r4.md spec · r4 🟢 зелёный 0 0 — —
#299 SPEC-REVIEW-299-r1.md spec · r1 🟢 зелёный 0 0 — —
#298 SPEC-REVIEW-298-r1.md spec · r1 🟡 жёлтый 0 1 отсутствуют обязательные продуктовые разделы §7.1; способ доказательства не назван явно у двух AC; разделы «UX» и «i18n» не выделены явно PROCESS.md AGENTS.md docs/SCOPE.md demo/smoke_room_resize.mjs RESIZE.md
#298 SPEC-REVIEW-298-r2.md spec · r2 🟢 зелёный 0 0 — —
#298 CODE-REVIEW-298-r1.md code · r1 🔴 красный 2 0 AC4 (legacy/key-only записи) не реализован: fail-closed контракт §3.3 отсутствует, дефе…; AC2 не доказан: нет отдельного теста на репродукцию первого этажа src/wall-thickness.ts wall-thickness.ts real-plan-first-floor.json test/wall-thickness.test.mjs smoke_edit_walk.mjs
#296 SPEC-REVIEW-296-r1.md spec · r1 🟢 зелёный 0 0 — —
#296 CODE-REVIEW-296-r1.md code · r1 🔴 красный 3 6 backend не доказывает удаление partition без hosted opening (§8, AC6); AC7 нарушен: диагностический слой не виден в инструменте Draw (§9.2); smoke_edit_walk.mjs красный на новой фикстуре (AC6, §253-класс дефекта); check-docs красный, скриншоты не пересняты; счётчик удаления drafts делит сообщение с «мусором сетки» (одно число, два разных источ…; порядок слоёв: диагностика рисуется НАД transient-превью инструмента «Проём» custom_components/houseplan/validation.py tests_backend/test_validation.py src/houseplan-card.ts demo/smoke_plan_snap_overlay.mjs smoke_edit_walk.mjs demo/smoke_edit_walk.mjs real-plan-second-floor.json test/fixtures/real-plan-second-floor.json
#295 SPEC-REVIEW-295-r1.md spec · r1 🟡 жёлтый 1 1 контракт реверсит документированный и протестированный барьер #199 без единого слова об…; предикат «версия карточки ≠ версия интеграции» (§1.5) ссылается на несуществующий канал…; несогласованность detail: null в примере блока; влияние на производительность не названо явно src/plan-geometry-preflight.ts docs/CANVAS.md docs/ARCHITECTURE.md test/plan-geometry-preflight.test.mjs ARCHITECTURE.md custom_components/houseplan/websocket_api.py custom_components/houseplan/__init__.py import_export.py
#295 SPEC-REVIEW-295-r2.md spec · r2 🟡 жёлтый 1 1 — —
#295 CODE-REVIEW-295-r1.md code · r1 🟡 жёлтый 0 2 диагностика меряет не тот отпечаток; фолбэк-блок диагностики не сбрасывается и может показать чужой отказ src/houseplan-card.ts smoke_preflight_diagnostics.mjs
#295 CODE-REVIEW-295-r2.md code · r2 🟢 зелёный 0 0 — —
#294 SPEC-REVIEW-294-r1.md spec · r1 🟡 жёлтый 0 1 AC7 уже формулировкой не покрывает весь текст, который спецификация обязана исправить docs/specs/294-wall-esc-detach.md docs/USER-GUIDE.md docs/USER-GUIDE.ru.md
#294 SPEC-REVIEW-294-r2.md spec · r2 🟢 зелёный 0 0 — —
#294 CODE-REVIEW-294-r1.md code · r1 🔴 красный 0 2 Обязательный гейт node scripts/check-docs.mjs красный на ревьюемом SHA; Новый таргетированный смок demo/smoke_unified_wall_tool.mjs падает на двух ассертах, ко… src/houseplan-card.ts docs/images/screenshots.json demo/smoke_unified_wall_tool.mjs
#294 CODE-REVIEW-294-r2.md code · r2 🟢 зелёный 0 0 — —
#293 SPEC-REVIEW-293-r1.md spec · r1 🟡 жёлтый 0 1 Отсутствуют два обязательных раздела §7.1 — «риски» и «откат»; docs/specs/293-resize-pointer-noop.md не добавлен в индекс docs/specs/README.md docs/specs/293-resize-pointer-noop.md docs/specs/README.md
#293 SPEC-REVIEW-293-r2.md spec · r2 🟢 зелёный 0 0 — —
#293 CODE-REVIEW-293-r1.md code · r1 🟢 зелёный 0 0 — —
#292 SPEC-REVIEW-292-r1.md spec · r1 🟡 жёлтый 0 1 обещание в §5 не имеет технической опоры и не проверяется ни одним AC; отсутствуют разделы, обязательные по PROCESS.md §7.1 и принятые в соседних ТЗ той же по…; AC1–AC8 не помечают явно способ доказательства docs/specs/292-resize-availability-audit.md src/resize.ts src/i18n/en.json src/i18n/ru.json PROCESS.md 292-resize-availability-audit.md 277-safe-resize.md 276-coincident-partition-reconciliation.md
#292 SPEC-REVIEW-292-r2.md spec · r2 🟢 зелёный 0 0 — —
#292 CODE-REVIEW-292-r1.md code · r1 🟢 зелёный 0 0 — —
#291 SPEC-REVIEW-291-r1.md spec · r1 🟡 жёлтый 0 2 Отсутствуют обе обязательные продуктовые секции §7.1, и новый видимый UI предъявлен как…; Нет разделов «Риски» и «Откат», обязательных по DoR (§2.5) и присутствующих в каждом со…; AC3 иллюстрирует вывод CLI текстом, который не совпадает с реальным форматом инструмента; Issue #291 называет себя «Стадия 1 из ADR #282», хотя реальная Stage 1 ADR #282 — это «… docs/specs/291-lattice-coordinate-write-barrier.md docs/SCOPE.md src/i18n/ru.json docs/specs/252-optimize-orphan-layout-report.md docs/specs/279-near-orthogonal-junction.md docs/specs/226-entity-parent-dedup.md scripts/model-invariants.mjs docs/adr/282-wall-geometry-representation.md
#291 SPEC-REVIEW-291-r2.md spec · r2 🟡 жёлтый 0 1 Раздел «i18n», обязательный по цепочке §7.1, отсутствует; новые строки отчёта Optimize …; остаётся. Не относится к файлу ТЗ, не блокирует docs/specs/291-lattice-coordinate-write-barrier.md PROCESS.md src/i18n/en.json src/i18n/ru.json docs/specs/252-optimize-orphan-layout-report.md docs/specs/094-universal-state-toggle.md
#291 SPEC-REVIEW-291-r3.md spec · r3 🟢 зелёный 0 0 Точность (число знаков/округление) нового placeholder {cm} в gs.optimize_lattice_summar…; остаётся. Не относится к файлу ТЗ, не блокирует docs/specs/291-lattice-coordinate-write-barrier.md src/houseplan-card.ts model-invariants.mjs
#291 CODE-REVIEW-291-r1.md code · r1 🟡 жёлтый 0 2 AC4 не доказан ни автотестом, ни явной записью; docs/USER-GUIDE.ru.md не обновлён; не блокируют, зафиксированы без правки smoke_lattice_write_barrier.mjs smoke_optimize_coordinate_canonicalization.mjs docs/USER-GUIDE.ru.md docs/USER-GUIDE.md src/i18n/ru.json
#291 CODE-REVIEW-291-r2.md code · r2 🟢 зелёный 0 0 — —
#290 SPEC-REVIEW-290-r1.md spec · r1 🟡 жёлтый 0 2 Отсутствуют обязательные разделы §7.1 «риски» и «откат»; AC исходного issue про npm run invariants на реальных данных и видимое снижение числа п…; AC4 неточно называет источник fixture docs/specs/290-near-axis-authoring-and-repair.md docs/specs/277-safe-resize.md docs/specs/279-near-orthogonal-junction.md scripts/model-invariants.mjs 44.json test/fixtures/279-near-orthogonal-junction.json
#290 SPEC-REVIEW-290-r2.md spec · r2 🟢 зелёный 0 0 — —
#290 CODE-REVIEW-290-r1.md code · r1 🔴 красный 1 2 1 Смок-выборка; 2 Инварианты и AC10 — реальные планы; Resize отключается на всей комнате из-за чужой, нетронутой near-axis стены (AC3 нарушен…; AC9: 3 из 6 обязательных мутантов отсутствуют; AC10: нет автотеста на двух реальных фикстурах; AC1 «source guard» не механизирован src/resize.ts test/fixtures/real-plan-second-floor.json scripts/mutation-gate.mjs test/near-axis.test.mjs mutation-gate.mjs smoke_near_axis_optimize.mjs test/model-invariants.test.mjs test/plan-optimizer.test.mjs
#290 CODE-REVIEW-290-r2.md code · r2 🟢 зелёный 0 0 1 Смок-выборка; 1 Проверка закрытия High H1 (не декларативно — воспроизведением на обоих состояниях кода); 2 Проверка закрытия Medium M1 (mutation-gate); 3 Проверка закрытия Medium M2 (AC10 автотест) —
#290 CODE-REVIEW-290-r3.md code · r3 ⚪ — 0 0 ТЗ AC1 (docs/specs/290-near-axis-authoring-and-repair.md:173-174) прямо обещает: «Autho… docs/specs/290-near-axis-authoring-and-repair.md src/wall-thickness.ts test/near-axis.test.mjs test/single-source-numbers.test.mjs src/near-axis.ts wall-thickness.ts
#290 CODE-REVIEW-290-r4.md code · r4 🟢 зелёный 0 0 — —
#289 SPEC-REVIEW-289-r1.md spec · r1 🟡 жёлтый 0 3 раздел «Риски» отсутствует полностью; раздел «Откат» отсутствует полностью; 6 из 9 AC не указывают способ доказательства; терминология «рукоятка» вместо канонической «ручка»; i18n-ключ не назван по имени docs/RESIZE.md demo/smoke_room_resize.mjs test/resize.test.mjs docs/USER-GUIDE.ru.md src/resize.ts src/i18n/en.json ru.json
#289 SPEC-REVIEW-289-r2.md spec · r2 🟢 зелёный 0 0 — —
#289 CODE-REVIEW-289-r1.md code · r1 🟢 зелёный 1 1 Незапланированный код #260 в ветке #289 ломает два golden-эталона, третий не принят (Hi…; Golden-эталон safe-resize-handles-clamp-{dark,light} не обновлён под настоящее поведени… demo/fixtures/wall-key.mjs test/fixture-wall-key.test.mjs demo/fixtures/large-house.mjs demo/fixtures/visual-matrix.mjs test/model-invariants.test.mjs demo/golden/harness.mjs large-house.mjs visual-matrix.mjs
#289 CODE-REVIEW-289-r2.md code · r2 🟢 зелёный 0 0 — —
#288 SPEC-REVIEW-288-r1.md spec · r1 🟡 жёлтый 0 1 Отсутствуют обязательные разделы «Риски» и «Откат» (§7.1, DoR §2.5); «Связано» в шапке не включает #279, хотя AC4 явно на него ссылается docs/specs/288-bounded-multiwall-corridor.md docs/specs/275-multiwall-strip-containment.md docs/specs/278-wall-union-isolation.md
#288 SPEC-REVIEW-288-r2.md spec · r2 🟢 зелёный 0 0 — —
#288 CODE-REVIEW-288-r1.md code · r1 🟡 жёлтый 0 1 нарушен собственный порядок релиза из §10/issue; AC3 не проверяет геометрию тела, только метаданные continuations docs/specs/288-bounded-multiwall-corridor.md demo/fixtures/wall-key.mjs check-docs.mjs wall-thickness.ts test/wall-thickness.test.mjs demo/smoke_real_plan_masonry.mjs
#288 CODE-REVIEW-288-r2.md code · r2 🟢 зелёный 0 0 — —
#288 CODE-REVIEW-288-r3.md code · r3 🟢 зелёный 0 0 — —
#282 SPEC-REVIEW-282-r1.md spec · r1 🟡 жёлтый 0 2 Не специфицирован порядок атомизации Stage 1 относительно уже существующего lattice-бар…; Заявленный UX отказа («предлагает Optimize либо исправление») не совпадает с фактически… docs/specs/282-stable-wall-segment-identity.md src/coordinate-canonicalization.ts docs/WALL-THICKNESS.md
#282 SPEC-REVIEW-282-r2.md spec · r2 🟢 зелёный 0 0 — —
#282 CODE-REVIEW-282-r1.md code · r1 🔴 красный 2 4 #278-guard «отклонить правку деградированного пространства» больше не срабатывает; Широкая регрессия структурных операций редактирования; AC15 добавил новую строку в Optimize-диалог — golden baseline не обновлён; AC5 «executable source/AST guard + bypass mutant for each writer family» реализован уже…; wall_model_client_outdated не срабатывает в реалистичном сценарии старого клиента; Регрессионный тест issue #248 ослаблен без обновления фикстуры demo/smoke_wall_union_isolation.mjs src/houseplan-card.ts wall-segment-model.ts smoke_resize_pointer_real_plan.mjs smoke_wall_chain_thickness.mjs smoke_unified_wall_tool.mjs smoke_wall_face_overlap.mjs smoke_edit_walk.mjs
#282 CODE-REVIEW-282-r2.md code · r2 🔴 красный 2 0 npm test красный: диагностика больше не соответствует контракту, который сама же проверяет; AC7 нарушен: opening на обычной стене исчезает со Static-карточки после миграции в v8 test/open-passage-contract.test.mjs demo/smoke_open_passage.mjs src/space-render.ts space-card.ts ARCHITECTURE.md src/wall-segment-model.ts space-render.ts src/houseplan-card.ts
#282 CODE-REVIEW-282-r3.md code · r3 🔴 красный 1 0 AC7 всё ещё нарушен: Static-карточка рисует сплошную стену прямо по месту прохода после… src/space-render.ts src/wall-segment-model.ts space-render.ts houseplan-card.ts demo/smoke_open_passage.mjs src/logic.ts docs/SCOPE.md smoke_open_passage.mjs
#282 CODE-REVIEW-282-r4.md code · r4 🟢 зелёный 0 0 — —
#278 SPEC-REVIEW-278-r1.md spec · r1 🟡 жёлтый 0 1 отсутствует обязательный раздел «Риски». PROCESS.md §7.1 перечисляет обязательные разде… docs/specs/278-wall-union-isolation.md docs/specs/253-resize-wall-thickness.md docs/specs/275-multiwall-strip-containment.md
#278 SPEC-REVIEW-278-r2.md spec · r2 🟢 зелёный 0 0 — —
#278 CODE-REVIEW-278-r1.md code · r1 🟡 жёлтый 0 1 docs/TESTING.md называет несуществующие id мутантов docs/TESTING.md scripts/mutation-gate.mjs TESTING.md mutation-gate.mjs
#278 CODE-REVIEW-278-r2.md code · r2 🟢 зелёный 0 0 — —
#277 SPEC-REVIEW-277-r1.md spec · r1 ⚪ — 0 3 нет обязательного раздела «риски» (§7.1); нет обязательного «что человек увидит до и после» одной фразой без терминов реализации …; из плана тестов выпала обязательная анонимизированная fixture реального плана docs/specs/277-safe-resize.md
#277 SPEC-REVIEW-277-r2.md spec · r2 🟢 зелёный 0 0 — —
#277 CODE-REVIEW-277-r1.md code · r1 🟡 жёлтый 0 1 Кэш допустимости (eligibility) на самом деле не memo­изирует дорогую часть — рендер руч…; Мёртвый код и устаревший комментарий: rszSel теперь ничего не рендерит, хотя всё ещё вы… src/houseplan-card.ts docs/ARCHITECTURE.md demo/fixtures/large-house.mjs benchmark_safe_resize.mjs
#277 CODE-REVIEW-277-r2.md code · r2 🟢 зелёный 0 0 Находка предыдущего раунда (M1) закрыта полностью — см. раздел ниже. Новых находок в пр… docs/reviews/CODE-REVIEW-277-r1.md src/houseplan-card.ts
#276 SPEC-REVIEW-276-r1.md spec · r1 🔴 красный 1 3 Заявленный Redo для серверной отмены Optimize не существует и не заявлен как новая работа; Раздел «Риски» отсутствует — обязательный пункт DoR; Не перечислены затронутые файлы и модули — обязательный пункт DoR; Ссылка на несуществующий канонический документ docs/PLAN-OPTIMIZE.md src/houseplan-card.ts docs/USER-GUIDE.ru.md docs/ARCHITECTURE.md docs/specs/275-multiwall-strip-containment.md src/plan-optimizer.ts src/wall-merge.ts src/physical-geometry.ts docs/PLAN-OPTIMIZE.md
#276 SPEC-REVIEW-276-r2.md spec · r2 🟢 зелёный 0 0 — —
#276 SPEC-REVIEW-276-r3.md spec · r3 🟢 зелёный 0 0 Разное именование одной переменной в двух соседних формулах; AC1 сохраняет квалификатор «same-thickness», хотя условие эксплицитно расширено дельтой; Второй подряд неверный SHA в хендофф-комментарии автора — повтор находки r2 docs/reviews/SPEC-REVIEW-276-r2.md
#276 CODE-REVIEW-276-r1.md code · r1 🟡 жёлтый 0 3 AC11 (перф-бюджет §10) не доказан ни автотестом, ни явным; AC3 «несколько hosted openings на одной partition» не покрыто тестом; AC5 «targeted golden» не добавлен ни в каком виде docs/specs/276-coincident-partition-reconciliation.md demo/benchmark_large_house.mjs demo/benchmark_optimize_geometry_preflight.mjs test/fixtures/276-coincident-partition.json test/coincident-partitions.test.mjs test/plan-optimizer.test.mjs src/coincident-partitions.ts demo/golden/matrix.mjs
#276 CODE-REVIEW-276-r2.md code · r2 🟡 жёлтый 0 3 2 (Medium, в скоупе, чинится тем же автором) — benchmark:coincident-partitions даёт сис… demo/benchmark_coincident_partitions.mjs demo/benchmark_optimize_geometry_preflight.mjs
#276 CODE-REVIEW-276-r3.md code · r3 🟢 зелёный 0 1 — —
#275 SPEC-REVIEW-275-r1.md spec · r1 🟢 зелёный 0 0 1: делегирование доказательства AC3 существующей конвенции хендоффа, не тексту ТЗ; 2: план автотестов не выделен отдельным заголовком docs/specs/275-multiwall-strip-containment.md docs/specs/272-no-multiwall-holes.md
#275 SPEC-REVIEW-275-r2.md spec · r2 🟡 жёлтый 0 1 1: контракт не определяет узлы, где ray-пары смешивают rectilinear и non-rectilinear; 1 (снимаю без правки документа): величина angle-epsilon в §6.1 не названа числом docs/specs/275-multiwall-strip-containment.md docs/WALL-THICKNESS.md
#275 SPEC-REVIEW-275-r3.md spec · r3 🟢 зелёный 0 0 1 (новая, снимаю без правки документа): числа «110 из 437» / «100 из 382» из хендоффа н… 1.json 2.json
#275 CODE-REVIEW-275-r1.md code · r1 🟢 зелёный 0 0 незадокументированный golden-impact на двух существующих сценах src/wall-thickness.ts docs/TESTING.md
#274 SPEC-REVIEW-274-r1.md spec · r1 🟢 зелёный 0 0 «До»-описание в §2 использует внутренний термин вместо простой фразы (снято); DoR-пункт «затронутые файлы и модули» не оформлен отдельным списком (снято) docs/specs/274-wireless-controller-presentation-parity.md
#274 CODE-REVIEW-274-r1.md code · r1 🟢 зелёный 0 0 — —
#273 SPEC-REVIEW-273-r1.md spec · r1 🟡 жёлтый 0 1 заявленная защита от partition/draft-границы не имеет ни доказательства, ни видимого ме…; не все AC называют способ доказательства явным словом по шаблону §2.5 docs/specs/273-optimize-topology-island.md src/plan-optimizer.ts src/wall-thickness.ts test/plan-optimizer.test.mjs
#273 SPEC-REVIEW-273-r2.md spec · r2 🟢 зелёный 0 0 — —
#273 CODE-REVIEW-273-r1.md code · r1 🟢 зелёный 0 0 — —
#272 SPEC-REVIEW-272-r1.md spec · r1 🟡 жёлтый 0 2 1: у большинства AC нет явной строки «Доказательство»; 2: «объявленный exterior sector» не определён алгоритмически; 1: неполное попадание в Core user jobs (снято, без правки документа) docs/specs/272-no-multiwall-holes.md docs/specs/261-white-wedges-root-cause.md docs/SCOPE.md
#272 SPEC-REVIEW-272-r2.md spec · r2 🟢 зелёный 0 0 — —
#272 CODE-REVIEW-272-r1.md code · r1 🟢 зелёный 0 0 — —
#271 SPEC-REVIEW-271-r1.md spec · r1 🟢 зелёный 0 0 — —
#271 CODE-REVIEW-271-r1.md code · r1 🔴 красный 1 1 AC6 не выполняется: собственная семантическая golden-проверка issue падает на обоих сце…; , в скоупе] AC4 не имеет собственного fixture/smoke с проёмом demo/golden/harness.mjs test/wall-thickness.test.mjs test/fixtures/197-junction-patch.json test/fixtures/249-multiwall-junction.json smoke_junction_patch_resilience.mjs src/wall-thickness.ts
#271 CODE-REVIEW-271-r2.md code · r2 🟢 зелёный 1 1 — —
#271 CODE-REVIEW-271-r3.md code · r3 🟢 зелёный 0 0 — —
#269 CODE-REVIEW-269-r1.md code · r1 🟢 зелёный 0 0 буквальная формулировка AC2 не выполняется, хотя цель AC2 достигнута docs/USER-GUIDE.ru.md
#267 SPEC-REVIEW-267-r1.md spec · r1 🟢 зелёный 0 0 заявление «git diff --check — green» в хендоффе не совпадает с фактом check-docs.mjs
#267 CODE-REVIEW-267-r1.md code · r1 🔴 красный 1 1 три из сорока четырёх рядов не имеют реальной мутационной защиты, вопреки AC5; unverified в BindingPresentationLifecycle недостижим ни в одном реальном сценарии; правило «неизвестный decision ID ломает тест» (ТЗ §8, п.5) не реализовано scripts/mutation-gate.mjs test/fixtures/device-presentation-decisions.mjs src/device-presentation-policy.ts device-presentation-policy.ts src/device-presentation.ts docs/DEVICE-PRESENTATION.md src/devices.ts test/device-presentation-policy.test.mjs
#267 CODE-REVIEW-267-r2.md code · r2 🟢 зелёный 0 0 — —
#266 SPEC-REVIEW-266-r1.md spec · r1 🟡 жёлтый 0 1 Medium (в скоупе) — заявленный «объективный критерий» (golden) не видит два реальных CS…; Low — неверная классификация вспомогательного скрипта; Low (наблюдение, не требует правки ТЗ) — лимит «≤ 1200 строк» на файл (AC2) может не вы… src/styles.ts demo/golden/harness.mjs demo/golden/run.mjs smoke_plan_snap_overlay.mjs smoke_preloader.mjs test/isometric-contract.test.mjs plan.styles.ts demo/smoke_plan_snap_overlay.mjs
#266 SPEC-REVIEW-266-r2.md spec · r2 🟡 жёлтый 0 1 Medium (в скоупе) — новый AC2 противоречит сам себе: заявленный порог суммы уже нарушен… docs/specs/266-split-styles.md
#266 SPEC-REVIEW-266-r3.md spec · r3 🟢 зелёный 0 0 — —
#266 CODE-REVIEW-266-r1.md code · r1 🟢 зелёный 0 0 — —
#265 SPEC-REVIEW-265-r1.md spec · r1 🟡 жёлтый 0 4 «что человек увидит» слито со сценарием и написано языком реализации; поверхность/touch…; AC10 хеджирует «если отчёт станет виден пользователю», хотя §9 безусловно описывает нов…; AC1–AC9 не называют способ доказательства (в отличие от требования DoR и от прямого сос…; нет отдельного обязательного раздела «Риски» docs/specs/265-import-reference-seam.md 244-orphan-space-references.md 252-optimize-orphan-layout-report.md docs/TOUCH-SUPPORT.md docs/specs/244-orphan-space-references.md
#265 SPEC-REVIEW-265-r2.md spec · r2 🟡 жёлтый 0 1 AC10 называет несуществующий гейт check-i18n как обязательное доказательство (Medium, в… docs/specs/265-import-reference-seam.md package.json test/i18n.test.mjs scripts/check-i18n.mjs check-docs.mjs scripts/check-docs.mjs
#265 SPEC-REVIEW-265-r3.md spec · r3 🟢 зелёный 0 0 — —
#265 CODE-REVIEW-265-r1.md code · r1 🔴 красный 1 2 golden красный на заявленном SHA для самого нового экрана; заявление автора о зелёном g…; нет backend-теста на успешный cross-generation lineage repair (только exact-map и ambig…; нет synthetic maximum-size backend теста, требуемого AC9 demo/golden/harness.mjs src/houseplan-card.ts src/i18n/ru.json demo/golden/README.md AGENTS.md tests_backend/test_ha_import_export.py test/space-reference-repair.test.mjs custom_components/houseplan/import_export.py
#264 SPEC-REVIEW-264-r1.md spec · r1 🟡 жёлтый 0 2 утверждение «Escape в idle Resize уже сейчас сразу возвращает Draw» не соответствует коду; несуществующий файл смока в планируемом diff docs/specs/264-resize-controller.md src/houseplan-card.ts demo/smoke_hide_layers.mjs demo/smoke_pan_any_zoom.mjs demo/smoke_safe_resize.mjs demo/smoke_resize_wall_thickness.mjs demo/smoke_resize_inner_dimensions.mjs docs/RESIZE.md
#264 SPEC-REVIEW-264-r2.md spec · r2 🟢 зелёный 0 0 — —
#264 CODE-REVIEW-264-r1.md code · r1 🟢 зелёный 0 0 — —
#262 SPEC-REVIEW-262-r1.md spec · r1 🟢 зелёный 0 1 вне скоупа (не блокирует, заводится отдельным issue по §12 PROCESS.md) docs/USER-GUIDE.ru.md src/i18n/ru.json houseplan-card.ts ru.json
#262 CODE-REVIEW-262-r1.md code · r1 🟢 зелёный 0 0 — —
#261 SPEC-REVIEW-261-r1.md spec · r1 🟢 зелёный 0 0 «Что человек увидит до и после» смешивает продуктовое и техническое docs/specs/261-white-wedges-root-cause.md
#261 CODE-REVIEW-261-r1.md code · r1 ⚪ — 0 0 — —
#258 SPEC-REVIEW-258-r1.md spec · r1 🟢 зелёный 0 0 «Что человек увидит» смешивает продуктовую и техническую лексику docs/specs/258-wall-key-storage-roundtrip.md
#258 CODE-REVIEW-258-r1.md code · r1 🟡 жёлтый 0 1 Release-артефакты заявляют больше, чем доказано, и противоречат собственному расследова…; scripts/model-invariants.mjs, titles внутри report(): ключ wall_key: 'Записи толщины, к… docs/CHANGELOG.md docs/CHANGELOG.ru.md CHANGELOG.md .ru.md scripts/model-invariants.mjs
#258 CODE-REVIEW-258-r2.md code · r2 🟢 зелёный 0 0 — —
#256 CODE-REVIEW-256-r1.md code · r1 🟢 зелёный 0 0 — —
#253 SPEC-REVIEW-253-r1.md spec · r1 🟢 зелёный 0 0 риск MAX_WALLS=500 от роста числа записей не упомянут в разделе рисков. Новый контракт … custom_components/houseplan/validation.py
#253 CODE-REVIEW-253-r1.md code · r1 🟢 зелёный 0 0 — —
#252 SPEC-REVIEW-252-r1.md spec · r1 🟡 жёлтый 0 1 ТЗ меняет задокументированный и опубликованный инвариант Optimize, не называя его docs/CANVAS.md docs/CHANGELOG.md docs/specs/252-optimize-orphan-layout-report.md
#252 SPEC-REVIEW-252-r2.md spec · r2 🟢 зелёный 0 0 — —
#252 CODE-REVIEW-252-r1.md code · r1 🟢 зелёный 0 0 — —
#252 CODE-REVIEW-252-r2.md code · r2 🟢 зелёный 0 0 — —
#251 SPEC-REVIEW-251-r1.md spec · r1 🟢 зелёный 0 0 не проговорено соответствие toast'а формулировке владельца «стандартными средствами HA»; не решён смешанный secure + unavailable случай в группе controls device-toggle.ts SCOPE.md
#251 CODE-REVIEW-251-r1.md code · r1 ⚪ — 1 0 golden-эталон device-icon-state-table-{light,dark} сломан этим же diff'ом, приёмки base… demo/golden/matrix.mjs artifacts/golden/golden-report.json .github/workflows/validate.yml docs/TESTING.md test/golden-matrix.test.mjs test/device-presentation.test.mjs
#251 CODE-REVIEW-251-r2.md code · r2 🟢 зелёный 1 0 — —
#251 CODE-REVIEW-251-r3.md code · r3 🟢 зелёный 1 0 — —
#250 SPEC-REVIEW-250-r1.md spec · r1 🟢 зелёный 0 0 — —
#250 CODE-REVIEW-250-r1.md code · r1 ⚪ — 0 0 — —
#250 CODE-REVIEW-250-r2.md code · r2 🟢 зелёный 0 0 — —
#249 SPEC-REVIEW-249-r1.md spec · r1 🟡 жёлтый 0 2 в скоупе задачи, чинится в этом же ТЗ; не блокирует, снимается ревьюером с записью PROCESS.md
#249 SPEC-REVIEW-249-r2.md spec · r2 🟢 зелёный 0 0 — —
#249 CODE-REVIEW-249-r1.md code · r1 🔴 красный 1 1 innerContourForRoom (clean floor) получает; AC2 не покрыт буквально src/wall-thickness.ts test/wall-thickness.test.mjs demo/smoke_multiwall_junction.mjs
#249 CODE-REVIEW-249-r2.md code · r2 ⚪ — 0 0 Два из восьми вызовов innerContourForRoom не получили sharedRoomWallGeometry src/houseplan-card.ts
#248 SPEC-REVIEW-248-r1.md spec · r1 🟢 зелёный 0 0 не блокирует, оставлено на усмотрение автора docs/USER-GUIDE.ru.md USER-GUIDE.ru.md
#248 CODE-REVIEW-248-r1.md code · r1 🟢 зелёный 1 0 — —
#244 SPEC-REVIEW-244-r1.md spec · r1 🟡 жёлтый 0 1 Не назван пункт DoR «влияние на touch». PROCESS.md §2.5 требует явно назвать влияние на… docs/TOUCH-SUPPORT.md
#244 SPEC-REVIEW-244-r2.md spec · r2 🟢 зелёный 0 0 — —
#244 CODE-REVIEW-244-r1.md code · r1 🔴 красный 2 0 Именованный в АС смок demo/smoke_orphan_space_references.mjs красный; Регрессия контракта #113: последнее занятое пространство больше не удаляется demo/smoke_orphan_space_references.mjs space-deletion.test.mjs test_ha_websocket.py CONFIG-COMPATIBILITY.md USER-GUIDE.md demo/smoke_optional_space_model.mjs
#244 CODE-REVIEW-244-r2.md code · r2 ⚪ — 2 0 — —
#244 CODE-REVIEW-244-r3.md code · r3 🟢 зелёный 0 0 — —
#243 SPEC-REVIEW-243-r1.md spec · r1 🟢 зелёный 0 0 — —
#243 CODE-REVIEW-243-r1.md code · r1 🟢 зелёный 0 0 — —
#243 CODE-REVIEW-243-r2.md code · r2 🟢 зелёный 0 0 — —
#242 SPEC-REVIEW-242-r1.md spec · r1 🟢 зелёный 0 0 — —
#242 CODE-REVIEW-242-r1.md code · r1 🟡 жёлтый 1 1 AC4 не выполнен: flip_v не меняет направление 10° поворота ворот на общей стене и на не…; заявленный golden-охват в handoff занижен на порядок; обязательные по §12.3 новые сцены… src/houseplan-card.ts src/render/opening-symbol.ts wall-thickness.ts docs/WALL-THICKNESS.md docs/ARCHITECTURE.md docs/ISOMETRIC.md docs/USER-GUIDE.ru.md test/opening-symbol.test.mjs
#242 CODE-REVIEW-242-r2.md code · r2 🟢 зелёный 0 0 точный список из 67 существующих golden-сцен на самом деле содержит 2 сцены, не задетые… docs/TESTING.md demo/golden/matrix.mjs test/golden-matrix.test.mjs
#239 SPEC-REVIEW-239-r1.md spec · r1 ⚪ — 0 1 §13 Acceptance criteria не указывает способ доказательства для AC13, AC14, AC16, и это …; §10 «Данные, i18n...» не называет конкретный текст/ключ новой imperial- подписи внутри … docs/specs/230-hatch-density-normalization.md docs/specs/238-opening-inner-distances.md
#239 SPEC-REVIEW-239-r2.md spec · r2 🟡 жёлтый 0 0 — —
#239 CODE-REVIEW-239-r1.md code · r1 🟡 жёлтый 0 1 demo/smoke_grid_scale_invariance.mjs нестабилен на проверке darkViewPixelsMatch — ~43% … demo/smoke_grid_scale_invariance.mjs src/styles.ts AGENTS.md
#239 CODE-REVIEW-239-r2.md code · r2 🟢 зелёный 0 0 — —
#238 SPEC-REVIEW-238-r1.md spec · r1 🟢 зелёный 0 0 — —
#238 CODE-REVIEW-238-r1.md code · r1 🔴 красный 1 0 Продуктовый коммит не обновил скомпилированный бандл; закоммиченный артефакт не содержи… dist/houseplan-card.js custom_components/houseplan/frontend/houseplan-card.js demo/srv/assets/houseplan-card.js src/houseplan-card.ts src/opening-dimensions.ts src/styles.ts
#238 CODE-REVIEW-238-r2.md code · r2 🟢 зелёный 0 0 — —
#238 CODE-REVIEW-238-r3.md code · r3 🟢 зелёный 0 0 — —
#234 SPEC-REVIEW-234-r1.md spec · r1 🟡 жёлтый 0 1 раздел i18n из обязательного списка §7.1 отсутствует в документе целиком. PROCESS.md §7…; граница > 0 vs текущее >= 0 не отражена явно в примерах AC1. wall-face-graph.ts:69 сего… PROCESS.md docs/specs/234-chain-segment-thickness.md wall-face-graph.ts docs/WALL-THICKNESS.md
#234 SPEC-REVIEW-234-r2.md spec · r2 🟢 зелёный 0 0 — —
#234 CODE-REVIEW-234-r2.md code · r2 🟢 зелёный 0 0 Диагноз и контракт по коду; Гейты — прогнаны на HEAD (c8e9597) в этой сессии; AC — чем доказано; Взаимодействие с #229 (ребейз) —
#233 SPEC-REVIEW-233-r1.md spec · r1 ⚪ — 2 0 Контракт §6 не покрывает открытую сторону, к которой ведёт продуктовое решение §4.3 (High); §7 приписывает thicknessCmAt поведение, которого у неё нет: заявлено фактом, не провере… docs/specs/233-resize-inner-dimensions.md src/wall-thickness.ts docs/WALL-THICKNESS.md test/wall-thickness.test.mjs wall-thickness.ts
#233 SPEC-REVIEW-233-r2.md spec · r2 🟢 зелёный 0 0 — —
#233 CODE-REVIEW-233-r1.md code · r1 🟡 жёлтый 0 2 тест AC6b не строит сценарий, который он заявляет (и который был H2); не хватает мутанта из принятого §11 ТЗ test/wall-thickness.test.mjs docs/specs/233-resize-inner-dimensions.md scripts/mutation-gate.mjs
#233 CODE-REVIEW-233-r2.md code · r2 🟢 зелёный 0 0 — —
#231 SPEC-REVIEW-231-r1.md spec · r1 🟡 жёлтый 0 1 Нормативная позиция decor относительно room hover fill не имеет привязанного AC/доказат… docs/specs/231-decor-layer-order.md demo/smoke_glow.mjs smoke_glow.mjs
#231 SPEC-REVIEW-231-r2.md spec · r2 🟢 зелёный 0 0 — —
#231 CODE-REVIEW-231-r1.md code · r1 ⚪ — 0 1 golden regression на трёх существующих large-house сценах не определена и не учтена demo/fixtures/large-house.mjs large-house.mjs docs/TESTING.md
#231 CODE-REVIEW-231-r2.md code · r2 ⚪ — 0 0 — —
#230 SPEC-REVIEW-230-r1.md spec · r1 🟡 жёлтый 1 1 риск-анализ и AC10 построены на неверной посылке о golden-фикстурах; контракт «оба рендерера» не имеет собственного доказательства для статического рендерера; канонический документ подсистемы не входит в release-артефакты docs/specs/230-hatch-density-normalization.md demo/golden/harness.mjs demo/fixtures/large-house.mjs demo/fixtures/visual-matrix.mjs demo/golden/matrix.mjs houseplan-card.ts space-render.ts demo/smoke_wall_hatch_density.mjs
#230 SPEC-REVIEW-230-r2.md spec · r2 🟢 зелёный 0 0 §5 «Цели» не обновлён вслед за исправлением §11/AC10–11 и противоречит им docs/specs/230-hatch-density-normalization.md
#230 CODE-REVIEW-230-r1.md code · r1 🟡 жёлтый 2 0 Коммит с golden-эталонами не несёт обязательных трейлеров — CI уже красный на этом SHA; Четыре из семи новых мутантов не работают — гейт красен без мутации; AC7 не перепроверяет отсутствие scale на втором cell_cm demo/golden/baselines/baselines-index.json AGENTS.md scripts/validate-commit-provenance.mjs validate.yml scripts/mutation-gate.mjs mutation-gate.mjs test/mutation-gate.test.mjs .github/workflows/mutation-gate.yml
#230 CODE-REVIEW-230-r2.md code · r2 🟢 зелёный 2 0 — —
#229 SPEC-REVIEW-229-r1.md spec · r1 🟡 жёлтый 0 3 момент слияния при завершении цепочки шире, чем решение владельца о старых планах; допуск «есть причина оставить узел» не определён для трёх из четырёх причин; §8.4 не упоминает материализованную legacy-проекцию проёма (x/y/angle) docs/specs/229-merge-collinear-partitions.md 1.json docs/CONFIG-COMPATIBILITY.md houseplan-card.ts
#229 SPEC-REVIEW-229-r2.md spec · r2 🟡 жёлтый 0 1 критерий «ребро комнаты» для допуска EPS_JOIN (правка M2) сам по себе противоречит кано… docs/specs/229-merge-collinear-partitions.md docs/specs/141-wall-junctions.md src/plan-snap-overlay.ts src/logic.ts plan-snap-overlay.ts
#229 SPEC-REVIEW-229-r3.md spec · r3 🟢 зелёный 0 0 новый абзац §8.2 цитирует §13.1 фразой, которая на самом деле находится в §13.2 docs/specs/229-merge-collinear-partitions.md docs/specs/141-wall-junctions.md
#229 CODE-REVIEW-229-r1.md code · r1 🔴 красный 2 0 «узел на стыке с комнатой» не работает: слияние проходит сквозь T-стык к стене комнаты …; слияние «во что упёрлась цепочка» не работает через реальный клик-путь (§8.6); комментарий про допуски (EPS_ANGLE) не соответствует реализации, поведение корректно src/houseplan-card.ts src/plan-optimizer.ts houseplan-card.ts plan-optimizer.ts test-build/plan-optimizer.js docs/specs/141-wall-junctions.md test/wall-merge.test.mjs test/plan-optimizer.test.mjs
#229 CODE-REVIEW-229-r2.md code · r2 🟡 жёлтый 0 1 регрессионное покрытие High-1 закрывает только один из двух исправленных вызовов; точный SHA предыдущего вердикта не был назван явно src/houseplan-card.ts src/plan-optimizer.ts test/plan-optimizer.test.mjs scripts/mutation-gate.mjs plan-optimizer.ts houseplan-card.ts demo/smoke_wall_chain_merge.mjs plan-optimizer.test.mjs
#229 CODE-REVIEW-229-r3.md code · r3 🟢 зелёный 0 0 — —
#228 SPEC-REVIEW-228-r1.md spec · r1 🟢 зелёный 0 0 — —
#228 CODE-REVIEW-228-r1.md code · r1 🟡 жёлтый 0 2 негативный сценарий «hosted opening» не доказан автотестом; неоднозначный «gap > 2 см» диагностируется как единственный src/houseplan-card.ts docs/specs/228-plan-drawing-problems.md test/wall-face-repair.test.mjs demo/smoke_plan_drawing_repairs.mjs
#228 CODE-REVIEW-228-r2.md code · r2 🟢 зелёный 0 0 — —
#228 CODE-REVIEW-228-r3.md code · r3 🟢 зелёный 0 0 — —
#226 SPEC-REVIEW-226-r1.md spec · r1 🟡 жёлтый 0 1 в скоупе задачи docs/FILTERING.md PROCESS.md
#226 SPEC-REVIEW-226-r2.md spec · r2 🟢 зелёный 0 0 — —
#226 CODE-REVIEW-226-r1.md code · r1 🟢 зелёный 0 0 — —
#225 SPEC-REVIEW-225-r1.md spec · r1 🟡 жёлтый 0 1 в скоупе задачи import_export.py
#225 SPEC-REVIEW-225-r2.md spec · r2 🟢 зелёный 0 0 — —
#225 CODE-REVIEW-225-r1.md code · r1 🟡 жёлтый 0 2 internal_path доверяет path даже при непустых scheme/netloc; заявленный мутационный гейт не зарегистрирован scripts/mutation-gate.mjs import_export.py scripts/backend-test-guard.mjs test_ha_import_export.py .github/workflows/mutation-gate.yml
#225 CODE-REVIEW-225-r2.md code · r2 🟢 зелёный 0 0 — —
#224 SPEC-REVIEW-224-r1.md spec · r1 🟢 зелёный 0 0 — —
#224 CODE-REVIEW-224-r1.md code · r1 🔴 красный 1 2 golden не остаётся прежним, вопреки AC12 и §2/§15 ТЗ (High, в скоупе); check-docs.mjs красный: отпечаток скриншотов не обновлён (Medium, в скоупе); AC6 заявляет доказательство, которого нет (Medium, в скоупе); двойной инкремент cfgEpoch в writeConfig (Low) golden-report.json demo/fixtures/visual-matrix.mjs demo/golden/harness.mjs check-docs.mjs src/houseplan-card.ts src/coordinate-canonicalization.ts docs/images/screenshots.json test/coordinate-canonicalization.test.mjs
#224 CODE-REVIEW-224-r2.md code · r2 🟢 зелёный 0 0 — —
#223 SPEC-REVIEW-223-r1.md spec · r1 🟡 жёлтый 0 2 AC4 не покрывает партиции и колонны, где snapN() вызывается безусловно, а результат при…; новый показатель делит слово «канонизировано» с уже существующим показателем другого см… src/align-grid.ts docs/CANVAS.md align-grid.ts src/i18n/ru.json src/i18n/en.json src/plan-optimizer.ts
#223 SPEC-REVIEW-223-r2.md spec · r2 🟡 жёлтый 0 1 замена термина для находки r1 №2 меняет одну коллизию на другую: «нормализовано»/«norma… docs/specs/223-optimize-coordinate-canonicalization.md docs/CANVAS.md docs/ARCHITECTURE.md align-grid.ts
#223 SPEC-REVIEW-223-r3.md spec · r3 🟢 зелёный 0 0 — —
#223 CODE-REVIEW-223-r1.md code · r1 🟢 зелёный 0 0 AC2 (неконечные числа) не имеет отдельного unit-доказательства src/align-grid.ts docs/specs/223-optimize-coordinate-canonicalization.md test/align-grid.test.mjs
#220 SPEC-REVIEW-220-r1.md spec · r1 🟡 жёлтый 0 2 Medium, в скоупе. Отсутствует обязательная touch-классификация; Medium, в скоупе. §9 утверждает «нет нового поля», хотя §8.3/§17.3 предполагают обратное; не является блокирующим, не требует правки docs/TOUCH-SUPPORT.md devices.ts houseplan-card.ts PROCESS.md docs/CONFIG-COMPATIBILITY.md
#220 SPEC-REVIEW-220-r2.md spec · r2 🟡 жёлтый 0 1 Medium, в скоупе. §17.3 маркирует нормативное требование как «свободно меняемое» docs/specs/220-space-tab-reorder.md
#220 SPEC-REVIEW-220-r3.md spec · r3 🟢 зелёный 0 0 — —
#220 CODE-REVIEW-220-r1.md code · r1 🔴 красный 1 2 материализация неверно определяет «зависимые от порядка» маркеры: обычный маркер устрой…; перетаскивание вкладки не захватывает указатель: отпускание за пределами панели оставля…; мутационный гейт реализован не полностью относительно принятого §14 ТЗ src/space-order.ts src/devices.ts houseplan-card.ts test/space-order.test.mjs docs/TOUCH-SUPPORT.md demo/smoke_space_tab_reorder.mjs docs/specs/220-space-tab-reorder.md scripts/mutation-gate.mjs
#219 SPEC-REVIEW-219-r1.md spec · r1 🟡 жёлтый 0 1 в скоупе задачи docs/USER-GUIDE.ru.md AGENTS.md docs/TESTING.md TESTING.md USER-GUIDE.ru.md
#219 SPEC-REVIEW-219-r2.md spec · r2 🟢 зелёный 0 0 — —
#219 CODE-REVIEW-219-r1.md code · r1 🟢 зелёный 0 0 AC7/§16 не называют все golden-сцены, которые изменит эта правка —
#218 SPEC-REVIEW-218-r1.md spec · r1 🟡 жёлтый 0 1 отсутствует обязательный раздел «Риски»; §8.1 ТЗ утверждает: «quantum 1e-6 единицы плана = 10⁻⁹ м». Пересчёт по GRID_PITCH = NOR… docs/specs/218-glow-floor-geometry.md SPEC-REVIEW-217-r1.md mutation-gate.mjs src/space-geometry.ts src/houseplan-card.ts
#218 SPEC-REVIEW-218-r2.md spec · r2 🟢 зелёный 0 0 — —
#218 CODE-REVIEW-218-r1.md code · r1 ⚪ — 0 0 двойной проход нормализации на здоровом пути (не блокирует, снято с записью) src/physical-geometry.ts budgets-glow-smoke.json
#217 SPEC-REVIEW-217-r1.md spec · r1 🟢 зелёный 0 0 — —
#217 CODE-REVIEW-217-r1.md code · r1 🟢 зелёный 0 0 — —
#213 SPEC-REVIEW-213-r1.md spec · r1 🟢 зелёный 0 0 оставлено с запиской (не блокирует) src/styles.ts
#213 CODE-REVIEW-213-r1.md code · r1 🟢 зелёный 0 0 — —
#212 SPEC-REVIEW-212-r1.md spec · r1 🟢 зелёный 0 0 межевой случай «plan-wide setting» из #22 закрыт молча, без явной пометки docs/specs/212-device-icons-polish.md
#212 CODE-REVIEW-212-r1.md code · r1 🟡 жёлтый 0 2 три существующих regression-смока сломаны миграцией mouse→pointer событий (Medium, в ск…; hp-device-preview.ts гейтирует hover, но никто не выставляет ему атрибут (Medium, в ско… src/houseplan-card.ts smoke_touch_tips.mjs smoke_feedback_v2.mjs smoke_help_affordance.mjs smoke_device_icon_design.mjs demo/smoke_glow.mjs demo/smoke_room_settings.mjs demo/smoke_ux_fixes.mjs
#212 CODE-REVIEW-212-r2.md code · r2 🟢 зелёный 0 0 исправлено, доказано реальным поведением, не только тестом; исправлено, доказано смоком, который умеет упасть src/houseplan-card.ts smoke_ux_fixes.mjs smoke_device_preview_parity.mjs device-marker-polish-contract.test.mjs hp-device-preview.ts
#211 SPEC-REVIEW-211-r1.md spec · r1 🟡 жёлтый 0 1 целевое соотношение «MDI viewport = 0.5 × core» не подтверждено ни одним источником арх…; §4 называет нормативным источником несуществующий файл COMPARISON_NOTES.md; обязательный тег Touch editor: … присутствует по смыслу, но не дословно docs/specs/211-device-icons-visual-parity.md SPECIFICATION.md DEVELOPER_HANDOFF.md ACTIVE_ANIMATION_SPEC.md Index.html COMPARISON_NOTES.md README.md manifest.json
#211 SPEC-REVIEW-211-r2.md spec · r2 🟢 зелёный 0 0 — —
#211 CODE-REVIEW-211-r1.md code · r1 🟢 зелёный 0 0 — —
#211 CODE-REVIEW-211-r2.md code · r2 🟢 зелёный 0 0 — —
#210 SPEC-REVIEW-210-r1.md spec · r1 🟡 жёлтый 0 1 контракт не говорит явно, что очистка floor в GUI должна удалять ключ, а не записывать …; обязательный раздел «i18n» присутствует по содержанию, но не оформлен отдельным заголовком docs/specs/210-fixed-floor-card.md src/editor.ts en.json ru.json
#210 SPEC-REVIEW-210-r2.md spec · r2 🟢 зелёный 0 0 закрыто en.json ru.json
#210 CODE-REVIEW-210-r1.md code · r1 🟢 зелёный 0 0 — —
#209 SPEC-REVIEW-209-r1.md spec · r1 🟢 зелёный 0 0 — —
#209 CODE-REVIEW-209-r1.md code · r1 🟢 зелёный 0 0 — —
#205 SPEC-REVIEW-205-r1.md spec · r1 🟢 зелёный 0 0 раздел 1 не называет персону и поверхность по имени (снято ревьюером) docs/specs/205-vacuum-trail-resume-grace.md docs/SCOPE.md
#205 CODE-REVIEW-205-r1.md code · r1 🟢 зелёный 0 0 — —
#205 CODE-REVIEW-205-r2.md code · r2 🟢 зелёный 0 0 — —
#204 SPEC-REVIEW-204-r1.md spec · r1 🟢 зелёный 0 0 — —
#204 CODE-REVIEW-204-r1.md code · r1 🟢 зелёный 0 0 — —
#203 SPEC-REVIEW-203-r1.md spec · r1 🟡 жёлтый 0 1 план тестов не даёт мутанта третьей, независимо ломающейся ветке (форсированная HTML-по…; истёкший Labs-флаг iso не упомянут, хотя ТЗ строит на нём AC3; «затронутые файлы и модули» (DoR, §2.5) не собраны в один список docs/specs/203-hide-room-names.md houseplan-card.ts space-render.ts src/houseplan-card.ts docs/TESTING.md src/labs.ts demo/smoke_isometric_contract.mjs AGENTS.md
#203 SPEC-REVIEW-203-r2.md spec · r2 🟢 зелёный 0 0 таблица «What a space may choose not to draw» в docs/UX-MODES.md не получает строку sho…; release-артефакты не называют явно, что запись в changelog обязана отметить снятие .rla… docs/UX-MODES.md docs/specs/203-hide-room-names.md USER-GUIDE.ru.md STYLING-HOOKS.md TESTING.md UX-MODES.md docs/STYLING-HOOKS.md
#203 CODE-REVIEW-203-r1.md code · r1 🟢 зелёный 0 0 новая строка show_names в docs/UX-MODES.md цитирует не тот UI-текст; два предсуществующих golden-сценария теперь показывают «different» и не названы в хендоффе docs/UX-MODES.md src/i18n/ru.json docs/USER-GUIDE.ru.md UX-MODES.md demo/golden/matrix.mjs demo/golden/harness.mjs AGENTS.md PROCESS.md
#201 SPEC-REVIEW-201-r1.md spec · r1 🟢 зелёный 0 0 release-артефакты не называют обновление docs/WALL-THICKNESS.md §8 docs/WALL-THICKNESS.md docs/specs/201-atomic-thickness-lookup.md docs/TESTING.md WALL-THICKNESS.md
#201 CODE-REVIEW-201-r1.md code · r1 🟢 зелёный 0 0 — —
#200 SPEC-REVIEW-200-r1.md spec · r1 🟢 зелёный 0 0 неточная формулировка причины дефекта в §3 ТЗ docs/specs/200-room-label-parity.md houseplan-card.ts
#200 CODE-REVIEW-200-r1.md code · r1 🟢 зелёный 0 0 — —
#199 SPEC-REVIEW-199-r1.md spec · r1 🟡 жёлтый 0 1 Английский текст сообщения об отказе и подсказки не зафиксирован дословно — только «экв…; Хендофф-комментарий автора ТЗ в issue содержит артефакт шаблона: «Коммит: $sha.» — пере… docs/specs/199-optimize-geometry-preflight.md docs/specs/223-optimize-coordinate-canonicalization.md
#199 SPEC-REVIEW-199-r2.md spec · r2 🟢 зелёный 0 0 — —
#199 CODE-REVIEW-199-r1.md code · r1 🟢 зелёный 0 0 / информационная — абсолютный p95-бюджет §10 нестабилен в CI-песочнице (не блокирует) validate.yml performance.yml
#198 SPEC-REVIEW-198-r1.md spec · r1 🟢 зелёный 0 0 — —
#198 CODE-REVIEW-198-r1.md code · r1 🟡 жёлтый 0 2 AC5 не доказан заявленным способом; AC8 не доказан заявленным способом test/plan-optimizer.test.mjs test-build/plan-optimizer.js docs/WALL-THICKNESS.md test/wall-thickness.test.mjs src/wall-thickness.ts src/plan-optimizer.ts test-build/wall-thickness.js plan-optimizer.test.mjs
#198 CODE-REVIEW-198-r2.md code · r2 🟡 жёлтый 0 1 новый AC5-тест не хермитичен к сценарию входной мутации, который он должен доказывать; нет (закрыта) test/plan-optimizer.test.mjs src/plan-optimizer.ts test-build/plan-optimizer.js test/wall-thickness.test.mjs docs/WALL-THICKNESS.md
#198 CODE-REVIEW-198-r3.md code · r3 🟢 зелёный 0 0 — —
#197 SPEC-REVIEW-197-r1.md spec · r1 🔴 красный 1 1 центральное фактическое утверждение ТЗ (единственный патч → docs/specs/197-junction-patch-fail-dark.md src/wall-thickness.ts
#197 SPEC-REVIEW-197-r3.md spec · r3 🟢 зелёный 0 0 одно диагностическое утверждение §3 не воспроизводится буквально при разумной интерпрет… docs/specs/197-junction-patch-fail-dark.md
#197 CODE-REVIEW-197-r1.md code · r1 🟢 зелёный 0 0 — —
#196 SPEC-REVIEW-196-r1.md spec · r1 🟢 зелёный 0 0 AC2 частично привязывает smoke-доказательство к утверждению, проверяемому только кодом —
#196 CODE-REVIEW-196-r1.md code · r1 🟢 зелёный 0 0 — —
#195 CODE-REVIEW-195-r1.md code · r1 🟢 зелёный 0 0 — —
#195 CODE-REVIEW-195-r2.md code · r2 🟢 зелёный 0 0 — —
#193 SPEC-REVIEW-193-r1.md spec · r1 🟢 зелёный 0 0 отсутствует обязательная декларация Touch editor: … docs/specs/193-passage-placement-preview.md docs/TOUCH-SUPPORT.md
#193 CODE-REVIEW-193-r1.md code · r1 🟢 зелёный 0 0 — —
#192 SPEC-REVIEW-192-r1.md spec · r1 🟢 зелёный 0 0 AC3 не разделяет явно, какая часть критерия доказывается golden, а какая — только чтени… —
#192 CODE-REVIEW-192-r1.md code · r1 🟡 жёлтый 0 1 thumb hue-шкалы теряет контраст с треком в диапазоне циан/синий/индиго (~195°–260°) src/hp-color-opacity.ts demo/smoke_color_picker.mjs demo/serve.mjs
#192 CODE-REVIEW-192-r2.md code · r2 🟢 зелёный 0 0 — —
#189 CODE-REVIEW-189-r1.md code · r1 🟢 зелёный 0 0 нет теста на composite-hosted проём после этого диффа src/houseplan-card.ts src/partition-openings.ts
#187 CODE-REVIEW-187-r1.md code · r1 🟢 зелёный 0 0 AC1 помечен «unit», но фактическую регрессию покрывает только smoke test/physical-geometry.test.mjs demo/smoke_glow_fail_dark.mjs physical-geometry.ts houseplan-card.ts
#186 SPEC-REVIEW-186-r1.md spec · r1 🔴 красный 1 0 «строгая» проверка full import противоречит уже принятому владельцем round-trip-инвариа…; нет отдельного раздела «Проблема» docs/specs/186-partition-opening-jamb-margin.md docs/USER-GUIDE.ru.md docs/SCOPE.md websocket_api.py import_export.py
#186 SPEC-REVIEW-186-r2.md spec · r2 🟢 зелёный 0 0 «что человек увидит» использует термины реализации docs/specs/186-partition-opening-jamb-margin.md
#186 CODE-REVIEW-186-r1.md code · r1 🟢 зелёный 0 0 — —
#184 CODE-REVIEW-184-r1.md code · r1 🟢 зелёный 0 0 — —
#180 SPEC-REVIEW-180-r1.md spec · r1 🟢 зелёный 0 0 CSS-селектор input[type='color'] не упомянут в плане очистки src/styles.ts styles.ts houseplan-card.ts
#180 CODE-REVIEW-180-r1.md code · r1 🔴 красный 1 0 перекрывающиеся, нечитаемые подписи в строке "Цвет пульсации / Размер пульсации" на узк… src/houseplan-card.ts src/hp-color-opacity.ts
#180 CODE-REVIEW-180-r2.md code · r2 🟢 зелёный 0 0 — —
#179 SPEC-REVIEW-179-r1.md spec · r1 🟡 жёлтый 0 5 цвет внешней тени искажён относительно нормативного источника; цвет continuous-пульсации для reason presence не определён; easing для Short и Alert не зафиксирован; стоимость и выбор backdrop-blur для Dark не решены; не назван обязательный тег Touch editor: из TOUCH-SUPPORT.md; Light-only combo-эталоны (Selected + Hover/Working/Green/Alert docs/specs/179-device-icons-redesign.md SPECIFICATION.md ACTIVE_ANIMATION_SPEC.md DEVELOPER_HANDOFF.md src/device-pulse.ts manifest.json docs/SCOPE.md docs/TOUCH-SUPPORT.md
#179 SPEC-REVIEW-179-r2.md spec · r2 🟢 зелёный 0 0 Обе Light-тени переписаны на rgb(37 40 45 / 12%) / rgb(37 40 45 / 18%); §10.1/§10.4 получили mapping presence→green, running/working/open/unlocked→amber, neutr…; Обе секции получили cubic-bezier(.22,.61,.36,1); §7.1 фиксирует production = Dark/Icon Default No Blur.svg, backdrop-filter запрещён; ри…; Добавлена строка Touch editor: best effort / intentionally degraded в §11 —
#179 CODE-REVIEW-179-r1.md code · r1 🟢 зелёный 0 0 — —
#179 CODE-REVIEW-179-r2.md code · r2 🟢 зелёный 0 0 — —
#178 SPEC-REVIEW-178-r1.md spec · r1 🔴 красный 1 0 отсутствуют обязательные разделы: риски, откат, влияние на touch/производительность; способ доказательства не привязан к номеру AC явно docs/specs/178-toggle-entity.md docs/TOUCH-SUPPORT.md docs/specs/174-linked-virtual-light-controller.md docs/specs/164-washer-active-cycle.md
#178 SPEC-REVIEW-178-r2.md spec · r2 🟢 зелёный 0 0 раздел touch не называет явно runtime-эффект на View/kiosk docs/specs/178-toggle-entity.md docs/PROCESS.md docs/TOUCH-SUPPORT.md src/device-toggle.ts
#178 CODE-REVIEW-178-r1.md code · r1 🟢 зелёный 0 0 — —
#176 SPEC-REVIEW-176-r1.md spec · r1 🟢 зелёный 0 0 — —
#176 CODE-REVIEW-176-r1.md code · r1 🟢 зелёный 0 0 — —
#174 SPEC-REVIEW-174-r1.md spec · r1 🟢 зелёный 0 0 формулировка AC6 читается двусмысленно в отрыве от §9.1 docs/specs/174-linked-virtual-light-controller.md devices.ts
#174 CODE-REVIEW-174-r1.md code · r1 🟢 зелёный 0 0 — —
#173 SPEC-REVIEW-173-r1.md spec · r1 🟢 зелёный 0 0 нет отдельного раздела «Проблема»; docs/UX-MODES.md уже называет текущий инструмент «Walls»; опечатка в AC17 docs/specs/173-unified-wall-tool.md 138-adjacent-room-autoclose.md 172-zero-divider-taper.md docs/UX-MODES.md UX-MODES.md
#173 CODE-REVIEW-173-r1.md code · r1 🟢 зелёный 0 2 мёртвый код старого инструмента partition не удалён; AC8 не имеет unit/smoke-доказательства именно для новой интеграции; activateMarkupTool использует if/else без скобок на одной значимой ветке; accepted-click измерение не оформлено как отдельный отслеживаемый бюджет src/i18n/en.json ru.json test/wall-face-graph.test.mjs demo/smoke_unified_wall_tool.mjs demo/smoke_room_autoclose.mjs wall-face-graph.test.mjs src/houseplan-card.ts wall-face-graph.ts
#173 CODE-REVIEW-173-r2.md code · r2 🟢 зелёный 0 0 — —
#172 SPEC-REVIEW-172-r1.md spec · r1 🟢 зелёный 0 0 «что человек увидит» длиннее одной фразы; эпсилон/half-depth границы локального cap не формализованы числом docs/specs/172-zero-divider-taper.md docs/WALL-THICKNESS.md src/wall-thickness.ts
#172 CODE-REVIEW-172-r1.md code · r1 🟢 зелёный 0 0 AC4 не имеет отдельного исполняемого теста на fixture из АК1; неверная ссылка на процесс в хендоффе при пропуске named-smoke test/wall-thickness.test.mjs AGENTS.md demo/smoke_zero_divider_taper.mjs
#172 CODE-REVIEW-172-r2.md code · r2 🟢 зелёный 0 0 AC4 не имеет отдельного исполняемого теста на fixture из АК1; неточная ссылка на процесс в хендоффе первого цикла —
#162 SPEC-REVIEW-162-r1.md spec · r1 🟡 жёлтый 0 1 «compatible source» в §11.3.2 не определено и не проверяемо по факту схемы run docs/specs/162-vacuum-map-space-routing.md custom_components/houseplan/trails.py
#162 SPEC-REVIEW-162-r2.md spec · r2 🟢 зелёный 0 0 — —
#162 CODE-REVIEW-162-r1.md code · r1 🔴 красный 1 1 калибровка мимо своего этажа в пути «высокий residual → ручная подгонка»; §9.3 «Добавить источник карты» не реализован src/houseplan-editor-runtime.ts smoke_vacuum_firstuse.mjs smoke_vacuum_multifloor.mjs src/houseplan-card.ts src/editors/vacuum-maps-section.ts
#162 CODE-REVIEW-162-r2.md code · r2 🟢 зелёный 0 0 — —
#160 SPEC-REVIEW-160-r1.md spec · r1 🟢 зелёный 0 0 «Workflow boundary» (§16) ссылается на устное решение владельца, не отражённое в issue —
#160 CODE-REVIEW-160-r1.md code · r1 🔴 красный 1 3 node scripts/check-docs.mjs красный: скриншоты документации не пересняты (High, блокирует); floor anchor opening lock badge вычисляется двумя независимыми формулами (Medium, в ско…; реальный алгоритм isoRoomSafePoint (grid-search fallback) не покрыт ни одним тестом (Me…; leafBasis (src/iso-openings.ts:187-209): flipH не тестируется независимо от flipV (Medi…; не блокируют, оставлены с записью docs/images/screenshots.json scripts/source-fingerprint.mjs src/iso-projection.ts src/iso-overlays.ts src/iso-openings.ts src/iso-scene-render.ts src/houseplan-card.ts src/styles/plan.styles.ts
#160 CODE-REVIEW-160-r2.md code · r2 🟢 зелёный 0 0 новый M2-тест не независимо доказывает «вне любой дыры» (Low, запись без блокировки); приёмка скриншотов сменила заявленную платформу на win32 без видимого основания в хендо… test/iso-overlays.test.mjs iso-overlays.ts docs/images/screenshots.json scripts/docs-accept.mjs scripts/capture-environment.mjs
#159 SPEC-REVIEW-159-r1.md spec · r1 🟢 зелёный 0 0 — —
#159 CODE-REVIEW-159-r1.md code · r1 ⚪ — 1 1 AC4 и AC9 не доказаны: golden:verify красный на финальном SHA, эталоны не приняты; README пакета не фиксирует SHA-256 исходного архива golden-report.json PROCESS.md AGENTS.md assets/furniture/houseplan-0.3.0/README.md README.md pack.json docs/FURNITURE.md docs/specs/159-furniture-pack.md
#159 CODE-REVIEW-159-r2.md code · r2 🟢 зелёный 0 0 — —
#156 CODE-REVIEW-156-r1.md code · r1 🟢 зелёный 0 0 — —
#152 SPEC-REVIEW-152-r1.md spec · r1 🔴 красный 2 2 ни один AC не указывает способ доказательства; потерян отдельный проверяемый AC про синхронность hit targets во время перехода; accessibility-раздел выдаёт «существующую accessible-подпись» за факт, хотя такой досту…; «существующий» double-click/tap fit-all на фоне на деле существует только в kiosk; Low-1. §10 обсуждает #28 как открытую задачу, которой перед реализацией «нужно изменить… docs/specs/152-room-click-fit.md docs/specs/146-four-phase-sun-background.md docs/specs/138-adjacent-room-autoclose.md docs/specs/146-...md AGENTS.md src/houseplan-card.ts docs/SCOPE.md docs/UX-MODES.md
#152 SPEC-REVIEW-152-r2.md spec · r2 🟢 зелёный 0 0 — —
#152 CODE-REVIEW-152-r1.md code · r1 🔴 красный 1 2 demo/smoke_pan_any_zoom.mjs падает необработанным исключением — новый код не переживает…; Подпись комнаты в редакторах Devices/Decor получает нерабочую клавиатурную кнопку — нар…; Защита AC15 (запрет saveZoom для reason room) не зарегистрирована в mutation-gate, хотя…; 1. AC5 (вложенные комнаты) и AC9 (retarget между двумя разными комнатами во время tween… demo/smoke_pan_any_zoom.mjs src/houseplan-card.ts smoke_backdrop.mjs smoke_editor_gestures.mjs smoke_hide_layers.mjs smoke_pan_any_zoom.mjs houseplan-card.ts validate.yml
#152 CODE-REVIEW-152-r2.md code · r2 🟢 зелёный 0 0 — —
#150 CODE-REVIEW-150-r1.md code · r1 🔴 красный 1 0 Собственный AC7-smoke красный при первом запуске — фикстура не включает show_borders, а… demo/smoke_wall_thickness_transition.mjs src/wall-thickness.ts src/houseplan-card.ts demo/smoke_split_corner_wall.mjs AGENTS.md docs/WALL-THICKNESS.md docs/TESTING.md smoke_split_corner_wall.mjs
#146 SPEC-REVIEW-146-r1.md spec · r1 🟢 зелёный 0 1 azimuth тайно расширяет owner-решение о fallback-триггерах на саму фазу; «что человек увидит» длиннее одной фразы и использует термины реализации; нет буквальной touch-editor метки по docs/TOUCH-SUPPORT.md docs/specs/146-four-phase-sun-background.md docs/TOUCH-SUPPORT.md
#146 CODE-REVIEW-146-r1.md code · r1 🔴 красный 1 0 .zoomwrap's новый z-index: 1 прячет .zoombadge за планом на любом zoom>100% — независим… src/styles.ts src/houseplan-card.ts styles.ts
#146 CODE-REVIEW-146-r2.md code · r2 🟢 зелёный 0 0 — —
#141 SPEC-REVIEW-141-r1.md spec · r1 🟢 зелёный 0 0 нет явной метки touch-контракта по docs/TOUCH-SUPPORT.md; «что человек увидит» длиннее одной фразы; доказательство AC10 («code review») до кода не проверяемо, но это ожидаемо для code-rev… docs/TOUCH-SUPPORT.md docs/specs/141-wall-junctions.md PROCESS.md
#141 CODE-REVIEW-141-r1.md code · r1 🔴 красный 1 0 Живой rubber-band превью первого сегмента контура/перегородки не рисуется вовсе src/wall-thickness.ts test-build/wall-thickness.js demo/smoke_wall_junctions.mjs docs/SCOPE.md physical-geometry.ts
#140 CODE-REVIEW-140-r1.md code · r1 🟢 зелёный 0 0 — —
#138 SPEC-REVIEW-138-r1.md spec · r1 🔴 красный 1 0 контракт автозамыкания перехватывает и блокирует обычный второй клик по той же стене docs/specs/138-adjacent-room-autoclose.md houseplan-card.ts
#138 SPEC-REVIEW-138-r2.md spec · r2 🟢 зелёный 0 0 из r1 — статус: исправлено —
#137 SPEC-REVIEW-137-r1.md spec · r1 🟢 зелёный 0 0 терминология инструмента «Контур» вместо «Контур комнаты»; «что человек увидит» длиннее одной фразы; типы доказательства AC12–AC14 не входят буквально в перечень §2.5; план golden не описывает явно, чем доказывается forced-colours docs/specs/137-plan-snap-overlay.md src/i18n/ru.json docs/USER-GUIDE.ru.md PROCESS.md demo/golden/matrix.mjs harness.mjs
#132 SPEC-REVIEW-132-r1.md spec · r1 🟢 зелёный 0 0 §2 использует термин реализации «host-сегмент»; нет обязательного маркера Touch editor: … по docs/TOUCH-SUPPORT.md; i18n-раздел не перечисляет конкретные ключи en/ru docs/specs/132-partition-openings.md PROCESS.md docs/USER-GUIDE.ru.md docs/TOUCH-SUPPORT.md
#132 CODE-REVIEW-132-r1.md code · r1 🔴 красный 1 3 импорт/дублирование space с partition-hosted проёмом всегда отклоняется; находки (заведены отдельными issue); → #186 — нет jamb safety margin; → #187 — fallback-гвард источника света не fail-dark «по построению»; → #188 — тест junction-patch не умеет падать custom_components/houseplan/import_export.py custom_components/houseplan/validation.py validation.py tests_backend/test_ha_import_export.py src/partition-openings.ts src/space-render.ts src/houseplan-card.ts src/wall-thickness.ts
#132 CODE-REVIEW-132-r2.md code · r2 🟢 зелёный 0 1 Нет. High-1 из r1 исправлен корректно (см. «Как проверялось» — фикс, тест и зелёный CI); Второй компонент этого коммита восстанавливает presentation-cut для legacy room-wall op…; → #189 — presentation snap-overlay не режет ось независимой перегородки в месте её собс…; Нет новых Low в этом цикле. Три Low из SPEC-REVIEW-132-r1 были закрыты до начала кода (… demo/serve.mjs src/houseplan-card.ts src/plan-snap-overlay.ts docs/CANVAS.md smoke_partition_openings.mjs
#131 SPEC-REVIEW-131-r1.md spec · r1 🟢 зелёный 0 0 плотная формулировка §7.2 про hash/warm-viewport взаимодействие docs/specs/131-readonly-cold-start.md src/houseplan-card.ts
#126 SPEC-REVIEW-126-r1.md spec · r1 🟡 жёлтый 0 1 в скоупе задачи (возврат автору); снимаются с записью (реализатор решает сам, без возврата цикла) docs/specs/126-ha-area-marker-relocation.md src/types.ts src/houseplan-card.ts custom_components/houseplan/validation.py src/devices.ts
#126 SPEC-REVIEW-126-r2.md spec · r2 🟢 зелёный 0 0 — —
#126 CODE-REVIEW-126-r1.md code · r1 🟡 жёлтый 1 1 Save диалога устройства без изменения комнаты больше не пишет явный room override; регр…; Browser smoke не покрывает 4 из 8 сценариев, обязательных по §19 ТЗ src/houseplan-editor-runtime.ts houseplan-editor-runtime.ts demo/smoke_subarea.mjs demo/smoke_marker_stay.mjs smoke_subarea.mjs smoke_marker_stay.mjs docs/specs/126-ha-area-marker-relocation.md demo/smoke_area_relocation.mjs
#126 CODE-REVIEW-126-r2.md code · r2 🟢 зелёный 0 0 — —
#123 SPEC-REVIEW-123-r1.md spec · r1 🟢 зелёный 0 0 тип доказательства AC11 не входит буквально в перечень §2.5 docs/specs/123-corner-split-wall.md PROCESS.md
#123 CODE-REVIEW-123-r1.md code · r1 🔴 красный 1 0 новый браузерный смок падает на первой же строке и не подтверждает ни один AC demo/smoke_split_corner_wall.mjs src/houseplan-card.ts demo/srv/assets/houseplan-card.js docs/WALL-THICKNESS.md src/wall-thickness.ts src/space-render.ts smoke_opening_measure.mjs AGENTS.md
#122 SPEC-REVIEW-122-r1.md spec · r1 🟢 зелёный 0 0 отсутствует буквальная декларация «Touch editor: …»; три AC используют тип доказательства вне буквального перечня §2.5 docs/specs/122-isometric-stage2.md docs/TOUCH-SUPPORT.md docs/specs/089-isometric-view-stage1.md TOUCH-SUPPORT.md PROCESS.md
#122 CODE-REVIEW-122-r1.md code · r1 🔴 красный 2 1 три копии бандла не пересобраны; CI уже красный на этом SHA; show_borders:false в Iso не сохраняет пиксель-идентичный Stage-1 «no-volume» сценарий; регрессия пикселей во Flat-сценарии при выключенном Labs → #134 dist/houseplan-card.js custom_components/houseplan/frontend/houseplan-card.js demo/srv/assets/houseplan-card.js artifacts/golden/golden-report.json src/houseplan-card.ts demo/golden/matrix.mjs docs/ISOMETRIC.md
#122 CODE-REVIEW-122-r2.md code · r2 🟢 зелёный 0 0 — —
#117 SPEC-REVIEW-117-r1.md spec · r1 🟢 зелёный 0 0 нет отдельных разделов «Сценарий» и «Что человек увидит»; AC1–AC10 (§11) не несут инлайн-тег способа доказательства; матрица (§6) не содержит отдельной строки для registry-less entity в состоянии unavaila… docs/specs/117-registryless-opening-entity.md PROCESS.md ha-binding-status.test.mjs demo/smoke_lock_action.mjs demo/smoke_lock_invariant.mjs smoke_lock_action.mjs smoke_lock_invariant.mjs src/logic.ts
#117 CODE-REVIEW-117-r1.md code · r1 🟢 зелёный 0 0 — —
#117 CODE-REVIEW-117-r2.md code · r2 🟢 зелёный 0 0 — —
#113 SPEC-REVIEW-113-r1.md spec · r1 🟢 зелёный 0 1 AC8 не имеет предъявленного механизма доказательства; риск и контракт расходятся; нет отдельных заголовков «Сценарий» и «Что человек увидит до/после»; AC1…AC10 не несут явной пометки способа доказательства; нет буквальной метки touch-контракта по docs/TOUCH-SUPPORT.md docs/specs/113-optional-space-model.md houseplan-card.ts 113-optional-space-model.md PROCESS.md docs/TOUCH-SUPPORT.md
#113 CODE-REVIEW-113-r1.md code · r1 🟢 зелёный 0 0 — —
#113 CODE-REVIEW-113-r2.md code · r2 🟢 зелёный 0 0 — —
#113 CODE-REVIEW-113-r3.md code · r3 🟢 зелёный 0 0 — —
#107 SPEC-REVIEW-107-r1.md spec · r1 🟢 зелёный 0 0 раздел «Проблема» не выделен отдельно; нет консолидированного раздела «Риски» docs/specs/107-virtual-light-toggle.md docs/specs/131-readonly-cold-start.md
#107 CODE-REVIEW-107-r1.md code · r1 🔴 красный 1 1 Собственная презентация маркера (иконка/CSS-класс on/off) не отражает ручное состояние,…; tests_backend/test_virtual_lights.py не собирается pytest без установленного homeassist… src/device-presentation.ts src/houseplan-card.ts src/space-card.ts src/space-render.ts demo/smoke_virtual_light_toggle.mjs devices.test.mjs device-toggle.test.mjs tests_backend/test_virtual_lights.py
#103 SPEC-REVIEW-103-r1.md spec · r1 🟢 зелёный 0 0 сценарий не называет персону/поверхность явной фразой; AC1–AC10 не промаркированы построчно типом доказательства; нормативная матрица §6 группирует cover-состояния не так, как резолвер docs/specs/103-toggle-confirmation-state.md docs/SCOPE.md TOUCH-SUPPORT.md SCOPE.md PROCESS.md src/device-toggle.ts
#103 CODE-REVIEW-103-r1.md code · r1 🟢 зелёный 0 0 — —
#94 CODE-REVIEW-issue-094-2026-08-12.md code · 2026-08-12 ⚪ — 0 0 — —
#89 SPEC-REVIEW-089-isometric-view-stage1.md spec · isometric-view-stage1 🔴 красный 0 8 Spike ADR должен фиксировать больше, чем выбор renderer; Fingerprint перечисляет не все входы iso geometry; since/expires требуют точной version semantics; Не определён runtime owner механизма Labs; Scope houseplan-space-card не указан; Performance contract не совпадает с существующей инфраструктурой src/space-card.ts src/space-render.ts compare.mjs
#89 SPEC-REVIEW-89-r1.md spec · r1 🟢 зелёный 0 0 риски не собраны в отдельный раздел; «нормативная» таблица слоёв формально противоречит собственному запрету ТЗ на новый око… 089-isometric-view-stage1.md 089-isometric-view.md
#89 CODE-REVIEW-89-r2.md code · r2 🔴 красный 1 0 обязательный по ТЗ смок demo/smoke_isometric_live_touch.mjs красный на сданном коммите; три файла с лишней пустой строкой в конце (git diff --check) demo/smoke_isometric_live_touch.mjs src/sun.ts AGENTS.md 089-isometric-view-stage1.md docs/adr/089-isometric-stage1-renderer.md src/iso-projection.ts test/iso-projection.test.mjs
#89 CODE-REVIEW-89-r3.md code · r3 🟢 зелёный 0 0 три файла с лишней пустой строкой в конце; коллизия имени файла ревью из-за смешанной нумерации циклов docs/adr/089-isometric-stage1-renderer.md src/iso-projection.ts test/iso-projection.test.mjs docs/reviews/CODE-REVIEW-89-r2.md
#86 CODE-REVIEW-86-r1.md code · r1 ⚪ — 2 1 Манифест скриншотов документации подделан, а не пересчитан (High, в скоупе); npm run golden:verify красный: 6 эталонов расходятся с рендером (High, в скоупе); Onboarding-путь 5 space-подсказок не доказан исполнением (Medium, в скоупе); .help-ключ не совпадает буквально с ключом видимого label (Low, снимается без правки) docs/images/screenshots.json scripts/docs-accept.mjs docs-accept.mjs houseplan-onboarding-runtime.ts demo/golden/matrix.mjs houseplan-editor-runtime.ts matrix.mjs demo/smoke_help_affordance.mjs
#86 CODE-REVIEW-86-r2.md code · r2 🟡 жёлтый 0 1 AC7 «browser zoom 200%» не доказан ничем (Medium, в скоупе); .help-ключ не совпадает буквально с ключом видимого label (Low, снимается без правки) src/styles/dialogs.styles.ts
#86 CODE-REVIEW-86-r3.md code · r3 🟡 жёлтый 0 1 AC7 «представительный reviewed golden» для browser zoom 200% так и не появился (Medium,…; .help-ключ не совпадает буквально с ключом видимого label (Low, снимается без правки) demo/golden/matrix.mjs
#86 CODE-REVIEW-86-r4.md code · r4 🟢 зелёный 0 0 — —
#86 CODE-REVIEW-86-r5.md code · r5 🟢 зелёный 0 0 — —
#82 SPEC-REVIEW-82-r1.md spec · r1 🟢 зелёный 0 0 AC13 частично доказывается гейтом, недоступным на этой стадии цикла; общий easing-хелпер между ModeTransitionController и новым camera controller не специфи…; «дальний hint «Показать»» добавлен в матрицу §6, не упомянутый в исходном тексте issue docs/STATUS.md docs/superpowers/specs/2026-08-10-plan-visual-continuity-design.md src/mode-transition.ts src/houseplan-card.ts
#82 CODE-REVIEW-82-r1.md code · r1 🟢 зелёный 0 0 1. Коммит 55cf36d6 fix: preserve structural adoption guard — не функциональный фикс. Ди… src/houseplan-card.ts src/viewport-transition.ts smoke_smooth_zoom.mjs
#82 CODE-REVIEW-82-r2.md code · r2 🟢 зелёный 0 0 — —
#74 SPEC-REVIEW-74-r1.md spec · r1 🟢 зелёный 0 0 неверные пути трёх скриптов в §14 «Регрессия и gates»; нет явного блока «принято предположительно, поменять свободно» и явной строки про bundl… docs/specs/074-device-position-undo.md scripts/check-docs.mjs scripts/no-new-any.mjs scripts/smoke-select.mjs src/device-position-history.ts AGENTS.md
#74 CODE-REVIEW-74-r1.md code · r1 🟡 жёлтый 0 1 новый Undo/Redo toolbar рендерится без иконок из-за неактуального demo/srv/assets/icons…; AC2 «два устройства в LIFO-порядке» не продемонстрирован реальным перетаскиванием двух …; AC13 «доступные имена на поддерживаемых ширинах» проверены на одной ширине/теме demo/srv/assets/icons.js docs/specs/074-device-position-undo.md demo/smoke_device_position_history.mjs src/command-stack.ts test/command-stack.test.mjs src/houseplan-card.ts demo/golden/matrix.mjs demo/smoke_editor_tabs.mjs
#74 CODE-REVIEW-74-r2.md code · r2 🟢 зелёный 0 0 — —
#68 CODE-REVIEW-issue-068-2026-08-12.md code · 2026-08-12 ⚪ — 0 0 — —
#62 SPEC-REVIEW-62-r1.md spec · r1 🟡 жёлтый 0 1 CONTRIBUTING.md останется противоречить новому contribution flow — AC9 не покрывает сущ…; AC2 не имеет явного маркера «Доказательство:» в отличие от остальных восьми AC. Формули…; AC5 и AC8 подмешивают в доказательство слово «inspection» (inspection compiled schema, … CONTRIBUTING.md docs/specs/062-i18n-registry.md src/i18n.ts src/i18n/registry.ts src/editor.ts
#62 SPEC-REVIEW-62-r2.md spec · r2 🟢 зелёный 0 0 — —
#62 CODE-REVIEW-62-r1.md code · r1 🔴 красный 1 0 1 src/i18n/registry.ts src/i18n.ts CONTRIBUTING.md registry.ts test/i18n.test.mjs
#62 CODE-REVIEW-62-r2.md code · r2 🟢 зелёный 1 0 — —
#57 SPEC-REVIEW-57-r1.md spec · r1 🟢 зелёный 0 1 ТЗ молча сужает названные в issue call sites: «ripple» пропущен, параллельная семья «Об…; нет буквальной декларации Touch editor: … по docs/TOUCH-SUPPORT.md docs/specs/057-color-opacity-picker.md src/houseplan-card.ts houseplan-card.ts docs/TOUCH-SUPPORT.md docs/specs/068-help-affordance.md
#57 CODE-REVIEW-57-r1.md code · r1 🟢 зелёный 0 0 реализация меняет визуальный рендер ещё в 4 golden-сценариях, не названных нигде в ТЗ/T… docs/TESTING.md
#54 SPEC-REVIEW-54-r1.md spec · r1 🟡 жёлтый 0 1 нет обязательного раздела «Затронутые файлы и модули». PROCESS.md §2.5 (DoR) требует бу…; имя персоны не совпадает с таблицей docs/SCOPE.md. §1 ТЗ: «Персона — Enthusiast/Power U…; формулировка AC14 «backend/HA contract smoke on Linux CI» не согласована с явным заявле…; численные performance-бюджеты не зафиксированы в ТЗ, откладываются на измеренный dev-ст… PROCESS.md 226-entity-parent-dedup.md 238-opening-inner-distances.md 264-resize-controller.md 340-config-set-revision.md 348-german-localization.md docs/SCOPE.md AGENTS.md
#54 SPEC-REVIEW-54-r2.md spec · r2 🟢 зелёный 0 0 — —
#54 CODE-REVIEW-54-r1.md code · r1 🟡 жёлтый 0 1 невалидный ответ Zigbee2MQTT на верном топике зависает на полный 150-секундный таймаут …; custom_components/houseplan/diagnostics.py:41 отдаёт config.get("settings", {}) без фил…; pushDirectionalLink (zigbee-topology.ts:114-126) маркирует код duplicate_link как для б…; плотность диффа в нескольких местах указывает на автоматическую вставку без переноса ст… src/zigbee-topology-runtime.ts custom_components/houseplan/diagnostics.py docs/CONFIG-COMPATIBILITY.md docs/SUPPORT-PRIVACY.md support_package.py diagnostics.py zigbee-topology.ts houseplan-card.ts
#54 CODE-REVIEW-54-r2.md code · r2 🟢 зелёный 0 0 — —
#53 SPEC-REVIEW-53-r1.md spec · r1 🟡 жёлтый 0 4 docs/SCOPE.md не содержит заявленного исключения для #53; Коллизионное правило противоречит гарантии «нельзя опускать» для непрямоугольных комнат; AC6 проверяет правило, которого нет в контракте внешних размеров; Порог производительности ссылается на несуществующую конфигурацию фикстуры docs/SCOPE.md SCOPE.md AGENTS.md demo/fixtures/large-house.mjs
#53 SPEC-REVIEW-53-r2.md spec · r2 🟢 зелёный 0 0 предложение об i18n-потребителях в §9 не покрывает новый ключ на листе —
#53 CODE-REVIEW-53-r1.md code · r1 🟢 зелёный 0 0 расхождение текста ТЗ §8.3 с фактическим поведением фолбэка шрифта docs/specs/053-pdf-export.md src/pdf/pdf-writer.ts src/pdf/pdf-font.generated.ts
#51 SPEC-REVIEW-51-r1.md spec · r1 🟢 зелёный 0 0 отсутствует обязательная литеральная строка Touch editor: … docs/TOUCH-SUPPORT.md TOUCH-SUPPORT.md
#51 CODE-REVIEW-51-r1.md code · r1 ⚪ — 0 0 — —
#51 CODE-REVIEW-51-r2.md code · r2 🟡 жёлтый 0 1 — —
#51 CODE-REVIEW-51-r3.md code · r3 🟡 жёлтый 0 1 — —
#51 CODE-REVIEW-51-r4.md code · r4 ⚪ — 0 0 — —
#44 SPEC-REVIEW-44-r1.md spec · r1 🔴 красный 2 0 Сценарий и AC4 построены на неверном факте: причина «исключена; Контракт №3 («оба значения читаются из одного источника всеми; Название вкладки инбокса не совпадает с интерфейсным словарём docs/specs/044-filter-grouping-policy.md src/i18n/en.json de.json fr.json ru.json src/houseplan-editor-runtime.ts src/device-inbox.ts houseplan-editor-runtime.ts
#44 SPEC-REVIEW-44-r2.md spec · r2 🟡 жёлтый 0 1 Ревизия 3 не убрала два места, где документ прямо утверждает то, что H1 уже опроверг: п…; Термин вкладки всё ещё «Доступные» в трёх местах, «Доступны» — в одном docs/specs/044-filter-grouping-policy.md docs/USER-GUIDE.ru.md
#44 SPEC-REVIEW-44-r3.md spec · r3 🟢 зелёный 0 0 — —
#44 CODE-REVIEW-44-r1.md code · r1 🟢 зелёный 0 0 у M1/M2 нет отдельного регресс-теста, доказательство — чтение + обратное воспроизведение —
#43 SPEC-REVIEW-43-r1.md spec · r1 ⚪ — 0 1 support-relay/ не попадает ни в один класс изменений; отсутствует явная пометка Touch editor: … docs/specs/043-private-support-report.md AGENTS.md process-gate.mjs docs/ARCHITECTURE.md docs/SUPPORT-PRIVACY.md docs/TESTING.md docs/TOUCH-SUPPORT.md
#43 SPEC-REVIEW-43-r2.md spec · r2 🟡 жёлтый 0 0 — —
#43 SPEC-REVIEW-43-r3.md spec · r3 🟢 зелёный 0 1 Требование к источнику rate-limit не зафиксировано в ТЗ, хотя код и тесты уже реализуют…; Продакшн-канал ha_webhook целиком зависит от одной автоматизации на личном Home Assista… docs/specs/043-private-support-report.md scripts/support-relay/tests/test_relay.py hp_relay/app.py app.py scripts/support-relay/README.md
#43 SPEC-REVIEW-43-r4.md spec · r4 🟡 жёлтый 0 1 §9.2 закрывает находку r3 частично: описывает доверие к X-Forwarded-For как безусловный… scripts/support-relay/hp_relay/app.py config.py hp_relay/app.py
#43 SPEC-REVIEW-43-r5.md spec · r5 🟢 зелёный 0 0 — —
#43 CODE-REVIEW-43-r1.md code · r1 🟡 жёлтый 0 3 1 Дешёвые гейты (прогнаны лично, HEAD 1ba53630); 2 Бэкенд Python (доступность харнесса); 3 Relay (scripts/support-relay/); 4 Смоки и golden; 5 Инварианты модели; 6 Одно число — один источник AGENTS.md PROCESS.md docs/images/screenshots.json houseplan-card.ts houseplan-editor-runtime.ts validate.yml demo/smoke_feedback_v2.mjs demo/smoke_help_affordance.mjs
#43 CODE-REVIEW-43-r2.md code · r2 🟢 зелёный 0 0 — —
#42 SPEC-REVIEW-42-r1.md spec · r1 ⚪ — 0 2 AC5 не покрывает коды, эмитируемые не литералом в send_error(...); раздел «i18n» (обязателен по PROCESS.md §7.1) отсутствует; повторное использование err.…; Разделы «UX» и «Модель данных и миграция», формально обязательные по PROCESS.md §7.1 ка… docs/specs/042-backend-engineering-quality.md websocket_api.py validation.py junction_limits.py houseplan-card.ts src/i18n/en.json src/i18n/ru.json
#42 SPEC-REVIEW-42-r2.md spec · r2 🟡 жёлтый 0 1 AC5 и её мутант не синхронизированы с исправленным блоком 5; критерий приёмки снова нед… docs/specs/042-backend-engineering-quality.md
#42 SPEC-REVIEW-42-r3.md spec · r3 🟡 жёлтый 0 1 MarkerControlError описан в блоке 5/AC5 только по двум префиксным семействам; ~14 её ли… docs/specs/042-backend-engineering-quality.md validation.py websocket_api.py
#42 SPEC-REVIEW-42-r4.md spec · r4 🔴 красный 0 1 заявленный метод извлечения кода MarkerControlError («regex по вызовам MarkerControlErr… docs/specs/042-backend-engineering-quality.md validation.py
#42 CODE-REVIEW-42-r1.md code · r1 🔴 красный 2 0 no-new-any красный на HEAD: новый необоснованный any; requirements_test.txt невозможно установить: бэкенд-CI не работал ни разу src/houseplan-card.ts scripts/no-new-any.mjs .github/workflows/mutation-gate.yml
#42 CODE-REVIEW-42-r2.md code · r2 🔴 красный 2 0 docs-гейт красный: манифест скриншотов не совпадает ни с одним закоммиченным файлом; AC1 (coverage-baseline) недоказан прогоном ветки, но блокер внешний и уже заведён; ruff-долг scripts/+tests_backend/ шире объявленного include, но вне CI-скоупа; golden-расхождений на самом деле 8, не 4, но все вне скоупа #42 docs/images/screenshots.json capture.mjs validate.yml tests_backend/test_backend_quality.py
#42 CODE-REVIEW-42-r6.md code · r6 🟡 жёлтый 0 1 Mypy strict (блок 3, AC4) не имеет механизма исполнения в CI — только текстовый контрак…; 1. pyproject.toml [tool.ruff] include перечисляет scripts/.py и tests_backend//.py нара… validate.yml mutation-gate.yml const.py projection.py plans.py scripts/gate-reuse.mjs tests_backend/test_validation.py scripts/process-gate.mjs
#39 SPEC-REVIEW-39-r1.md spec · r1 🟡 жёлтый 0 4 нет обязательных продуктовых разделов §7.1 «сценарий» и «что человек увидит»; i18n-раздел не перечисляет ключи, DoR §2.5 не закрыть; нет разделов «Риски» и «Release-артефакты», обязательных по §7.1; AC4 объединяет два разных момента наступления hard без единого UI-контракта docs/specs/039-large-backdrops.md
#39 SPEC-REVIEW-39-r2.md spec · r2 🟡 жёлтый 0 2 — —
#39 SPEC-REVIEW-39-r3.md spec · r3 🟢 зелёный 0 0 — —
#39 CODE-REVIEW-39-r1.md code · r1 🟡 жёлтый 0 3 отмена гард-диалога во время busy не отменяет применение; «одно число, один источник» нарушено для HARD_DIMENSION; AC8 (EXIF-ориентация) не доказан ни тестом, ни явной записью; AC3/AC9 в ТЗ помечены «паритет-юнит», а по факту паритет base64 (b64ParityWithLegacyLoo… src/backdrop-pick.ts src/hp-dialog.ts demo/serve.mjs backdrop-pick.ts backdrop-probe.ts PROCESS.md docs/TESTING.md demo/smoke_backdrop_guard.mjs
#39 CODE-REVIEW-39-r2.md code · r2 🟢 зелёный 0 0 два из трёх новых stillCurrent()-чеков не имеют собственного мутанта src/backdrop-pick.ts src/backdrop-probe.ts smoke_backdrop_guard.mjs
#33 SPEC-REVIEW-33-r1.md spec · r1 🟡 жёлтый 0 3 статус implemented не существует ни в перечислении, ни в каноне; 4 из 7 «const-деклараций фронта» для parity-теста не существуют; AC6 описывает несуществующее поведение как «расширение теста» scripts/config-field-registry.mjs docs/CONFIG-COMPATIBILITY.md houseplan-card.ts houseplan-editor-runtime.ts CONFIG-COMPATIBILITY.md src/logic.ts src/types.ts src/plan-optimizer.ts
#33 SPEC-REVIEW-33-r2.md spec · r2 🟢 зелёный 0 0 — —
#33 CODE-REVIEW-33-r1.md code · r1 🟡 жёлтый 0 3 AC7-тест не может поймать то, для чего он написан; Дубликат записи в обоих CHANGELOG и в ARCHITECTURE.md; config-audit.mjs расширил exit-code 3 за пределы согласованного контракта, и для decisi… test/config-schema-parity.test.mjs scripts/config-schema-manifest.json scripts/config-schema.json src/houseplan-card.ts config-schema.json docs/CHANGELOG.md docs/CHANGELOG.ru.md docs/ARCHITECTURE.md
#33 CODE-REVIEW-33-r2.md code · r2 🟢 зелёный 0 0 AC6 не имеет штатного регрессионного теста на изолированные decision-required/drop-on-v… test/config-audit.test.mjs oldest-supported.json
#32 SPEC-REVIEW-32-r1.md spec · r1 🟡 жёлтый 0 1 DoR-пункт «влияние на производительность и бюджеты названо» не закрыт, хотя задача доба… docs/specs/032-unified-danger-confirmation.md hp-confirm.ts AGENTS.md docs/specs/337-lazy-editor-chunk.md bundle-budget.mjs
#32 SPEC-REVIEW-32-r2.md spec · r2 🟢 зелёный 0 0 — —
#32 CODE-REVIEW-32-r1.md code · r1 🟡 жёлтый 1 0 миграция ломает существующие смоки: 2 дают неверный вердикт, 3 виснут навсегда; шесть старых односложных ключей i18n остались без потребителей demo/smoke_free_walls.mjs demo/smoke_registryless_opening.mjs demo/smoke_binding_picker.mjs demo/smoke_hidden_flag.mjs demo/smoke_optional_space_model.mjs smoke_lock_action.mjs smoke_lock_invariant.mjs smoke_saved_plans.mjs
#32 CODE-REVIEW-32-r2.md code · r2 🟢 зелёный 0 0 из r1 — статус: снимаю решением ревьюера, с записью test/i18n.test.mjs
#29 SPEC-REVIEW-29-r1.md spec · r1 🟡 жёлтый 0 2 исчезновение призрачного показа скрытых/HA-disabled маркеров на плане не названо как пр…; устаревающая строка i18n не включена в план обновления docs/specs/029-device-inbox-lifecycle.md docs/FILTERING.md docs/USER-GUIDE.ru.md demo/smoke_hidden_flag.mjs src/i18n/ru.json src/i18n/en.json
#29 SPEC-REVIEW-29-r2.md spec · r2 🟢 зелёный 0 0 риск в §18 ссылается не на тот AC docs/specs/029-device-inbox-lifecycle.md
#29 CODE-REVIEW-29-r1.md code · r1 ⚪ — 1 1 demo/smoke_editor_tabs.mjs сломан этим диффом (High, в скоупе); «комната» в каталоге — это имя HA-зоны, а не название комнаты плана (Medium, в скоупе); DeviceInboxRow.canOpenHa — мёртвое поле (Low) demo/smoke_editor_tabs.mjs AGENTS.md src/houseplan-card.ts src/device-inbox.ts docs/USER-GUIDE.ru.md houseplan-card.ts
#29 CODE-REVIEW-29-r2.md code · r2 🟢 зелёный 0 0 — —
#20 SPEC-REVIEW-20-r1.md spec · r1 🟢 зелёный 0 0 влияние на touch не названо отдельной строкой PROCESS.md docs/TOUCH-SUPPORT.md
#20 CODE-REVIEW-20-r1.md code · r1 🟢 зелёный 0 0 AC7 для контурной (не partition) стены доказан только чтением кода, не тестом test/physical-geometry.test.mjs demo/smoke_glow.mjs src/houseplan-card.ts test/houseplan-runtime-contract.test.mjs