Một post đang lên trong r/ClaudeCode hôm nay chỉ có tiêu đề rất ngắn: “make no mistakes”. Nội dung là dạng hài hước, nhưng nó chạm đúng một vấn đề thật của anh em đang dùng AI để code: mình hay kỳ vọng agent “đừng sai”, trong khi cách làm bền hơn là thiết kế quy trình để sai cũng bị bắt sớm.
Điểm đáng chú ý không nằm ở meme, mà ở phản xạ vận hành. Khi Claude Code, Cursor hay các coding agent khác ngày càng tham gia sâu vào repo, câu hỏi không còn là “model này có hoàn hảo không”, mà là “mình đã có hàng rào nào để phát hiện lỗi trước khi merge chưa”.
Vì sao “không được sai” là yêu cầu dễ hỏng
Với coding agent, lỗi thường không xuất hiện như một dòng code sai rõ ràng. Nó có thể là:
- hiểu nhầm yêu cầu nhỏ trong prompt
- sửa đúng file nhưng bỏ sót một ràng buộc cũ
- tối ưu một nhánh logic và làm hỏng nhánh ít dùng
- tự tin giải thích hợp lý nhưng chưa chạy test
- thay đổi behavior phụ vì context quá dài hoặc thiếu dữ liệu
Nếu mình chỉ nhắc “hãy cẩn thận” hoặc “make no mistakes”, agent có thể trả lời tốt hơn về mặt ngôn ngữ, nhưng chưa chắc hệ thống an toàn hơn. Tin tức nhỏ từ cộng đồng này nhắc lại một nguyên tắc cũ của engineering: chất lượng đến từ quy trình kiểm chứng, không chỉ từ lời hứa của người viết code.
Checklist nhanh trước khi giao việc cho agent
Trước khi để AI sửa code, mình nên chốt 4 thứ:
- Phạm vi sửa: file nào được sửa, file nào không được đụng.
- Điều kiện xong việc: test nào phải pass, command nào phải chạy.
- Ràng buộc không phá: API contract, format dữ liệu, backward compatibility, hiệu năng.
- Cách báo cáo: agent phải nói rõ đã đổi gì, chưa kiểm chứng được gì, và rủi ro còn lại.
Một prompt ngắn nhưng tốt thường có dạng:
Sửa lỗi X trong module Y. Chỉ thay đổi các file liên quan trực tiếp.
Sau khi sửa, chạy test A và B. Nếu không chạy được, nói rõ lý do.
Không đổi public API và không refactor ngoài phạm vi lỗi này.
Trước khi kết thúc, liệt kê diff chính và rủi ro còn lại.
Sau khi agent sửa xong, đừng chỉ đọc phần tóm tắt
Phần tóm tắt của AI hữu ích, nhưng không thay thế được kiểm chứng. Với một thay đổi có rủi ro, anh em nên có thói quen:
- xem diff thật, không chỉ đọc lời giải thích
- chạy test hoặc ít nhất chạy lệnh build/typecheck
- yêu cầu agent tự review lại theo checklist ban đầu
- tách commit nhỏ để rollback dễ
- nếu có thay đổi logic quan trọng, thêm test trước khi merge
Một mẹo thực tế: sau khi agent hoàn tất, hãy hỏi ngược lại “nếu thay đổi này gây lỗi production, khả năng cao lỗi nằm ở đâu?”. Câu trả lời không phải lúc nào cũng đúng, nhưng thường giúp mình nhìn ra điểm cần kiểm tra thêm.
Khi nào nên cho agent tự chạy, khi nào cần giữ tay lái
Có thể để agent tự xử lý các việc ít rủi ro như sửa test, đổi copy, cập nhật type, viết tài liệu kỹ thuật, hoặc refactor nhỏ có test bao phủ tốt.
Nhưng với migration dữ liệu, auth, billing, phân quyền, xóa dữ liệu, hoặc deploy production, mình nên giữ quyền quyết định ở từng bước. AI có thể đề xuất plan và tạo patch, còn thao tác cuối nên qua review rõ ràng.
Kết luận
“Make no mistakes” nghe vui vì ai dùng coding agent cũng từng mong như vậy. Nhưng trong thực tế, yêu cầu đúng hơn là: “hãy làm trong phạm vi rõ ràng, để lại dấu vết kiểm chứng, và giúp mình phát hiện lỗi sớm”.
Nếu anh em đang dùng Claude Code hằng ngày, nâng cấp lớn nhất có khi không phải đổi model, mà là thêm checklist, test gate và thói quen đọc diff trước khi tin vào phần tóm tắt.
Top comments (0)