ast-grep

Search code using Abstract Syntax Tree patterns with ast-grep. Use when finding code structures, bug patterns, or refactoring candidates that depend on syntax rather than text.

allowed_tools: Bash, Read, Glob

$ 安裝

git clone https://github.com/majiayu000/claude-skill-registry /tmp/claude-skill-registry && cp -r /tmp/claude-skill-registry/skills/development/ast-grep ~/.claude/skills/claude-skill-registry

// tip: Run this command in your terminal to install the skill


name: ast-grep description: Search code using Abstract Syntax Tree patterns with ast-grep. Use when finding code structures, bug patterns, or refactoring candidates that depend on syntax rather than text. allowed-tools: Bash, Read, Glob

ast-grep - Structural Code Search

ast-grep searches code by matching AST patterns, not text. This finds code based on structure regardless of formatting or variable names.

Basic Usage

ast-grep run -p 'PATTERN' -l LANGUAGE

Pattern Syntax

  • $VAR - Match any single node (like a wildcard)
  • $$$ - Match zero or more nodes
  • Literal code matches itself

Common Patterns

GoalPatternLanguage
Find subtraction with specific left operanddiscount - $VARtypescript
Find all useEffect with empty depsuseEffect($FN, [])tsx
Find console.log callsconsole.log($$$)typescript
Find async functionsasync function $NAME($$$) { $$$ }typescript

Example: Finding Reversed Operands

To find where discount appears on the left side of subtraction:

ast-grep run -p 'discount - $VAR' -l typescript

This would find bugs like discount - basePrice (should be basePrice - discount).

When to Use

  • Finding bug patterns based on code structure
  • Locating specific API usage patterns
  • Identifying refactoring candidates
  • Searching for security anti-patterns