技能包

ast-grep 技能:依語法結構搜尋程式碼,而不是只搜文字

適合要依 AST 結構查找程式碼的人,前提是本機已安裝 ast-grep,並在提問裡明確要求使用該技能後再做唯讀搜尋。

官方來源 · ast-grep agent-skill

安裝

npx skills add ast-grep/agent-skill

適合誰

當你要用程式助理依程式碼結構(抽象語法樹)搜尋,而不是只做文字比對時,再使用這個技能。官方把它放在 Claude Code 的外掛市集裡,提供 ast-grep 結構搜尋能力。

前置條件:本機已經安裝 ast-grep,並且助理能安裝技能。說明沒有寫 ast-grep 本身怎麼裝,不要補安裝器。說明點名了 Claude Code,不要把其他用戶端寫成官方專屬;名單以外能不能用,原文沒寫。

安裝主路徑只有一條 npx 命令。裝好後必須在提問裡明確要求使用該技能,例如 “Use ast-grep to find...”。說明寫到 2025 年 11 月,Claude Code 還不能在所有合適場景自動判斷該用 ast-grep。說明沒有寫落地目錄,裝完只在當前助理裡確認該技能可被點名使用。

3 分鐘完成第一次嘗試

官方頁面:

https://github.com/ast-grep/agent-skill

先確認本機 ast-grep 可用,再執行推薦安裝(會往本機寫技能檔案,先核對儲存庫名):

npx skills add ast-grep/agent-skill

命令失敗就停下。成功後不要先改業務程式碼。開啟一個既有儲存庫,用自然語言明確說:Use ast-grep to find...,並給出一個低風險的結構目標,例如查找某種函式呼叫形態。要求助理先分析是否適合用 ast-grep,寫出比對用的示例和規則,並先在示例上測試。

成功訊號:助理明確走了 ast-grep,規則已在示例上驗證,並且全庫結果帶有檔案路徑和行號。若它要寫入規則檔案或改業務程式碼,先攔住,確認副作用後再繼續。

使用案例

案例一:唯讀結構搜尋。提問必須明確點名 ast-grep。讓助理依結構找出符合項,並回傳檔案路徑和行號。第一次只看結果,不要讓它順便重構。說明沒有給出語言範圍或示例儲存庫;不要從想像中的語言清單做推斷。

案例二:先寫規則、再驗證、最後搜全庫。說明裡的步驟是:分析查詢是否適合 ast-grep,建立比對用的示例程式碼,編寫規則,在示例上測試,通過後再搜尋整個程式碼庫,最後給出路徑和行號。只有示例測試通過,才允許搜全庫。說明沒有寫規則檔案路徑或 CLI 旗標;缺的不要補。

使用邊界

主路徑只寫到:

npx skills add ast-grep/agent-skill

本機需要已安裝 ast-grep。觸發必須明確點名,例如 “Use ast-grep to find...”;不要指望它在所有場景自動選用。

能力只證據到結構搜尋,以及「示例 → 規則 → 測試 → 全庫 → 路徑和行號」這條鏈路。它被寫成 Claude Code 外掛市集中的技能,但第一次不要改走未出現的市集點擊步驟。

說明沒有寫 ast-grep 的安裝命令、計費、語言範圍或落地目錄。第一次只做唯讀查找,不要把它當成重構入口。缺依據的項目保持未知,不要補操作。