diff --git a/dot_claude/settings.json b/dot_claude/settings.json index cf27a69b5..b9f857f4f 100755 --- a/dot_claude/settings.json +++ b/dot_claude/settings.json @@ -12,7 +12,8 @@ "Bash(find:*)", "Bash(ls:*)", "Bash(shfmt:*)", - "WebFetch(domain:docs.anthropic.com)" + "WebFetch(domain:docs.anthropic.com)", + "mcp__codegraph__*" ], "deny": [ "Bash(sudo:*)", diff --git a/dot_config/rulesync/exact_dot_rulesync/mcp.json.tmpl b/dot_config/rulesync/exact_dot_rulesync/mcp.json.tmpl index 4aac031eb..a431f1122 100644 --- a/dot_config/rulesync/exact_dot_rulesync/mcp.json.tmpl +++ b/dot_config/rulesync/exact_dot_rulesync/mcp.json.tmpl @@ -65,6 +65,11 @@ "https://mcp.deepwiki.com/mcp" ] }, + "codegraph": { + "type": "stdio", + "command": "codegraph", + "args": ["serve", "--mcp"] + }, "context7": { "type": "stdio", "command": "npx", diff --git a/dot_config/rulesync/exact_dot_rulesync/rules/CODEGRAPH.md b/dot_config/rulesync/exact_dot_rulesync/rules/CODEGRAPH.md new file mode 100644 index 000000000..d68be7d6a --- /dev/null +++ b/dot_config/rulesync/exact_dot_rulesync/rules/CODEGRAPH.md @@ -0,0 +1,39 @@ +--- +targets: + - claudecode +globs: + - "**/*" +--- + +# CodeGraph 連携 + +このプロジェクトでは CodeGraph が導入されています。CodeGraph はコードベースのセマンティックなナレッジグラフを構築し、高速かつ効率的なコード探索を可能にします。 + +## .codegraph/ が存在する場合 + +**メインセッションで `codegraph_explore` や `codegraph_context` を直接呼び出さないでください。** これらのツールは大量のソースコードを返し、メインセッションのコンテキストを圧迫します。 + +代わりに、探索が必要な質問(例:「X はどのように動作するか?」「Y システムの説明」「Z はどこで実装されているか?」)については、**必ず Explore エージェントを起動してください。** + +**Explore エージェントを起動する際**は、プロンプトに以下の指示を含めてください: + +> このプロジェクトには CodeGraph が初期化されています(.codegraph/ が存在します)。`codegraph_explore` を主要なツールとして使用してください。これは、関連するすべてのファイルから完全なソースコードセクションを一度の呼び出しで返します。 +> +> **ルール:** +> +> 1. `codegraph_explore` のツール説明にある探索コール予算に従ってください。 +> 2. `codegraph_explore` が既にソースコードを返したファイルを再読回しないでください。 +> 3. 「Additional relevant files」にリストされているファイルについて、より詳細が必要な場合や、CodeGraph が結果を返さなかった場合にのみ、grep/glob/read にフォールバックしてください。 + +メインセッションでは、編集前のターゲット確認などのために、以下の軽量ツールのみを直接使用できます: + +| ツール | 用途 | +| ----------------------------------------- | -------------------------- | +| `codegraph_search` | 名前でシンボルを検索 | +| `codegraph_callers` / `codegraph_callees` | コールフローの追跡 | +| `codegraph_impact` | 編集前に影響範囲を確認 | +| `codegraph_node` | 特定のシンボルの詳細を取得 | + +## .codegraph/ が存在しない場合 + +セッションの開始時に、ユーザーに CodeGraph の初期化を提案してください。 diff --git a/mise.toml b/mise.toml index 9bb71ee7d..608236aca 100644 --- a/mise.toml +++ b/mise.toml @@ -97,4 +97,5 @@ run = [ "aqua:suzuki-shunsuke/pinact" = "3.9.2" "aqua:tamasfe/taplo" = "0.10.0" "npm:prettier" = "3.8.1" +"npm:@colbymchenry/codegraph" = "0.7.3" "pipx:zizmor" = "1.23.1" diff --git a/not_config/memo/codegraph.md b/not_config/memo/codegraph.md new file mode 100644 index 000000000..05fe03355 --- /dev/null +++ b/not_config/memo/codegraph.md @@ -0,0 +1,70 @@ +# CodeGraph + +CodeGraph は、Claude Code を強化するためのセマンティックなコードナレッジグラフツールです。 +コードの構造、シンボルの関係、コールグラフを事前にインデックス化することで、AI エージェントによるコード探索を高速化し、トークン消費を大幅に削減します。 + +## 特徴 + +- **高速なコード探索**: grep や find を繰り返す代わりに、グラフベースの探索を行います。 +- **トークン節約**: 関連するコード断片を一度に取得できるため、無駄なツール呼び出しを減らせます。 +- **100% ローカル**: すべてのデータはローカルの SQLite データベースに保存されます。 +- **マルチ言語対応**: TypeScript, Python, Rust, Go, Java, C++, Swift など 19 以上の言語に対応。 +- **オートシンク**: ファイルの変更を監視し、インデックスを自動的に更新します。 + +## 導入方法 + +1. **インストール** + このリポジトリでは `mise` で管理されています。 + + ```bash + mise install + ``` + +2. **初期化** + プロジェクトのルートディレクトリで以下のコマンドを実行します。 + + ```bash + codegraph init -i + ``` + + これにより `.codegraph/` ディレクトリが作成され、初期インデックスが構築されます。 + +3. **Claude Code の再起動** + MCP サーバーの設定を反映させるため、Claude Code を再起動します。 + +## 使い方 + +### Claude Code 内での利用 + +CodeGraph が導入されたプロジェクトでは、Claude Code が自動的に CodeGraph のツール(`codegraph_explore`, `codegraph_search` など)を認識して使用します。 + +### CLI コマンド + +- `codegraph status`: インデックスの状態と統計を表示。 +- `codegraph query `: シンボルを検索。 +- `codegraph files`: インデックスされたファイル構造を表示。 +- `codegraph affected [files...]`: 変更によって影響を受ける(テスト)ファイルを特定。 + +## 設定 + +`.codegraph/config.json` でインデックス対象や除外パターンをカスタマイズできます。 + +```json +{ + "version": 1, + "languages": ["typescript", "javascript"], + "exclude": ["node_modules/**", "dist/**", "build/**"], + "maxFileSize": 1048576 +} +``` + +## 連携の仕組み + +1. **Extraction**: tree-sitter を使用してソースコードを解析。 +2. **Storage**: シンボルと関係性をローカル SQLite に保存。 +3. **MCP Server**: Claude Code などのエージェントがツール経由でグラフをクエリ。 +4. **Auto-Sync**: ファイル変更を検知して増分同期。 + +## 関連リポジトリ + +- [colbymchenry/codegraph](https://github.com/colbymchenry/codegraph)