Chín practice Claude Code từ nhóm build nó
Chín practice Claude Code từ nhóm build nó ở Anthropic: reviewer mới, ask rule, hook onFailure block, effort, compact, xoá prompt cũ, explainer.
✓ Đã duyệt độc lập · cập nhật 02/11/2026 · 10 min
1. Mở đầu: những gì nhóm build Claude Code đang làm
MG vào thẳng vấn đề: các engineer giỏi nhất dùng Claude Code như thế nào. Anh nói nếu bạn đang tìm những video skill hay tutorial cài đặt Claude Code kiểu thông thường thì có thể dừng xem ở đây. Theo anh, đây là video duy nhất bạn cần xem để tận dụng Claude Code được nhiều nhất (nhận định của MG trong video đăng ngày 02/11/2026).

Theo MG, mọi thứ trong video đến từ chính những người build Claude Code ở Anthropic, và từ các bản cập nhật đã ship trong năm tuần trước khi video đăng ngày 02/11/2026. Anh nêu trước vài thứ sẽ có: một safety hook âm thầm cho mọi thứ đi qua; vì sao auto mode có thể push thẳng lên main theo mặc định; vì sao team của Anthropic không bao giờ để AI review công việc của chính nó; một pull request chạy 50 vòng review qua một đêm; một setting ngăn các sub-agent đốt hết usage limit của bạn; và vì sao Anthropic xoá phần lớn system prompt của chính mình.
2. Practice 1: đừng để Claude tự review code của chính nó
Practice đầu tiên: không bao giờ để Claude review công việc của chính nó. MG kể rằng từ giữa tháng 10, Claude Code dùng fork ở khắp nơi (theo video đăng ngày 02/11/2026). Một fork là một bản sao của cuộc hội thoại hiện tại. Nó biết mọi thứ bạn đã bàn, kể cả lý do Claude viết code theo cách nó đã viết.

Vì vậy, khi một fork review đoạn code đó, nó chia sẻ chung những điểm mù với bạn, và nó có xu hướng đồng ý với bạn (theo MG, video đăng ngày 02/11/2026). Anh dẫn trang best practices của Anthropic, nói rằng trang này viết rõ: một reviewer mới có ích vì nó chưa thấy lập luận của bạn. Trang best practices của Claude Code (đọc ngày 02/11/2026) liệt kê một trong những lợi ích của subagent là có được một reviewer chưa thấy code được viết ra như thế nào.
Theo MG (video đăng ngày 02/11/2026), lệnh có sẵn /code-review làm đúng việc đó: nó gửi các thay đổi của bạn tới một sub-agent mới, chưa từng thấy cuộc hội thoại. Nhóm Claude Code cũng làm như vậy với code của chính mình. Trong bài viết về cách nhóm review code, nhóm chia sẻ rằng từ tháng 6 đến tháng 9, số pull request được merge tăng hơn gấp đôi, trong khi tỉ lệ phải revert giảm hơn 40% (số liệu MG dẫn trong video đăng ngày 02/11/2026; bài viết trên claude.dev ghi cùng hai con số, đọc ngày 02/11/2026).
3. Practice 2: hỏi trước mọi lần push trong auto mode
Practice thứ hai bắt đầu từ một thay đổi mặc định. Theo MG, từ cuối tháng 9, auto mode là chế độ mặc định của Claude Code trong terminal và trong VS Code. Ở auto mode, Claude chạy phần lớn các action mà không hỏi bạn trước (theo video đăng ngày 02/11/2026).

Đây là điều MG nói phần lớn mọi người bỏ qua: tài liệu của Anthropic ghi rằng theo mặc định, auto mode cho phép push lên bất kỳ branch nào, kể cả main, và nó có thể mở pull request (theo MG, video đăng ngày 02/11/2026).
Bạn có thể nghĩ: được thôi, mình chỉ cần dặn Claude "đừng push lên main". Nhưng theo MG (video đăng ngày 02/11/2026), một rule bạn gõ trong chat có thể biến mất. Khi một cuộc hội thoại dài bị compact, nghĩa là Claude tóm tắt nó lại để giải phóng chỗ, tin nhắn chứa rule của bạn có thể bị bỏ đi.
Vì thế MG khuyên đặt rule ở chỗ nó không thể biến mất: trong file settings. Thêm một ask rule cho git push, và một rule cho việc tạo pull request. Theo anh (video đăng ngày 02/11/2026), auto mode vẫn tự chạy mọi thứ khác, nhưng một lần push giờ sẽ dừng lại và hỏi bạn trước.

git push -u origin feature/retry 2>&1, và dòng "Ask rule Bash(git push *) overrides auto mode for this command." hiện ra trước câu hỏi "Do you want to proceed?".Và khi đang mở file đó, MG gợi ý bật luôn setting mới blockWritesOutsideWorkingDirectories. Theo anh (video đăng ngày 02/11/2026), setting này đảm bảo không có lần sửa nào rơi ra ngoài thư mục project của bạn.
4. Practice 3: hook chặn lại khi chính nó hỏng
Practice thứ ba nói về hook. Theo MG (video đăng ngày 02/11/2026), rất nhiều engineer đặt những rule quan trọng nhất của mình vào một hook. Hook là một script nhỏ mà Claude Code chạy trước một action, ví dụ để chặn một lần push lên main, hoặc để quét một commit tìm secret như API key.
Cái bẫy ở đây, theo MG (video đăng ngày 02/11/2026): một hook chỉ chặn được action khi nó thoát với exit code 2. Nếu script crash, có đường dẫn sai, hoặc chạy quá lâu, Claude Code coi đó là một hook thất bại, và action vẫn được thực hiện. Anh dẫn tài liệu của Anthropic nói thẳng: một policy hook có đường dẫn sai hoặc script bị crash sẽ cho mọi thứ đi qua.

"onFailure": "block" trên hook command hoặc http, cần Claude Code v2.1.295 trở lên. Trang tài liệu này vẫn ghi như vậy khi đọc ngày 02/11/2026.Theo MG, từ ngày 8/10 có một cách sửa bằng một dòng: trong hook settings, thêm onFailure là block. Từ đó, khi một hook không khởi động được, bị timeout hoặc crash, action sẽ bị chặn thay vì được cho qua (theo video đăng ngày 02/11/2026).
MG bảo hãy nghĩ tới một secret scanner. Nếu nó bị down, nó nên dừng commit lại, chứ không để commit đi qua mà chưa được quét (lời khuyên trong video đăng ngày 02/11/2026).
5. Practice 4: làm cho review thật sự kết thúc
Practice thứ tư: đảm bảo các lần review thật sự kết thúc. MG chỉ ra vấn đề (video đăng ngày 02/11/2026): khi một người nhận được một comment nhỏ về style, người đó bỏ qua nó trong hai giây. Một AI agent thì không, nó sửa comment đó, và lần sửa ấy lại kích hoạt một lần review nữa, lần review này lại tìm ra một thứ mới để sửa.

Theo MG, ở nhóm Claude Code, một pull request đã đi qua hơn 50 vòng review trong một đêm (số liệu từ bài viết của nhóm, dẫn trong video đăng ngày 02/11/2026). Vì vậy nhóm đã thay đổi ba thứ:
- Reviewer bỏ qua style (theo MG, video đăng ngày 02/11/2026).
- Lần review thứ hai chỉ xem những gì đã thay đổi kể từ lần đầu (theo MG, video đăng ngày 02/11/2026).
- Sau ba vòng, reviewer bảo tác giả lùi lại và nghĩ lại cách tiếp cận, thay vì tiếp tục sửa (theo MG, video đăng ngày 02/11/2026).
Sau thay đổi đó, tỉ lệ pull request pass sau một lần review tăng từ 65% lên 78% (số MG dẫn trong video đăng ngày 02/11/2026; bài viết trên claude.dev có cùng hai con số trong biểu đồ "Pass after one review and fix round", đọc ngày 02/11/2026).
MG thêm một tip cho CI: dùng lệnh claude ultrareview, chứ không chạy code review ở print mode, vì print mode thoát ra trước khi các finding kịp tới (theo MG, video đăng ngày 02/11/2026).

claude ultrareview với --post; dòng được tô ghi rằng trong một lần chạy claude -p '/code-review ultra', Claude Code thoát trước khi finding tới nên không post gì, hãy dùng subcommand. Trang này vẫn ghi như vậy khi đọc ngày 02/11/2026.6. Practice 5: low effort để viết, high effort để verify
Practice thứ năm. Theo MG (video đăng ngày 02/11/2026), phần lớn mọi người chạy mọi thứ ở mức effort cao nhất, nghĩ rằng nhiều effort hơn nghĩa là code tốt hơn. Anh dẫn hướng dẫn của chính Anthropic về cách dùng effort, nói rằng hướng dẫn này nói điều ngược lại: viết code ở low effort trong lúc bạn lái, rồi chuyển sang high effort để verify và test.

Tại sao? Theo MG (video đăng ngày 02/11/2026), vì effort mua cho bạn việc kiểm tra và các edge case. Nó không sửa được một cách tiếp cận sai. Trong các bài test của Anthropic, effort tối đa thậm chí còn khiến model chọn sai cách hiểu đề bài thường xuyên hơn. Bài viết trên claude.dev (đọc ngày 02/11/2026) ghi rằng tăng effort thường giảm lỗi do thiếu edge case, nhưng không sửa được khi model có cách tiếp cận sai.
Và nếu một task hoá ra khó hơn bạn nghĩ, MG nói cứ gõ ultrathink trong lúc Claude đang làm. Theo anh, từ cuối tháng 10, việc này nâng effort cho phần còn lại của lượt đó thôi, rồi quay về setting bình thường của bạn (video đăng ngày 02/11/2026).

7. Practice 6: effort riêng cho subagent
Practice thứ sáu. MG nói nếu usage limit của bạn cạn nhanh, đây có lẽ là lý do. Boris Cherny, người tạo ra Claude Code, đã đăng về chuyện này tuần trước (tính từ video đăng ngày 02/11/2026): theo mặc định, sub-agent kế thừa effort level của bạn, và nó có thể cộng dồn rất nhanh (theo MG, video đăng ngày 02/11/2026).
MG đưa ra một tình huống: bạn đặt effort extra high cho một bug khó rồi quên tắt. Giờ mọi subagent mà Claude khởi động, để search, để explore hay để test, cũng chạy ở extra high (theo MG, video đăng ngày 02/11/2026).

/effort xhigh cho một bug khó, còn ba subagent search, explore và test đều chạy ở low nhờ CLAUDE_CODE_SUBAGENT_EFFORT=low.Theo MG, bản sửa ra ngày 31/10: một setting mới tên là CLAUDE_CODE_SUBAGENT_EFFORT. Đặt nó là low thì các subagent thôi sao chép effort level của bạn, trong khi session chính vẫn giữ mức đó. Sau đó mở /usage: theo MG (video đăng ngày 02/11/2026), giờ nó cảnh báo bạn về những session nặng, và nhấn F sẽ áp dụng cách sửa được gợi ý.
8. Practice 7: compact trước khi nghỉ, không phải sau
Practice thứ bảy: compact trước khi nghỉ, không phải sau khi nghỉ. MG nói lời khuyên này đến thẳng từ hướng dẫn của Anthropic về chi phí của một task (video đăng ngày 02/11/2026).
Lý do, theo MG (video đăng ngày 02/11/2026): với một gói subscription, Claude giữ cuộc hội thoại của bạn trong cache khoảng một giờ, nhờ vậy mọi tin nhắn mới đều rẻ hơn. Nếu bạn rời đi lâu hơn thế, cache hết hạn, và tin nhắn kế tiếp của bạn phải dựng lại toàn bộ cuộc hội thoại với giá đầy đủ.
Trong ví dụ của Anthropic, cùng một khối công việc tốn $11.20 khi không có cache và khoảng $1.60 khi có cache (theo MG, video đăng ngày 02/11/2026). Theo anh, Claude Code giờ tự compact một session lớn đang để không, ngay trước khi cache hết hạn. Nhưng khi đó bạn quay lại với một bản tóm tắt do Claude tự viết.
Vì vậy MG khuyên tự làm trước khi rời đi: gõ /compact và nói nó cần giữ lại những gì (lời khuyên trong video đăng ngày 02/11/2026). Trong session thật của anh, lệnh gõ vào là:
/compact keep the open bugs and the test plan

/compact kèm chỉ dẫn giữ lại các bug còn mở và test plan, dòng dưới báo auto mode đang bật.Còn khi bạn chỉ muốn bỏ một hướng đi bế tắc, MG bảo dùng /rewind, không dùng compact. Theo anh (video đăng ngày 02/11/2026), rewind quay về một điểm trước đó vẫn còn nằm trong cache.
9. Practice 8: xoá bớt instruction cũ
Practice thứ tám, và MG nói đây là cái làm anh bất ngờ. Addy Osmani ở Anthropic chia sẻ rằng nhóm đã xoá hơn 80% system prompt của chính Claude Code mà không có sụt giảm đo được nào trong các coding eval (theo MG, video đăng ngày 02/11/2026).

Theo MG (video đăng ngày 02/11/2026), các model mới hơn không cần lớp giàn giáo cũ. Những dòng như THINK CAREFULLY, IMPORTANT viết toàn chữ hoa, hay DON'T BE LAZY giờ khiến Claude làm quá tay: nhiều bước hơn và nhiều tool call hơn mức task cần.
Vì vậy, MG khuyên sau mỗi lần nâng cấp model, hãy xoá bớt instruction và chỉ thêm lại những gì model thực sự còn thiếu (lời khuyên trong video đăng ngày 02/11/2026). Để tìm những dòng đó, chạy /doctor prompt-audit. Theo MG, lệnh này kiểm tra CLAUDE.md, các rule và các skill của bạn để tìm những dòng viết cho model cũ, và nó không thay đổi gì cho tới khi bạn đồng ý (video đăng ngày 02/11/2026).
10. Practice 9: explainer mà bạn review được
Và practice thứ chín, nơi tất cả những điều này đang hướng tới. MG dẫn Andrej Karpathy, người đã nói rằng công việc của chúng ta sẽ đi lên các tầng trừu tượng, thành giám sát và thấu hiểu. Câu trích trên màn hình trong video đăng ngày 02/11/2026, từ post của Karpathy ngày 2/10, ghi: "a lot more of our work will rise up the abstractions into oversight and understanding."
Trong thực tế, theo MG (video đăng ngày 02/11/2026), điều đó có nghĩa là thôi chỉ đọc bản tóm tắt cuối cùng của Claude. Sau một thay đổi lớn, hãy yêu cầu ba thứ:
- Các cách tiếp cận thay thế, và điều gì loại bỏ từng cách (lời khuyên của MG, video đăng ngày 02/11/2026).
- Những gì nó không xác nhận được, và nó đã tìm ở đâu (lời khuyên của MG, video đăng ngày 02/11/2026).
- Một explainer của thay đổi đó dưới dạng một trang HTML có diagram (lời khuyên của MG, video đăng ngày 02/11/2026).

explainer.html của project acme-api với diagram "How the parts fit together": Caller gọi getOrder, getOrder đưa hàm vào withRetry (try, catch, sleep theo backoff), mỗi lần thử gọi global fetch, và một ghi chú đỏ rằng retries undefined thì không bao giờ throw (demo trong video đăng ngày 02/11/2026).Theo MG (video đăng ngày 02/11/2026), nhóm Claude Code làm việc này để lan toả sự hiểu biết về chính code của nhóm, và đó là cách nhanh nhất để bắt được cái quyết định mà bạn sẽ đưa ra khác đi.
11. Kết: một setup tốt hơn quanh Claude
MG khép lại: đó là cách các engineer giỏi nhất dùng Claude Code. Theo anh (video đăng ngày 02/11/2026), không phải là prompt tốt hơn, mà là một setup tốt hơn quanh Claude.
MG cảm ơn mọi người đã xem.
Nguồn và liên kết 10 nguồn
- Tên gốc: How the Best Engineers Use Claude Code
- Sự kiện: YouTube
- Video gốc: https://www.youtube.com/watch?v=DuPZopuZzL8 youtube.com
- Kênh YouTube MG (MG): youtube.com/channel/UCj7NrzZWW3w3lHTk5v-GuXw youtube.com
- Claude Code best practices, có đoạn về reviewer chưa thấy code được viết ra như thế nào (đọc ngày 02/11/2026): code.claude.com/docs/en/best-practices code.claude.com
- Claude Code permission modes, trang về auto mode (đọc ngày 02/11/2026): code.claude.com/docs/en/permission-modes code.claude.com
- Hooks reference, mục "Block the action when a hook fails" với
onFailure(đọc ngày 02/11/2026): code.claude.com/docs/en/hooks code.claude.com - Find bugs with ultrareview, đoạn về subcommand
claude ultrareview(đọc ngày 02/11/2026): code.claude.com/docs/en/ultrareview code.claude.com - Bài viết của nhóm Claude Code về code review, có các số merged PR, revert, hơn năm mươi vòng review và 65% lên 78% (đọc ngày 02/11/2026): claude.dev/blog/solving-code-review-at-anthropic claude.dev
- Spending your effort, bài của Anthropic về effort (đọc ngày 02/11/2026): claude.dev/blog/spending-your-effort claude.dev