Đánh Giá Code

Ship code cho khách hàng mà không review đúng cách là cách nhanh nhất để mất đi sự tin tưởng. Nhưng dưới áp lực deadline outsourcing, senior engineer lẽ ra phải review thường lại chính là người viết code đó. Các code review agent của Sun Agent Kit đóng vai trò một senior reviewer luôn sẵn sàng — kiểm tra logic, bảo mật, hiệu suất, và style để bạn có thể merge với sự tự tin ngay cả khi team đang căng thẳng.

Tổng Quan

Mục tiêu: Phát hiện bug, vấn đề bảo mật, và vấn đề hiệu suất trước khi code lên production branch của khách hàng
Thời gian: 5–15 phút (so với 30–60 phút review thủ công)
Agents sử dụng: reviewer, scout, debugger
Commands: /sk:code-review, /sk:code-review #47, /sk:code-review --pending, /sk:code-review codebase

Yêu Cầu Trước Khi Bắt Đầu

  • Sun Agent Kit đã được cài đặt và xác thực (hướng dẫn cài đặt)
  • Git repository với ít nhất một commit (review hoạt động trên diff)
  • Để review PR: remote GitHub, GitLab, hoặc Bitbucket đã được cấu hình và có thể truy cập

Quy Trình Từng Bước

Bước 1: Review diff đang làm việc hiện tại

Trước khi commit, nhận phản hồi ngay lập tức về mọi thứ bạn đã thay đổi kể từ commit cuối.

/sk:code-review --pending

Điều gì xảy ra: Agent thực hiện:

  1. Xác định phạm vi diff từ staged và unstaged change
  2. Chạy static analysis kiểm tra lỗi logic, vấn đề null safety, và dead code
  3. Kiểm tra style convention và xác định function thiếu test coverage
  4. Tạo inline review comment với tham chiếu file và dòng
  5. Lưu báo cáo review vào plans/reports/

Bước 2: Review một pull request

Trỏ agent vào một PR đang mở để nhận review có cấu trúc với inline comment.

/sk:code-review #47

Điều gì xảy ra: Agent thực hiện:

  1. Lấy PR diff từ remote repository
  2. Phân tích thay đổi code về vấn đề business logic, thiếu error handling, và pattern bảo mật
  3. Kiểm tra delta test coverage so với code mới
  4. Review chất lượng commit message và PR description
  5. Tạo báo cáo với các phát hiện được phân loại

Bước 3: Tập trung vào bảo mật và hiệu suất

Khi thời gian eo hẹp, thu hẹp phạm vi review qua prompt.

/sk:code-review "focus on security and performance patterns in the checkout feature branch"

Điều gì xảy ra: Agent thực hiện:

  1. Thu hẹp review vào các mối quan tâm về bảo mật và hiệu suất
  2. Kiểm tra OWASP Top 10 pattern, N+1 query, blocking I/O, và memory leak
  3. Tạo danh sách khắc phục ưu tiên với gợi ý code

Bước 4: Chạy scan toàn bộ codebase

Đối với pre-release audit, chạy full codebase review.

/sk:code-review codebase

Điều gì xảy ra: Agent thực hiện:

  1. Scan toàn bộ codebase về vấn đề code quality, bảo mật, và hiệu suất
  2. Phân loại phát hiện theo mức độ nghiêm trọng
  3. Tạo báo cáo toàn diện phù hợp cho tài liệu bàn giao

Bước 5: Tạo tóm tắt review cho hồ sơ khách hàng

Tạo một tài liệu tóm tắt sạch sẽ thể hiện quy trình QA của team bạn — hữu ích cho các khách hàng Nhật Bản yêu cầu delivery checklist.

/sk:code-review "generate delivery checklist summary for the current branch"

Điều gì xảy ra: Agent review branch và tạo tóm tắt có cấu trúc bao gồm các phát hiện đã được giải quyết, trạng thái test coverage, và trạng thái security review.

Ví Dụ Hoàn Chỉnh: Review PR Trước Khi Merge Lên Production Branch

Tình huống

Là 5 giờ chiều thứ Năm. Team của bạn đã làm việc trên feature branch trong hai tuần — viết lại hoàn toàn checkout flow cho một khách hàng e-commerce Việt Nam. CTO của khách hàng muốn nó live vào sáng thứ Sáu. Senior engineer của bạn đang bận dự án khác. Junior viết hầu hết code tự tin là nó hoạt động, nhưng “nó chạy trên máy tôi” đã từng làm khó team này rồi.

Chuỗi lệnh sử dụng

# 1. Full PR review để hiểu phạm vi rủi ro
/sk:code-review #112

# 2. Pass tập trung vào bảo mật — checkout = dữ liệu thanh toán = không thể thỏa hiệp
/sk:code-review "security-focused review of PR #112 — check for input validation and injection issues in checkout flow"

# 3. Fix những gì review đánh dấu
/sk:fix "apply fixes from the code review findings"

# 4. Pass review cuối cùng
/sk:code-review --pending

Kết quả

Review phát hiện hai phát hiện HIGH: một try/catch bị thiếu xung quanh lệnh gọi payment gateway sẽ nuốt im lặng các lỗi, và một tham số redirect_url do người dùng cung cấp được truyền vào res.redirect() mà không có validation (lỗ hổng open redirect). Cả hai được sửa trong 20 phút với các patch gợi ý từ agent. CTO merge vào sáng thứ Sáu với hồ sơ review lưu lại đầy đủ.

So Sánh Thời Gian

Tác vụThủ côngVới Sun Agent Kit
Đọc diff nhiều file và ghi chú25 phútvài phút
Kiểm tra logic và null-safety15 phútvài phút
Review pattern bảo mật10 phútvài phút
Kiểm tra anti-pattern hiệu suất10 phútvài phút
Viết inline review comment15 phútvài phút
Tổng cộng~75 phút~10 phút

Thực Hành Tốt Nhất

1. Chạy /sk:code-review trước mỗi PR, không chỉ PR lớn ✅

PR nhỏ là nơi bug logic ẩn náu. Một thay đổi hai file “rõ ràng là hoạt động” chính xác là chỗ mà một input chưa được validate hoặc một error handler bị thiếu lọt qua. Biến review thành thói quen, không phải dịp đặc biệt.

2. Dùng prompt tập trung bảo mật cho bất kỳ PR nào liên quan đến authentication, thanh toán, hoặc dữ liệu người dùng ✅

Không phải PR nào cũng cần xử lý đầy đủ. Khi một thay đổi đụng vào code path nhạy cảm, pass bảo mật tập trung mất vài giây để yêu cầu và có thể ngăn chặn một data breach. ROI bất cân xứng — hầu như không tốn gì, và hậu quả của việc bỏ qua là rất lớn.

3. Đừng coi review sạch là thay thế cho tests ❌

Static analysis không thể xác minh hành vi runtime. Một /sk:code-review sạch có nghĩa code có cấu trúc tốt — không có nghĩa tính năng hoạt động đúng trong mọi điều kiện. Tiếp tục chạy test suite; review là bổ sung, không phải thay thế.

4. Luôn đọc phát hiện HIGH trước khi hành động ❌

Phát hiện HIGH thường liên quan đến quyết định business logic — agent sẽ gợi ý một bản fix, nhưng gợi ý đó có thể không phù hợp với yêu cầu domain của bạn. Luôn đọc phát hiện HIGH trước khi áp dụng.

Xử Lý Sự Cố

Vấn đề: Review tạo ra hàng trăm phát hiện style che khuất bug thực sự

Giải pháp: Cung cấp prompt tập trung loại trừ style: /sk:code-review "focus on logic errors, security, and performance — skip style and formatting". Điều này cho phép bạn thấy rõ các phát hiện quan trọng mà không bị nhiễu bởi style.

Vấn đề: PR review thất bại với “cannot fetch diff — authentication error”

Giải pháp: Kiểm tra Git credentials — chạy gh auth status cho GitHub hoặc xác minh SSH key. Token-based access hết hạn; agent cần credentials hợp lệ để lấy PR diff từ private repository.

Vấn đề: Agent đánh dấu false positive trên một pattern có chủ ý

Giải pháp: Giải thích context trong prompt: /sk:code-review "this raw query in the admin route is intentional — focus on other security concerns". Agent điều chỉnh phân tích dựa trên hướng dẫn của bạn.

Vấn đề: Review mất quá nhiều thời gian trên codebase rất lớn

Giải pháp: Thu hẹp review vào các thư mục cụ thể: /sk:code-review "review only src/api/ and src/services/ directories". Bạn có thể chạy nhiều targeted review thay vì một scan khổng lồ.

Bước Tiếp Theo


Điểm mấu chốt: Code review có AI không thay thế phán đoán của kỹ sư — nó đảm bảo không có PR nào tới production branch của khách hàng với bug đã biết, lỗ hổng bảo mật, hoặc vấn đề hiệu suất mà một reviewer có thời gian đã có thể phát hiện ra.