From efdfcff36ccfac746ac0de3a223aa2c1f66c7aba Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 5 Mar 2026 09:29:37 +0000 Subject: [PATCH 1/3] fix(cli): add analyze plugins to CLI dependencies for npx compatibility When running via `npx @nitpicker/cli analyze`, the dynamic `import()` calls in `@nitpicker/core` fail with ERR_MODULE_NOT_FOUND because the analyze plugin packages are not in the CLI's dependency tree. Add all six standard analyze plugins as direct dependencies of `@nitpicker/cli`. Closes #34 https://claude.ai/code/session_013sn9ycemnanzocpDRtT689 --- packages/@nitpicker/cli/package.json | 6 ++++++ yarn.lock | 18 ++++++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/packages/@nitpicker/cli/package.json b/packages/@nitpicker/cli/package.json index 99fec8f..43d48ae 100644 --- a/packages/@nitpicker/cli/package.json +++ b/packages/@nitpicker/cli/package.json @@ -35,6 +35,12 @@ "@d-zero/readtext": "1.1.19", "@d-zero/roar": "2.0.0", "@d-zero/shared": "0.20.0", + "@nitpicker/analyze-axe": "0.4.4", + "@nitpicker/analyze-lighthouse": "0.4.4", + "@nitpicker/analyze-main-contents": "0.4.4", + "@nitpicker/analyze-markuplint": "0.4.4", + "@nitpicker/analyze-search": "0.4.4", + "@nitpicker/analyze-textlint": "0.4.4", "@nitpicker/core": "0.4.4", "@nitpicker/crawler": "0.4.4", "@nitpicker/report-google-sheets": "0.4.4", diff --git a/yarn.lock b/yarn.lock index 38e2e11..374c8c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2255,7 +2255,7 @@ __metadata: languageName: node linkType: hard -"@nitpicker/analyze-axe@workspace:packages/@nitpicker/analyze-axe": +"@nitpicker/analyze-axe@npm:0.4.4, @nitpicker/analyze-axe@workspace:packages/@nitpicker/analyze-axe": version: 0.0.0-use.local resolution: "@nitpicker/analyze-axe@workspace:packages/@nitpicker/analyze-axe" dependencies: @@ -2265,7 +2265,7 @@ __metadata: languageName: unknown linkType: soft -"@nitpicker/analyze-lighthouse@workspace:packages/@nitpicker/analyze-lighthouse": +"@nitpicker/analyze-lighthouse@npm:0.4.4, @nitpicker/analyze-lighthouse@workspace:packages/@nitpicker/analyze-lighthouse": version: 0.0.0-use.local resolution: "@nitpicker/analyze-lighthouse@workspace:packages/@nitpicker/analyze-lighthouse" dependencies: @@ -2276,7 +2276,7 @@ __metadata: languageName: unknown linkType: soft -"@nitpicker/analyze-main-contents@workspace:packages/@nitpicker/analyze-main-contents": +"@nitpicker/analyze-main-contents@npm:0.4.4, @nitpicker/analyze-main-contents@workspace:packages/@nitpicker/analyze-main-contents": version: 0.0.0-use.local resolution: "@nitpicker/analyze-main-contents@workspace:packages/@nitpicker/analyze-main-contents" dependencies: @@ -2287,7 +2287,7 @@ __metadata: languageName: unknown linkType: soft -"@nitpicker/analyze-markuplint@workspace:packages/@nitpicker/analyze-markuplint": +"@nitpicker/analyze-markuplint@npm:0.4.4, @nitpicker/analyze-markuplint@workspace:packages/@nitpicker/analyze-markuplint": version: 0.0.0-use.local resolution: "@nitpicker/analyze-markuplint@workspace:packages/@nitpicker/analyze-markuplint" dependencies: @@ -2297,7 +2297,7 @@ __metadata: languageName: unknown linkType: soft -"@nitpicker/analyze-search@workspace:packages/@nitpicker/analyze-search": +"@nitpicker/analyze-search@npm:0.4.4, @nitpicker/analyze-search@workspace:packages/@nitpicker/analyze-search": version: 0.0.0-use.local resolution: "@nitpicker/analyze-search@workspace:packages/@nitpicker/analyze-search" dependencies: @@ -2309,7 +2309,7 @@ __metadata: languageName: unknown linkType: soft -"@nitpicker/analyze-textlint@workspace:packages/@nitpicker/analyze-textlint": +"@nitpicker/analyze-textlint@npm:0.4.4, @nitpicker/analyze-textlint@workspace:packages/@nitpicker/analyze-textlint": version: 0.0.0-use.local resolution: "@nitpicker/analyze-textlint@workspace:packages/@nitpicker/analyze-textlint" dependencies: @@ -2358,6 +2358,12 @@ __metadata: "@d-zero/readtext": "npm:1.1.19" "@d-zero/roar": "npm:2.0.0" "@d-zero/shared": "npm:0.20.0" + "@nitpicker/analyze-axe": "npm:0.4.4" + "@nitpicker/analyze-lighthouse": "npm:0.4.4" + "@nitpicker/analyze-main-contents": "npm:0.4.4" + "@nitpicker/analyze-markuplint": "npm:0.4.4" + "@nitpicker/analyze-search": "npm:0.4.4" + "@nitpicker/analyze-textlint": "npm:0.4.4" "@nitpicker/core": "npm:0.4.4" "@nitpicker/crawler": "npm:0.4.4" "@nitpicker/report-google-sheets": "npm:0.4.4" From d212505c1c2ae0f9b1a1daf7fa915a3bdd8bb712 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 5 Mar 2026 09:50:02 +0000 Subject: [PATCH 2/3] =?UTF-8?q?docs:=20update=20dependency=20graphs=20to?= =?UTF-8?q?=20reflect=20CLI=20=E2=86=92=20analyze=20plugin=20dependencies?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The CLI now directly depends on analyze-* plugins for npx module resolution. Update dependency graphs in ARCHITECTURE.md and CLAUDE.md to reflect this, and add a note about maintaining CLI dependencies when adding new plugins. https://claude.ai/code/session_013sn9ycemnanzocpDRtT689 --- ARCHITECTURE.md | 2 ++ CLAUDE.md | 10 ++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index f1fe1fc..b86644c 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -26,6 +26,8 @@ packages/ └── crawler ── @nitpicker/cli ← @d-zero/roar(外部) ↑ ↑ core report-google-sheets + ↑ + analyze-* プラグイン ``` --- diff --git a/CLAUDE.md b/CLAUDE.md index 7157ce5..d9be69f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -31,13 +31,15 @@ packages/ @d-zero/beholder(外部) ↑ └── crawler ── @nitpicker/cli ← @d-zero/roar(外部) - ↑ ↑ ↑ - │ core report-google-sheets - │ ↑ - │ analyze-* プラグイン + ↑ ↑ ↑ ↑ + │ core │ report-google-sheets + │ ↑ │ + │ analyze-* プラグイン └── @d-zero/dealer(外部) ``` +> **Note**: CLI は analyze プラグインに直接依存する(`npx` 実行時のモジュール解決のため)。新規 analyze プラグイン追加時は `@nitpicker/cli/package.json` の `dependencies` にも追加すること。 + ## CLI コマンド ```sh From 97af6ffecf3e9dc0172a6823a19620994573285e Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 5 Mar 2026 09:56:46 +0000 Subject: [PATCH 3/3] docs(ARCHITECTURE): align dependency graph with CLAUDE.md and add CLI plugin note - Add @d-zero/dealer to the dependency graph (was missing) - Add note about CLI depending on analyze-* plugins for npx module resolution - Add explanation to @nitpicker/cli section about bundled plugin dependencies https://claude.ai/code/session_013sn9ycemnanzocpDRtT689 --- ARCHITECTURE.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index b86644c..09a28c7 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -24,12 +24,15 @@ packages/ @d-zero/beholder(外部) ↑ └── crawler ── @nitpicker/cli ← @d-zero/roar(外部) - ↑ ↑ - core report-google-sheets - ↑ - analyze-* プラグイン + ↑ ↑ ↑ ↑ + │ core │ report-google-sheets + │ ↑ │ + │ analyze-* プラグイン + └── @d-zero/dealer(外部) ``` +> **Note**: CLI は analyze プラグインに直接依存する(`npx` 実行時のモジュール解決のため)。新規 analyze プラグイン追加時は `@nitpicker/cli/package.json` の `dependencies` にも追加すること。 + --- ## 2. 全体データフロー @@ -146,7 +149,7 @@ crawler/src/ ### @nitpicker/cli -`@d-zero/roar` ベースの統合 CLI。4つのサブコマンドを提供。 +`@d-zero/roar` ベースの統合 CLI。4つのサブコマンドを提供。全 analyze プラグインを `dependencies` に含んでおり、`npx` 実行時に `@nitpicker/core` の動的 `import()` がプラグインモジュールを解決できるようにしている。 - **`npx @nitpicker/cli crawl `**: Webサイトをクロールして `.nitpicker` ファイルを生成 - **`npx @nitpicker/cli analyze `**: `.nitpicker` ファイルに対して analyze プラグインを実行。`--search-keywords`, `--axe-lang` 等のフラグで設定ファイルのプラグイン設定を上書き可能(`buildPluginOverrides()` → `Nitpicker.setPluginOverrides()` 経由)