Claude Skill MartKhám phá skillCâu dùng ngayHọc qua videoDùng terminalSkill là gì?
Về danh sách

ast-grep: Tìm kiếm & viết lại mã theo AST

Tìm và refactor mã theo cấu trúc cú pháp (AST) thay vì theo văn bản, hỗ trợ 25 ngôn ngữ với quy trình dry-run an toàn.

Lập trìnhTrung cấp67,5315,507Điểm AI 9/10Cập nhật lần cuối: 9 thg 8, 2026

Skill này làm gì

  • Tìm mã theo cây cú pháp (AST) thay vì theo byte văn bản, dùng ký tự thay thế $VAR (một node) và $$$ (nhiều node).
  • Cung cấp helper Python (scripts/ast_grep_helper.py) với các lệnh search, replace, scan, validate, langs, doctor.
  • Kiểm tra pattern offline để bắt lỗi dùng regex sai (\w+, .*, |) trước khi gọi sg, tiết kiệm thời gian debug "0 matches".
  • replace mặc định là dry-run; chỉ ghi file khi thêm --apply. Tự xử lý bẫy --json--update-all loại trừ nhau bằng cách chạy hai lượt.
  • Hỗ trợ rule YAML qua sg scan để làm lint rule và auto-fix trong CI.

Phù hợp với ai

  • Lập trình viên cần migrate API hoặc refactor hàng loạt trên codebase lớn.
  • Nhóm muốn xây rule lint/codemod chạy trong CI.
  • Ai từng bị regex thay thế sai chỗ và muốn cách an toàn hơn.

Ví dụ sử dụng

  1. Đổi toàn bộ console.log($MSG) thành logger.info($MSG): xem trước số file bị ảnh hưởng rồi chạy --apply.
  2. Xóa mọi ép kiểu as any trong TypeScript, hoặc chuyển require(...) sang import.
  3. Trong Python: đổi Optional[X] thành X | None, hoặc tìm các block catch rỗng và chỗ thiếu await.

· · · Hướng dẫn cài đặt · · ·

Dùng thử ngay, không cần cài

Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.

Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình:
https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/HEAD/packages/shared-skills/skills/ast-grep/SKILL.md

Mình muốn: (viết việc bạn cần ở đây)

Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.

Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.

Cài vào ứng dụng Claude (không cần terminal)
  1. Tải tệp ZIP bằng nút bên dưới.
  2. Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
  3. Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Tải ZIP
Cài vào Claude Code

Để Claude làm — dán câu dưới đây vào Claude Code

Hãy cài skill mình tìm thấy trên Claude Skill Mart.
Copy thư mục packages/shared-skills/skills/ast-grep từ repo GitHub code-yeongyu/oh-my-openagent vào ~/.claude/skills/ast-grep/ của mình.
Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.

Cài bằng lệnh thủ công

git clone https://github.com/code-yeongyu/oh-my-openagent.git /tmp/oh-my-openagent && mkdir -p ~/.claude/skills && cp -r /tmp/oh-my-openagent/packages/shared-skills/skills/ast-grep ~/.claude/skills/

Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.

  1. Cài binary ast-grep: brew install ast-grep, hoặc cargo install ast-grep --locked, hoặc npm i -g @ast-grep/cli.
  2. Clone repo: git clone https://github.com/code-yeongyu/oh-my-openagent.git /tmp/oh-my-openagent
  3. Copy cả thư mục skill (gồm scripts/ và references/): mkdir -p ~/.claude/skills && cp -r /tmp/oh-my-openagent/packages/shared-skills/skills/ast-grep ~/.claude/skills/
  4. Kiểm tra: python3 ~/.claude/skills/ast-grep/scripts/ast_grep_helper.py doctor
  5. Khởi động lại Claude Code và yêu cầu ví dụ: "tìm mọi hàm nhận tham số Request trong repo này".
  6. Trên Linux, sg xung đột với lệnh hệ thống — nên đặt alias sg=ast-grep.
Xem mã nguồn trên GitHubGiấy phép: NOASSERTION