Hai người dùng Claude Code với cùng một task — một người mất 10 vòng để ra kết quả, người kia xong trong 2 lần. Sự khác biệt nằm ở cách viết prompt.

Nguyên tắc cơ bản: Cụ thể hơn bao giờ hết

Xấu: "Fix lỗi trong code của tôi"

Tốt: "File src/auth/login.ts đang throw TypeError ở dòng 47 khi password rỗng. Fix lỗi này và thêm validation."

Luôn bao gồm tên file, mô tả lỗi cụ thể, và kết quả mong muốn.

Framework TASTE

Task: Nói rõ bạn muốn làm gì. Action: Chỉ định hành động cụ thể. Scope: Giới hạn phạm vi. Tech: Chỉ định framework nếu cần. Example: Cung cấp ví dụ kết quả mong muốn.

Ví dụ: "Viết unit test cho file services/payment.ts dùng Jest và mock Stripe API, tương tự các test đã có trong services/user.test.ts"

Kỹ thuật Explain then Do

Thay vì yêu cầu Claude làm ngay, bắt đầu bằng: "Giải thích plan của bạn trước khi code". Điều này giúp bạn kiểm tra Claude hiểu đúng yêu cầu chưa, tránh làm sai rồi mới phát hiện.

Multi-step prompting

Chia task phức tạp thành nhiều bước nhỏ. Bước 1: đọc và phân tích. Bước 2: thiết kế solution. Bước 3: implement. Mỗi bước Claude hoàn thành một việc rõ ràng, dễ verify.

Prompt với constraints

"Refactor function này để dễ đọc hơn. Yêu cầu: giữ nguyên interface public, không đổi tên function, không thêm dependency mới."

Constraints giúp Claude không làm quá tay — refactor rồi đổi luôn API signature mà bạn không muốn.

Tái sử dụng context

Sau khi Claude làm một việc, reference lại: "Dùng cùng pattern như function vừa viết, tạo thêm cho module products". Claude sẽ maintain consistency tự động.