Bài gốc: Boris Cherny, Nhà phát triển Claude Code
Biên dịch & tổng hợp: Hiểu AI
Bạn có thể đã nghe nói về Claude Code, thậm chí đã sử dụng nó để viết một ít mã hoặc sửa một số tài liệu. Nhưng bạn đã bao giờ nghĩ: Nếu AI không phải là "công cụ dùng tạm thời", mà là một thành viên chính thức trong quy trình phát triển của bạn, thậm chí là một hệ thống hợp tác tự động — nó sẽ thay đổi cách bạn làm việc như thế nào?
Là cha đẻ của Claude Code, Boris Cherny đã viết một bài tweet rất chi tiết, chia sẻ cách ông sử dụng công cụ này một cách hiệu quả, cũng như cách ông và nhóm tích hợp sâu Claude vào toàn bộ quy trình kỹ thuật trong công việc thực tế.
Bài viết này sẽ tổng hợp và giải thích một cách hệ thống và dễ hiểu kinh nghiệm của ông.
Boris đã biến AI trở thành đối tác tự động trong quy trình làm việc của mình như thế nào?
Điểm cốt lõi:
Ông giới thiệu quy trình làm việc của mình, bao gồm:
Cách sử dụng Claude:
Mở nhiều Claude cùng chạy: Mở 5~10 phiên song song trên terminal và web để xử lý tác vụ, và còn dùng Claude trên điện thoại.
Không chỉnh sửa cài đặt mặc định một cách bừa bãi: Claude dùng ngay được, không cần cấu hình phức tạp.
Dùng model mạnh nhất (Opus 4.5): Mặc dù chậm hơn một chút, nhưng thông minh hơn, dùng thuận tiện hơn.
Lập kế hoạch trước khi viết mã (Chế độ Plan): Để Claude giúp bạn suy nghĩ thấu đáo trước khi viết, tỷ lệ thành công cao hơn.
Sau khi tạo mã, dùng công cụ kiểm tra định dạng để tránh lỗi.
Làm thế nào để Claude ngày càng thông minh hơn:
Nhóm duy trì một "kho kiến thức": Mỗi khi Claude viết sai điều gì, hãy thêm kinh nghiệm vào đó, lần sau sẽ không mắc lỗi nữa.
Tự động huấn luyện Claude khi viết PR: Để Claude xem PR, học cách sử dụng hoặc quy tắc mới.
Biến các lệnh thường dùng của bản thân thành lệnh gạch chéo (slash command), Claude có thể tự động gọi, tiết kiệm công sức lặp lại.
Sử dụng "tác nhân con" (subagent) để xử lý một số tác vụ cố định, như đơn giản hóa mã, xác thực chức năng, v.v.
Quản lý quyền hạn như thế nào:
Không bỏ qua quyền hạn một cách bừa bãi, mà thiết lập các lệnh an toàn để tự động thông qua.
Đồng bộ hóa quy trình làm việc Claude trên nhiều thiết bị (web, terminal, điện thoại).
Điều quan trọng nhất:
Nhất định phải cung cấp cho Claude "cơ chế xác thực", để nó có thể xác nhận những gì mình viết có đúng hay không.
Ví dụ: Claude tự động chạy kiểm thử, mở trình duyệt kiểm tra trang web, kiểm tra xem chức năng có hoạt động không.
Claude Code là "bạn đồng hành", không phải là "công cụ"
Trước tiên, Boris truyền tải một triết lý cốt lõi: Claude Code không phải là một công cụ tĩnh, mà là một đối tác thông minh có thể phối hợp với bạn, không ngừng học hỏi và cùng nhau phát triển.
Nó không cần quá nhiều cấu hình phức tạp, dùng ngay đã rất mạnh. Nhưng nếu bạn sẵn sàng đầu tư thời gian để xây dựng cách sử dụng tốt hơn, hiệu suất mà nó mang lại sẽ tăng lên gấp bội.
Lựa chọn model: Chọn thông minh nhất, không chọn nhanh nhất
Boris sử dụng model flagship của Claude là Opus 4.5 + chế độ suy nghĩ ("with thinking") cho tất cả các tác vụ phát triển.
Mặc dù model này lớn hơn và chậm hơn Sonnet, nhưng:
- Khả năng hiểu của nó tốt hơn
- Khả năng sử dụng công cụ tốt hơn
- Không cần hướng dẫn lặp đi lặp lại, ít phải trao đổi qua lại
- Nhìn chung tiết kiệm thời gian hơn so với dùng model nhanh
- Gợi ý: Năng suất thực sự không nằm ở tốc độ thực thi, mà ở việc "ít sai sót, ít làm lại, ít giải thích lặp lại".
1. Chế độ Plan: Dùng AI viết mã, đừng vội để nó "viết"
Khi chúng ta mở Claude, nhiều người sẽ trực giác nhập "viết giúp tôi một API", "tái cấu trúc đoạn mã này"... Claude thường cũng sẽ "viết một ít", nhưng thường lệch hướng, bỏ sót logic, thậm chí hiểu sai yêu cầu.
Trong khi bước đầu tiên của Boris không bao giờ là để Claude viết mã. Ông sử dụng chế độ Plan — trước tiên cùng Claude lập ra ý tưởng triển khai, sau đó mới vào giai đoạn thực thi.
Ông đã làm như thế nào?
Khi bắt đầu một PR, Boris không để Claude viết mã ngay, mà sử dụng chế độ Plan:
1. Mô tả mục tiêu
2. Cùng Claude lập kế hoạch
3. Xác nhận từng bước
4. Sau đó mới để Claude bắt tay vào viết
Mỗi khi cần triển khai một chức năng mới, ví dụ "thêm giới hạn tốc độ cho một API nào đó", ông sẽ cùng Claude xác nhận từng bước:
- Là triển khai bằng middleware, hay nhúng trong logic?
- Cấu hình giới hạn tốc độ có cần hỗ trợ sửa đổi động không?
- Có cần ghi log không? Khi thất bại trả về gì?
Quá trình "thương lượng kế hoạch" này, tương tự như hai người cùng nhau vẽ ra "bản vẽ thi công".
Một khi Claude hiểu rõ mục tiêu, Boris sẽ mở chế độ "tự động chấp nhận chỉnh sửa", Claude có thể trực tiếp sửa mã, gửi PR, đôi khi thậm chí không cần xác nhận thủ công nữa.
"Chất lượng mã của Claude phụ thuộc vào việc các bạn đã đạt được thống nhất ngay từ trước khi viết mã hay không." — Boris
Gợi ý: Thay vì sửa chữa lỗi của Claude lặp đi lặp lại, tốt hơn hết là cùng nhau vẽ rõ đường đi ngay từ đầu.
Tóm tắt
Chế độ Plan không phải là lãng phí thời gian, mà là dùng thương lượng trước để đổi lấy thực thi ổn định. AI dù mạnh đến đâu cũng cần "bạn nói rõ ràng".
2. Nhiều Claude song song: Không phải một AI, mà là một đội phát triển ảo
Boris không chỉ dùng một Claude. Công việc hàng ngày của ông là như thế này:
- Mở 5 Claude cục bộ trong terminal, phiên được phân cho các tác vụ khác nhau (ví dụ: tái cấu trúc, viết kiểm thử, sửa lỗi)
- Trình duyệt mở thêm 5–10 Claude, chạy song song với cục bộ
- Dùng ứng dụng Claude iOS trên điện thoại, khởi động tác vụ bất cứ lúc nào
Mỗi phiên bản Claude, giống như một "trợ lý chuyên dụng": có người chịu trách nhiệm viết mã, có người chịu trách nhiệm bổ sung tài liệu, có người chạy tác vụ kiểm thử lâu dài ở chế độ nền.
Ông thậm chí còn thiết lập thông báo hệ thống, khi Claude chờ nhập liệu, ông có thể được nhắc nhở ngay lập tức.
Tại sao làm như vậy?
Ngữ cảnh của Claude là cục bộ, không phù hợp "một cửa sổ làm tất cả mọi việc". Boris chia Claude thành nhiều vai trò xử lý song song, một mặt giảm thời gian chờ đợi, một mặt giảm "bộ nhớ nhiễu loạn".
Ông còn thông qua thông báo hệ thống để nhắc nhở bản thân: "Claude 4 đang chờ bạn trả lời", "Claude 1 đã hoàn thành kiểm thử", giống như quản lý một hệ thống đa luồng để quản lý những AI này.
Hiểu bằng cách so sánh
Bạn có thể tưởng tượng xung quanh mình có năm thực tập sinh thông minh, mỗi người phụ trách một nhiệm vụ. Bạn không cần làm mọi việc đến cùng, chỉ cần "chuyển người" vào thời điểm then chốt, giữ cho nhiệm vụ được thúc đẩy trôi chảy.
Gợi ý: Coi Claude như nhiều "trợ lý ảo", lần lượt đảm nhận các nhiệm vụ khác nhau, có thể giảm đáng kể thời gian chờ đợi và chi phí chuyển đổi ngữ cảnh.
3. Lệnh Slash: Biến những việc bạn làm hàng ngày thành lệnh tắt của Claude
Một số quy trình công việc, chúng ta làm hàng chục lần mỗi ngày:
- Sửa mã → commit → push → tạo PR
- Kiểm tra trạng thái build → thông báo nhóm → cập nhật issue
- Đồng bộ thay đổi với nhiều phiên web và cục bộ
- Boris không muốn mỗi lần đều nhắc Claude: "Bạn hãy commit trước, rồi push, sau đó tạo PR..."
Ông đóng gói các thao tác này thành lệnh Slash, ví dụ:
/commit-push-pr
Đằng sau những lệnh này là logic kịch bản Bash, được lưu trữ trong thư mục .claude/commands/, thêm vào quản lý Git, các thành viên trong nhóm đều có thể sử dụng.
Claude dùng những lệnh này như thế nào?
Khi Claude gặp lệnh này, nó không chỉ "thực thi lệnh", mà còn biết lệnh này đại diện cho quy trình công việc nào, và có thể tự động thực hiện các bước trung gian, điền sẵn tham số, tránh trao đổi lặp lại.
Hiểu trọng điểm
Lệnh Slash giống như "nút tự động" bạn cài đặt cho Claude. Bạn huấn luyện nó hiểu một quy trình tác vụ, sau đó nó có thể thực thi một phím.
"Không chỉ tôi dùng lệnh để tiết kiệm thời gian, Claude cũng có thể." — Boris
Gợi ý: Đừng mỗi lần đều nhập lời nhắc lặp lại, hãy trừu tượng hóa các tác vụ tần suất cao thành lệnh, thì sự phối hợp giữa bạn và Claude mới có thể "tự động hóa".
4. Kho kiến thức nhóm: Claude không dựa vào Prompt để học, mà dựa vào gen kiến thức do nhóm duy trì
Nhóm của Boris duy trì một kho kiến thức .claude, và thêm vào quản lý Git.
Nó giống như "Wikipedia nội bộ" dùng cho Claude, ghi lại:
- Cách viết nào là đúng
- Thực tiễn tốt nhất mà nhóm thỏa thuận là gì
- Gặp những vấn đề nào, nên sửa như thế nào
Claude sẽ tự động tham khảo kho kiến thức này để hiểu ngữ cảnh, đánh giá phong cách mã.
Khi Claude làm sai thì phải làm sao?
Mỗi khi Claude hiểu sai hoặc viết sai logic, hãy thêm bài học vào đó.
Mỗi nhóm duy trì phiên bản của mình.
Tất cả mọi người cùng chỉnh sửa, Claude sẽ tham khảo kho kiến thức này theo thời gian thực để đưa ra phán đoán.
Ví dụ:
Nếu Claude cứ viết sai logic phân trang, chỉ cần nhóm viết tiêu chuẩn phân trang chính xác vào kho kiến thức, sau này mỗi người dùng đều có thể tự động hưởng lợi.
Cách làm của Boris: Không mắng nó, không tắt đi, mà là "huấn luyện một lần":
Đoạn mã này chúng ta không viết như vậy, thêm vào kho kiến thức
Lần sau Claude sẽ không mắc lỗi này nữa.
Quan trọng hơn, cơ chế này không phải do Boris một người duy trì, mà cả nhóm đều đóng góp, sửa đổi hàng tuần.
Gợi ý: Dùng AI, không phải mỗi người đơn thương độc mã, mà là xây dựng một hệ thống "ký ức tập thể".
5. Cơ chế học tự động: Bản thân PR chính là "dữ liệu huấn luyện" của Claude
Khi kiểm tra mã, Boris thường @Claude trên PR, ví dụ:
@.claude thêm cách viết hàm này vào kho kiến thức
Kết hợp với GitHub Action, Claude sẽ tự động học ý đồ đằng sau thay đổi này, và cập nhật kiến thức nội bộ.
Điều này tương tự như "huấn luyện Claude liên tục", mỗi lần đánh giá không chỉ hợp nhất mã, mà còn nâng cao năng lực AI.
Đây không còn là "bảo trì hậu kỳ", mà là tích hợp cơ chế học tập của AI vào sự hợp tác hàng ngày.
Nhóm dùng PR để nâng cao chất lượng mã, Claude đồng bộ nâng cao trình độ kiến thức.
Gợi ý: PR không chỉ là quy trình kiểm tra mã, mà còn là cơ hội để công cụ AI tự tiến hóa.
6. Tác nhân con (Subagents): Để Claude thực thi tác vụ phức tạp một cách mô-đun hóa
Ngoài quy trình tác vụ chính, Boris còn định nghĩa một số tác nhân con (Subagents) để xử lý các tác vụ phụ trợ thông thường.
Subagents là một số mô-đun chạy tự động, ví dụ:
- code-simplifier: Tự động đơn giản hóa cấu trúc sau khi Claude viết mã xong
- verify-app: Chạy kiểm thử hoàn chỉnh, xác thực mã mới có dùng được không
- log-analyzer: Phân tích log lỗi, nhanh chóng xác định vấn đề
Những tác nhân con này giống như plugin, tự động kết nối vào quy trình công việc của Claude, tự động hợp tác chạy, không cần lời nhắc lặp lại.
Gợi ý: Tác nhân con chính là "thành viên nhóm" của Claude, nâng cấp Claude từ một trợ lý thành "chỉ huy dự án".
Claude không chỉ là một người, mà là tổng quản bạn có thể dẫn theo cả đội.
7. Đoạn bổ sung một: PostToolUse Hook — Người gác cổng cuối cùng của định dạng mã
Trong một nhóm, để mỗi người viết ra mã có phong cách thống nhất không dễ dàng. Mặc dù khả năng tạo của Claude mạnh, nhưng khó tránh khỏi những sai sót chi tiết như thụt lề kém một chút, dòng trống nhiều một chút.
Cách làm của Boris là thiết lập một PostToolUse Hook —
Hiểu đơn giản, đây là "móc xử lý hậu kỳ" mà Claude tự động gọi sau khi "hoàn thành nhiệm vụ".
Tác dụng của nó bao gồm:
- Tự động sửa định dạng mã
- Bổ sung chú thích bị bỏ sót
- Xử lý lỗi lint, tránh CI bị treo
Bước này thường không phức tạp, nhưng rất quan trọng. Giống như sau khi viết bài xong lại chạy một lần Grammarly, như vậy tác phẩm giao ra mới ổn định, gọn gàng.
Đối với công cụ AI, then chốt dễ dùng thường không nằm ở khả năng tạo, mà ở khả năng hoàn tất.
8. Quản lý quyền hạn: Ủy quyền trước thay vì bỏ qua
Boris nói rõ ông không sử dụng --dangerously-skip-permissions — đây là một tham số của Claude Code, có thể bỏ qua tất cả các lời nhắc quyền hạn khi thực thi lệnh.
Nghe có vẻ tiện lợi, nhưng cũng có thể nguy hiểm, như xóa nhầm file, chạy sai script, v.v.
Giải pháp thay thế của ông là:
1.Sử dụng lệnh /permissions để khai báo rõ ràng哪些命令是可信的
2.Đưa các cấu hình quyền hạn này vào .claude/settings.json
3.Để toàn bộ nhóm chia sẻ các thiết lập an toàn này
Điều này giống như mở sẵn một loạt thao tác "danh sách trắng" cho Claude, ví dụ:
"preApprovedCommands": [
"git commit",
"npm run build",
"pytest"
]
Claude gặp các thao tác này sẽ thực thi trực tiếp, không cần ngắt quãng mỗi lần.
Thiết kế cơ chế quyền hạn này giống một hệ điều hành nhóm hơn là một công cụ đơn máy. Ông dùng lệnh /permissions để ủy quyền trước các lệnh bash thường dùng, an toàn, các cấu hình này được lưu trong .claude/settings.json, nhóm chia sẻ.
Gợi ý: Tự động hóa AI không có nghĩa là mất kiểm soát. Đưa chiến lược an toàn vào chính quy trình tự động hóa mới là kỹ thuật hóa thực sự.
9. Liên động đa công cụ: Claude = Robot đa năng
Boris không chỉ để Claude viết mã cục bộ. Ông cấu hình để Claude có thể truy cập nhiều nền tảng cốt lõi thông qua MCP (một mô-đun dịch vụ trung tâm):
- Tự động gửi thông báo Slack (ví dụ kết quả build)
- Truy vấn dữ liệu BigQuery (ví dụ chỉ số hành vi người dùng)
- Thu thập log Sentry (ví dụ theo dõi ngoại lệ trực tuyến)
Làm thế nào để thực hiện?
Cấu hình MCP được lưu trong .mcp.json
Claude khi chạy sẽ đọc cấu hình, tự chủ thực thi tác vụ xuyên nền tảng
Toàn bộ nhóm chia sẻ một bộ cấu hình
Tất cả những điều này được hoàn thành thông qua tích hợp MCP (hệ thống trung tâm của Claude) với Claude, cấu hình được lưu trong .mcp.json.
Claude giống như một trợ lý robot, có thể giúp bạn:
"Viết xong mã → Gửi PR → Xem hiệu quả → Thông báo QA → Báo cáo log".
Đây không còn là công cụ AI theo nghĩa truyền thống, mà là trung tâm thần kinh của hệ thống kỹ thuật.
Gợi ý: Đừng để AI chỉ làm việc trong "trình soạn thảo",
Nó có thể trở thành người điều phối trong toàn bộ hệ sinh thái hệ thống của bạn.
10. Xử lý bất đồng bộ tác vụ dài: Agent nền + plugin + hook
Trong dự án thực tế, Claude đôi khi phải xử lý tác vụ dài, ví dụ:
- Build + kiểm thử + triển khai
- Tạo báo cáo + gửi email
- Script di chuyển dữ liệu đang chạy
Cách xử lý của Boris rất kỹ thuật hóa:
Ba cách xử lý tác vụ dài:
1.Sau khi Claude hoàn thành, dùng Agent nền để xác thực kết quả
2.Sử dụng Stop Hook, tự động kích hoạt động tác tiếp theo khi tác vụ kết thúc
3.Sử dụng plugin ralph-wiggum (do @GeoffreyHuntley đề xuất) để quản lý trạng thái quy trình dài
Trong những tình huống này, Boris sẽ sử dụng:
--permission-mode=dontAsk
Hoặc đưa tác vụ vào chạy trong sandbox, tránh làm gián đoạn toàn bộ quy trình vì lời nhắc quyền hạn.
Claude không phải là "lúc nào cũng nhìn chằm chằm", mà là cộng tác viên bạn có thể yên tâm ủy thác.
Gợi ý: Công cụ AI không chỉ phù hợp với thao tác ngắn nhanh, mà còn phù hợp với chu kỳ dài, quy trình phức tạp — tiền đề là bạn phải xây dựng cho nó "cơ chế ủy thác".
11. Cơ chế xác thực tự động: Đầu ra của Claude có giá trị hay không, then chốt là xem nó có thể xác thực chính mình không
Kinh nghiệm quan trọng nhất của Boris là:
Bất kỳ kết quả đầu ra nào của Claude, phải có "cơ chế xác thực" để kiểm tra tính chính xác của nó.
Ông sẽ thêm một kịch bản xác thực hoặc hook cho Claude:
- Sau khi viết mã xong, Claude tự động chạy trường hợp kiểm thử để xác thực mã có đúng không
- Mô phỏng tương tác người dùng trong trình duyệt, xác thực trải nghiệm frontend
- Tự động so sánh log, chỉ số trước và sau khi chạy
Nếu không thông qua, Claude sẽ tự động sửa đổi, thực thi lại. Cho đến khi thông qua thì thôi.
Điều này giống như Claude tự mang theo một "hệ thống phản hồi vòng kín".
Điều này không chỉ nâng cao chất lượng, mà còn giảm bớt gánh nặng nhận thức của con người.
Gợi ý: Yếu tố thực sự quyết định chất lượng thành quả AI, không phải là số tham số của model, mà là bạn có thiết kế tốt "cơ chế kiểm tra kết quả" cho nó hay không.
Tổng kết: Không phải để AI thay thế người, mà là để AI hợp tác như người
Phương pháp của Boris không dựa vào "tính năng ẩn" hay công nghệ đen nào, mà là sử dụng Claude một cách kỹ thuật hóa, nâng cấp nó từ "công cụ trò chuyện" thành một phần của hệ thống làm việc hiệu quả.
Cách sử dụng Claude của ông có mấy đặc điểm cốt lõi:
- Nhiều phiên song song: Phân công nhiệm vụ rõ ràng hơn, hiệu suất cao hơn
- Ưu tiên lập kế hoạch: Chế độ Plan nâng cao mức độ đồng bộ mục tiêu của Claude
- Hệ thống kiến thức hỗ trợ: Nhóm cùng nhau duy trì kho kiến thức AI, lặp lại liên tục
- Tự động hóa tác vụ: Lệnh Slash + tác nhân con, để Claude làm việc như một động cơ quy trình
- Cơ chế phản hồi vòng kín: Mỗi đầu ra của Claude đều có logic xác thực, đảm bảo sản phẩm đầu ra ổn định đáng tin cậy
Thực ra phương pháp của Boris cho thấy một cách sử dụng AI mới:
- Nâng cấp Claude từ "trợ lý đối thoại" thành "hệ thống lập trình tự động"
- Biến tích lũy kiến thức từ não người thành kho kiến thức AI
- Biến quy trình từ thao tác thủ công lặp lại thành quy trình làm việc tự động hóa kịch bản hóa, mô-đun hóa, hợp tác hóa
Cách làm này không dựa vào ma thuật đen, mà là thể hiện của năng lực kỹ thuật hóa. Bạn cũng có thể tham khảo ý tưởng từ đó, sử dụng Claude hoặc các công cụ AI khác hiệu quả hơn, thông minh hơn.
Nếu khi sử dụng Claude, bạn thường cảm thấy "nó hiểu một chút, nhưng không đáng tin", "mã viết ra lúc nào cũng phải sửa", có lẽ vấn đề không nằm ở Claude, mà ở chỗ bạn chưa cho nó một cơ chế hợp tác trưởng thành.
Claude có thể là một thực tập sinh đủ tiêu chuẩn, cũng có thể là một đối tác kỹ thuật đáng tin cậy ổn định, tùy thuộc vào cách bạn dùng nó.




















