Hai người dùng cùng một công cụ AI, cùng làm một trang chia tiền ăn nhóm. Người thứ nhất xong trong một buổi tối. Người thứ hai mất ba buổi, càng sửa càng hỏng, và cuối cùng bỏ dở. Khác biệt thường không nằm ở công cụ, mà ở cách họ nói với AI.
Đây là bài chi tiết cho chặng 3 trong lộ trình học vibe code từ đầu: học cách viết yêu cầu (prompt) để AI làm đúng ý ngay lần đầu. Nếu bạn chưa chọn công cụ, xem trước bài công cụ vibe code cho người mới. Mọi mẫu dưới đây đều dùng được với chatbot, trình dựng app hay agent, chỉ cần chép và điền vào chỗ trống.
Bước 1: Viết bản mô tả trước khi mở công cụ
Phần lớn người mới mở công cụ và gõ ngay "làm cho tôi một app chia tiền". AI sẽ tự quyết thay bạn hàng chục chi tiết: có đăng nhập không, lưu dữ liệu ở đâu, giao diện thế nào. Lần nào bạn không thích một chi tiết, bạn phải sửa, và mỗi lần sửa là một lần có thể làm hỏng chỗ khác.
Nửa trang mô tả viết trước sẽ chặn phần lớn những lần sửa đó:
Tên: Chia tiền ăn nhóm Dùng cho: nhóm bạn 3–10 người đi ăn, một người trả trước. Màn hình: một trang duy nhất, dùng chủ yếu trên điện thoại. Nhập vào: tên từng người, tổng số tiền, (tùy chọn) ai gọi thêm món riêng bao nhiêu. Trả ra: mỗi người phải trả bao nhiêu, làm tròn đến 1.000 đồng; nút chép kết quả để dán vào Zalo. Không cần: đăng nhập, lưu lịch sử, nhiều ngôn ngữ. Công nghệ: một file HTML, không dùng thư viện ngoài.
Dòng "Không cần" quan trọng không kém các dòng khác. Nó cho AI biết phải dừng ở đâu.
Gửi bản mô tả này kèm một câu: "Trước khi viết code, hãy hỏi tôi những điểm còn chưa rõ." AI thường hỏi lại ba bốn câu mà bạn chưa nghĩ tới, ví dụ làm tròn thì phần dư ai chịu. Trả lời xong mới bảo AI bắt đầu.
Bước 2: Mỗi yêu cầu gồm bốn phần

Bối cảnh: đang làm dự án gì, file nào, phần nào đang chạy đúng.
Việc cần làm: một việc, mô tả bằng hành vi người dùng thấy được: "bấm nút X thì Y xảy ra".
Ràng buộc: những gì không được đụng vào. Đây là phần người mới hay bỏ quên nhất, và là lý do AI hay "tiện tay" sửa luôn những chỗ khác.
Cách kiểm tra: một ví dụ cụ thể có số liệu để bạn và AI cùng biết thế nào là đúng.
Mẫu để chép:
Bối cảnh: [dự án gì], file [tên file]. Phần [A, B] đang chạy đúng. Việc cần làm: [một việc, mô tả bằng hành vi người dùng thấy]. Ràng buộc: chỉ sửa [phần nào]. Không đổi [giao diện / cách tính / thư viện]. Kiểm tra: nhập [ví dụ cụ thể] thì phải ra [kết quả mong đợi].
Nếu cần một khung yêu cầu dài hơn cho việc khác ngoài code, công cụ tạo prompt AI giúp dựng theo vai trò, bối cảnh và định dạng đầu ra.
Bước 3: Chia việc lớn thành việc nhỏ
"Thêm chức năng lưu lịch sử các lần chia tiền" nghe như một việc, nhưng thật ra là bốn: lưu một lần chia tiền, hiện danh sách các lần đã lưu, mở lại một lần cũ, xóa một lần cũ. Yêu cầu cả bốn cùng lúc thì khi có lỗi, bạn không biết lỗi nằm ở đâu.
Cách làm an toàn:
Nhờ AI lập kế hoạch trước, chưa viết code: "Tôi muốn thêm [tính năng]. Hãy chia thành các bước nhỏ, mỗi bước chạy thử được. Chưa viết code." Nhiều công cụ có sẵn chế độ lập kế hoạch riêng cho việc này.
Làm từng bước, sau mỗi bước chạy thử theo đúng cách kiểm tra đã ghi.
Lưu phiên bản sau mỗi bước chạy được, bằng Git hoặc ít nhất sao chép thư mục, rồi mới sang bước sau.
Bước 4: Báo lỗi đủ thông tin
"Không chạy", "bị lỗi rồi", "sai rồi sửa lại đi" là những câu khiến AI đoán mò. Một báo lỗi tốt có năm thứ:
Tôi đã làm: [các bước, theo thứ tự]. Tôi mong đợi: [kết quả đúng]. Thực tế: [kết quả sai, càng cụ thể càng tốt]. Thông báo lỗi (nguyên văn): [dán từ tab Console, phím F12]. Đã thử: [những gì bạn đã thử mà chưa được].
Với lỗi giao diện, chụp màn hình gửi kèm nói được nhiều hơn mười dòng mô tả. Với lỗi chỉ xảy ra trên điện thoại, ghi rõ máy và trình duyệt. Và nhớ dán nguyên văn thông báo lỗi, không tóm tắt: một chữ sai trong tên file cũng là manh mối.
Bước 5: Giữ một file quy tắc cho dự án
Mỗi cuộc trò chuyện mới, AI không nhớ những gì bạn đã dặn ở cuộc trước. Thay vì dặn lại từ đầu, tạo một file mô tả dự án và quy tắc, để AI đọc mỗi lần bắt đầu. Các công cụ đặt tên khác nhau, ví dụ CLAUDE.md với Claude Code, AGENTS.md với nhiều agent khác, hay thư mục quy tắc riêng trong Cursor; với chatbot thì dán file này vào đầu cuộc trò chuyện. Nội dung nên có:
Dự án: [một câu mô tả]. Công nghệ: [ví dụ: một file HTML, JavaScript thuần, không thư viện ngoài]. Quy tắc: - Giao diện tiếng Việt, dùng tốt trên điện thoại trước. - Không thêm thư viện mới khi chưa hỏi tôi. - Không xóa hay đổi tên hàm đang dùng khi chưa hỏi. - Sau khi sửa, liệt kê các file đã đổi và giải thích ngắn vì sao. Đang làm: [việc hiện tại].
Dòng "liệt kê các file đã đổi và giải thích" biến mỗi lần AI sửa code thành một bài học nhỏ, đúng với chặng 5 của lộ trình.
Khi AI sửa vòng vòng: dừng lại, đừng cãi
Dấu hiệu quen thuộc: AI sửa lỗi A làm xuất hiện lỗi B, sửa B thì A quay lại, và mỗi lần nó đều nói "đã sửa xong". Càng nói thêm trong cùng cuộc trò chuyện, tình hình càng tệ, vì AI mang theo cả những lần sửa sai trước đó. Quy tắc ba lần:
Nếu cùng một lỗi đã nhờ sửa ba lần mà không xong, dừng lại.
Quay về phiên bản chạy được gần nhất. Muốn biết hai phiên bản khác nhau ở đâu, dán cả hai vào công cụ so sánh code để xem từng dòng đã đổi.
Mở cuộc trò chuyện mới, gửi file quy tắc, rồi mô tả lại vấn đề gọn hơn, có ví dụ cụ thể.
Nếu vẫn không được, hỏi nguyên nhân thay vì hỏi cách sửa: "Đừng sửa gì cả. Hãy giải thích vì sao lỗi này xảy ra và nêu hai cách xử lý khác nhau."
Những câu nên tránh và nên dùng
| Tránh | Thay bằng |
|---|---|
| "Làm đẹp hơn" | "Tăng khoảng cách giữa các dòng, nút bấm to hơn để dễ chạm trên điện thoại" |
| "Sửa hết lỗi đi" | Một lỗi, theo mẫu báo lỗi năm phần |
| "Làm giống Shopee" | Mô tả đúng phần bạn cần: "danh sách sản phẩm dạng lưới hai cột, mỗi ô có ảnh, tên, giá" |
| "Viết lại toàn bộ cho tốt hơn" | "Chỉ ra ba chỗ trong file này dễ gây lỗi nhất, chưa sửa" |
| "Bạn tự quyết đi" | "Đưa ra hai phương án, nêu ưu nhược điểm, tôi chọn" |
Đừng đưa những thứ này vào prompt
Khóa API, mật khẩu, mã truy cập thật. Nếu AI cần biết có khóa, ghi "KHÓA_API_Ở_ĐÂY" rồi tự điền vào file cấu hình.
Dữ liệu thật của khách hàng như họ tên, số điện thoại, địa chỉ. Dùng dữ liệu giả có cùng dạng.
Tài liệu nội bộ công ty khi chưa biết công cụ có dùng dữ liệu để huấn luyện mô hình hay không.
Viết yêu cầu tốt rồi, bước tiếp theo là làm xong một dự án trọn vẹn đến khi người khác mở được bằng đường link, chặng 4 trong lộ trình học vibe code; bài dự án vibe code đầu tiên dùng đúng các mẫu ở trên.
Muốn có người xem và sửa cách bạn viết yêu cầu? Khóa học vibe code cho người mới của Tấn Phát Digital học online qua Zoom hoặc Google Meet trong 3 ngày, học phí 10 triệu đồng. Bạn luyện viết yêu cầu ngay trên dự án của mình, và hết khóa có một website giới thiệu nhiều trang chạy trên tên miền riêng, có form liên hệ, đã đưa lên Google, tự sửa và thêm tính năng được bằng AI. Liên hệ Tấn Phát Digital để hỏi lịch khai giảng.









