mcpField
C
codebase-exploration

codebase-exploration

github.com/repowise-dev開発8.0k101 回インストール今日更新
リポジトリ

codebase-exploration について

Repowiseでインデックス化したコードベースを調べるスキルです。アーキテクチャ概要、引用付き回答、ハイブリッド検索、シンボルのコンテキストを使い、未把握のリポジトリを調査できます。

主な機能

  1. 01リポジトリのアーキテクチャ概要
  2. 02引用と信頼度付きの回答
  3. 03シンボル・パス・概念の複合検索
  4. 04ファイルとシンボルの一括コンテキスト取得
  5. 05行範囲付きの正確なソース取得

活用シーン

  1. 01未把握のリポジトリの概要把握
  2. 02特定の動作の実装箇所の追跡
  3. 03名前や概念からシンボルやファイルを検索

MCP 対応

get_overview、get_answer、search_codebase、get_context、get_symbolなどのRepowise MCPツールで、インデックス化されたリポジトリ情報を検索します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/repowise-dev/repowise --skill codebase-exploration

インストール後、Claude Code で/codebase-explorationを入力して読み込まれたか確認します。

詳細

Repowise を使ったコードベースの探索

このプロジェクトには、Repowise のインテリジェンスレイヤーがあります。コードベースを理解するために grep したり、ソースを直接読んだりする前に、まず Repowise MCP ツールを利用してください。通常のファイル読み取りでは得られないドキュメント、所有者情報、履歴、決定事項、グラフ構造が、何度も往復する代わりに、通常は一度のやり取りで返されます。

質問に応じたツールの選び方

知りたいこと…呼び出すツール
慣れていないリポジトリの概要を把握するget_overview() — アーキテクチャの概要、主要モジュール、エントリーポイント、Git の状態、ナレッジマップを確認できます。マップを把握したら、以降は省略してください。
「X はどのように/どこで/なぜ動くのか」への直接的な回答get_answer(question="…"):引用と、信頼性を示す confidence を含む、統合された回答を返します。検索 → 読み取り → 推論のループをまとめます。
シンボル、ファイル、または曖昧な概念を見つけるsearch_codebase(query="…") — ハイブリッド検索です。mode="auto" は、識別子をインデックス化されたシンボルのヒット(symbol_id/行範囲 → get_symbol に渡す)に、パスをファイルページ(→ get_context)に、文章をセマンティック Wiki 検索(各ヒットに search_method として embedding または bm25 を表示)に振り分けます。mode=symbol|path|concept|hybrid で分岐を指定し、symbol_kind でシンボルを絞り込めます。
特定のファイルやシンボルの概要カードget_context(targets=[…]) — タイトル、概要、シグネチャ、ホットスポットのフラグ、主な呼び出し元、決定事項のタイトル、symbol_ids を返します。symbol_id のない行は path::name です。1 回の呼び出しで複数のターゲットをまとめて指定できます。
1 つのシンボルの実際のソースget_symbol("path/to/file.py::Name") — 行範囲付きの正確なバイト列を返します。Read とオフセット計算を組み合わせるより効率的です。get_context の symbol_id を使ってください。

推奨される手順

  1. 未知の領域を調べる → まず 1 回 get_overview() を呼び出します。
  2. 具体的な質問がある → 最初に get_answer(question=…) を呼び出します。
    • 信頼度が高い → パスを引用して回答します。
    • 信頼度が medium/low → best_guesses[0].file または fallback_targets[0] を get_context に渡し、続いてバイト列を確認するため get_symbol を呼び出します。
  3. 名前が分かっているシンボルやパス → search_codebase(query="Name") / search_codebase(query="path/to/file.py") を呼び出します。シンボルのヒットはそのまま get_symbol に渡し、ファイルのヒットは get_context に渡します。
  4. 概念に関連するファイルをさらに探す → search_codebase を呼び出し、ヒットを get_context にまとめて渡してから、実際に必要な本体だけを get_symbol で確認します。

インデックス化されたコンテキストにユーザーが尋ねた具体的な情報が含まれていない場合に限り、独自のファイル読み取りツールや検索ツールに切り替えてください。

信頼性の指標 — 次の場合は確認してください

  • _meta.stale_warning がある(インデックスが HEAD と異なっている)、または
  • confidence が medium/low、または
  • 結果の search_method が bm25 である

それ以外の場合、回答は最新です。そのまま活用してください。

エラー処理

  • 「リポジトリが見つかりません。まず 'repowise init' を実行してください。」→ /repowise:init を提案します。 このリポジトリがスクラッチクローン、フィクスチャ、または ワークツリーの場合は、--no-editor-setup を追加してください。そうしないと init が、ユーザーのグローバルな repowise MCP エントリーをこのリポジトリに向け直してしまいます。
  • MCP ツールが利用できない → プラグインがインストールされている場合は、当てずっぽうに grep するのではなく、対応する CLI スラッシュコマンド(/repowise:ask、/repowise:context、/repowise:symbol、 /repowise:search)を優先してください。
  • get_answer/search_codebase の結果が空 → リポジトリにテンプレートから生成された Wiki がある可能性があります。明示的なパスを指定して get_context に切り替え、モデルが作成したページ(repowise generate、または LLM プロバイダーを指定した /repowise:init)を利用すると、より充実したドキュメントとセマンティック検索が使えることを伝えてください。
  • ツールがまったく接続できない → repowise バイナリがインストールされていない可能性があります。/repowise:init を提案してください。

コメント