mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-21 14:55:43 +00:00
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: