Claude Code là agent lập trình chạy trong terminal. Bạn gõ một câu tiếng Việt, nó tự đọc repo, sửa file, chạy test, rồi commit. Mình không đọc code, chưa mở editor lần nào, và toàn bộ sản phẩm đang chạy của mình do Claude Code viết. Nên bài này là Claude Code cho người không biết code, kể bởi đúng một người như vậy.
Claude Code cho người không biết code làm gì
Mình gõ cho nó một câu như thế này: trang danh sách bài viết tải chậm, sửa đi.
- Nó lục cả repo, tìm chỗ dính tới trang danh sách.
- Nó mở các file đó ra đọc, dựng bản đồ xem chúng gọi nhau ra sao.
- Nó sửa rồi chạy test. Test đỏ thì nó sửa tiếp, chạy lại, tới khi xanh.
- Nó chụp màn hình trang đó cho mình xem.
- Nó commit phần việc vừa xong.
Claude Code không hỏi mình file nào liên quan, vì mình không biết để mà trả lời. Nó tự đi tìm rồi tự đọc. Bản đồ ấy dựng trong một lượt chạy, hết lượt là mất, lượt sau nó dựng lại từ đầu.
Mình ngồi nhìn cả năm bước trôi qua trên màn hình. Việc của mình gói lại còn đọc kết quả rồi nói câu tiếp theo.
Khác gì trợ lý gõ trong editor
Trước đó mình có thử loại công cụ cắm sẵn trong editor, gợi ý dòng kế tiếp trong lúc bạn gõ. Người gõ vẫn là bạn. Với mình thứ đó vô dụng, vì mình không biết gõ dòng đầu tiên.
Claude Code ngồi ở tầng khác. Nó mở nhiều file cùng lúc và chạy được lệnh trong terminal, đọc log trả về xong thì tự quyết bước kế tiếp. Một câu mình gõ có thể chạm mười file rải ở bốn thư mục. Mình không cần biết mười file đó tên gì.

Cái giá phải trả là tầm nhìn từng dòng. Mình đổi quyền soi chi tiết lấy tốc độ, và đổi được vì mình chưa bao giờ có quyền đó.
Mô tả của nhà làm ra nó nằm ở tài liệu Claude Code. Phần nói về cách nó tự tìm trong repo khá sát với thứ mình thấy chạy trên màn hình.
Prompt của mình trông ra sao
Prompt tệ nhất mình từng gõ là loại chung chung, kiểu làm cho trang đẹp hơn. Nó sẽ đẹp hơn theo gu của nó. Gu đó đổi mỗi lần chạy lại.
Ví dụ một prompt thật của mình. Trang danh sách đang xếp bài mới nhất xuống dưới cùng. Mình muốn bài mới nhất nằm trên đầu. Chụp màn hình trang đầu tiên cho mình xem.
Câu cuối là câu mình mất lâu nhất mới học được. Thiếu nó, Claude Code vẫn báo xong, mà mình không có gì để nhìn ngoài đúng chữ xong.
Trong cả prompt không có chữ kỹ thuật nào. Mình chỉ tả được cái mình nhìn thấy trên màn hình, và hoá ra chừng đó là đủ.
Blog này do Claude Code dựng
Trang bạn đang đọc chạy trên Payload CMS 3.86 và Next.js 15.5, database là Postgres, đặt trên một VPS. Mình chưa mở một file nguồn nào của nó.
Cách mình ra lệnh, mình kể riêng trong bài cách mình giao việc cho máy. Lý do chọn CMS này nằm ở bài Payload CMS. Phần framework thì tra thẳng ở tài liệu Next.js, mình bắt nó đối chiếu mỗi lần mình nghi nó chế ra.
Site có một luật cứng: con bot AI chỉ được tạo draft, publish thì chỉ mình được làm. Luật đó chặn ở phía server. Giấu nút trong giao diện thì vô ích, vì agent gọi thẳng API vẫn vào được. Mình bắt Claude Code tự dựng cái khoá chặn chính nó.
Cách mình kiểm tra luật đó rất thô. Mình mở admin panel bằng tài khoản của bot, bấm publish, rồi chờ nó bị từ chối. Chưa nhìn thấy tận mắt cái từ chối đó thì mình coi như luật chưa tồn tại.
Trong repo còn một bộ chấm SEO tự viết. Bài dưới 300 chữ là nó kêu. Mật độ từ khoá phải nằm giữa 0,5% và 2,5%, meta title 15 tới 60 ký tự, meta description 120 tới 160. Bài bạn đang đọc bị chính bộ đó chấm trước khi publish.
Hai luật mình học bằng cách mất việc
Lần hỏng đắt nhất xảy ra khi mình để Claude Code chạy một mạch qua đêm. Sáng ra mình mở site, mọi thứ đúng như mình đặt. Chiều hôm đó mình bảo nó build bản mới. Bản build đó xoá sạch phần sửa của đêm trước.
Nó sửa đúng, chạy đúng, nhưng chưa commit. Phần chưa commit thì git không nhìn thấy. Lần build kế tiếp lấy code đã commit làm gốc, nên mọi thứ nằm ngoài đó bốc hơi. Cả đêm chạy coi như bỏ, mình ra lệnh làm lại từ đầu.

Từ đó mình có luật thứ nhất: chưa commit thì chưa xong. Chạy được trên màn hình không tính. Mà commit xong vẫn chưa hết, còn động tác push lên remote nữa. Thiếu nó, code vẫn nằm trong máy mình, và một lần cài lại máy là mất trắng.
Luật thứ hai đến sau, kiểu đau y hệt. Một việc là một branch riêng. Hai phiên cùng chạy trên một branch thì phiên này xoá việc phiên kia. Bây giờ mỗi việc mình giao đều nằm trên branch của riêng nó.
Chỗ Claude Code không đáng tin
Điểm yếu lớn nhất mình gặp là lời tự khai. Claude Code viết ra dòng "đã chạy test, tất cả xanh", trong khi test mới chạy dở, hoặc chưa chạy lần nào. Mình nghĩ nó không cố lừa. Nó tóm tắt ý định của chính nó rồi tưởng đó là kết quả.
Ban đầu mình tưởng chỉ cần bắt nó báo cáo kỹ hơn là xong. Hoá ra không. Báo cáo kỹ hơn chỉ làm lời khai dài hơn. Thứ ăn thua là tự chạy lại test suite rồi đọc ít nhất một dòng log thật.
Mình cũng từng cho một agent thứ hai đi kiểm tra agent thứ nhất. Cách này hỏng ngay từ đầu. Agent kiểm tra agent là một vòng tròn. Cả hai cùng tự tin, không bên nào chạm vào sự thật. Người phải tự đọc một dòng log, kể cả người đó không đọc được code như mình.
Ai không nên dùng Claude Code
Có mấy trường hợp mình sẽ khuyên đừng dùng Claude Code.
- Ai cần kiểm soát từng dòng thì sẽ ngồi soi diff cả ngày, và hết giờ làm việc của chính mình.
- Hệ thống dính tiền mà chỉ có một người đọc chéo: một mình bạn với một agent là quá ít mắt cho luồng tiền.
- Người ngại tả rõ mình muốn gì cũng nên bỏ qua. Prompt mơ hồ ra sản phẩm mơ hồ, nhanh hơn trước, sai giống trước.
- Còn ai muốn agent tự publish, tự deploy, khỏi ai duyệt thì nên dừng ở đây. Chỗ đó phải có khoá, và khoá phải nằm ngoài tay nó.
Mình giao việc gì cho nó
Bây giờ mình giao gần hết. Dựng trang, sửa giao diện, chạy migration cho database, viết luôn bộ chấm SEO ở trên. Mình giữ lại quyết định muốn gì, và cái nút publish.
Việc chậm nhất bây giờ là mình. Nó sửa xong rồi đứng chờ, còn mình phải đọc kết quả rồi nghĩ xem có đúng ý mình chưa.
Những bài cùng nhóm này mình gom trong chủ đề Công cụ.
Thứ mình vẫn chưa chắc: một mình có đủ mắt để bắt lỗi luồng tiền hay không. Mình ngờ là không. Nên phần nào dính tới tiền, mình vẫn bắt một model khác review lại diff trước khi deploy. Claude Code viết, model khác soi. Mình bấm nút.


