Files
h-school/docs/phases/16-sight/86-rooms-rules.md
T
Leonid PershinandCursor 02156e4491
ci / server (push) Failing after 3m43s
ci / client (push) Successful in 22s
Register slice 16 sight: inspect images and a denser linked catalog.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 20:46:33 +03:00

54 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Фаза 86. Комнаты, вещи, правила
## Зависимости
- [Фаза 85](85-wardrobe-prompts.md)
- [Фаза 37](../07-inventory/37-school-rules.md)
- [Фаза 66](../11-events/66-scene-prompt.md) (сборщик fill уже есть; не блокер прозы на RoomDef)
## Зачем
Место и fill умеют сказать кадру то же, что игрок видит в панели. Две ручки правил отбирают
новые слои, без магазинов и без «надеть с карточки».
## Задачи
- [ ] Непустой английский `prompt` у ванильных мест из [`sight.md`](../../design/16-sight/sight.md)
(библиотека, комп. класс, зал, столовая, медкабинет, кабинет директора, учительская,
секретарь, техник, меняльные, двор, холл, коридор, туалет — умывальная). `Stairwell` /
этажи / корпуса без текста молчат. `Chair` молчит
- [ ] Fill-вещи `PottedPlant`, `WallPoster`, `NoticeBoard`, `GymMat` с прозой; слоты на
соответствующих RoomDef и/или дефолтной карте
- [ ] Портрет человека в классе после 66 включает растение/плакат, если они в fill и вес прошёл
бюджет
- [ ] `DressRulePair`: поля аксессуаров (`free`/`none`) и обуви (`free`/`uniform`). Дефолт `free`.
Сейв без полей поднимается в `free`, файл сам не переписываем до записи правил
- [ ] Уместность: `none` → слой Accessory в школе — issue; `uniform` → кеды/не-school цвет обуви
в everyday — issue. PE не требует туфли. Утро/pending как у формы: с завтра
- [ ] HTTP GET/POST `dress-rules` отдаёт и принимает новые поля; неизвестный код — `400`. Вкладка
«Правила»: два комбобокса на роль рядом с формой/цветом. Речь не трогать. Строки `t(...)`
- [ ] Сокет не бампить
## Тесты, без которых фаза не закрыта
- [ ] Каталог: у `Library` и `GymHall` непустой prompt; у `Chair` пустой
- [ ] Дефолтная карта/слоты: в зале есть `GymMat` или эквивалентный слот; в классе — растение или
плакат
- [ ] GET правил новой школы — accessories/shoes `free` на обе роли
- [ ] POST `none` сегодня не снимает ремень до следующего рабочего утра; после утра на учениках
в школе нет слоя Accessory
- [ ] POST `uniform` → после утра на учениках в everyday нет `Sneakers`
- [ ] Неизвестный код оси — `400`
- [ ] Vitest: смена нового комбобокса не зовёт API до «Применить»
- [ ] Сборка сцены человека (как 66): fill с прозой попадает в prompt, молчаливый стул — нет
## Критерий готовности
- Выставить «без аксессуаров» и «форма обуви», промотать на утро — шарфов нет, туфли школьные
- «Показать промпт» ученика в классе может содержать растение или плакат
- Отфильтрованные тесты: Content, Simulation/Appropriateness, AppHost dress-rules, Vitest панели
## Стоп
Не HTTP картинки узла. Не кнопку на панели локации. Не групповое фото. Не лифт лиц.