test(arch): layering + cycle guard (dependency-cruiser) with current-violation allowlist

Encode the feature-folder layering contract as a CI gate: lib is the floor,
store/ui must not import features/app, cross-feature only via the barrel, no
cycles. dependency-cruiser resolves the @/ alias via tsconfig; tests excluded.

Land as a ratchet: the 738 current violations are seeded into
.dependency-cruiser-known-violations.json and ignored via --ignore-known, so
HEAD is green and any NEW violation fails CI. Regenerate the baseline as the
drain removes an exception; the count is the tracked residual debt.

Wired via `npm run dep:check` into a new dependency-cruiser job in eslint.yml
and the ci-ok required-check aggregate.
This commit is contained in:
Psychotoxical
2026-07-01 11:14:48 +02:00
parent 57811f2b3f
commit 47f2883ca2
6 changed files with 55752 additions and 4 deletions
File diff suppressed because it is too large Load Diff