Remove off-queue.md and add new design documentation files including README.md, defs.md, near-term.md, projects.md, runtime.md, people.md, staffing.md, and schedule.md to outline the structure and agreements for the game's design phases.

This commit is contained in:
Leonid Pershin
2026-08-20 12:26:13 +03:00
parent 12cc36b4dd
commit a37a5eb82d
101 changed files with 1015 additions and 921 deletions
+44
View File
@@ -0,0 +1,44 @@
# Журнал ревью
Сводка: [`../reviewed.md`](../reviewed.md). Индекс среза: [`README.md`](README.md).
## Срез 3. Штат
- **Фазы:** 1013
- **Проверен на:** `bdb1253`, 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.ts`, `src/HSchool.Client/src/net/api.ts`,
`tests/HSchool.People.Tests/{StaffingTests,ApplicantPoolTests}.cs`,
`tests/HSchool.AppHost.Tests/StaffingApiTests.cs`,
`src/HSchool.Client/src/ui/managementPanel.test.ts`
- **Итог:** обещания фаз 10–13 целы; дописаны 3 теста; `docs/protocol.md` дополнен `?lang=`
Что подтверждено:
- `PETeacher` нет; кабинеты без учительской должности; места через `defaultSeats`.
Неизвестный навык в предмете роняет каталог. Стартовая дата 31 марта 2012.
- Пул: детерминизм по сиду и неделе, частичное обновление, устойчивый размер, «сильный просит
больше», пустой штат, соискатель вне ростера до найма. Пул 32.
- Фонд оплаты, деление часов, пол ставки, покрытие. `GET /staffing` читает снимок, наём и
назначение — `GameCommand` с `TaskCompletionSource`. `MaxWeeklyHours` не запрещает назначение,
а оставляет предмет непокрытым. `PrimarySchool` на ванили требует трёх учителей (`teachersShort`).
- Экран: деньги, непокрытые, пул, штат, назначение с карточки, отказ по пределу текстом,
всё через `t(...)`.
- Полностью укомплектованная школа влезает в 100 000 впритык (запас 5–13%). Нанять пул целиком
без назначений предела достигает. Раскладка «каждому все предметы» — самая дешёвая, не
«укомплектованная школа».
Дописано:
- `StaffingApiTests.AssigningPastTheCap_IsRejectedWithTheNumbers` — фаза 12 требовала API-тест
на отказ по пределу; единственное место было написано через `if (over.StatusCode == Conflict)`
и проходило при любом исходе.
- `ApplicantPoolTests.ConfidentTraits_AskForMoreAndQuietOnesForLess`
- В `AssignAndUnassign_HonourTheCap_AndReloadKeepsAssignments` — тот же пул с теми же ставками
после перезапуска.
Исправлено:
- `docs/protocol.md` не упоминал `?lang=` у hire/subjects, хотя клиент его шлёт.