AGENTS dot mdファイルまたはCLAUDE dot mdファイルへの便利な追加機能です。ast-grepがまだインストールされていない場合は、まずcodexまたはclaude codeにインストールを依頼してください。 これは、構文を認識しない通常の文字列マッチングを使用して実行するのが難しい可能性のある、コード内の一般的なパターンを体系的に見つけるのに非常に便利です。
平文は次のとおりです: ### ast-grep と ripgrep (クイックガイド) **構造が重要な場合は `ast-grep` を使用します。** コードを解析して AST ノードを一致させるため、結果ではコメント/文字列が無視され、構文が理解され、コードを **安全に書き換える** ことができます。 * リファクタリング/コード変更: API の名前を変更し、インポート形式を変更し、呼び出しサイトまたは変数の種類を書き換えます。 * ポリシー チェック: リポジトリ全体にパターンを適用します (ルールを使用した `scan` + `test`)。 * エディター/自動化: LSP モード。ツール用の `--json` 出力。 **テキストで十分な場合は `ripgrep` を使用します。** これは、ファイル間でリテラル/正規表現を grep する最も速い方法です。 * 偵察: 文字列、TODO、ログ行、構成値、または非コードアセットを見つけます。 * 事前フィルター: 正確なパスの前に候補ファイルを絞り込みます。 **経験則** * 速度よりも正確さが求められます。そうでないと **変更を適用** することになります → `ast-grep` から始めます。 * 純粋なスピードが必要な場合、または単に **テキストを探している** 場合 → `rg` から始めてください。 * 多くの場合、`rg` を使用してファイルを絞り込み、次に `ast-grep` を使用して正確に一致/変更するという組み合わせになります。 **スニペット** 構造化コードを検索します(コメント/文字列は無視されます)。 ```バッシュ ast-grep run -l TypeScript -p 'import $X from "$P"' 「」 Codemod (実際の `var` 宣言のみが `let` になります): ```バッシュ ast-grep run -l JavaScript -p 'var $A = $B' -r 'let $A = $B' -U 「」 簡単なテキスト検索: ```バッシュ rg -n 'コンソール\.log\(' -t js 「」 スピードと精度を兼ね備える: ```バッシュ rg -l -t ts 'useQuery\(' | xargs ast-grep run -l TypeScript -p 'useQuery($A)' -r 'useSuspenseQuery($A)' -U 「」 **メンタルモデル** * 一致の単位: `ast-grep` = ノード; `rg` = 行。 * 誤検出: `ast-grep` は低い; `rg` は正規表現に依存します。 * 書き換え: `ast-grep` はファーストクラス。`rg` はアドホック sed/awk を必要とし、付随的な編集のリスクがあります。
