mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-28 19:01:34 +00:00
35 KiB
35 KiB
Индекс ревью
Генерируется node scripts/reviews-index.mjs (#635) — не редактировать руками. Документов: 163, issue: 76. Вердикт: 🟢 зелёный · 🟡 жёлтый · 🔴 красный · ⚪ не распознан (свободная форма старых документов). H/M — число High/Medium по строке вердикта или заголовкам находок. Файлы — пути, названные в находках; ищите по имени файла: grep form-kit INDEX.md.
| Issue | Документ | Этап · раунд | Вердикт | H | M | Находки | Файлы |
|---|---|---|---|---|---|---|---|
| #687 | SPEC-REVIEW-687-r1.md | spec · r1 | 🟢 зелёный | 0 | 0 | — | — |
| #687 | CODE-REVIEW-687-r1.md | code · r1 | 🟢 зелёный | 0 | 0 | — | — |
| #686 | CODE-REVIEW-686-r1.md | code · r1 | 🟢 зелёный | 0 | 0 | — | — |
| #684 | CODE-REVIEW-684-r1.md | code · r1 | 🟢 зелёный | 0 | 0 | — | — |
| #683 | SPEC-REVIEW-683-r1.md | spec · r1 | 🟢 зелёный | 0 | 0 | — | — |
| #683 | CODE-REVIEW-683-r1.md | code · r1 | 🟡 жёлтый | 0 | 1 | AC13 не показывает «пользовательские цвета» в golden | demo/golden/matrix.mjs demo/golden/harness.mjs demo/smoke_stairs.mjs plan.styles.ts |
| #683 | CODE-REVIEW-683-r2.md | code · r2 | 🟢 зелёный | 0 | 0 | — | — |
| #682 | CODE-REVIEW-682-r1.md | code · r1 | 🟡 жёлтый | 0 | 1 | систематически битые относительные ссылки в перенесённых документах; два архивных ТЗ без документированной причины остаться | docs/reviews/X.md legacy/reviews/v1.68.0/SPEC-REVIEW-223-r1.md legacy/reviews/v1.77.0/SPEC-REVIEW-593-r3.md legacy/specs/262-readd-child-entity-after-device-delete.md legacy/reviews/v1.68.0/SPEC-REVIEW-262-r1.md docs/reviews/CODE-REVIEW-635-r1.md LIGHT.md scripts/support-relay/README.md |
| #682 | CODE-REVIEW-682-r2.md | code · r2 | 🟢 зелёный | 0 | 0 | — | — |
| #681 | CODE-REVIEW-681-r1.md | code · r1 | 🟢 зелёный | 0 | 0 | — | — |
| #680 | CODE-REVIEW-680-r1.md | code · r1 | 🟢 зелёный | 0 | 1 | вне скоупа (заведён отдельный issue) | docs/UX-MODES.md docs/TOUCH-SUPPORT.md docs/WALL-THICKNESS.md UX-MODES.md TOUCH-SUPPORT.md src/houseplan-card.ts src/houseplan-editor-runtime.ts src/writer-fixed-point.ts |
| #679 | CODE-REVIEW-679-r1.md | code · r1 | 🟢 зелёный | 0 | 0 | — | — |
| #678 | CODE-REVIEW-678-r1.md | code · r1 | 🟢 зелёный | 0 | 0 | — | — |
| #677 | CODE-REVIEW-677-r1.md | code · r1 | 🟢 зелёный | 0 | 0 | раздел «Environment (cowork sessions)» снят сверх заявленного объёма ТЗ | docs/DEVELOPMENT.md STATUS.md DEVELOPMENT.md PROCESS.md |
| #676 | SPEC-REVIEW-676-r1.md | spec · r1 | 🟡 жёлтый | 0 | 2 | AC8 не называет проверку двух из трёх ветвей подавления подсказки; риск «рамка перехватывает события под другим инструментом» не привязан ни к одному AC; не задан tie-break для равного протяжки по обеим осям (снимаю сам) | src/stairs-editor-model.ts stairs-view.ts demo/smoke_stairs.mjs src/furniture.ts |
| #676 | SPEC-REVIEW-676-r2.md | spec · r2 | 🟡 жёлтый | 0 | 1 | AC8/К8 перечисляют четыре ветви stairTargetState, а не пять; состояние self выпадает из… | src/stairs-editor-model.ts docs/STAIRS.md src/stairs.ts stairs-view.ts |
| #676 | SPEC-REVIEW-676-r3.md | spec · r3 | 🟢 зелёный | 0 | 0 | — | — |
| #676 | CODE-REVIEW-676-r1.md | code · r1 | 🟢 зелёный | 0 | 0 | — | — |
| #675 | CODE-REVIEW-675-r1.md | code · r1 | 🟢 зелёный | 0 | 0 | — | — |
| #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 | — | — |
| #668 | SPEC-REVIEW-668-r1.md | spec · r1 | 🟡 жёлтый | 0 | 1 | AC4 смешивает две проверки под одним недоопределённым методом доказательства; пересечение с существующим гейтом check-docs.mjs | check-docs.mjs scripts/check-docs.mjs |
| #668 | SPEC-REVIEW-668-r2.md | spec · r2 | 🟢 зелёный | 0 | 0 | — | — |
| #668 | CODE-REVIEW-668-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 | — | — |
| #659 | CODE-REVIEW-659-r1.md | code · r1 | 🟡 жёлтый | 0 | 1 | AC5 «замер до/после» не закрыт | — |
| #659 | CODE-REVIEW-659-r2.md | code · r2 | 🟢 зелёный | 0 | 0 | — | — |
| #658 | CODE-REVIEW-658-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 | — | — |
| #655 | SPEC-REVIEW-655-r1.md | spec · r1 | 🟢 зелёный | 0 | 0 | — | — |
| #655 | CODE-REVIEW-655-r1.md | code · r1 | 🟡 жёлтый | 0 | 1 | защитный flush_lock в VirtualLightController не имеет собственного доказательства (в ск… | custom_components/houseplan/virtual_lights.py store.py __init__.py |
| #655 | CODE-REVIEW-655-r2.md | code · r2 | 🟢 зелёный | 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 | — | — |