Một trong những lỗi vibe coding khó chịu nhất không nằm trong code bạn đọc được. Nó nằm ở dòng install:
npm install package-nghe-rat-hop-ly
Package đó có thể không tồn tại. AI bịa ra vì tên nghe đúng pattern. Sau đó attacker đăng ký đúng tên đó trên npm hoặc PyPI, nhét payload vào, và chờ developer hoặc agent cài.
Đó là slopsquatting.
Hallucinated dependency không chỉ làm build fail
Nếu AI bịa package và package chưa tồn tại, build fail. Đó là trường hợp may.
Trường hợp xấu hơn:
- AI nhiều lần gợi ý cùng một package không tồn tại.
- Tên package đó nghe hợp lý.
- Attacker phát hiện pattern.
- Attacker đăng ký package.
- Agent cài package.
- Malware chạy trong dev machine, CI, hoặc server build.
Với vibe coding, rủi ro tăng vì người điều khiển có thể không đọc dependency diff. Họ chỉ thấy agent nói “installed required package”.
Tên nghe đúng không có nghĩa package đúng
AI rất giỏi tạo tên plausible:
next-auth-supabase-adapterreact-calendar-availabilitystripe-webhook-validatorfirebase-admin-litetailwind-gradient-kit
Một số tên có thể là package thật. Một số là package bịa. Một số hôm nay chưa tồn tại nhưng ngày mai có thể bị đăng ký.
Không thể dựa vào cảm giác.
Gate trước khi cài dependency
Prompt mặc định cho agent nên là:
Before installing any package:
- Check that the package exists in the official registry.
- Show the package URL.
- Show weekly downloads or activity signal.
- Show latest version and publish date.
- Check license.
- Explain why existing dependencies cannot do this.
- Ask for approval before install.
Với non-tech, chỉ cần nhớ một rule: AI không được tự cài package lạ mà không nói package đó là gì.
Kiểm package sau khi agent đã cài
Sau một batch vibe coding, yêu cầu:
List every new dependency added in this change.
For each dependency:
- Why was it added?
- Is it direct or transitive?
- Is it still used?
- What official registry URL proves it exists?
- Is there a safer built-in alternative?
Sau đó chạy:
npm audit
npm ls --depth=0
Với Python:
pip list
pip-audit
Tool không bắt hết slopsquatting, nhưng nó tạo thói quen nhìn dependency như một phần của diff.
Đừng để agent dùng “install until green”
Một pattern nguy hiểm là agent thấy error, rồi thử cài package cho tới khi command xanh.
Ví dụ:
Cannot find module x.
Agent cài x.
Nhưng error có thể do import sai, path sai, hoặc package cũ đã có trong repo dưới tên khác. Cài thêm dependency chỉ vì error mất đi không phải là fix tốt.
Prompt nên chặn:
Do not install packages to fix an import error until you inspect existing dependencies and source paths.
Prefer fixing the import path if the capability already exists in the project.
Chốt lại
Vibe coding làm dependency decision xảy ra nhanh hơn. Vì vậy dependency review phải sớm hơn.
AI bịa package không còn là lỗi hài hước. Nó có thể thành supply-chain attack nếu attacker đăng ký tên AI hay hallucinate.
Rule đơn giản: package mới là ranh giới trust mới. Đừng để agent mở ranh giới đó chỉ vì tên nghe đúng.