Claude Code
Level: L6 — AI Coding & Vibe Coding (Bài 5/12)
1. Mục tiêu học tập
Phần tiêu đề “1. Mục tiêu học tập”Sau bài này, bạn có thể:
- Giải thích vòng lặp agentic 3 giai đoạn (gather context → take action → verify results) mà Claude Code vận hành theo.
- Dùng CLAUDE.md để lưu quy ước dự án, giúp Claude Code hiểu đúng bối cảnh mỗi phiên làm việc.
- Áp dụng 4 mức quyền (Manual/Accept edits/Plan/Auto) để kiểm soát mức độ tự chủ của Claude Code.
- Biết khi nào nên dùng Hooks (bắt buộc luôn xảy ra) thay vì chỉ ghi vào CLAUDE.md (chỉ là yêu cầu, có thể bị bỏ qua).
2. Khái niệm cốt lõi
Phần tiêu đề “2. Khái niệm cốt lõi”Claude Code là “agentic harness” — cung cấp công cụ, quản lý ngữ cảnh, và môi trường thực thi biến 1 mô hình ngôn ngữ thành 1 coding agent thực sự hành động được (đọc code, sửa file, chạy lệnh) [S95].
Vòng lặp agentic — 3 giai đoạn hòa vào nhau:
- Gather context — tìm hiểu (đọc file, tìm kiếm, chạy lệnh xem trạng thái hiện tại).
- Take action — thực hiện thay đổi (sửa code, chạy lệnh).
- Verify results — kiểm tra kết quả (chạy test, xem lại output).
“Claude quyết định mỗi bước cần gì dựa trên những gì học được từ bước trước, nối hàng chục hành động lại với nhau và tự điều chỉnh dọc đường” [S95]. Bạn luôn có thể ngắt để chỉnh hướng, không cần đợi Claude Code làm xong mới can thiệp.
CLAUDE.md — ngữ cảnh cố định Claude Code đọc mỗi phiên, khác hẳn Skill (chỉ nạp khi cần) đã học ở Level 4: “CLAUDE.md nạp mỗi phiên tự động; Skill nạp theo yêu cầu. CLAUDE.md không tự kích hoạt workflow; Skill kích hoạt được qua /<tên>” [S94]. Dùng CLAUDE.md cho: quy ước code, lệnh build, cấu trúc dự án, quy tắc “luôn làm X”/“không bao giờ làm X” [S94].
Hooks — kích hoạt tại các sự kiện vòng đời cụ thể (sau khi dùng 1 công cụ, đầu/cuối phiên, khi submit prompt…), chạy được script/HTTP/prompt/subagent [S94]. Điểm khác biệt quan trọng nhất với việc chỉ ghi hướng dẫn vào CLAUDE.md: “Put guardrails in hooks.” — 1 chỉ dẫn trong CLAUDE.md là yêu cầu (Claude có thể quên/bỏ qua); 1 hook PreToolUse chặn hành động là thực thi bắt buộc [S94]. Nếu 1 quy tắc phải luôn đúng tuyệt đối, dùng hook, không chỉ dựa vào lời dặn.
Subagents — phiên Claude độc lập, ngữ cảnh riêng, dùng khi tác vụ cần đọc nhiều file/làm song song và bạn không muốn “làm phình” ngữ cảnh phiên chính — chỉ trả về tóm tắt, không mang theo lịch sử hội thoại đầy đủ [S94].
MCP trong Claude Code — kết nối Claude Code với dịch vụ/dữ liệu bên ngoài (database, Slack…) — dùng nguyên lý MCP đã có nguồn riêng ở Level 7 (dẫn chiếu, không giải thích lại kiến trúc MCP ở đây).
3. Tại sao nội dung này quan trọng
Phần tiêu đề “3. Tại sao nội dung này quan trọng”Đây là công cụ bạn sẽ dùng xuyên suốt phần còn lại của Level 6 — hiểu đúng cách nó “suy nghĩ” (vòng lặp agentic) và cách kiểm soát nó (CLAUDE.md, permission, hooks) quyết định trực tiếp việc bạn có thể giám sát hiệu quả hay chỉ “nhìn nó làm việc” mà không hiểu gì.
4. Cơ chế hoạt động
Phần tiêu đề “4. Cơ chế hoạt động”Ví dụ minh họa vòng lặp thật (nguyên văn từ tài liệu chính thức, tình huống “sửa test đang fail”) [S95]:
- Chạy test suite → xem gì đang fail.
- Đọc thông tin lỗi.
- Tìm file mã nguồn liên quan.
- Đọc file đó để hiểu code.
- Sửa file.
- Chạy lại test để xác nhận đã sửa đúng.
Cơ chế an toàn kép: Checkpoint + Permission [S95]:
- Checkpoint — mọi lần sửa file đều có thể hoàn tác (Claude Code tự chụp snapshot trước khi sửa; nhấn
Esc2 lần để lùi lại). Chỉ áp dụng cho file — hành động ảnh hưởng hệ thống ngoài (database, deploy) không hoàn tác được, đây là lý do Claude Code luôn hỏi trước khi chạy lệnh có side-effect ra ngoài. - 4 mức quyền (đổi bằng
Shift+Tab): Manual (hỏi trước mọi thay đổi), Accept edits (tự sửa file, vẫn hỏi lệnh khác), Plan (chỉ khám phá + đề xuất, không sửa code nguồn — phù hợp giai đoạn tìm hiểu), Auto (tự đánh giá, có kiểm tra an toàn nền).
Phân định AI vs con người:
| Điều bạn cần hiểu | Điều AI có thể thực hiện | Điều bạn phải xác nhận | |
|---|---|---|---|
| Vòng lặp agentic | 3 giai đoạn: gather→act→verify | Tự thực hiện toàn bộ vòng lặp | Kết quả “verify” có thực sự đúng, không chỉ “AI báo đã xong” |
| CLAUDE.md | Đây là “luật” cố định của dự án | Tự đọc và tuân theo | Nội dung CLAUDE.md có đúng/đủ, cập nhật khi quy ước đổi |
| Permission mode | Mức tự chủ càng cao, rủi ro càng cao nếu giám sát lỏng | Hoạt động đúng mức quyền đã chọn | Chọn đúng mức quyền cho đúng tình huống (Plan khi mới tìm hiểu, Manual khi việc nhạy cảm) |
| Hooks | Hook đảm bảo 100%, CLAUDE.md chỉ là lời dặn | Tự kích hoạt hook đúng sự kiện | Quy tắc bắt buộc quan trọng đã được đặt thành hook, không chỉ ghi vào CLAUDE.md |
5. Mental model
Phần tiêu đề “5. Mental model”Nếu Level 4 dạy bạn “hồ sơ đào tạo” (Skill) cho 1 chuyên gia, thì bài này dạy bạn quy tắc làm việc của chính người quản lý dự án (CLAUDE.md = sổ tay quy định của công ty, chuyên gia đọc mỗi ngày đi làm) và mức độ bạn tin tưởng giao việc (permission mode = bạn tự duyệt từng bước, hay để chuyên gia tự làm rồi báo cáo lại).
6. Hướng dẫn từng bước
Phần tiêu đề “6. Hướng dẫn từng bước”5 nguyên tắc làm việc hiệu quả (chính thức) [S95]:
- Coi đây là 1 cuộc hội thoại — không cần prompt hoàn hảo ngay từ đầu, tinh chỉnh dần qua các lượt trao đổi.
- Cụ thể ngay từ đầu — nêu rõ file liên quan, ràng buộc, ví dụ mẫu để giảm số lần phải sửa lại.
- Cho Claude Code thứ để tự xác minh — kèm theo test case, mô tả kết quả mong muốn, hoặc ảnh chụp màn hình kỳ vọng.
- Khám phá trước khi triển khai — dùng Plan mode để phân tích codebase và đề xuất kế hoạch trước, xem lại kế hoạch, rồi mới cho triển khai.
- Giao việc như giao cho 1 đồng nghiệp giỏi — nêu bối cảnh và mục tiêu, tin tưởng để Claude Code tự tìm ra chi tiết, không cần chỉ định từng file/lệnh cụ thể.
Quy trình khởi động 1 dự án mới với Claude Code:
- Chạy lệnh khởi tạo CLAUDE.md (hướng dẫn có sẵn để tạo file này).
- Ghi vào CLAUDE.md các quy ước quan trọng nhất (dùng công cụ nào, chạy test thế nào).
- Chọn mức quyền phù hợp: bắt đầu ở Plan hoặc Manual khi chưa quen, chuyển dần sang Accept edits khi đã tin tưởng.
- Giao việc đầu tiên theo đúng 5 nguyên tắc ở trên.
7. Ví dụ thực tế
Phần tiêu đề “7. Ví dụ thực tế”Áp dụng cho dự án tích lũy (Trợ Lý Ghi Chú Cá Nhân Có AI Tóm Tắt): ghi vào CLAUDE.md quy ước dự án (ví dụ: “Backend viết bằng [ngôn ngữ đã chọn], luôn chạy test trước khi coi 1 tính năng là xong”). Khi yêu cầu “thêm nút xóa ghi chú”, Claude Code sẽ tự: đọc code hiện tại của phần danh sách ghi chú (gather context) → thêm nút + logic xóa ở cả Frontend/Backend/Database (take action, đúng mô hình 4 lớp đã học bài 55) → chạy thử để xác nhận xóa đúng ghi chú, không xóa nhầm (verify results).
8. Prompt/template/workflow
Phần tiêu đề “8. Prompt/template/workflow”# Quy ước dự án
## Công cụ[ngôn ngữ/framework đã chọn cho Frontend, Backend, Database]
## Luôn làm- Chạy test trước khi báo 1 tính năng đã xong- [quy ước khác của bạn]
## Không bao giờ làm- Không commit trực tiếp lên nhánh chính- [quy tắc khác cần enforce — cân nhắc chuyển thành Hook nếu bắt buộc tuyệt đối]Mới tìm hiểu codebase, chưa chắc muốn sửa gì? → PlanViệc nhỏ, quen thuộc, ít rủi ro? → Accept editsViệc nhạy cảm, lần đầu làm? → ManualĐã rất tin tưởng, việc lặp lại quen thuộc? → Auto (thận trọng)9. Visual hoặc diagram cần thiết
Phần tiêu đề “9. Visual hoặc diagram cần thiết”10. Bài tập thực hành
Phần tiêu đề “10. Bài tập thực hành”- Cài đặt Claude Code (nếu chưa có) và tạo CLAUDE.md cho dự án tích lũy của bạn theo khung ở mục 8.
- Thử cả 4 mức quyền trên 1 việc nhỏ, quan sát sự khác biệt hành vi.
- Giao 1 việc theo đúng “nguyên tắc 4” (cho Claude Code thứ để tự xác minh) — ví dụ kèm 1 test case cụ thể.
- Thử dùng Plan mode cho 1 việc bạn chưa chắc chắn cách làm — xem lại kế hoạch trước khi đồng ý triển khai.
11. Checklist
Phần tiêu đề “11. Checklist”12. Lỗi thường gặp
Phần tiêu đề “12. Lỗi thường gặp”- Dùng mức quyền Auto ngay từ đầu khi chưa quen — mất khả năng giám sát kịp thời nếu có sai sót.
- Nhồi hết mọi thứ vào CLAUDE.md thay vì tách phần tham khảo ra Skill — khuyến nghị chính thức: giữ CLAUDE.md dưới 200 dòng [S94].
- Ghi quy tắc bắt buộc vào CLAUDE.md thay vì dùng Hook — quy tắc “không bao giờ” quan trọng cần enforce bằng Hook, không chỉ là lời dặn có thể bị bỏ qua.
- Nhầm CLAUDE.md với Skill — 2 cơ chế khác cách nạp và mục đích.
13. Giới hạn & khi nào KHÔNG nên áp dụng
Phần tiêu đề “13. Giới hạn & khi nào KHÔNG nên áp dụng”- Bài này không dạy lại cách tạo/cấu trúc Skill — xem Level 4 nếu cần.
- Không dạy chi tiết kiến trúc MCP (giao thức, host/client/server) — xem Level 7 khi có.
- Checkpoint chỉ hoàn tác được thay đổi file — không hoàn tác được hành động đã ảnh hưởng hệ thống ngoài (đã gửi email, đã deploy, đã ghi vào database production).
14. An toàn & quản trị (Safety/Governance)
Phần tiêu đề “14. An toàn & quản trị (Safety/Governance)”Nguyên tắc “Put guardrails in hooks” [S94] là nội dung an toàn quan trọng nhất bài này: bất kỳ quy tắc nào phải luôn đúng tuyệt đối (ví dụ: “không bao giờ sửa file cấu hình production”, “không bao giờ push trực tiếp lên nhánh chính”) nên được viết thành Hook, không chỉ ghi vào CLAUDE.md như 1 lời nhắc. Đồng thời, hiểu rõ giới hạn của Checkpoint (chỉ hoàn tác được file, không hoàn tác được hành động ra ngoài) là kiến thức an toàn nền tảng cho toàn bộ phần thực hành còn lại của Level 6.
15. Best practices
Phần tiêu đề “15. Best practices”- Bắt đầu ở mức quyền thấp hơn (Manual/Plan) khi mới làm quen 1 dự án, tăng dần khi đã hiểu rõ Claude Code hành xử thế nào trong dự án đó.
- Cập nhật CLAUDE.md ngay khi phát hiện Claude Code lặp lại 1 sai sót/quên 1 quy ước — đúng nguyên tắc chính thức: “Claude gets a convention wrong twice → add it to CLAUDE.md” [S94].
- Dùng Plan mode cho mọi thay đổi phức tạp hoặc chưa chắc chắn — rẻ hơn nhiều so với để Claude Code code sai rồi sửa lại.
16. Nội dung nâng cao (không bắt buộc)
Claude Code chạy được ở nhiều môi trường thực thi khác nhau (local trên máy bạn, cloud trên VM do Anthropic quản lý, hoặc Remote Control — điều khiển từ trình duyệt trong khi code vẫn chạy local) [S95] — cùng 1 vòng lặp agentic, chỉ khác nơi code thực sự chạy. Ngoài ra, mỗi phiên làm việc độc lập (không tự nhớ hội thoại phiên trước, trừ khi dùng Auto memory), có thể resume (tiếp tục cùng phiên) hoặc fork (tạo nhánh hội thoại mới) — hữu ích khi bạn muốn thử 2 hướng giải quyết khác nhau cho cùng 1 vấn đề mà không mất bản gốc.
17. Nguồn tham khảo
Phần tiêu đề “17. Nguồn tham khảo”[S94] Extend Claude Code, Anthropic (code.claude.com/docs) — CLAUDE.md, Hooks, Subagents, bảng so sánh chính thức với Skill · [S95] How Claude Code Works, Anthropic (code.claude.com/docs) — vòng lặp agentic, checkpoint/permission, nguyên tắc làm việc hiệu quả · Dẫn chiếu (không trích dẫn mới): Level 4 (Agent Skills, không dạy lại), Level 7 (kiến trúc MCP, không dạy lại).
18. Ngày kiểm chứng
Phần tiêu đề “18. Ngày kiểm chứng”Claim kỹ thuật kiểm chứng qua nguồn Tier 1 (S94, S95) ngày 2026-07-12. Đây là lĩnh vực sản phẩm thay đổi rất nhanh — khuyến nghị mạnh mẽ re-verify trước khi xuất bản chính thức nếu khoảng cách thời gian quá 2-3 tháng.