mcpField
A
ast-grep

ast-grep

github.com/pproenca開発220335 回インストール11 週間前に更新
リポジトリ

ast-grep について

ast-grepは、ast-grepルールの作成と利用に関するコミュニティ運営のベストプラクティススキルです。パターン設計、合成、書き換え、性能、ルール検証を案内します。

主な機能

  1. 018カテゴリ、46件のルール
  2. 02パターンとメタ変数のガイド
  3. 03ルール合成と制約設計
  4. 04書き換えの正確性に関する実践
  5. 05性能最適化とデバッグの助言

活用シーン

  1. 01コード検索やlint用ルールの作成
  2. 02一致しないパターンのデバッグ
  3. 03大規模コードベースのスキャン最適化
  4. 04ルールプロジェクトの整理とテスト

インストール

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

$npx skills add https://github.com/pproenca/dot-skills --skill ast-grep

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

AGENTS.md
metadata.json
README.md
assets/templates/
_template.md
references/
_sections.md
compose-all-for-and-logic.md
compose-any-for-or-logic.md
compose-field-targeting.md
compose-has-for-children.md
compose-inside-for-context.md
compose-matches-for-reuse.md
compose-not-for-exclusion.md
compose-precedes-follows.md
const-kind-filter.md
const-not-inside-not.md
const-pattern-constraint.md
const-post-match-timing.md
const-regex-filter.md
meta-multi-match-lazy.md
meta-named-vs-unnamed.md
meta-naming-convention.md
meta-reuse-binding.md
meta-single-node.md
meta-underscore-noncapture.md
org-file-filtering.md
org-message-clarity.md
org-project-structure.md
org-severity-levels.md
org-unique-rule-ids.md
pattern-avoid-comments-strings.md

詳細

ast-grep コミュニティのベストプラクティス

ast-grep のルール作成と使用に関する包括的なベストプラクティスガイドです。ast-grep コミュニティによって管理されています。8 つのカテゴリにわたる 46 個のルールを収録し、影響度に基づいて優先順位を付けることで、自動ルール生成とコード変換を支援します。

適用する場面

次のような場合に、これらのガイドラインを参照してください。

  • lint や検索のために新しい ast-grep ルールを作成する
  • 想定したコードに一致しないパターンをデバッグする
  • 大規模なコードベースでルールのパフォーマンスを最適化する
  • 適切に整理された ast-grep プロジェクトをセットアップする
  • 正確性と保守性の観点から ast-grep ルールをレビューする

一般的なワークフロー

コード検索用の ast-grep ルールを作成する際は、次のワークフローに従ってください。

ステップ 1:クエリを理解する

何を検索したいのかを明確にします。

  • 対象のプログラミング言語
  • 対応するエッジケース
  • 含める対象と除外する対象
ステップ 2:サンプルコードを作成する

目的の一致パターンを表すコードスニペットを作成します。

ステップ 3:ast-grep ルールを作成する

適切な方法を選択します。

  • 単純な構造には pattern を使用します
  • 複雑な構造には has/inside と組み合わせた kind を使用します
  • 複合クエリには all、any、または not を組み合わせます
  • リレーショナルルールでは常に stopBy: end を使用します(inside、has)。これにより、完全な検索が行われます
ステップ 4:ルールをテストする
# Inspect AST structure
ast-grep run --pattern '[code]' --lang [language] --debug-query=ast

# Test inline rule
echo "[code]" | ast-grep scan --inline-rules "[rule]" --stdin

# Test from file
ast-grep scan --rule [file.yml] [path]
ステップ 5:コードベースを検索する

検証済みのルールを適用します。

# Search with pattern (simple matches)
ast-grep run --pattern '[pattern]' --lang [language] [path]

# Search with rule file (complex queries)
ast-grep scan --rule [file.yml] [path]

# Apply fixes interactively
ast-grep scan --rule [file.yml] --interactive [path]
クイックヒント
  1. 常に stopBy: end を使用する - リレーショナルルールでサブツリー全体を確実に走査します
  2. シンプルに始めて、複雑さを加える - パターンから始め、kind、次にリレーショナルルールへと進みます
  3. AST の検査でデバッグする - --debug-query=ast を使用して、構造の一致を確認します
  4. インラインルールではエスケープする - シェルコマンドでは \$VAR またはシングルクォートを使用します
  5. まずプレイグラウンドでテストする - 迅速に試行錯誤するには https://ast-grep.github.io/playground.html を使用します

優先度別のルールカテゴリ

優先度カテゴリ影響度プレフィックス
1パターンの正確性CRITICALpattern-
2メタ変数の使用CRITICALmeta-
3ルールの構成HIGHcompose-
4制約の設計HIGHconst-
5書き換えの正確性MEDIUM-HIGHrewrite-
6プロジェクトの整理MEDIUMorg-
7パフォーマンスの最適化MEDIUMperf-
8テストとデバッグLOW-MEDIUMtest-

クイックリファレンス

1. パターンの正確性(CRITICAL)
2. メタ変数の使用(重大)
3. ルールの合成(高)
4. 制約の設計(高)
5. 書き換えの正確性(中〜高)
6. プロジェクトの整理(中)
7. パフォーマンスの最適化(中)
8. テストとデバッグ(低〜中)

使用方法

詳しい説明とコード例については、各リファレンスファイルをお読みください。

完全版のコンパイル済みドキュメント

  • AGENTS.md - すべてのルールを含む完全版のコンパイル済みガイド

リファレンスファイル

ファイル説明
AGENTS.mdすべてのルールを含む完全版のコンパイル済みガイド
references/_sections.mdカテゴリーの定義と順序
assets/templates/_template.md新しいルールのテンプレート
metadata.jsonバージョンとリファレンス情報

コメント