Claude Skill MartKhám phá skillSkill là gì?
Về danh sách

ast-grep – Tìm & sửa mã theo cấu trúc AST

Tìm kiếm và viết lại mã trên 25 ngôn ngữ dựa vào cây cú pháp (AST) thay vì văn bản thuần, kèm quy trình codemod 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

Làm được gì

Skill dùng ast-grep (sg) để tìm và thay thế mã theo hình dạng cú pháp, không phải theo byte văn bản. Meta-variable $VAR khớp một node, $$$ khớp nhiều node.

  • Kèm wrapper Python (scripts/ast_grep_helper.py) với các lệnh search, replace, scan, validate, langs, doctor.
  • Kiểm tra pattern offline trước khi chạy, chặn lỗi dùng cú pháp regex (\w, .*, |) vốn im lặng thất bại.
  • Tự xử lý bẫy lớn nhất của ast-grep: --json--update-all loại trừ nhau, nên helper chạy hai lượt (xem trước → áp dụng).
  • replace mặc định là dry-run và luôn báo số match cùng số file bị ảnh hưởng.
  • Hỗ trợ rule YAML qua sg scan để làm lint nội bộ và auto-fix trong CI.

Phù hợp với ai

  • Lập trình viên phải migrate hàng trăm file (require → import, Optional[X]X | None...).
  • Người từng khổ vì grep khớp sai quá nhiều khi refactor.
  • Team lead muốn thêm rule lint tuỳ chỉnh vào CI.
  • Ai muốn nhờ Claude Code "đổi hết" mà vẫn kiểm soát được rủi ro.

Ví dụ sử dụng

  1. Đổi logger: "Thay mọi console.log(x) thành logger.info(x)" → helper dry-run, hiện số match/số file, rồi bạn thêm --apply.
  2. Dọn kiểu dữ liệu: "Xoá toàn bộ cast as any trong TypeScript" → khớp theo cấu trúc nên không đụng vào chuỗi hay comment.
  3. Kiểm tra chất lượng: "Tìm các block catch rỗng rồi viết thành rule YAML chạy trong CI" → tạo file trong rules/ và chạy sg scan.

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

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 && mkdir -p ~/.claude/skills && cp -r 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. Mở terminal, kiểm tra Python 3: python3 --version.
  2. Clone repo: git clone https://github.com/code-yeongyu/oh-my-openagent.git
  3. Copy skill: mkdir -p ~/.claude/skills && cp -r oh-my-openagent/packages/shared-skills/skills/ast-grep ~/.claude/skills/
  4. Cài binary ast-grep: bash ~/.claude/skills/ast-grep/install.sh (Windows dùng install.ps1 trong PowerShell), hoặc brew install ast-grep / cargo install ast-grep.
  5. Kiểm tra: python3 ~/.claude/skills/ast-grep/scripts/ast_grep_helper.py doctor.
  6. Khởi động lại Claude Code và thử yêu cầu: "tìm tất cả lời gọi console.log trong repo này".
  7. Trên Linux nên gọi ast-grep thay vì sg (trùng lệnh hệ thống), và luôn commit code trước khi dùng --apply.
Xem mã nguồn trên GitHubGiấy phép: NOASSERTION