imports: # Принятые текущие нарушения (см. комментарий ruleset ниже). Сейчас два, # оба ProjectResource → Service, оба read-only UI-вычисления (ADR-005): # - SupplierSnapshotGuard — расчёт состояния замка источника для UI; # - ProjectRuleMessages — единый текст правил сбора (Эпик 6, баннеры); # перенос в контроллер усложнил бы коллекции без выигрыша. Гейт ловит только # НОВЫЙ дрейф. Регенерация: deptrac analyse --formatter=baseline # --output=deptrac.baseline.yaml. - deptrac.baseline.yaml deptrac: paths: - ./app layers: - name: Controller collectors: [{ type: directory, value: app/Http/Controllers/.* }] - name: Request collectors: [{ type: directory, value: app/Http/Requests/.* }] - name: Resource collectors: [{ type: directory, value: app/Http/Resources/.* }] - name: Middleware collectors: [{ type: directory, value: app/Http/Middleware/.* }] - name: Service collectors: [{ type: directory, value: app/Services/.* }] - name: Job collectors: [{ type: directory, value: app/Jobs/.* }] - name: Console collectors: [{ type: directory, value: app/Console/.* }] - name: Repository collectors: [{ type: directory, value: app/Repositories/.* }] - name: Model collectors: [{ type: directory, value: app/Models/.* }] - name: Mail collectors: [{ type: directory, value: app/Mail/.* }] - name: Rule collectors: [{ type: directory, value: app/Rules/.* }] - name: Exception collectors: [{ type: directory, value: app/Exceptions/.* }] - name: Provider collectors: [{ type: directory, value: app/Providers/.* }] ruleset: # Conservative ruleset — enforces only the architecturally-wrong directions # (inward/upward deps). Whatever current code violates is captured by the # baseline (deptrac.baseline.yaml); this gate then catches only NEW drift. Controller: [Service, Request, Resource, Model, Job, Mail, Repository, Rule, Exception] Middleware: [Service, Model, Exception] Service: [Service, Model, Repository, Job, Mail, Rule, Exception] Job: [Service, Model, Repository, Mail, Exception] Console: [Service, Model, Repository, Job, Mail, Exception] Repository: [Model, Exception] Request: [Rule, Model] Resource: [Model] Rule: [Model] # Mail может зависеть от Service value objects (PreflightResult и аналоги) — # это legit dependency: template needs data DTO от Service для рендера. # Decision: ADR-005 amend 2026-05-29 (incident-followup cleanup). Mail: [Model, Service] Model: [] Provider: [Controller, Service, Job, Console, Repository, Model, Mail, Middleware, Request, Resource, Rule, Exception]