Свобода выбора из многообразия
Человек произносит намерение словом. Машина не приказывает — машина собирает варианты среды из примитивов и честно показывает, где среда урезана, где чего не хватает, и что многообразие подсказывает сверх словаря. Жить средой или не жить — решает человек.
Шаг 1 · НАМЕРЕНИЕ
Шаг 2 · МНОГООБРАЗИЕ — что среда умеет и из чего строит
Способности этой среды — включай честно
Реестр примитивов — кирпичи сред
Шаг 3 · ПРЕДЛОЖЕНО — машина собрала, человек смотрит
Эмерджентность · СВОЁ СЛОВО БЕЗ ПРАВКИ ЯДРА
Словарь комнаты расширяется честно: назови слово деятельности, отметь примитивы — и у дома появится режим, которого не было. Ядро движка не тронуто.
Под капот — законы, доступность, расширение
СВОД ЗАКОНОВ ДОМА — как живёт эта комната
| Закон | В комнате ·29 |
|---|---|
I-01 ЧЕЛОВЕК РЕШАЕТ | движок возвращает варианты со статусом «предложено»; кнопка «Жить этой средой» — единственный путь из предложения в жизнь; машина не имеет кнопки «включить сама». |
I-04 FALLБЭК ВИДЕН | выключишь способность среды — примитив не исчезнет тихо: карта честно покраснеет и назовёт причину «среда урезана: что именно и чего не хватает». |
I-06 ПАМЯТЬ — РЕШЕНИЕ | по умолчанию память temporary; «вечная» ставится только галочкой человека; сохранение и стирание — явные кнопки, машина ничего не пишет сама. |
I-09 БЕЗ СКРЫТОЙ ВЛАСТИ | неизвестное слово не выдумывается: движок отвечает «НАМЕРЕНИЕ_НЕИЗВЕСТНО», и комната предлагает объявить слово честно. |
Доступность — аудит по WCAG 2.2
| Критерий 2.2 | Как закрыт |
|---|---|
| 2.4.7 Focus Visible / 2.4.11 Focus Not Obscured | фокус — золотая обводка с отступом на всех контролах; шапка не перекрывает фокус (sticky с прозрачным фоном, offset −4px только у капота внутри контейнера). |
| 2.5.8 Target Size (минимум) | все интерактивные цели ≥ 24px, основные — 44px: слова-намерения, чекбоксы, кнопки. |
| 2.5.7 Dragging Alternatives | перетаскивания нет вовсе: всё собирается выбором, не мышцей. |
| Нативная семантика | fieldset+legend для намерения, нативные чекбоксы, aria-live для предложений и журнала, сцена aria-hidden с текстовой альтернативой рядом. |
| 2.3.3 Animation from Interactions | орбиты останавливаются при prefers-reduced-motion; стекло уплотняется при prefers-reduced-transparency. |
Мировая практика 2026, взятая в дом
View Transitions между дверями дома — нативные @view-transition правила в мосту
singulyar-design-v3.css (деградирует тихо: браузер без поддержки просто открывает дверь).
Speculation Rules сознательно не взят: сервис-воркер дома и так открывает двери из кэша мгновенно —
чужой механизм поверх собственного ядра не нужен.
Расширение многообразия — для инженера
// примитив, который расширяет чужие слова (EMERGENCE, §37 ТЗ):
объявиПримитив({
имя: 'проектор',
требует: ['экран'],
даёт: ['свет', 'сцена'],
представления: ['холст'],
транспорты: [],
расширяет: ['посмотрим'] // машина предложит его к этому слову
}); // ядро движка не тронуто — такт v1.37.0 доказал 12/12
Честные границы
Комната — прототип слоя композиции (prototype_only по ГОТОВНОСТЬ.manifest): она собирает манифесты сред и показывает их вживую, но не поднимает связь и звонки сама — это двери ·22 и ·23. Мульти-устройство остаётся в known_nonproduction: среда одной личности живёт на устройстве человека.