code-intelligence について
Code Intelligenceは、モデルの判断で起動する言語横断のコード検索スキルです。開発者がタスクに応じてLSP、完全一致検索、セマンティック検索を選び、結果を検証してフォールバックを明示できるよう支援します。
主な機能
- 01タスクに応じた検索ツールの選択
- 02位置を指定したLSP操作
- 03`rg`による完全一致検索
- 04セマンティック検索でコードを探索
- 05フォールバック前に空のLSP結果を検証
- 06ツールの代替や省略を明示
活用シーン
- 01シンボルの定義、参照、呼び出し元の検索
- 02正確な名前や設定値の特定
- 03不慣れなリポジトリ内のコード探索
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ antonbabenko/ agent-plugins --skill code-intelligenceインストール後、Claude Code で/code-intelligenceを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/degradation-and-disclosure.mdlsp-calls.mdtool-precedence.md詳細
コードインテリジェンス
習慣ではなく、タスクに応じて検索ツールを選んでください。汎用で言語に依存しないこのツールを、ドメインスキルがサーバーの機能マトリックスやエコシステムの前提条件で拡張します。たとえば、terraform-skill プラグイン(同じマーケットプレイスにあります)が Terraform の機能マトリックスと Terraform のセットアップを担います。これはモデルによってトリガーされるガイダンスであり、強制するものではありません。
ツールの優先順位
| 目的 | 使用するもの | トレードオフ |
|---|---|---|
| シンボルの関係:定義、参照、呼び出し箇所、安全な名前変更 | 位置を指定した言語サーバー(LSP) | サーバーの実行とワークスペースのインデックス作成が必要 |
| 正確なテキスト、既知の名前、網羅的な列挙、設定/値ファイル | rg の後に Read | 意味的な範囲はなく、コメント内の文字列にも一致します |
| 概念的/あいまいな検索、「どこにあるか見当をつける」/リポジトリ横断の探索 | ホストが提供している場合は、セマンティック/ニューラル検索ツール | 正確ではありません。件数や網羅性を主張する目的には決して使用しないでください |
詳細:優先順位テーブル、 LSP が誤っている場合。
LSP の呼び出し
- 必ず位置(
file:line:character)を指定して呼び出してください。まず既知の出現箇所をテキスト検索し、その位置を基準にしてください。 - シンボル名だけを渡して解決されると期待してはいけません。名前だけの呼び出しで結果が空になるのは、サーバーの障害ではなく、使い方の問題です。
- 返された位置のソーステキストは Read で確認してください。LSP が返すのは位置とシンボルであり、行そのものではありません。
- 起動直後は 1 回再試行してください。サーバーがインデックスを作成している間、起動後の最初の呼び出しでは結果が空になる場合があります。
- サーバーが独自の操作を提供している場合は、優先して使用してください。名前変更には
rename/prepareRenameを、呼び出し元の特定には呼び出し階層を使用してください。手動の確認では見落としやすい、言語固有の意味情報が得られます。 - サポートされていない操作を調査結果として報告してはいけません。サーバーがその操作に対応していない場合は、代替手段を使ってください。呼び出し階層の代わりに
findReferences(その後、呼び出し箇所に絞り込みます)を、名前変更プロバイダーの代わりに参照を列挙して手動で編集します。
詳細:位置の指定、 サポートされていない操作。
機能低下の判定ゲート
次の 2 つは異なるケースです。
- LSP がまったくない(ホストが言語サーバーツールを公開していない、またはサーバーの起動に失敗する):これは利用不可の状態です。最初の行でその旨を開示し(下記参照)、テキスト検索を使用してください。判定ゲートの対象外です。判定する対象がありません。
- LSP は呼び出せるが、位置を指定した呼び出しで結果が空になる:「利用不可」と結論づけてはいけません。次の 3 つすべてを満たしてください。
- 対象範囲内のファイルに対する
documentSymbolがシンボルを返す → サーバーは応答しています(応答性のみを示し、参照を完全に網羅している証明にはなりません)。 - 失敗した呼び出しでは、シンボル名だけでなく位置を指定していた。
- 起動直後の再試行後も、その位置を指定した呼び出しで結果が空だった。
- 対象範囲内のファイルに対する
この 3 つの条件をすべて満たした場合に限り、その旨を開示したうえでテキスト検索にフォールバックできます。
詳細:機能低下の判定ゲート。
代替手段の開示
ツールの代替または省略がある場合は、後の要約ではなく、応答の最初の行で明記してください(事後の説明はルール違反です)。
Intended: <tool>. Actual: <tool>. Reason: <why>. Impact: <completeness/confidence>.
詳細:開示の形式。
存在しないツールを捏造しない
ツール(例:rg)がラッパー経由、エイリアス、または不在だと主張する前に、証拠を確認してください。type -a <tool> を実行し、解決されたパスに対して ls -l を実行し、<tool> --version で想定どおりのバナーが表示されることを確認してください。証拠のない「ツールがない」という主張に続けてフォールバックするのは検証の失敗であり、認められた代替ではありません。
実際にツールが存在しない、またはエイリアスされている場合は、意味的なタスクには LSP を、正確なテキスト検索にはホストが承認したテキスト検索を優先してください。git grep / grep は、代替手段として明示的に開示する最後の手段に限り、既定の代替手段として使用してはいけません。
詳細:偽のラッパーの証明。