mcpField
S
search

search

github.com/entireioエージェントワークフロー236458 回インストール8 週間前に更新
リポジトリ

search について

searchは、Entireのチェックポイント、コミット、セッションや、複数リポジトリのコードを検索するエージェントスキルです。Entireへのログインが必要で、対話型画面を開かないようJSON出力を使います。

主な機能

  1. 01チェックポイント、コミット、セッションの検索
  2. 02複数リポジトリのコード検索
  3. 03フィルターによる結果の絞り込み
  4. 04該当チェックポイント情報の確認
  5. 05Entireへのログインが必要

活用シーン

  1. 01トピックに関する過去の作業を検索
  2. 02アクセス可能なリポジトリからコードを特定
  3. 03該当チェックポイントの関連情報を確認

インストール

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

$npx skills add https://github.com/entireio/skills --skill search

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

詳細

チェックポイントとコードを検索する

entire search を使用すると、ハイブリッド検索(セマンティック検索+キーワード検索)で過去のチェックポイント、コミット、セッションを検索できます。また、entire search --code を使用すると、リポジトリ全体のコードを検索できます。entire login が必要です。entire search はインタラクティブな TUI を開くため、--json を指定せずに実行しないでください。

実行環境(必須)

macOS では、entire はローカルのシークレットストアから認証情報を読み取りますが、Codex サンドボックス内からはアクセスできません。このスキルで使用するすべての entire コマンドは、最初の試行時からサンドボックスの外で実行してください。Codex では、ユーザーのローカル Entire 認証情報にアクセスする必要がある旨を簡潔に説明し、シェルツールを sandbox_permissions: "require_escalated" で呼び出してください。これは entire search と entire checkpoint explain の両方に適用されます。

サンドボックス内で entire コマンドを先に試してはいけません。また、サンドボックスによる認証エラーを、ユーザーがログインする必要がある根拠として扱ってはいけません。認証が必要だと報告するのは、サンドボックスの外での実行時に認証が必要であると示された場合に限ります。

回答形式

このスキルの呼び出しに対する最初の回答は、次の行で始めてください。

Entire Search:

その後に空行を入れ、本文を続けてください。

  • ヘッダーを付けるのは、呼び出しの最初の回答のみです。同じ呼び出し内の追加のやり取り(たとえば、ユーザーが確認の質問に答えた後)では、再度表示しないでください。
  • エラーや早期終了時の回答(「Entire CLI がインストールされていません」「認証が必要です」「一致する結果がありません」など)には、ヘッダーを付けないでください。ヘッダーの有無によって、スキルが実行され、有効な結果が得られたことを示します。

使用する場面

  • 「以前にこれをやったことはありますか?」「過去の作業を検索して」「以前の実装を見つけて」「X に関するチェックポイントを探して」などの依頼があった場合
  • 別のブランチ、リポジトリ、作成者、または最近の期間から過去のコンテキストが必要な場合
  • 有力な一致候補を見つけてから、最適な候補のトランスクリプトを詳しく確認する場合
  • アクセス可能な他のリポジトリからコードを検索したい場合(例:「X はどこに実装されていますか?」「他のリポジトリで Y の使用箇所を見つけて」)。コード検索(--code)を使用してください。

現在のアクティブなセッションには使用しないでください。その場合は session-handoff を使用してください。現在の作業コピー内のファイルを検索する場合は、コード検索よりもローカルツール(grep、ripgrep)を優先してください。

プロセス

  1. コンパクトな JSON 出力で、対象を絞って検索します。
entire search "<query>" --json --compact --limit 5

各コンパクトな検索結果には、id、type(checkpoint、commit、session、repo、pr)、repo、branch、author、date、省略された title、一致した snippet、filesTouched、関連度を示す score が含まれます。プロンプト全体は含まれません。結果は関連度順に表示されます。最初の 5 件に適切な結果がない場合にのみ、--limit(1 ページあたりの件数)を増やすか、--page(1 から始まるページ番号)を追加してください。

CLI が --compact を不明なフラグとして拒否した場合(0.10.0 より前のバージョン)、このフラグを外し、--limit 5 はそのままにしてください。--compact を指定しない場合、各検索結果にはプロンプト全体が含まれるため、デフォルトのページでも数十 KB になることがあります。

ユーザーがすでに条件を指定している場合や、最初の検索範囲が広すぎる場合は、フィルターを追加します。

entire search "<query>" --json --compact --limit 5 --repo owner/name --branch branch-name --author "Name" --date week
  • --repo には複数のリポジトリを指定できます。繰り返すか、カンマで区切ってください(--repo a --repo b、--repo a,b)
  • クエリ内のインラインフィルターも使用できます:author:<name>、date:<week|month>、branch:<name>、repo:<owner/name>、repo:*
  • デフォルトでは、現在のリポジトリが検索されます。アクセス可能なすべてのリポジトリを検索するには、--all-repos を渡すか、クエリ文字列内に repo:* と記述するか、--repo '*'(引用符付き)を渡してください。--repo repo:* は無効です。インラインのトークンをフラグの値に指定することはできません。
  1. 上位の検索結果を確認し、候補になりそうなものをユーザーに要約して伝えます。ユーザーから求められない限り、生の JSON をそのまま出力しないでください。検索結果の title、snippet、filesTouched だけですでに質問に答えられる場合は、直接回答してください。詳細を求められた場合や上位の検索結果が曖昧な場合を除き、explain は実行しないでください。checkpoint と commit の検索結果を優先してください。session の検索結果は、同じ checkpoint を投影したものです。

  2. 検索結果を詳しく調べるには、その id(checkpoint ID または commit SHA。自動判定されます)を渡します。

entire checkpoint explain <id> --no-pager
  • --full を追加すると、checkpoint のセッション記録全体を取得できます。--full が失敗した場合は、--raw-transcript に切り替えてください。
  • 別の GitHub リポジトリにある checkpoint の検索結果では、--repo <owner/name> を追加してください。検索結果にある完全な checkpoint id と、プッシュ済みの checkpoint が必要です。フラグが不明と表示された場合(0.10.0 より前のバージョン)、または explain で何も見つからなかった場合は、再試行せず、コンパクトなフィールドをもとに回答してください。
  • 現在のブランチにある session の検索結果の場合は、entire checkpoint explain --session <id> で関連付けます。このコマンドは、そのセッションの checkpoint を一覧表示します。その中の 1 つを explain してください。
  • repo と pr の検索結果、および別のリポジトリまたはブランチの session や commit は explain できません。コンパクトなフィールドだけをもとに要約してください。

コード検索

checkpoint ではなく、コードの内容を検索するには --code を追加します。

entire search "<query>" --code --json

フラグを使って検索範囲を指定し、絞り込みます。

entire search "<query>" --code --json --repo owner/name --limit 20 --case-sensitive
  • デフォルトでは、現在のリポジトリが検索対象です。ユーザーがアクセスできるすべてのリポジトリを検索するには --all-repos(または repo:*)を追加し、リポジトリを指定するには --repo を使います。
  • --case-sensitive は --code と併用する場合にのみ適用されます。
  • コード検索における --limit は、ページあたりではなく、結果の総数を指定します。
  • --author、--branch、--date、--page、--compact は checkpoint 検索用のオプションです。--code と組み合わせないでください。
  • 検索結果は、一致したスニペットを含むファイルパスとして提示してください。求められない限り、生の JSON をそのまま出力しないでください。
コード検索のヒューリスティック
  • 自然言語の説明ではなく、関数名、エラー文字列、設定キーなど、特徴的なトークンを検索します。
  • 部分的な単語よりも、正確な識別子を優先してください。識別子の大文字・小文字が重要な場合(例:HttpClient と httpclient)は、--case-sensitive を追加します。
  • ユーザーがリポジトリを指定した場合は --repo で範囲を絞ります。コードが別のリポジトリにある可能性がある場合は、最初に --all-repos を指定します。それ以外の場合は現在のリポジトリから検索し、何も見つからなければ --all-repos で検索範囲を広げます。
  • クエリの範囲が広すぎる場合は、--limit を増やす前に、特徴的な用語をもう 1 つ追加するか、検索条件をより具体的にします。
  • コード検索が失敗した場合や、一部の範囲がスキップされたと報告された場合は、検索結果が不完全なものとして扱います。ローカルにチェックアウトしたリポジトリを ripgrep/grep で検索するか、そのコードに触れた過去の作業を checkpoint 検索で調べてください。

検索時のヒューリスティック

  • ユーザーのドメイン用語、機能名、エラーテキスト、ファイル名、チケット ID から検索を始めます
  • --limit を増やす前に、検索範囲を絞ります
  • リポジトリの範囲が重要な場合は、--repo または repo:* を明示的に追加します
  • 回答が現在のリポジトリ以外にある可能性がある場合(インフラストラクチャやデプロイのリポジトリ、スタック内の別のサービス、フリート全体に関わる変更など)は、検索結果が空になるのを待たずに --all-repos に切り替えます
  • 有用な検索結果がない場合は、次の順に検索範囲を広げます:ブランチフィルターを外す、日付範囲を広げる、クエリの用語を簡略化する、--all-repos を追加する

失敗時の対処

  • 検索で認証が必要と表示された場合は、ユーザーに entire login の実行を案内します
  • 検索で「このリポジトリはまだ検索できません」と表示された場合、そのリポジトリはインデックス化されていないか、所有者がセマンティック検索を有効にしていません。再試行するのではなく、その旨を伝えます
  • 一致する結果がない場合は、そのことを明確に伝え、試したフィルターやクエリ用語にも触れます
  • ユーザーが現在のセッションを本当に求めている場合は、チェックポイントを検索するのではなく session-handoff に切り替えます

コメント