Files
h-school/docs/phases/31-dress-generator.md
T
Leonid PershinandCursor 37501c506a Dress people at generation from a separate apparel stream.
Wardrobes live on the person in people.json: everyday layers, textbooks per parallel, and chance-based bags from catalog data. Hauling and the carry cap are defs, not constants. The golden roster gains an items column; later family members shift because Hauling consumes extra appearance rolls. Old saves without items are dressed on load.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 03:24:54 +03:00

3.4 KiB

Фаза 31. Генератор одевает

Зависимости

Зачем

Люди рождаются одетыми. Гардероб детерминирован и лежит на человеке в people.json.

Задачи

  • Экземпляр вещи на человеке: def, color, condition (1), место (worn / bag / locker / home), для учебника — subject
  • Генератор одевает учеников, сотрудников, родителей и соискателей от семейного сида: слои без пересечения, пол, возраст, дефолтные правила (обычная форма, без яркого на теле)
  • Учебники — по одному на предмет параллели ученика; в сумке пока могут лежать все, разнос «сегодняшние vs шкафчик» — в фазе 33/35
  • Портфель, телефон, бутылка — с возрастом и шансом из данных, не из константы в генераторе
  • Навык Hauling (always); предел массы в дефе правил; на карточке несёшь/можешь. Перегруз ходьбу не трогает; в сумку сверх предела генератор не кладёт
  • GET .../people/{id} отдаёт надетое и ношу; список людей — нет
  • Карточка пока без вкладок: секции «Одежда» и «Ноша» в том же свитке
  • people.json пишется при создании и наборе; золотой отпечаток обновляется в этом коммите с объяснением, что изменилось
  • Строки через t(...) / локали каталога

Тесты, без которых фаза не закрыта

  • Тот же сид, страна, карта и язык → те же id вещей, цвета и места
  • На одном слое не две вещи; платье занимает низ и верх сразу
  • Юбка не выдаётся мужчинам на тело; яркий верх не выдаётся на тело при дефолтных правилах
  • Ученик параллели с математикой имеет учебник этого предмета
  • Родитель и соискатель одеты
  • Масса в сумке ≤ предела
  • Старый people.json без инвентаря поднимается: генератор одевает при загрузке и пишет файл (как пул соискателей в фазе 11)

Критерий готовности

  • Открыть карточку ученицы: слои заполнены, цвет виден, ноша с числом
  • Повтор create с сидом даёт ту же рубашку
  • dotnet test и npm test / build проходят

Стоп

Не считать погоду. Не изнашивать. Не переодевать по ситуации. Не заводить вкладки карточки.