Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

commit 69c35426538d5d2820c63e917a01cf898e2fb692
parent 1677e2d1e7c45a32bdebcfa38e62adb877133d7a
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Fri, 25 Sep 2026 01:02:19 -0400

common: jobs/ and controller/ may not import publish/

The layering puts dispatch below publish, so the architecture guard's jobs
and controller rows forbid publish/ too. Nothing imports that way today.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

Diffstat:
Mcommon/architecture.test.ts | 6+++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/common/architecture.test.ts b/common/architecture.test.ts @@ -36,8 +36,8 @@ const FORBIDDEN: Record<string, readonly string[]> = { // types moved down, and the fetch and the memo are now injected — so the // guard turns on with nothing added to the allow-list to pay for it. lib: ["controller", "jobs", "components", "views", "publish"], - jobs: ["controller", "views"], - controller: ["views"], + jobs: ["controller", "views", "publish"], + controller: ["views", "publish"], components: ["controller", "jobs", "ytdlp", "publish"], // `views/` is the view-model layer (one-core phase 3 slice 1): pure functions // that fold live state into a payload. It sits ABOVE dispatch and BELOW ui, @@ -172,7 +172,7 @@ test("no new back-edges between common's layers", async () => { [], `NEW back-edge(s) in common/. lib/ may not import controller/, jobs/, publish/, ` + `components/ or views/; ` + - `jobs/ and controller/ may not import views/; components/ may not ` + + `jobs/ and controller/ may not import views/ or publish/; components/ may not ` + `import controller/, jobs/, ytdlp/ or publish/; publish/ may not import views/ or components/; views/ may not import ` + `components/. Move the type or the function down a ` + `layer instead of adding it to ALLOWED. Found: ${unexpected.join(", ")}`,