AI coding giúp viết code nhanh hơn, nhưng số PR mở ra cũng nhiều hơn trong khi số người review vẫn vậy. Kết quả: review — chứ không phải viết code — mới là nút thắt cổ chai mới.
Open-PR ra đời từ đó — một AI agent mã nguồn mở chuyên review Pull Request, chạy thẳng trong các agent CLI quen thuộc (Claude Code, Cursor, Codex, Gemini CLI, Antigravity) thay vì một dịch vụ SaaS hay bot account riêng:
Developer mở PR → AI review vòng đầu → người review quyết định cuối cùng → merge.
Đã có khá nhiều AI agent làm nhiệm vụ review code. Vậy Open-PR khác gì?
Không phải một "prompt review chung chung"
Nhiều skill/agent review hiện nay chỉ là một file mô tả (SKILL.md) bảo AI "hãy review cẩn thận". Vấn đề là mỗi lần chạy một kiểu — khi khắt khe, khi dễ dãi — và gần như không biết gì về convention riêng của dự án.
Open-PR khác ở chỗ: ngay lần chạy đầu tiên trong một repo, nó đọc README, CLAUDE.md, AGENTS.md, docs, wiki để hiểu convention thật của dự án đó, và quy tắc riêng của team luôn thắng quy tắc chung chung. Nó cũng có trí nhớ theo từng repo: mọi điều team từng góp ý hay thống nhất sẽ được ghi lại, để lần review sau không phải nhắc lại. Nhờ vậy, dù chạy lúc nào, review vẫn giữ đúng một "giọng" — giọng của chính dự án, không trôi nổi theo từng lần chạy.
Trao đổi thân thiện, chi tiết — như hai người đang bàn code
Điểm đáng chú ý nhất ở Open-PR không phải là tìm ra bao nhiêu lỗi, mà là cách nó duy trì cuộc trò chuyện trên PR.
Một AI review "kiểu cũ" thường ném ra một cục comment rồi thôi; chạy lại là review lại từ đầu, có khi lặp lại đúng điều đã nói. Open-PR thì khác: chạy /open-pr:review lần hai trên cùng PR, nó đọc lại từng thread cũ, xem điều đã góp ý được xử lý chưa — đã sửa thì xác nhận ngay trên đúng thread (có thể tự resolve nếu bạn bật tùy chọn này), chưa sửa thì im lặng chứ không lặp lại finding cũ. Review mới chỉ nói về phần vừa thay đổi.
Thú vị hơn là /open-pr:fix. Thay vì thấy comment là sửa theo — kể cả khi comment sai và biến code đúng thành sai — Open-PR tự cân nhắc finding có hợp lý không. Hợp lý thì sửa theo đúng convention và trí nhớ của repo; chưa ổn thì trả lời lại đúng thread kèm dẫn chứng, giống một lập trình viên phản biện lại reviewer thay vì răm rắp làm theo. Sau khi push, nó luôn quay lại từng thread để nói rõ đã fix ra sao hoặc vì sao không fix — và không bao giờ tự resolve, quyền đóng thread luôn thuộc về người. Cuộc trao đổi vì thế nằm nguyên đúng chỗ vấn đề được nêu, không bị "restart" mỗi lần chạy.
Comment không chỉ để báo lỗi — mà giải thích rõ ràng, có bằng chứng
Mỗi lượt review gồm ba phần gắn liền nhau: Overview (toàn cảnh diff, các finding nhóm theo mức độ nghiêm trọng, kể cả vấn đề ở cấp file không có dòng cụ thể để bám), line comment (finding gắn đúng vào dòng liên quan, kèm sẵn khối suggestion để commit thẳng từ giao diện PR, không cần gõ lại), và reply (sau khi /open-pr:fix push, trả lời ngay trên thread đó để khép lại vòng trao đổi).
Để AI và người hiểu nhau rõ ràng, Open-PR dùng một hệ thống mức độ nghiêm trọng tường minh, như một "hợp đồng" giữa reviewer và author:
| Ký hiệu | Mức độ |
/open-pr:fix xử lý ra sao |
|---|---|---|
| 🔴 | MUST FIX | tự động xử lý |
| 🟠 | SHOULD FIX | tự động xử lý |
| 🔵 | SUGGESTION | luôn hỏi lại trước khi đụng code |
| 📝 | NOTE | luôn hỏi lại trước khi đụng code |
Diff không có gì đáng nói thì chỉ đăng đúng một dòng LGTM 🌟, không tạo noise. Sáu nhóm tiêu chí được xem xét là bug & logic, security, performance, code quality, khả năng bảo trì/đọc hiểu, và quy tắc riêng theo từng framework/ngôn ngữ (Rails, Vue, React, Python, Node.js, Laravel, WordPress...) — quy tắc riêng của team luôn thắng khi có xung đột.
Chọn ngôn ngữ mặc định khi comment lên PR
Open-PR tách riêng hai ngôn ngữ: ngôn ngữ bạn trò chuyện với agent trong CLI (chat_language), và ngôn ngữ nó đăng công khai lên PR (output_language) — cấu hình này gắn với từng repo, không phải từng người dùng.
Lần chạy đầu tiên trong một repo, Open-PR hỏi một lượt ngắn để chọn ngôn ngữ đăng lên PR, rồi ghi nhớ cho mọi lần sau. Nhờ vậy một repo có thể luôn review nhất quán bằng tiếng Việt (hoặc Anh, Nhật, Trung), bất kể ai trong team gõ lệnh review.
Setup với Claude Code
Trước tiên, đảm bảo đã cài và đăng nhập GitHub CLI:
gh auth login
Thêm marketplace và cài plugin:
/plugin marketplace add TOMOSIA-VIETNAM/open-pr
/plugin install open-pr@open-pr
Sau đó chạy review trực tiếp trên một PR:
/open-pr:review <PR_URL>
Ví dụ:
/open-pr:review https://github.com/your-org/your-repo/pull/123
Claude Code sẽ phân tích PR và trả về finding để bạn xem xét trước khi merge. Khi cần xử lý luôn phần đã đồng ý, chạy tiếp /open-pr:fix <PR_URL> — đúng một commit, không force-push, luôn reply từng thread sau khi push.
Top comments (0)