Bài 18 · Nâng cao · 34 phút· Cập nhật 11/06/2026
Dự án cuối khoá: 5 dự án thực chiến
Biên soạn bởi Nguyễn Anh Tuấn
Áp dụng tất cả: onboard CLAUDE.md+command vào repo, viết Skill & Subagent, hooks tự động, kết nối MCP, và một tính năng end-to-end.
Đây là lúc biến lý thuyết thành kỹ năng thật. Năm dự án dưới đây xây chồng lên nhau - mỗi cái dùng một mảnh bạn đã học - và làm trên dự án của chính bạn. Mỗi dự án có khối “Hoàn thành khi” để tự chấm.
Chưa có dự án? Dựng một repo nháp 5 phút
tạo một sân tập tối giản
mkdir tap-claude-code && cd tap-claude-code
git init
echo "# Sân tập Claude Code" > README.md
# Thêm một file mã đơn giản bằng ngôn ngữ bạn thích, ví dụ:
echo 'print("Hello")' > app.py
git add . && git commit -m "khởi tạo sân tập"
claude # mở Claude Code ngay trong thư mục này Ôn nhanh "việc nào → công cụ nào" trước khi làm 5 dự án:
Chọn một nhu cầu thực tế - xem công cụ nào phù hợp nhất và tại sao. Ôn lại toàn bộ khoá trong một tầm nhìn:
Chọn một nhu cầu ở trên để xem gợi ý.
- ▸Làm trên dự án THẬT của bạn (hoặc repo nháp ở trên).
- ▸Trên máy thật: ở chế độ default/acceptEdits, đọc diff trước khi đồng ý.
- ▸Commit kết quả mỗi dự án vào git để có bằng chứng & dễ quay lại.
Mục tiêu: cho Claude “hiểu” dự án bạn và có vài lệnh tắt riêng. (Dùng bài CLAUDE.md & bộ nhớ và Slash command.)
- ▸Chạy /init để sinh CLAUDE.md ban đầu, rồi TỈA cho đúng (lệnh build/test, quy ước, cấu trúc).
- ▸Tạo 2 slash command hữu ích, vd /commit (chèn !`git diff --staged`) và /giai-thich $ARGUMENTS.
- ▸Thử: hỏi Claude một việc và xem nó bám đúng quy ước trong CLAUDE.md.
Hoàn thành khi
Mục tiêu: đóng gói một quy trình bạn hay lặp thành một Skill mà Claude tự gọi đúng lúc. (Dùng bài Agent Skills.)
- ▸Chọn một việc lặp lại (vd “tóm tắt thay đổi + gắn cờ rủi ro”, “viết test cho file này”).
- ▸Tạo .claude/skills/<tên>/SKILL.md: frontmatter name + description nêu RÕ khi nào dùng.
- ▸Thêm !`lệnh` để nhúng dữ liệu động nếu cần; thử cả gọi tay (/tên) lẫn để Claude tự gọi.
Hoàn thành khi
Mục tiêu: tạo một trợ lý phụ chạy ở ngữ cảnh riêng cho một việc hay làm bẩn ngữ cảnh chính. (Dùng bài Subagents.)
- ▸Tạo .claude/agents/code-reviewer.md: description rõ, tools chỉ-đọc (Read, Grep, Glob).
- ▸Phần thân = system prompt: nói rõ nó review gì, trả lời thế nào (nêu file:dòng, theo mức độ).
- ▸Cân nhắc model: haiku cho việc nhẹ/lặp nhiều; sonnet/opus cho việc khó.
Hoàn thành khi
Mục tiêu: biến vài quy ước “mong manh” thành luật cứng do máy thực thi. (Dùng bài Hooks.)
- ▸PostToolUse trên Write|Edit: tự chạy formatter/linter của dự án sau mỗi lần sửa.
- ▸PreToolUse trên Bash với if "Bash(rm *)": chặn (hoặc cảnh báo) lệnh xoá nguy hiểm.
- ▸Gõ /hooks để kiểm hook đang bật; nhớ: hook chạy mã của bạn - viết an toàn.
.claude/settings.json - tự format sau khi sửa
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{ "type": "command",
"command": "jq -r '.tool_input.file_path' | xargs <lenh-format-cua-ban>" }
]
}
]
}
} Hoàn thành khi
Mục tiêu: ghép tất cả để làm trọn một tính năng/bugfix THẬT, an toàn. (Dùng bài Tương tác, Đọc/sửa, git/PR, Kiểm chứng.)
- ▸1) Plan mode: để Claude khảo sát & trình kế hoạch; bạn duyệt/chỉnh TRƯỚC khi cho code.
- ▸2) Code: cho một “đích để tự kiểm” (test/kết quả mong đợi); làm từng phần, duyệt diff.
- ▸3) Test/build: chạy để kiểm chứng; sai thì để vòng lặp tự sửa.
- ▸4) Nhánh → PR: tạo nhánh, commit gọn, gh pr create; nhờ Claude tự review rồi BẠN duyệt.
Hoàn thành khi
Nâng cấp (tùy chọn): chuẩn nghề · MCP · Plugin
Bạn đã đi từ “Claude Code là gì” đến tự dựng một tính năng end-to-end cùng nó - qua CLAUDE.md, slash command, Skills, Subagents, Hooks, MCP, Plugins, quy trình git/PR và kiểm chứng. Quan trọng hơn mọi tính năng: bạn giữ được tư duy đúng - mô tả rõ, cấp ngữ cảnh đúng, và luôn kiểm chứng.
Lời cuối - trung thực
Câu hỏi thường gặp
Tạo một “repo nháp” 5 phút (xem Bước 1): git init một thư mục, thêm README và một file mã đơn giản (vd một CLI Todo nhỏ bằng ngôn ngữ bạn thích). Dùng chính nó làm sân tập cho cả 5 dự án. Hoặc dùng một dự án cũ của bạn - càng thật càng tốt.
Nên làm theo thứ tự vì chúng xây chồng lên nhau (CLAUDE.md → command → Skill → Subagent → Hooks → tính năng end-to-end). Nhưng cứ làm tới đâu chắc tới đó; mỗi dự án đã có tiêu chí “Hoàn thành khi” để bạn tự chấm.
Trên dự án thật/máy thật: default hoặc acceptEdits, và đọc diff trước khi đồng ý. Dùng allow/deny cho những thứ an toàn (vd cho phép chạy test) và chặn nguy hiểm (rm). KHÔNG dùng bypassPermissions trừ khi trong môi trường cô lập.
Tick những điều em tự tin làm được. Càng lên cao, em càng hiểu sâu.
Trả lời vài câu để chắc rằng em đã nắm bài.
Dự án 1 (Onboard) yêu cầu làm gì với CLAUDE.md?
- 1
Bộ sưu tập cấu hình
Gom
CLAUDE.md+ các command/Skill/Subagent/hook bạn tạo trong 5 dự án vào repo, có README mô tả từng cái.Hoàn thành khi: Một repo gọn gàng cho thấy bạn đã onboard Claude Code bài bản - “portfolio” kỹ năng đầu tay.
- 2
Đóng gói plugin (nâng cao)
Gói một Skill + một Subagent + một hook thành một plugin (xem bài Plugins) để tái dùng cho dự án khác.
Hoàn thành khi: Một plugin tự chứa, nạp được bằng
claude --plugin-dir, sẵn sàng chia sẻ cho nhóm. - 3
Một tính năng thật
Chọn một tính năng/bugfix THẬT bạn cần, làm trọn quy trình: plan → code → test → PR, kiểm chứng từng bước.
Hoàn thành khi: Một PR hoàn chỉnh, test xanh, bạn đã đọc & duyệt diff - giá trị thật cho dự án của bạn.
- 4
Chia sẻ trải nghiệm
Viết một ghi chú ngắn (hoặc bài đăng) về điều bạn học được khi đưa Claude Code vào dự án; kèm #meohamhoc.
Hoàn thành khi: Một chia sẻ trung thực về cái được & cái cần cẩn trọng - giúp người khác và củng cố hiểu biết của bạn.