Merge branch 'review/slice-3-recheck'
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -42,3 +42,48 @@
|
||||
Исправлено:
|
||||
|
||||
- `docs/protocol.md` не упоминал `?lang=` у hire/subjects, хотя клиент его шлёт.
|
||||
|
||||
## Перепроверка среза 3. Штат
|
||||
|
||||
- **Фазы:** 10–13
|
||||
- **Проверен на:** `a0f0152`, 2026-08-20
|
||||
- **Пути:** `src/HSchool.People/Staffing.cs`, `src/HSchool.People/ApplicantPool.cs`,
|
||||
`src/HSchool.Content/SubjectDef` и `defs/staffing`, `src/HSchool.Server/Api/SchoolEndpoints.cs`
|
||||
(staffing/hire/subjects), `src/HSchool.Server/mods/core/defs/{subjects,positions,rooms,staffing,traits}`,
|
||||
`src/HSchool.Client/src/ui/{managementPanel,mapEditor,applicantsDialog}.ts`,
|
||||
`src/HSchool.Client/src/net/api.ts`, `docs/protocol.md` (staffing),
|
||||
`tests/HSchool.People.Tests/{StaffingTests,ApplicantPoolTests}.cs`,
|
||||
`tests/HSchool.AppHost.Tests/StaffingApiTests.cs`,
|
||||
`tests/HSchool.Content.Tests/VanillaCoreTests.cs`,
|
||||
`src/HSchool.Client/src/ui/{managementPanel,mapEditor}.test.ts`
|
||||
- **Итог:** перепроверка после дрейфа с `bdb1253`. Обещания фаз 10–13 целы. Дописаны 3 теста;
|
||||
в `protocol.md` у соискателя — все навыки, не «три сильных».
|
||||
|
||||
Что подтверждено:
|
||||
|
||||
- `PETeacher` нет; кабинет — `defaultSeats`, без учительской должности; слоты у столовой,
|
||||
медкабинета, кабинета директора и библиотеки. Неизвестный навык роняет каталог.
|
||||
Старт — суббота 31 марта 2012. `GET /api/catalog` отдаёт предметы.
|
||||
- Пул 32, детерминизм по сиду и неделе, частичное обновление, устойчивый размер, навыки и черты
|
||||
в цене часа, пустой штат при полных местах, соискатель вне ростера до найма.
|
||||
- Фонд = цена часа × нагрузка, не ниже ставки; часы делятся; `MaxWeeklyHours` не запрещает
|
||||
назначение. `GET /staffing` читает снимок; наём и назначение — мейлбокс с `TaskCompletionSource`.
|
||||
Предел 100 000 проверяется в момент действия. `PrimarySchool` на ванили — трое (`teachersShort`).
|
||||
- Экран: Обзор / Управление, строка денег, непокрытые, окно пула, штат, назначение с карточки,
|
||||
отказ по пределу текстом, `t(...)`.
|
||||
|
||||
Дрейф с прошлой проверки (не регрессия среза 3):
|
||||
|
||||
- `ApplicantPool` берёт имена страны, не набор имён; новым соискателям назначается ориентация.
|
||||
- Во «Управлении» рядом вкладка правил одежды и речи; пул по-прежнему отдельным окном.
|
||||
|
||||
Дописано:
|
||||
|
||||
- `VanillaCoreTests` — у столовой, медкабинета, кабинета директора и библиотеки слоты на месте.
|
||||
- `mapEditor.test.ts` — у кабинета поле «мест», у столовой именованные слоты, не доска.
|
||||
- `ManagementPanel` — строка денег; назначение и снятие предмета с карточки нанятого.
|
||||
|
||||
Исправлено:
|
||||
|
||||
- `docs/protocol.md` всё ещё писал, что у соискателя в `GET /staffing` «три сильных навыка»;
|
||||
API давно отдаёт все навыки (окно пула сравнивает целиком).
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
| --- | --- | --- |
|
||||
| Срез 1. Оболочка и карта | `d087486` | [01-shell](01-shell/reviewed.md) |
|
||||
| Срез 2. Люди | `8108508` | [02-people](02-people/reviewed.md) |
|
||||
| Срез 3. Штат | `bdb1253` | [03-staffing](03-staffing/reviewed.md) |
|
||||
| Срез 3. Штат | `a0f0152` | [03-staffing](03-staffing/reviewed.md) |
|
||||
| Срез 4. Расписание | `01ef277` | [04-schedule](04-schedule/reviewed.md) |
|
||||
| Срез 5. Жизнь школы | `cbe739a` | [05-ai](05-ai/reviewed.md) |
|
||||
| Срез 6. Фундамент | `cbe739a` | [06-foundation](06-foundation/reviewed.md) |
|
||||
|
||||
+3
-3
@@ -690,9 +690,9 @@ one.
|
||||
Applicants here are the same people as in `saves/{id}.people.json`. A parent keeps the same
|
||||
id on the roster; hiring them sets `isStaff` on that person and does not create a second
|
||||
entity. Generated candidates (`aN.p0`) join the roster only when hired. `skills` on an
|
||||
applicant are the three strongest, for the management list; the card lists every skill they
|
||||
have, not the three strongest. `positions` and `subjects` are the school's catalog, so the hire and assign pickers
|
||||
do not need a second request.
|
||||
applicant are every skill they have (the applicant window compares the whole row, not a
|
||||
top-three summary); the person card lists the same set. `positions` and `subjects` are the
|
||||
school's catalog, so the hire and assign pickers do not need a second request.
|
||||
|
||||
`GET /api/schools/{id}/people/{personId}` also opens a card for someone who is only in the
|
||||
applicant pool (needs are the frozen snapshot — they are not in the World yet). Unknown
|
||||
|
||||
Reference in New Issue
Block a user