# Фаза 56. Слои одной пачкой ## Зависимости Нет. Запреты уже размазаны по четырём тестовым проектам. ## Зачем Инвариант 4 и таблица в [`projects.md`](../design/projects.md) должны ломаться одним красным тестом, а не «забыли дописать пятую копию». Content и Protocol сейчас молчат. ## Задачи - [ ] Проект `tests/HSchool.Architecture.Tests` в solution, `IsTestProject`, без AppHost и без нового NuGet. Ссылки на Protocol, Content, People, Schedule, Ai, Simulation - [ ] Тесты ссылок: каждая библиотека из таблицы в [`craft.md`](../design/craft.md) — этап A - [ ] Тесты исходников: в `src/HSchool.{Protocol,Content,People,Schedule,Ai,Simulation}` нет `DateTime.Now` / `DateTime.UtcNow` - [ ] Удалить копипасты `Assembly_DoesNotReference*` и `Sources_DoNotUseWallClock` из People, Ai, Schedule, Simulation (остальные факты тех файлов не трогать) - [ ] Testing policy в `AGENTS.md`: слои — `HSchool.Architecture.Tests`, не хост - [ ] README: школа не «ещё пустая»; потолок create — слоты игрока, не «шесть» ## Тесты, без которых фаза не закрыта - [ ] Protocol не ссылается на Arch, ASP.NET, Sockets, Content, Simulation - [ ] Content не ссылается на Arch, ASP.NET, Sockets, Protocol, Simulation - [ ] People, Schedule, Ai не ссылаются на Arch, ASP.NET, Sockets - [ ] Simulation не ссылается на ASP.NET и Sockets (Arch — можно) - [ ] Исходники шести библиотек выше не содержат `DateTime.Now` / `DateTime.UtcNow` - [ ] В People/Ai/Schedule/Simulation.Tests больше нет этих двух фактов ## Критерий готовности - `dotnet test tests/HSchool.Architecture.Tests` проходит - Добавить `using System.Net.Http` в `HSchool.Content` — слой красный - Старые проекты тестов без этих фактов по-прежнему собираются ## Стоп Не подключать NetArchTest. Не гонять AppHost. Не резать `SchoolWorker`. Не ссылаться на `HSchool.Server`. Не бампить протокол, не трогать сейв.