| name | ast-grep-search |
| description | Performs structural code search and safe rewrite planning with ast-grep. Use when pattern matching must follow AST structure instead of plain text. |
| compatibility | Designed for Claude Code |
| allowed-tools | Read, Grep, Glob, Bash |
| user-invocable | false |
ast-grep Search and Refactor
Use this skill when
- regex/
rg matching is too fragile
- refactors need placeholder captures (
$VAR, $$$ARGS)
- you need language-aware code pattern detection
Decision rule
- Literal text search ->
rg
- Syntax tree structure search ->
ast-grep
Core workflow
- Define a minimal structural pattern.
- Run search scoped to target paths/language.
- Review match set before rewrite.
- Apply rewrite interactively or with update-all if safe.
- Re-run tests/lints after rewrite.
Minimal command set
ast-grep -p 'pattern' --lang ts src/
ast-grep -p 'old($$$ARGS)' -r 'new($$$ARGS)' --lang ts src/
ast-grep -p 'old($$$ARGS)' -r 'new($$$ARGS)' --lang ts -i src/
ast-grep -p 'old($$$ARGS)' -r 'new($$$ARGS)' --lang ts -U src/
Constraints
- Always limit path scope.
- Prefer interactive mode for large rewrites.
- Never run destructive rewrites without a preview.
References
reference.md
examples.md
rules/ (ready-to-use scan rules)