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