AI không submit PR. Bạn submit PR.
Nghe hơi đạo đức, nhưng đây là một ranh giới vận hành rất thực tế. Nếu bug lọt vào production, nếu license sai, nếu maintainer mất một giờ review một patch vô nghĩa, người chịu trách nhiệm không phải model. Là người bấm gửi.
Vibe coding làm ranh giới này mờ đi vì output đến quá nhanh.
Open-source đã bắt đầu đặt luật rõ hơn
LLVM đã có policy human-in-the-loop cho tool-assisted contributions sau khi thấy tăng nuisance contributions. Ý chính rất đơn giản: dùng tool được, nhưng con người phải đọc và review output trước khi yêu cầu người khác review.
Linux kernel cũng thêm guidance cho AI coding assistants. Điểm đáng chú ý là AI agent không được tự thêm Signed-off-by; phần certify pháp lý và trách nhiệm vẫn nằm ở human submitter. Nếu có AI hỗ trợ, attribution nên tách khỏi trách nhiệm của con người.
Hai dự án này rất khác nhau, nhưng bài học giống nhau: AI-assisted không phải AI-owned.
Đừng outsource review debt sang người khác
Với repo cá nhân, bạn có thể chấp nhận rủi ro. Với team hoặc open-source, một PR AI-generated kém là cách chuyển chi phí sang reviewer. Người review phải đọc diff, đoán intent, kiểm provenance, bắt bug, và đôi khi còn phải giải thích vì sao patch không có giá trị.
Đó không phải collaboration. Đó là gửi hóa đơn review.
Nếu bạn không hiểu PR của mình, đừng gửi nó như một contribution. Gửi câu hỏi, draft, hoặc issue trước. Nói rõ phần nào do AI hỗ trợ và phần nào bạn đã verify.
Checklist trước khi gửi PR do agent tạo
Trước khi bấm submit:
Explain this PR as if I am the author.
List the problem, the minimal change, files touched, tests run, and known risks.
Identify any generated code that I have not independently reviewed.
Identify any copied or near-match code risk.
Point out behavior changes that are not obvious from the title.
Nếu bạn không thể tự nói lại phần đó bằng lời của mình, PR chưa sẵn sàng.
Khi nào nên dừng ở draft
Dùng draft nếu:
- Bạn chưa hiểu hết diff.
- PR chạm auth, payment, database, dependency, license hoặc security.
- Agent tự thêm scope ngoài task.
- Test pass nhưng bạn chưa chạy manual flow.
- Patch có vẻ đúng nhưng bạn không giải thích được vì sao đúng.
Draft không làm bạn chậm. Draft nói thật về trạng thái của patch.
Chốt lại
Vibe coding có kiểm soát không phải là “AI viết, người ký tên”. Nó là “AI hỗ trợ, người hiểu, người chịu trách nhiệm”.
Nếu bạn bấm submit, bạn là author về mặt vận hành. Không cần phủ nhận AI. Cũng không cần xấu hổ vì dùng AI. Nhưng phải đủ kỷ luật để không đẩy output mình chưa hiểu sang người khác review.
Người review không nợ agent của bạn một buổi chiều.