diff --git a/.agents/memory/app-lint-and-local-rules.md b/.agents/memory/app-lint-and-local-rules.md index 90f953d..2db4707 100644 --- a/.agents/memory/app-lint-and-local-rules.md +++ b/.agents/memory/app-lint-and-local-rules.md @@ -8,7 +8,7 @@ Apps consume the published plugins as npm devDependencies, through `jsPlugins` and the configs equivalent to what their Deno setup enabled: - `@cunarist/eslint-plugin-explicit-types`: `concrete`, `naming`, `absence` -- `@cunarist/eslint-plugin-import-check`: `import-check` +- `@cunarist/eslint-plugin-modules`: `modules` - `@cunarist/eslint-plugin-lit`: `core`, `strict`, `dom-ref`, `reactive-controller`, `naming` diff --git a/.agents/memory/imports-aliases-barrels.md b/.agents/memory/imports-aliases-barrels.md index db8b0b7..6af2d06 100644 --- a/.agents/memory/imports-aliases-barrels.md +++ b/.agents/memory/imports-aliases-barrels.md @@ -11,13 +11,13 @@ unbuilt. `vp pack` inlines them, so they never reach package consumers. One rule for every file, never tied to folder or file names (user rule 2026-10-17; it replaces the earlier "aliases only point at direct `src/` -subfolders" rule and the "import-check checks only aliased folders" scope): +subfolders" rule and the "the modules plugin checks only aliased folders" scope): - **An alias may point anywhere** and owns its target. An alias to a folder's `index.ts` owns that folder and everything below it; an alias to any other file owns only that file. - **No overlap.** No file may be owned by 2 aliases: no alias inside another - alias's area, and no 2 aliases with the same target. import-check's + alias's area, and no 2 aliases with the same target. the modules plugin's `enforce-layer-order` reports it once at the top of every file 2 aliases claim. Fix by merging the aliases or moving files apart. - **Outside an area, only the exact alias reaches it.** A deeper alias diff --git a/.agents/memory/lint-config-shape.md b/.agents/memory/lint-config-shape.md index 84c6fb5..ffe5e0f 100644 --- a/.agents/memory/lint-config-shape.md +++ b/.agents/memory/lint-config-shape.md @@ -38,7 +38,7 @@ lint: { Hand-written code is never ignored. - **No lint disable comments**: [[lint-no-disable-comments]]. - **Parity:** [[lint-parity-never-shrinks]]. **Naming:** [[naming-id-match]]. -- Don't add a second import sorter; import-check's `enforce-import-order` is +- Don't add a second import sorter; the modules plugin's `enforce-import-order` is the only one, and Oxfmt's `sortImports` stays off. `perf` came last: in the template it flagged nine `.includes` on constant diff --git a/.agents/memory/lint-parity-never-shrinks.md b/.agents/memory/lint-parity-never-shrinks.md index 0be5e4d..8e09a23 100644 --- a/.agents/memory/lint-parity-never-shrinks.md +++ b/.agents/memory/lint-parity-never-shrinks.md @@ -29,7 +29,7 @@ Before removing any line from `configs.project`, find what else covers it. in packages. - **Vacuous:** JSX rules (no `.tsx` exists) and Deno-only rules. - **`@hugoalh` rules** map to Oxlint built-ins in `configs.project`. -- **import-check's CLI cycle check** → `import/no-cycle`. +- **deno-import-check's CLI cycle check** → `import/no-cycle`. The template's list in `configs.project` is the baseline to copy: `curly`, `guard-for-in`, `no-console`, `no-empty`, `no-regex-spaces`, diff --git a/.agents/memory/package-json-shape.md b/.agents/memory/package-json-shape.md index 297bee3..62346d4 100644 --- a/.agents/memory/package-json-shape.md +++ b/.agents/memory/package-json-shape.md @@ -9,7 +9,7 @@ Oxfmt's standard `package.json` sorting is accepted: there is no replaces the earlier hand-written order (metadata, `scripts`, `exports`, `imports`, `devDependencies`, `dependencies`). -The `imports` key order can carry meaning: import-check's +The `imports` key order can carry meaning: the modules plugin's `enforce-layer-order` reads it as the layer order. Never reorder it casually. ## Fields diff --git a/.agents/memory/publishing-ci-only.md b/.agents/memory/publishing-ci-only.md index 0c2541d..b212c64 100644 --- a/.agents/memory/publishing-ci-only.md +++ b/.agents/memory/publishing-ci-only.md @@ -32,6 +32,6 @@ Standing convention (2026-10-12), applied to every package: `jsPlugins` and once through ESLint 9 with the configs. On the lit plugin this caught two bugs that 313 unit tests missed. -The cunarist lint plugins (explicit-types, import-check, lit) are published +The cunarist lint plugins (explicit-types, modules, lit) are published together, with a token the user provides; the old `deno-*` repos are archived only after that, one at a time.