Files
houseplan-card/docs/specs
Codex e57e1d920c docs: close M1 and M2 from the spec review of #220
M1: the spec now carries the touch classification TOUCH-SUPPORT.md asks every
editor feature for — "Touch editor: not exposed", with the reason it is a
decision rather than an omission.

M2: the first draft denied adding a config field in one section while planning
to store an anchor in settings in another. Resolved by dropping the anchor:
reordering materialises the placement that was implicit, giving those markers
an explicit space in the same write. No new field, no schema change, and the
marker stays exactly where the user saw it.

Issue: #220
User-Visible: no
2026-08-20 23:20:31 +03:00
..
2026-08-09 21:51:33 +03:00
2026-08-09 21:51:33 +03:00
2026-08-09 21:51:33 +03:00
2026-08-09 21:51:33 +03:00
2026-08-09 21:51:33 +03:00
2026-08-20 23:08:07 +03:00

Спецификации задач

Актуально на 2026-08-19.

GitHub Issues и GitHub Projects (v2) остаются единственным каноническим backlog проекта. Этот каталог содержит развёрнутые ТЗ: каждое ТЗ ссылается на issue, а issue — на соответствующий файл. Статус, приоритет и факт завершения меняются только в GitHub.

Статусы ТЗ:

  • готово к реализации — продуктовые решения зафиксированы, остаётся техническая работа;
  • черновик решения — в ТЗ дана рекомендация, но перед реализацией требуется принять отмеченные продуктовые решения;
  • в реализации — работа уже ведётся в рамках текущего этапа;
  • реализовано — ТЗ сохранено как проверяемый acceptance contract.

Обязательные release-артефакты номерного ТЗ

Если задача меняет пользовательское поведение, её ТЗ обязано явно перечислить:

  • записи в docs/CHANGELOG.md и docs/CHANGELOG.ru.md;
  • затронутую пользовательскую документацию;
  • требуемые screenshots/golden и способ их review, если меняется визуал;
  • release/performance/security artifacts, если они входят в acceptance gate.

Отсутствие этого раздела не означает, что документация необязательна. Для чистого refactoring ТЗ должно прямо зафиксировать отсутствие пользовательских изменений и перечислить технические доказательства безопасного поведения.

P1

Issue ТЗ
#6 Vacuum XCME path segments 006-vacuum-xcme-path.md
#7 Valetudo room outlines 007-vacuum-valetudo-room-outlines.md
#8 Vacuum support docs and XCME hint 008-vacuum-support-docs-xcme-hint.md
#27 External vacuum source picker 027-vacuum-external-source-picker.md
#28 Room View card 028-room-view-card.md
#29 Device inbox lifecycle 029-device-inbox-lifecycle.md
#30 Dialog information architecture 030-dialog-information-architecture.md
#31 View accessibility 031-view-accessibility.md
#32 Unified danger confirmation 032-unified-danger-confirmation.md
#33 Config schema lifecycle 033-config-schema-lifecycle.md
#34 Frontend decomposition 034-frontend-decomposition.md
#35 Current UX documentation 035-current-ux-docs.md
#50 Экспорт и импорт конфигурации 050-config-export-import.md
#58 Vacuum integration coverage — Stage 1 058-vacuum-stage1.md
#89 Опциональный объёмный 2.5D/изометрический вид 089-isometric-view.md
#89 Этап 1: объёмный вид за флагом Labs 089-isometric-view-stage1.md
#98 Единая система пульсаций и активностей устройства 098-device-pulse-system.md
#131 Полный первый кадр View у read-only-пользователя 131-readonly-cold-start.md
#138 Автозамыкание комнаты по существующей стене 138-adjacent-room-autoclose.md
#146 Четырёхфазный фон «Следует за Солнцем» 146-four-phase-sun-background.md
#156 Регрессии Full Performance перед v1.64.0 stable 156-full-performance-regressions.md
#164 Активный цикл стиральной машины должен быть жёлтым 164-washer-active-cycle.md
#166 Солнечные лучи зеркально учитывают направление севера 166-sun-north-rotation.md
#167 Экспорт «только планировка» 167-plan-only-export.md
#170 HA-устройство не привязывается к комнате без HA-зоны 170-room-without-area.md
#179 Новый визуальный язык маркеров устройств 179-device-icons-redesign.md
#210 Фиксированное пространство экземпляра карточки 210-fixed-floor-card.md
#211 Визуальное соответствие маркеров дизайн-пакету #179 211-device-icons-visual-parity.md
#217 Внешняя рамка Text-маркера должна быть капсулой 217-text-shell-outline.md
#218 Floating-point шум комнаты не гасит Glow пространства 218-glow-floor-geometry.md
#219 Единая палитра замков и glyph на оранжевых подложках 219-lock-orange-palette.md
#205 Продолжение следа после короткой остановки пылесоса 205-vacuum-trail-resume-grace.md
#220 Порядок пространств перетаскиванием вкладок 220-space-tab-reorder.md
#226 Entity-marker не дублируется родительским HA-устройством 226-entity-parent-dedup.md
#223 Optimize канонизирует координаты без floating-point шума 223-optimize-coordinate-canonicalization.md

P2

Issue ТЗ
#10 Roomba live position 010-vacuum-roomba-live-position.md
#11 Vacuum source health 011-vacuum-source-health.md
#12 Room cleaning highlight 012-vacuum-room-cleaning-highlight.md
#13 Golden open context tray 013-golden-open-context-tray.md
#19 Additive Glow blending 019-glow-additive-blending.md
#20 Glow through open doors 020-glow-open-door-spill.md
#21 Safe color CSS variables 021-color-css-injection.md
#36 Room Glow override 036-room-glow-override.md
#37 Room scale system 037-room-scale-system.md
#38 Icon rule builder 038-icon-rule-builder.md
#39 Large backdrops 039-large-backdrops.md
#40 Floors/Areas onboarding 040-floor-area-onboarding.md
#41 Keyboard object editing 041-keyboard-object-editing.md
#42 Backend engineering quality 042-backend-engineering-quality.md
#43 Private support report 043-private-support-report.md
#44 Filtering/grouping policy 044-filter-grouping-policy.md
#51 Custom decor images 051-custom-decor-images.md
#52 Dimensions in View 052-view-dimensions.md
#54 Zigbee topology overlay 054-zigbee-topology-overlay.md
#55 Independent Glow overlay 055-independent-glow-overlay.md
#56 Static room color 056-static-room-color.md
#68 Подсказки к настройкам 068-help-affordance.md
#75 + #76 Единый поток размещения проёмов 075-076-opening-placement-flow.md
#84 Источник «Всегда» без сущности HA + #88 ведущая сущность 084-passive-forced-light-sources.md
#90 Управляемый бейдж со значением 090-device-value-badge.md
#94 Универсальное действие «Переключить состояние» 094-universal-state-toggle.md
#101 Плавный переход View ↔ редакторы 101-view-editor-transition.md
#107 Переключение виртуального источника света «Всегда» 107-virtual-light-toggle.md
#113 Optional-контракт SpaceModel 113-optional-space-model.md
#117 Registry-less entity у проёма 117-registryless-opening-entity.md
#122 Изометрический режим Stage 2: скрытый режим и визуальная полировка 122-isometric-stage2.md
#123 Split из вершины не меняет наружную геометрию стен 123-corner-split-wall.md
#132 Проёмы в независимых стенах (+ bug #185) 132-partition-openings.md
#137 Узлы и линии привязки в редакторе Плана 137-plan-snap-overlay.md
#141 Бесшовные стыки перегородок и открытых контуров 141-wall-junctions.md
#157 Тип проёма «Открытый проём» 157-open-passage.md
#150 Точная геометрия коллинеарного перепада толщины 150-wall-thickness-transition.md
#172 Нулевой Split-разделитель не получает ложную толщину 172-zero-divider-taper.md
#173 Единый инструмент рисования стен и предложение комнаты по замыканию 173-unified-wall-tool.md
#174 Связанный виртуальный источник следует реальному контроллеру 174-linked-virtual-light-controller.md
#178 Выбор сущности для действия «Переключить состояние» 178-toggle-entity.md
#197 Один junction-патч не гасит кладку всего плана 197-junction-patch-fail-dark.md
#204 Честные defaults границ и имён при создании пространства 204-space-create-display-defaults.md
#201 Наследование толщины для атомарного участка стены 201-atomic-thickness-lookup.md
#203 Выключение названий скрывает все подписи комнат 203-hide-room-names.md
#186 Безопасный остаток стены у торцов партиционного проёма 186-partition-opening-jamb-margin.md

P3

Issue ТЗ
#198 Optimize очищает изолированный микро-интервал толщины 198-optimize-micro-interval.md
#103 Состояния в Toggle confirmation 103-toggle-confirmation-state.md
#200 Одинаковая геометрия подписи комнаты в View и Plan editor 200-room-label-parity.md

P3

Issue ТЗ
#57 Единый выбор цвета и прозрачности 057-color-opacity-picker.md
#180 Единый picker во всех местах выбора цвета 180-all-color-call-sites.md

Правило актуализации

При изменении продуктового решения сначала обновляется соответствующее issue, затем ТЗ. Реализация не считается завершённой только по наличию кода: нужны выполненные acceptance criteria, предусмотренная ТЗ проверка и актуальный статус Project v2.