Agent skill · software engineering · aiskillstore

ast-grep

语法感知的代码搜索、linting 和重写工具。支持基于 AST 的结构化代码搜索和批量代码转换。

Why this skill is useful

Adds specific AST-based search and transformation commands that the AI wouldn't reliably generate on its own.

What it needs

Requires ast-grep installed locally. About 4k tokens when loaded. Last updated 2026-08-07. 405 stars on the source repository.

What this skill does

AST-Grep AST-Grep (ast-grep/sg) 是一个快速且用户友好的工具,用于代码搜索、linting 和大规模代码重写。 执行环境 路径类型 说明 --------- ------ 使用方式 命令行工具,需要安装 ast-grep 调用场景 语法感知的代码搜索、结构化代码分析、批量代码转换 工作目录 项目根目录 安装 核心功能 1. 语法感知搜索 使用 AST(抽象语法树)进行代码搜索,而非简单的文本匹配。 2. 代码 Linting 基于 AST 的代码检查,比传统 linter 更精确。 3. 代码重写 批量转换代码模式。 4. 规则测试 测试 ast-grep 规则是否正确。 规则开发流程 通用流程 1. 理解查询:明确用户需求,必要时询问更多细节 2. 编写示例:编写匹配查询的简单代码示例 3. 编写规则:编写匹配示例的 ast-grep 规则 4. 测试规则:使用 testmatchcoderule 验证规则 如果不匹配,移除部分子规则并调试 如果使用 inside 或 has,确保使用 stopBy: end 5. 搜索代码:使用规则搜索代码库 规则开发步骤 1. 分解查询:将用户查询分解为更小的部分 2. 识别子规则:识别可用于匹配代码的子规则 3. 组合规则:使用关系规则或组合规则组合子规则 4. 调试规则:如果规则不匹配示例代码,移除部分子规则并调试不匹配的部分 5. 使用工具:使用 ast-grep mcp 工具转储 AST 或转储模式查询 6. 测试规则:使用 ast-grep mcp 工具针对示例代码片段测试规则 规则类型 1. 原子规则 匹配单个 AST 节点,基于内在属性。 pattern - 模式匹配 kind - 节点类型匹配 regex - 正则表达式匹配 nthChild - 位置匹配 range - 范围匹配 2. 关系规则 基于目标节点与其他节点的关系过滤目标。 inside - 在父节点内 has - 包含子节点 precedes - 在节点之前 follows - 在节点之后 stopBy - 搜索终止控制 field - 字段匹配 3. 组合规则 使用逻辑操作组合其他规则。 all - 逻辑与(AND) any - 逻辑或(OR) not - 逻辑非(NOT) matches - 规则重用 元变量 $VAR - 单个命名节点捕获 $VAR - 单个未命名节点捕获 $$VAR - 多节点捕获 VAR - 非捕获元变量 编写规则的最佳实践 1. 始终使用 stopBy: end:对于关系规则,确保搜索到方向末尾 2. 简单结构使用 pattern:代码结构简单时直接使用模式 3. 复杂结构使用 rule:代码结构复杂时使用规则分解 4. 使用 kind 调试:如果 pattern 不工作,先用 kind 匹配节点类型 5. 关系规则无匹配时添加 stopBy:确保搜索到末尾 YAML 规则配置 简单规则 复杂规则 带修复的规则 使用关系规则 常用场景 1. 查找特定代码模式 2. 重构代码 3. 代码审计 4. API 迁移 与其他工具对比 特性 ast-grep grep ripgrep ------ ---------- ------ --------- 语法感知 是 否 否 代码结构理解 是 否 否 跨语言支持 是 否 否 性能 快 快 最快 重写功能 是 否 否 参考资源 官方文档: https://ast-grep.github.io/ GitHub: https://github.com/ast-grep/ast-grep 规则示例: https://ast-grep.github.io/catalog/ Playground: https://ast-grep.github.io/playground/ MCP 服务器: https://github.com/ast-grep/ast-grep-mcp 集成 Pi 工作流 Phase 1: 上下文检索 当需要理解代码结构时,使用 ast-grep 进行语法感知搜索: Phase 4: 编码实施 使用 ast-grep 进行批量代码转换: Phase 5: 审计 使用 ast-grep 验证代码质量: 注意事项 ast-grep 需要安装才能使用 模式语法需要熟悉 AST 结构 复杂规则建议先测试再应用 大规模重构前建议备份代码 使用 stopBy: end 确保关系规则搜索完整 元变量必须符合语法要求($VAR, $VAR, $$VAR)

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills aiskillstore/ast-grep

View the source on GitHub

Browse the @skills marketplace