Vì sao AI "không hiểu" dự án của bạn?
Mặc định, AI không biết dự án bạn dùng framework gì, quy ước đặt tên ra sao, thư viện nào được phép dùng. Mỗi lần chat, bạn phải giải thích lại từ đầu — tốn thời gian và kết quả thiếu nhất quán.
File cấu hình quy tắc giải quyết đúng việc này: đặt một file ở gốc dự án, AI tự đọc nó trong mọi lượt chat và tuân theo.
Mỗi editor một tên file
| Editor | File cấu hình | Vị trí |
|---|---|---|
| Cursor | .cursorrules (hoặc thư mục .cursor/rules/) | Gốc dự án |
| Cline | .clinerules | Gốc dự án |
| Windsurf | .windsurfrules | Gốc dự án |
Bản chất giống nhau: một file text/markdown chứa "luật chơi" cho AI trong dự án này.
Một file .cursorrules tốt gồm gì?
# Quy tắc dự án
## Tech stack
- Next.js 14 (App Router), TypeScript, TailwindCSS
- Supabase cho database & auth
- KHÔNG dùng Redux — dùng React Context + hooks
## Quy ước code
- Component: PascalCase, mỗi component một file
- Ưu tiên Server Components, chỉ "use client" khi cần interactivity
- Luôn dùng async/await, không dùng .then() chuỗi dài
- Đặt type/interface trong thư mục types/
## Quy tắc khi sửa code
- Không tự ý thêm thư viện mới khi chưa hỏi
- Giữ nguyên style code hiện có của file đang sửa
- Viết comment bằng tiếng Anh, UI text bằng tiếng Việt
Nguyên tắc viết rule hiệu quả
- Cụ thể hơn trừu tượng. "Dùng Tailwind, không viết CSS thuần" tốt hơn "code cho đẹp".
- Nói cả điều CẤM. "Không dùng
anytrong TypeScript" giúp AI tránh thói quen xấu. - Ngắn và có cấu trúc. Dùng heading, bullet — AI bám theo cấu trúc rất tốt. File rule phình to 500 dòng sẽ phản tác dụng.
- Rule là tài liệu sống. AI làm sai chỗ nào lặp lại → thêm một dòng rule chỗ đó.
Bài tập
Tạo file .cursorrules (hoặc .clinerules) cho một dự án của bạn với tối thiểu: tech stack, 3 quy ước code, 2 điều cấm. Sau đó yêu cầu AI tạo một component mới và quan sát nó có tuân thủ không.
💡 Đây là khác biệt lớn nhất giữa người mới và người "pro" Vibe Coding: pro để AI đọc rule, người mới giải thích lại mỗi lần chat.
