Cung cấp bối cảnh trước khi giao nhiệm vụ
AI không thể nhìn thấy dự án của bạn theo cách bạn nhìn thấy. Nó không biết phiên bản của bạn, cấu trúc tệp của bạn, hay các quy ước bạn đã thiết lập. Khi bạn bỏ qua điều này, nó sẽ đoán — và đoán tệ. Tệ hơn nữa, nó đoán một cách tự tin, vì vậy đầu ra trông có vẻ hợp lý cho đến khi nó va chạm với codebase thực tế của bạn.
Hãy so sánh hai câu lệnh sau cho cùng một yêu cầu.
Add a function to validate emails.
This is a TypeScript backend using Express and Zod for validation.
We already validate inputs with Zod schemas in src/schemas/.
Add an email validation schema in that style. Emails must be
lowercase, max 254 chars, and reject disposable domains from
the existing BLOCKED_DOMAINS list in src/config.ts.
Câu lệnh đầu tiên tạo ra đoạn mã chung chung, có thể dùng một regex bạn không muốn, theo một phong cách không khớp với codebase của bạn. Câu lệnh thứ hai tạo ra đoạn mã bạn có thể dán thẳng vào. Quy tắc: nêu rõ stack công nghệ, các quy ước, và những phần đã có sẵn mà AI nên tái sử dụng.
Một tốt xếp chồng các phần này theo thứ tự, từ nền tảng đi lên — bối cảnh ở dưới cùng, yêu cầu thực sự ở gần trên cùng:
┌──────────────────────────────┐
│ EXAMPLES │ one input → output
├──────────────────────────────┤
│ CONSTRAINTS │ what NOT to do
├──────────────────────────────┤
│ EDGE CASES │ empty, invalid, errors
├──────────────────────────────┤
│ INPUTS / OUTPUTS │ types and shapes
├──────────────────────────────┤
│ GOAL │ one clear task
├──────────────────────────────┤
│ CONTEXT │ stack, files, patterns
└──────────────────────────────┘
foundation first ▲
Một danh sách kiểm tra hữu ích trong đầu trước khi bạn bấm enter: ngôn ngữ và framework (kèm phiên bản nếu điều đó quan trọng), các tệp hoặc module liên quan, các mẫu hình (pattern) đã có trong dự án, và bất kỳ thư viện nào AI nên ưu tiên hoặc tránh. Bạn không cần cả bốn điều này mỗi lần — nhưng nếu câu trả lời sẽ thay đổi tùy vào một trong số đó, hãy nêu tên nó ra. Khi còn nghi ngờ, hãy dán chữ ký hàm (signature), kiểu dữ liệu, hoặc cấu hình thực tế mà đoạn mã mới phải khớp vào. Vài dòng mã có sẵn dạy cho AI về các quy ước của bạn nhiều hơn cả một đoạn văn mô tả.