# Glob

ファイル名を glob パターンに対してマッチさせ、最新の変更時刻が最初になるようにソートされたパスを返します。`find` にシェルアウトすることなく、任意のサイズのコードベースで素早くファイルを見つけるために最適化されています。

## 使用タイミング

- 特定の拡張子のすべてのファイルを列挙する (例えば `src` 以下のすべての `*.ts` ファイル)
- 命名規則によって設定ファイルやフィクスチャファイルを発見する (`**/jest.config.*`、`**/*.test.tsx`)
- ターゲットを絞った `Grep` を実行する前に検索対象を絞り込む
- `Write` を呼ぶ前に、既知のパターンにファイルがすでに存在するかチェック
- 変更時刻順に依存することで、最近触れたファイルを見つける

## パラメータ

- `pattern` (string, required): マッチさせる glob 式。単一セグメントのワイルドカードには `*`、再帰的マッチには `**`、代替には `{a,b}` をサポートします。例 `src/**/*.{ts,tsx}`。
- `path` (string, optional): 検索を実行するディレクトリ。提供する場合は有効なディレクトリパスである必要があります。現在の作業ディレクトリを検索するには、フィールドを完全に省略してください。`"undefined"` や `"null"` という文字列を渡さないでください。

## 例

### 例 1: すべての TypeScript ソースファイル
`pattern: "src/**/*.ts"` で `Glob` を呼び出します。結果は mtime でソートされたリストなので、最近編集されたファイルが最初に表示され、ホットスポットに焦点を合わせるのに便利です。

### 例 2: クラス定義の候補を特定
ファイル名が分からないファイルにクラスがあると疑われる場合、`pattern: "**/*UserService*"` で検索して候補を絞り込み、その後 `Read` または `Grep` で追跡します。

### 例 3: より大きなタスクの前の並列発見
単一のメッセージで複数の `Glob` 呼び出しを発行します (例えば `**/*.test.ts` 用と `**/fixtures/**` 用)。両方が並列で実行され、結果を相関できます。

## 注意事項

- 結果はファイルの変更時刻 (新しい順) でソートされ、アルファベット順ではありません。安定した順序が必要な場合は後段でソートしてください。
- パターンはシェルではなくツールによって評価されます。コマンドラインのように引用符やエスケープを使う必要はありません。
- 複数回の検索と推論が必要なオープンエンドな探索には、多くの `Glob` 呼び出しをチェーンするのではなく、Explore エージェントタイプで `Agent` に委譲してください。
- ファイル名の発見には `Bash` での `find` や `ls` 呼び出しよりも `Glob` を優先してください。パーミッションを一貫して処理し、構造化された出力を返します。
- ファイル名ではなくファイル内のコンテンツを探す場合は、代わりに `Grep` を使用してください。
