Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion dot_claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
"Bash(find:*)",
"Bash(ls:*)",
"Bash(shfmt:*)",
"WebFetch(domain:docs.anthropic.com)"
"WebFetch(domain:docs.anthropic.com)",
"mcp__codegraph__*"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

CodeGraph 権限がワイルドカードで広すぎます。

Line 16 の mcp__codegraph__* は将来追加される CodeGraph 側の全ツールまで許可対象になり、最小権限の原則から外れます。少なくとも現時点で運用対象のツール名へ明示的に絞ることを推奨します。

権限を明示列挙へ寄せる例
-      "mcp__codegraph__*"
+      "mcp__codegraph__codegraph_search",
+      "mcp__codegraph__codegraph_callers",
+      "mcp__codegraph__codegraph_callees",
+      "mcp__codegraph__codegraph_impact",
+      "mcp__codegraph__codegraph_node"

],
"deny": [
"Bash(sudo:*)",
Expand Down
5 changes: 5 additions & 0 deletions dot_config/rulesync/exact_dot_rulesync/mcp.json.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,11 @@
"https://mcp.deepwiki.com/mcp"
]
},
"codegraph": {
"type": "stdio",
"command": "codegraph",
"args": ["serve", "--mcp"]
},
Comment on lines +68 to +72
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

このリポジトリ内の他の npm パッケージを利用した MCP サーバー設定(context7chrome-devtools-mcp など)のパターンに従い、npx を使用して実行することを推奨します。これにより、実行環境の PATH 設定に依存せず、mise.toml で指定されたバージョンと一致するバイナリを確実に実行できるようになり、再現性と保守性が向上します。

    "codegraph": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@colbymchenry/codegraph@0.7.3", "serve", "--mcp"]
    },
References
  1. 保守性、安全性、再現性に直結する点に絞って指摘を行う。 (link)

"context7": {
"type": "stdio",
"command": "npx",
Expand Down
39 changes: 39 additions & 0 deletions dot_config/rulesync/exact_dot_rulesync/rules/CODEGRAPH.md
Original file line number Diff line number Diff line change
@@ -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` が既にソースコードを返したファイルを再読回しないでください。
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

「再読回」は「再読込」の誤字と思われます。ドキュメントの正確性のために修正を推奨します。

Suggested change
> 2. `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 の初期化を提案してください。
1 change: 1 addition & 0 deletions mise.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
70 changes: 70 additions & 0 deletions not_config/memo/codegraph.md
Original file line number Diff line number Diff line change
@@ -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 <search>`: シンボルを検索。
- `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)
Loading