# Проверка SLM > Граница автоматической проверки и архитектурного ревью SLM. ## Автоматическая проверка Проект, заявляющий соответствие SLM, сопоставляет физические пути с SLM root, слоями, модулями, Groups, вложенными модулями, публичными фасетами, точками входа `app` и ресурсами `shared`. Такое сопоставление задаётся стайлгайдом или конфигурацией проверки и не изменяет нормативный смысл сущностей. Каждое правило класса `A` должно быть реализовано проверкой проекта и блокировать её при нарушении. SLM не навязывает конкретный инструмент. Скрипт `draft-rules.js` проверяет только целостность документов: формат и уникальность кодов, ссылки и наличие тематических упоминаний. Он не проверяет архитектуру приложения. Актуальный список правил скрипт получает из [канонического реестра](../rules/registry.md). ## Архитектурное ревью Правила класса `R` проверяются вручную. Статический анализ может обнаружить подозрительный код, но не способен окончательно определить: - ответственность и её владельца; - связность ответственности модуля; - соответствие кода роли слоя; - необходимость экспортов публичного API; - область жизни ресурса и достаточность очистки; - наличие самостоятельной границы у компонента, группы или сегмента. ## Проверка фасетов Автоматическая проверка сопоставляет публичные пути модуля с фасетами `index`, `client`, `browser` и `server`, запрещает остальные внешние пути и проверяет их runtime-импорты и реэкспорты, включая транзитивные. Для проверки сред инструмент различает runtime imports, type-only imports и dynamic imports. Окончательное решение о соответствии экспортируемого кода назначению фасета принимается на ревью. На ревью проверяется: - экспортирует ли `index` только универсальные типы и runtime-код; - остаётся ли `client` совместимым с server prerender и browser hydration; - достигается ли `browser` только через dynamic boundary с отключённым SSR; - остаётся ли `server` недоступным через `index`, `client` и `browser`; - существует ли каждый специализированный фасет ради реального потребителя; - не дублируется ли один runtime-export между фасетами. Название файла, директива `use client`, tree shaking или локальная проверка `typeof window` сами по себе не доказывают совместимость кода со средой выполнения. ## Проверка слоя domains На ревью определяется: - соответствует ли ответственность модуля предметной роли слоя `domains`; - не разделена ли одна область на соседние модули без самостоятельных владельцев; - не объединены ли в одном модуле несвязанные предметные области; - остаются ли страницы, маршруты и UI нескольких предметных ответственностей в `compositions`; - остаются ли самостоятельные технические сервисы без предметной модели в `infra`.