archtracker-mcp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 archtracker-mcp contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,468 @@
1
+ <p align="center">
2
+ <img src="https://img.shields.io/badge/MCP-Compatible-blue?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMiAxNWwtNS01IDEuNDEtMS40MUwxMCAxNC4xN2w3LjU5LTcuNTlMMTkgOGwtOSA5eiIvPjwvc3ZnPg==" alt="MCP Compatible">
3
+ <img src="https://img.shields.io/npm/v/archtracker-mcp?style=for-the-badge&color=cb3837&logo=npm" alt="npm version">
4
+ <img src="https://img.shields.io/github/license/un907/archtracker-mcp?style=for-the-badge" alt="License">
5
+ <img src="https://img.shields.io/node/v/archtracker-mcp?style=for-the-badge&logo=node.js" alt="Node.js">
6
+ <img src="https://img.shields.io/github/actions/workflow/status/un907/archtracker-mcp/ci.yml?style=for-the-badge&logo=github&label=CI" alt="CI">
7
+ </p>
8
+
9
+ <h1 align="center">archtracker-mcp</h1>
10
+
11
+ <p align="center">
12
+ <b>Architecture & Dependency Tracker for AI-Driven Development</b><br>
13
+ MCP Server + CLI + Web Viewer + Claude Code Skills
14
+ </p>
15
+
16
+ <p align="center">
17
+ <a href="#quick-start">Quick Start</a> &bull;
18
+ <a href="#features">Features</a> &bull;
19
+ <a href="#web-viewer">Web Viewer</a> &bull;
20
+ <a href="#mcp-tools">MCP Tools</a> &bull;
21
+ <a href="#cli-commands">CLI</a> &bull;
22
+ <a href="#日本語">日本語</a>
23
+ </p>
24
+
25
+ ---
26
+
27
+ ## Why archtracker?
28
+
29
+ When AI agents modify code, they **miss cascading impacts**:
30
+
31
+ | Problem | Without archtracker | With archtracker |
32
+ |---------|-------------------|------------------|
33
+ | Agent changes `auth.ts` | Doesn't know 12 files depend on it | Instantly sees all 12 affected files |
34
+ | File renamed during refactor | AI references stale paths next session | `context` command gives current valid paths |
35
+ | New dependency added | No visibility into coupling increase | Diff report flags the architectural change |
36
+ | PR review | Manual dependency tracing | CI auto-checks for architecture drift |
37
+
38
+ **archtracker-mcp** provides dependency analysis, snapshot diffing, impact simulation, and interactive visualization — all accessible via MCP tools, CLI, web UI, or Claude Code Skills.
39
+
40
+ ## Features
41
+
42
+ - **Dependency Graph Analysis** — AST-based static analysis via [dependency-cruiser](https://github.com/sverweij/dependency-cruiser)
43
+ - **Interactive Web Viewer** — Force-directed graph, hierarchy diagram, diff view with D3.js
44
+ - **Impact Simulation** — Click any file to visualize transitive dependents (BFS traversal)
45
+ - **Snapshot Diffing** — Save architecture snapshots and detect drift over time
46
+ - **MCP Server** — 5 tools for Claude Code / AI agents via Model Context Protocol
47
+ - **Claude Code Skills** — 5 slash commands (`/arch-check`, `/arch-snapshot`, etc.)
48
+ - **CI Integration** — `--ci` mode + auto-generated GitHub Actions workflow
49
+ - **Bilingual** — Full English/Japanese support (auto-detected from `LANG` env)
50
+ - **Dark/Light Theme** — Settings persist via localStorage
51
+ - **SVG/PNG Export** — Export dependency graphs for documentation
52
+
53
+ ## Quick Start
54
+
55
+ ### Install
56
+
57
+ ```bash
58
+ npm install -g archtracker-mcp
59
+ ```
60
+
61
+ ### 1. Analyze your project
62
+
63
+ ```bash
64
+ archtracker analyze --target src
65
+ ```
66
+
67
+ ### 2. Save a baseline snapshot
68
+
69
+ ```bash
70
+ archtracker init --target src
71
+ ```
72
+
73
+ ### 3. Launch the web viewer
74
+
75
+ ```bash
76
+ archtracker serve --target src --watch
77
+ # => http://localhost:3000
78
+ ```
79
+
80
+ ### 4. Check for architecture drift
81
+
82
+ ```bash
83
+ archtracker check --target src
84
+ ```
85
+
86
+ ## Web Viewer
87
+
88
+ The interactive web viewer provides three visualization modes:
89
+
90
+ ### Graph View (Force-Directed)
91
+ - Drag, zoom, and click nodes to explore dependencies
92
+ - Click a node to **pin** its highlight — hover other nodes to compare
93
+ - Filter by directory with bottom pills
94
+ - Adjust gravity, node size, font size, link opacity
95
+ - **Impact mode**: click any file to see all transitively affected files
96
+
97
+ ### Hierarchy View (DAG Layout)
98
+ - Layered top-down layout showing dependency depth
99
+ - Click-to-pin highlighting with detail panel
100
+ - Directory-based color coding with legend
101
+
102
+ ### Diff View
103
+ - Color-coded visualization of architecture changes
104
+ - Green = added, Red = removed, Yellow = modified, Blue = affected
105
+ - Available when a snapshot exists for comparison
106
+
107
+ ```bash
108
+ # Launch with auto-reload on file changes
109
+ archtracker serve --target src --port 3456 --watch
110
+ ```
111
+
112
+ ## MCP Tools
113
+
114
+ Add archtracker as an MCP server for Claude Code or any MCP-compatible AI agent:
115
+
116
+ ```json
117
+ {
118
+ "mcpServers": {
119
+ "archtracker": {
120
+ "command": "npx",
121
+ "args": ["-y", "archtracker-mcp"]
122
+ }
123
+ }
124
+ }
125
+ ```
126
+
127
+ | Tool | Description |
128
+ |------|-------------|
129
+ | `generate_map` | Analyze dependency graph and return structured JSON |
130
+ | `save_architecture_snapshot` | Save snapshot to `.archtracker/snapshot.json` |
131
+ | `check_architecture_diff` | Compare snapshot with current code, show impacts |
132
+ | `get_current_context` | Get valid file paths and architecture summary |
133
+ | `search_architecture` | Search by path, impact, criticality, or orphans |
134
+
135
+ ## CLI Commands
136
+
137
+ ```
138
+ archtracker init [options] Generate initial architecture snapshot
139
+ archtracker analyze [options] Comprehensive analysis report
140
+ archtracker check [options] Compare snapshot with current code
141
+ archtracker context [options] Show architecture context (for AI sessions)
142
+ archtracker serve [options] Launch interactive web viewer
143
+ archtracker ci-setup [options] Generate GitHub Actions workflow
144
+
145
+ Options:
146
+ -t, --target <dir> Target directory (default: "src")
147
+ -r, --root <dir> Project root (default: ".")
148
+ -p, --port <number> Port for web viewer (default: 3000)
149
+ -w, --watch Watch for file changes and auto-reload
150
+ -e, --exclude <pattern> Exclude patterns (regex)
151
+ -n, --top <number> Top N components in analysis (default: 10)
152
+ --save Save snapshot after analysis
153
+ --ci CI mode: exit 1 if review needed
154
+ --json JSON output (context command)
155
+ --lang <locale> Language: en | ja (auto-detected from LANG)
156
+ ```
157
+
158
+ ## Claude Code Skills
159
+
160
+ Copy the `skills/` directory to your project:
161
+
162
+ ```bash
163
+ cp -r node_modules/archtracker-mcp/skills/ .claude/skills/
164
+ ```
165
+
166
+ | Skill | Description |
167
+ |-------|-------------|
168
+ | `/arch-analyze` | Run comprehensive architecture analysis |
169
+ | `/arch-check` | Compare snapshot with current code |
170
+ | `/arch-snapshot` | Save current architecture snapshot |
171
+ | `/arch-context` | Initialize AI session with valid paths |
172
+ | `/arch-search` | Search architecture (path, impact, critical, orphan) |
173
+
174
+ ## Programmatic API
175
+
176
+ ```typescript
177
+ import {
178
+ analyzeProject,
179
+ saveSnapshot,
180
+ loadSnapshot,
181
+ computeDiff,
182
+ formatDiffReport,
183
+ formatAnalysisReport,
184
+ } from "archtracker-mcp";
185
+
186
+ // Analyze
187
+ const graph = await analyzeProject("src", { exclude: ["__tests__"] });
188
+
189
+ // Snapshot
190
+ const snapshot = await saveSnapshot(".", graph);
191
+
192
+ // Diff
193
+ const prev = await loadSnapshot(".");
194
+ if (prev) {
195
+ const diff = computeDiff(prev.graph, graph);
196
+ console.log(formatDiffReport(diff));
197
+ }
198
+ ```
199
+
200
+ ## CI / CD
201
+
202
+ ### Auto-generate GitHub Actions workflow
203
+
204
+ ```bash
205
+ archtracker ci-setup --target src
206
+ # Creates .github/workflows/arch-check.yml
207
+ ```
208
+
209
+ ### Manual setup
210
+
211
+ ```yaml
212
+ # .github/workflows/arch-check.yml
213
+ name: Architecture Check
214
+ on:
215
+ pull_request:
216
+ branches: [main]
217
+ jobs:
218
+ arch-check:
219
+ runs-on: ubuntu-latest
220
+ steps:
221
+ - uses: actions/checkout@v4
222
+ - uses: actions/setup-node@v4
223
+ with:
224
+ node-version: "20"
225
+ - run: npm ci
226
+ - run: npx archtracker check --target src --ci
227
+ ```
228
+
229
+ ## i18n
230
+
231
+ Language is auto-detected from `LANG` / `LC_ALL` environment variables:
232
+
233
+ ```bash
234
+ LANG=ja_JP.UTF-8 archtracker analyze # Japanese output
235
+ archtracker --lang ja check # Explicit Japanese
236
+ ```
237
+
238
+ The web viewer also supports language switching via the settings panel.
239
+
240
+ ## Requirements
241
+
242
+ - **Node.js** >= 18.0.0
243
+ - **TypeScript / JavaScript** project (for dependency analysis)
244
+
245
+ ## Contributing
246
+
247
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
248
+
249
+ ## License
250
+
251
+ [MIT](LICENSE) &copy; un907
252
+
253
+ ---
254
+
255
+ <a id="日本語"></a>
256
+
257
+ <h1 align="center">archtracker-mcp <sub>(日本語)</sub></h1>
258
+
259
+ <p align="center">
260
+ <b>AI駆動開発のためのアーキテクチャ & 依存関係トラッカー</b><br>
261
+ MCP サーバー + CLI + Web ビューア + Claude Code Skills
262
+ </p>
263
+
264
+ ## なぜ archtracker?
265
+
266
+ AI エージェントがコードを修正する際、**波及的な影響を見逃します**:
267
+
268
+ | 問題 | archtracker なし | archtracker あり |
269
+ |------|-----------------|-----------------|
270
+ | `auth.ts` を変更 | 12ファイルが依存していることを知らない | 影響を受ける全12ファイルを即座に表示 |
271
+ | リファクタでファイル名変更 | 次のセッションで古いパスを参照 | `context` コマンドで現在の有効パスを取得 |
272
+ | 新しい依存関係を追加 | 結合度の増加が見えない | 差分レポートがアーキテクチャ変更を検出 |
273
+ | PRレビュー | 手動で依存関係を追跡 | CIが自動でアーキテクチャドリフトをチェック |
274
+
275
+ **archtracker-mcp** は依存関係分析、スナップショット差分、影響シミュレーション、インタラクティブな可視化を提供します。MCP ツール、CLI、Web UI、Claude Code Skills からアクセス可能です。
276
+
277
+ ## 機能
278
+
279
+ - **依存関係グラフ分析** — [dependency-cruiser](https://github.com/sverweij/dependency-cruiser) によるAST静的解析
280
+ - **インタラクティブ Web ビューア** — D3.js による力学モデルグラフ、階層図、差分ビュー
281
+ - **影響シミュレーション** — ファイルをクリックして推移的な被依存ファイルを可視化(BFS探索)
282
+ - **スナップショット差分** — アーキテクチャスナップショットを保存し、ドリフトを検出
283
+ - **MCP サーバー** — Model Context Protocol 経由で5つのツールを提供
284
+ - **Claude Code Skills** — 5つのスラッシュコマンド(`/arch-check`、`/arch-snapshot` 等)
285
+ - **CI 統合** — `--ci` モード + GitHub Actions ワークフロー自動生成
286
+ - **多言語対応** — 日本語・英語完全対応(`LANG` 環境変数から自動検出)
287
+ - **ダーク/ライトテーマ** — localStorage で設定を永続化
288
+ - **SVG/PNG エクスポート** — ドキュメント用にグラフをエクスポート
289
+
290
+ ## クイックスタート
291
+
292
+ ### インストール
293
+
294
+ ```bash
295
+ npm install -g archtracker-mcp
296
+ ```
297
+
298
+ ### 1. プロジェクトを分析
299
+
300
+ ```bash
301
+ archtracker analyze --target src
302
+ ```
303
+
304
+ ### 2. ベースラインスナップショットを保存
305
+
306
+ ```bash
307
+ archtracker init --target src
308
+ ```
309
+
310
+ ### 3. Web ビューアを起動
311
+
312
+ ```bash
313
+ archtracker serve --target src --watch
314
+ # => http://localhost:3000
315
+ ```
316
+
317
+ ### 4. アーキテクチャドリフトをチェック
318
+
319
+ ```bash
320
+ archtracker check --target src
321
+ ```
322
+
323
+ ## Web ビューア
324
+
325
+ インタラクティブな Web ビューアは3つの可視化モードを提供します:
326
+
327
+ ### グラフビュー(力学モデル)
328
+ - ドラッグ、ズーム、クリックでノードの依存関係を探索
329
+ - ノードをクリックでハイライトを**ピン固定** — 他のノードをホバーして比較
330
+ - 下部のピルでディレクトリごとにフィルタリング
331
+ - 重力、ノードサイズ、フォントサイズ、リンク透明度を調整可能
332
+ - **影響モード**: ファイルをクリックして推移的に影響を受ける全ファイルを表示
333
+
334
+ ### 階層ビュー(DAGレイアウト)
335
+ - 依存の深さを示すレイヤー型トップダウンレイアウト
336
+ - クリックでピン固定 + 詳細パネル
337
+ - ディレクトリベースの色分け + 凡例
338
+
339
+ ### 差分ビュー
340
+ - アーキテクチャ変更の色分け可視化
341
+ - 緑=追加、赤=削除、黄=変更、青=影響
342
+ - スナップショットが存在する場合に利用可能
343
+
344
+ ```bash
345
+ # ファイル変更の自動リロード付きで起動
346
+ archtracker serve --target src --port 3456 --watch
347
+ ```
348
+
349
+ ## MCP ツール
350
+
351
+ archtracker を MCP サーバーとして Claude Code や MCP 互換 AI エージェントに追加:
352
+
353
+ ```json
354
+ {
355
+ "mcpServers": {
356
+ "archtracker": {
357
+ "command": "npx",
358
+ "args": ["-y", "archtracker-mcp"]
359
+ }
360
+ }
361
+ }
362
+ ```
363
+
364
+ | ツール | 説明 |
365
+ |--------|------|
366
+ | `generate_map` | 依存関係グラフを解析し構造化JSONで返す |
367
+ | `save_architecture_snapshot` | `.archtracker/snapshot.json` にスナップショットを保存 |
368
+ | `check_architecture_diff` | スナップショットと現在のコードを比較し影響を表示 |
369
+ | `get_current_context` | 有効なファイルパスとアーキテクチャサマリーを取得 |
370
+ | `search_architecture` | パス、影響範囲、重要度、孤立ファイルで検索 |
371
+
372
+ ## CLI コマンド
373
+
374
+ ```
375
+ archtracker init [options] 初期アーキテクチャスナップショットを生成
376
+ archtracker analyze [options] 包括的な分析レポート
377
+ archtracker check [options] スナップショットと現在のコードを比較
378
+ archtracker context [options] アーキテクチャコンテキストを表示(AIセッション用)
379
+ archtracker serve [options] インタラクティブ Web ビューアを起動
380
+ archtracker ci-setup [options] GitHub Actions ワークフローを生成
381
+
382
+ オプション:
383
+ -t, --target <dir> 対象ディレクトリ(デフォルト: "src")
384
+ -r, --root <dir> プロジェクトルート(デフォルト: ".")
385
+ -p, --port <number> Web ビューアのポート(デフォルト: 3000)
386
+ -w, --watch ファイル変更の監視と自動リロード
387
+ -e, --exclude <pattern> 除外パターン(正規表現)
388
+ -n, --top <number> 分析の上位N件(デフォルト: 10)
389
+ --save 分析後にスナップショットを保存
390
+ --ci CIモード: 要確認ファイルがあれば exit 1
391
+ --json JSON形式で出力(context コマンド)
392
+ --lang <locale> 言語: en | ja(LANG から自動検出)
393
+ ```
394
+
395
+ ## Claude Code Skills
396
+
397
+ `skills/` ディレクトリをプロジェクトにコピー:
398
+
399
+ ```bash
400
+ cp -r node_modules/archtracker-mcp/skills/ .claude/skills/
401
+ ```
402
+
403
+ | スキル | 説明 |
404
+ |--------|------|
405
+ | `/arch-analyze` | 包括的なアーキテクチャ分析を実行 |
406
+ | `/arch-check` | スナップショットと現在のコードを比較 |
407
+ | `/arch-snapshot` | 現在のアーキテクチャスナップショットを保存 |
408
+ | `/arch-context` | 有効なファイルパスでAIセッションを初期化 |
409
+ | `/arch-search` | アーキテクチャ検索(パス、影響、重要度、孤立) |
410
+
411
+ ## プログラマティック API
412
+
413
+ ```typescript
414
+ import {
415
+ analyzeProject,
416
+ saveSnapshot,
417
+ loadSnapshot,
418
+ computeDiff,
419
+ formatDiffReport,
420
+ formatAnalysisReport,
421
+ } from "archtracker-mcp";
422
+
423
+ // 分析
424
+ const graph = await analyzeProject("src", { exclude: ["__tests__"] });
425
+
426
+ // スナップショット
427
+ const snapshot = await saveSnapshot(".", graph);
428
+
429
+ // 差分比較
430
+ const prev = await loadSnapshot(".");
431
+ if (prev) {
432
+ const diff = computeDiff(prev.graph, graph);
433
+ console.log(formatDiffReport(diff));
434
+ }
435
+ ```
436
+
437
+ ## CI / CD
438
+
439
+ ### GitHub Actions ワークフローの自動生成
440
+
441
+ ```bash
442
+ archtracker ci-setup --target src
443
+ # .github/workflows/arch-check.yml を生成
444
+ ```
445
+
446
+ ## 多言語対応
447
+
448
+ `LANG` / `LC_ALL` 環境変数から自動検出されます:
449
+
450
+ ```bash
451
+ LANG=ja_JP.UTF-8 archtracker analyze # 日本語出力
452
+ archtracker --lang ja check # 明示的に日本語指定
453
+ ```
454
+
455
+ Web ビューアでも設定パネルから言語を切り替え可能です。
456
+
457
+ ## 動作要件
458
+
459
+ - **Node.js** >= 18.0.0
460
+ - **TypeScript / JavaScript** プロジェクト(依存関係分析用)
461
+
462
+ ## コントリビュート
463
+
464
+ [CONTRIBUTING.md](CONTRIBUTING.md) をご覧ください。
465
+
466
+ ## ライセンス
467
+
468
+ [MIT](LICENSE) &copy; un907