1. Quy tắc Vận hành (Instruction Manual & Coding Standards)
- Ngôn ngữ & Giao tiếp: Chỉ sử dụng Tiếng Việt có dấu, không dùng Emoji, giải thích súc tích (Minimal Output). Nếu yêu cầu chưa rõ, BẮT BUỘC phải hỏi lại (Ask When Unclear) để tránh tự đưa ra giả định.
- Chất lượng Code (Premium Standard):
- Bắt buộc làm mini-tasks an toàn.
- Sau mỗi lần lưu phải tự chạy
npm run typecheckvànpm run lint. - Phải xuất Refactor Report mỗi khi sửa code để đảm bảo code không lặp (Duplicate) và an toàn với cơ sở dữ liệu.
- Không tự ý xóa/sửa CSDL: Không thay đổi DB Schema (No DB change without confirm) hay xóa file nếu bạn chưa yêu cầu.
2. Quy tắc Kiến trúc Clean Architecture (Level 7 - 9)
- Follow Project Structure:
src/api/: Dùng cho thao tác nối DB (Supabase).src/schema/: Nơi chứa Centralized Schema, Enum, Zod Validation (Mức 9 Strict).src/features/*/use*.ts: Hook xử lý Logic (Domain Use-cases).src/features/*/*.tsx: UI Component chỉ để render.
- Phân tách Logic: Tuyệt đối tách bạch Business Logic khỏi UI (Separate Logic). Không lấy Data ở UI Component. Không viết Business logic tại UI.
- Import: Không dùng Relative Import (
../../) khi giao tiếp chéo giữa các Feature, bắt buộc dùng Path Alias (Ví dụ@/schema). Có thể dùng Barrel Export (index.ts).
3. Quy tắc Code & TypeScript
- No "as any": Cấm ép kiểu thiếu an toàn. Bắt buộc handle
null/undefinedtường minh. - Trạng thái Không Đột biến: Không mutate state trực tiếp, dùng các immutable patterns. Cấm thay đổi biến (No state mutation).
- Xử lý Bất đồng bộ: Bắt buộc handle đầy đủ 3 trạng thái của dữ liệu bất đồng bộ:
loading,error,success. - An toàn CSDL (DB Guard): Chỉ dùng
safeUpserthoặcsafeInsert, không được dùngsupabase.insertnguyên gốc. - ESLint: Đặc biệt tuân thủ Array Bracket Newline consistency (không để dấu
]nằm riêng lẻ trên một dòng khi có mảng ngắn).
4. Quy tắc UI/UX Layout (Premium Design)
- Thiết kế Mobile-First: Giao diện bắt buộc chạy tốt trên Mobile, phải chạm tốt (Touch-friendly tối thiểu 44px), không dựa vào hiệu ứng Hover (No hover dependency).
- No Horizontal Overflow: Cấm thiết kế có lỗi kéo ngang màn hình. Với Table trên mobile phải quy đổi ra Card-layout hoặc bọc
overflow-x-auto(Responsive table). - One Screen, One Action: Mỗi màn hình chỉ một hành động/phím bấm chính, không nhồi nhét.
- Modal & Bottom Sheet: Form chỉnh sửa/thêm mới phải dùng Bottom Sheet trên Mobile. KHÔNG dùng Form dạng Center Modal (No modal / Bottom sheet only).
5. Quy tắc Component System
- Icon System: Bắt buộc dùng
lucide-reactthông qua wrapper chung là<Icon />. Cấm dùng icon library khác. - Combobox: Dùng Searchable Combobox thay cho
<select />thông thường ở tất cả những nơi cần chọn dữ liệu. - Colors/Styles: Tránh dùng các tone màu cơ bản hoặc
gray-*từ core Tailwind cũ, tận dụng design token từ file CSS. Cấm dùng inline Emoji làm UI. Tuân thủ Consistent Spacing.
Nếu bạn muốn tôi thay đổi, bỏ qua tạm thời hay điều chỉnh bất cứ luật nào, bạn có thể báo cho tôi biết một cách cụ thể! Hiện tại tôi sẽ luôn nghiêm ngặt vận hành trên các khuôn khổ này để làm việc cùng bạn.
Các quy tắc code (Coding Standards, System Prompts) hiện tại đang được lưu trữ dưới dạng các file Markdown (MD) bên trong dự án tại thư mục:
d:\VinhPhatERP_v3\.agents\rules\
Trong thư mục này, có chứa các file quy tắc chi tiết sau:
| Tên File | Mô Tả |
|---|---|
instruction-manual.md |
Hướng dẫn vận hành chuẩn Premium |
coding-standards.md |
Quy tắc code & workflow chung |
clean-code.md |
Quy tắc kiến trúc |
separate-logic.md |
Phân tách UI và Logic |
eslint-rules.md |
Kiểm soát convention mảng, import |
refactor-report.md |
Cấu trúc báo cáo công việc cho AI |
| ... | ...và nhiều file rules phụ trợ cho UI/UX khác. |
Nếu bạn muốn thay đổi hoặc cập nhật bất kì quy tắc nào, bạn chỉ cần mở các file tương ứng trong thư mục .agents/rules/ và chỉnh sửa nội dung bên trong nhé!
#SystemPrompt #VinhPhatERP #CleanArchitecture #CodingStandards #Blogger