Một ảo tưởng rất tiện:
AI viết đoạn code này, vậy chắc không dính license của ai.
Không chắc.
AI-generated code không tự động sạch provenance. Nó có thể giống pattern từ open source, copy cấu trúc quen thuộc, dùng API theo cách lấy từ docs có license, hoặc tạo dependency kéo theo nghĩa vụ license. Dù rủi ro pháp lý cụ thể tùy jurisdiction và context, workflow kỹ thuật vẫn cần coi license là một gate.
Vấn đề không chỉ là copyright
Trong app vibe-coded, license risk có nhiều dạng:
- Agent thêm package GPL vào app closed-source.
- Agent copy snippet từ nguồn có điều kiện sử dụng.
- Agent tạo code giống đáng kể một project khác.
- Agent không ghi nguồn cho implementation lấy từ docs.
- Agent thêm dependency nhưng không cập nhật notice.
- SBOM không phản ánh code AI-generated.
Không cần panic. Nhưng cũng không nên nói “AI làm nên khỏi cần kiểm”.
Linux kernel chọn human accountability
Linux kernel policy mới về AI-assisted code đi theo hướng thực dụng: AI có thể là tool, nhưng human contributor vẫn chịu trách nhiệm cho contribution.
Đó là mental model đúng cho vibe coding.
AI không phải tác giả pháp lý để bạn đẩy trách nhiệm sang. Người ship code vẫn phải hiểu code, review license, và chịu trách nhiệm khi có bug hoặc license issue.
Nếu code do AI sinh ra mà bạn không hiểu, bạn chưa sở hữu nó theo nghĩa engineering.
Non-tech cần hỏi gì trước khi ship
Bạn không cần thành luật sư để đặt gate cơ bản:
List all new dependencies and their licenses.
Flag GPL, AGPL, SSPL, BUSL, unknown, or custom licenses.
List any copied snippets or code adapted from docs.
Generate a simple third-party notice list.
Mark unknown instead of guessing.
Với app nội bộ prototype, gate nhẹ hơn. Với product bán cho khách hàng, gate phải nghiêm hơn.
Nếu agent nói “all good” nhưng không có dependency list, đó chưa phải compliance check.
SBOM không bắt hết AI output
SBOM tốt cho dependency. Nhưng AI-generated source code tự viết trong repo có thể không hiện như third-party component.
Vì vậy cần thêm human review:
- Code này có giống một library/snippet nổi tiếng không?
- Có comment/source link nào bị mất không?
- Có license header bị copy không?
- Có file generated từ template external không?
- Có package mới nào kéo license khó chịu không?
Không phải để làm chậm mọi prototype. Để tránh ship blind.
Chốt lại
AI viết code không làm license biến mất. Nó chỉ làm nguồn gốc code khó nhìn hơn.
Vibe coding có kiểm soát cần một nguyên tắc thẳng: người merge chịu trách nhiệm. Nếu bạn không biết code từ đâu, dependency license gì, và có nghĩa vụ notice nào không, đừng coi nó là production-ready.