TL;DR

Sai lầm phổ biến nhất khi dùng Claude Code không phải là không biết dùng - mà là dùng nó như ChatGPT thông minh hơn. Bài đầu trong series 7 tips sẽ giải quyết 2 nền tảng quan trọng nhất: mindset đồng nghiệp khi giao việc và cấu trúc CLAUDE.md đúng cách.

Vấn đề với "vibe coding"

Bạn đã từng rơi vào vòng lặp này chưa?

  • Gõ 1 câu vague như "thêm tính năng xóa"

  • Xem Claude viết code, thấy không đúng

  • Sửa, lại sai, sửa tiếp

  • 2 tiếng sau vẫn chưa xong và bạn đã mệt

Đây không phải lỗi của Claude Code. Đây là lỗi briefing. AI không có bản đồ sản phẩm trong đầu bạn, không biết tuần trước bạn bàn gì với PM, không hiểu module xóa trong project này đang implement ra sao. Nó chỉ có thể đoán - và đoán sai.

Brief như leader, không phải như user

Hãy tưởng tượng bạn là lead engineer, hôm nay cần giao task cho developer mới. Bạn sẽ không chỉ nói "thêm cái nút xóa" rồi đi. Bạn sẽ ngồi explain:

  • Mục tiêu: Sau khi làm xong, user thấy gì? Hệ thống thay đổi ra sao?

  • Yêu cầu chi tiết: Xóa gì? Xóa cứng hay soft delete? Có cần confirm popup? Ai có quyền xóa?

  • Trạng thái dự án: Stack đang dùng là gì? Module liên quan ở đâu? Pattern tương tự đã implement ở đâu trong codebase?

  • Tiêu chí nghiệm thu: Test nào phải pass? Edge case nào cần cover?

Claude Code cần đúng y như vậy. Đây không phải overhead - 5 phút brief rõ ràng là 5 phút có ROI cao nhất trong cả task.

Thước đo đơn giản: Chuột và bàn phím của bạn đang bận hơn hay nhàn hơn? Dùng đúng thì phải ngày càng nhàn hơn.

CLAUDE.md - hợp đồng hành vi, không phải wiki

CLAUDE.md là file Claude Code đọc đầu mỗi cuộc hội thoại. Vì "load mỗi cuộc hội thoại" nên nó chiếm token budget. Vì "phải tuân thủ tuyệt đối" nên nó không phải chỗ viết suggestions mơ hồ.

Một session mới tốn khoảng 20,000 tokens chỉ để load system prompt + tools + CLAUDE.md trước khi bạn gõ gì. Mỗi dòng thừa trong CLAUDE.md là tiền bạn đốt mà không cần.

Nên viết vào CLAUDE.md:

  • Engineering red lines: ngôn ngữ comment, chuẩn commit, "không chắc thì search không được đoán"

  • Quy tắc output file: report viết vào đâu, test đặt ở thư mục nào

  • Ràng buộc format response: dùng ngôn ngữ nào, cuối response phải có gì

Không nên viết vào CLAUDE.md:

  • Code style chi tiết - đó là việc của linter và formatter

  • Kiến trúc project và business logic - đó là việc của Design Doc

  • Thứ bạn muốn AI "đôi khi" làm - viết vào cũng không reliable, còn làm loãng red lines

  • Đoạn giải thích dài với ví dụ - tốn token, dùng bullet point imperative là đủ

Global CLAUDE.md vs Project CLAUDE.md

Nhầm chỗ viết là lãng phí. Nguyên tắc đơn giản:

  • ~/.claude/CLAUDE.md (global): Thói quen cá nhân xuyên project - commit language, response format, memory repo location. Đây là quy tắc của "bạn là người như thế nào", chuyển project nào cũng áp dụng.

  • ./CLAUDE.md (project root): Thứ đặc thù của project này thôi - tech stack, cách chạy test, cách deploy, thư mục cấm, đường dẫn Design Doc.

Rule of thumb: Nếu copy rule này sang project khác vẫn có nghĩa, không nên viết vào project-level.

4 yếu tố brief task: Mục tiêu, Yêu cầu chi tiết, Trạng thái dự án, Tiêu chí nghiệm thu

Xây CLAUDE.md từ pain, không từ dự đoán

Sai lầm phổ biến là ngồi design CLAUDE.md từ đầu, cố nghĩ mọi trường hợp có thể xảy ra. Kết quả: file dài 500 dòng, Claude bỏ qua nửa vì quá nhiều nội dung lẫn lộn.

Cộng đồng hiện đồng thuận giữ CLAUDE.md dưới 200 dòng - một số team production chỉ giữ 60 dòng. Đây là lý do:

  • Mỗi dòng trong CLAUDE.md cạnh tranh attention với actual work

  • Model bắt đầu deprioritize nội dung khi file quá dài

  • Wrap critical rules trong <important> tags để model treat chúng là must-follow

Cách đúng: CLAUDE.md version 1 rất ngắn. Mỗi lần Claude làm sai thứ gì khiến bạn thực sự bực, về thêm 1 dòng. Sau 1 tháng bạn có file mật độ cao, toàn là rules từ pain thực tế - không có dòng nào thừa.

Kết

2 nền tảng này - mindset brief đúng và CLAUDE.md súc tích - là gốc rễ của mọi thứ. Bài tiếp theo sẽ đi vào Skills và Memory Repository: cách đóng gói workflow lặp thành slash command và xây hệ thống nhớ cross-conversation cho AI.

via Claude Code Official Best Practices