Tạo Skill Đầu Tiên
Level: L4 — AI Skills (Bài 7/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ể:
- Tạo 1 Skill hoàn chỉnh từ đầu, theo đúng quy trình hiện tại của claude.ai HOẶC Claude Code (2 nền tảng có quy trình khác nhau — bài này dạy cả 2).
- Test Skill vừa tạo để xác nhận nó kích hoạt đúng lúc.
- Tránh 3 lỗi phổ biến nhất khi tạo Skill lần đầu.
2. Khái niệm cốt lõi
Phần tiêu đề “2. Khái niệm cốt lõi”2 nền tảng, 2 quy trình khác nhau (bài 31 mục 4 — nhắc lại áp dụng cụ thể):
Trên claude.ai (S76):
- Viết file
SKILL.md(frontmattername+description, nội dung instructions). - Thêm resources/scripts nếu cần (tùy chọn).
- Đóng gói toàn bộ thư mục thành 1 file ZIP đúng cấu trúc.
- Test trước khi upload: đọc lại cho rõ ràng, xác nhận file được tham chiếu đúng, thử hình dung với vài prompt mẫu.
- Upload và bật qua “Customize > Skills”.
- Lặp lại: thử nhiều prompt thật, xem “Claude’s thinking” để xác nhận Skill có được kích hoạt đúng không.
Trên Claude Code (S74):
- Tạo thư mục:
mkdir -p ~/.claude/skills/ten-skill-cua-ban(skill cá nhân, dùng được mọi project) hoặc.claude/skills/ten-skill-cua-ban(chỉ project hiện tại). - Viết
SKILL.mdtrực tiếp vào thư mục đó — không cần upload, không cần đóng gói ZIP — Claude Code đọc thẳng từ filesystem. - Test ngay: mở Claude Code trong project liên quan, thử 1 câu khớp
description(để Claude tự kích hoạt) hoặc gõ trực tiếp/ten-skill-cua-ban(gọi thủ công).
Khác biệt cốt lõi: claude.ai cần đóng gói + upload qua giao diện web; Claude Code chỉ cần đặt đúng file vào đúng thư mục, có hiệu lực ngay trong phiên hiện tại (Live change detection — S74).
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à bài đầu tiên bạn thực sự tạo ra 1 Skill, sau 6 bài học khái niệm/kiến trúc. Chọn đúng quy trình theo đúng nền tảng bạn đang dùng tránh được tình huống làm theo hướng dẫn sai (ví dụ tìm “Settings → Capabilities” — đường dẫn không còn khớp giao diện hiện tại theo tài liệu hỗ trợ mới nhất).
4. Cơ chế hoạt động
Phần tiêu đề “4. Cơ chế hoạt động”Dù quy trình khác nhau, cả 2 nền tảng đều tuân theo đúng chuỗi đã học ở bài 31: viết SKILL.md (frontmatter + instructions) → (tùy chọn) thêm resources/scripts → hệ thống đọc metadata trước (Tầng 1) → đọc đầy đủ khi kích hoạt (Tầng 2). Sự khác biệt chỉ nằm ở bước “đăng ký” Skill với hệ thống (upload ZIP vs đặt file vào đúng thư mục filesystem) — không phải khác biệt về bản chất kiến trúc.
5. Mental model
Phần tiêu đề “5. Mental model”Nếu bài 31-34 dạy cách “viết đúng 1 bộ hồ sơ đào tạo”, bài này dạy cách “nộp hồ sơ đó vào đúng tủ hồ sơ” — claude.ai giống như nộp hồ sơ qua bộ phận tiếp nhận (đóng gói, gửi, chờ xác nhận); Claude Code giống như bạn có chìa khóa tủ hồ sơ, tự đặt hồ sơ vào đúng ngăn, có hiệu lực ngay.
6. Hướng dẫn từng bước
Phần tiêu đề “6. Hướng dẫn từng bước”Quy trình đầy đủ trên Claude Code (khuyến nghị thực hành đầu tiên — đơn giản nhất, test ngay được, đúng ví dụ chính thức S74):
- Chọn 1 việc đã đạt 4/4 tiêu chí ở checklist bài 29.
- Tạo thư mục:
mkdir -p ~/.claude/skills/ten-skill. - Viết
SKILL.md:---description: [Làm gì]. Use when [khi nào dùng, cụ thể].---## Instructions[Hướng dẫn súc tích, đúng nguyên tắc bài 32] - Lưu file. Claude Code tự phát hiện Skill mới trong phiên hiện tại (Live change detection — S74), không cần khởi động lại.
- Test cách 1 — gõ 1 câu khớp
description, quan sát Claude có tự kích hoạt Skill không. - Test cách 2 — gõ trực tiếp
/ten-skill, xác nhận Skill chạy đúng. - Nếu Skill không kích hoạt ở test cách 1: sửa
descriptioncụ thể hơn, thêm từ khóa người dùng thực sự hay dùng (bài 32).
Quy trình trên claude.ai: làm theo đúng 6 bước ở mục 2 (phần claude.ai) — khác biệt chính so với Claude Code là cần đóng gói ZIP và upload thủ công qua “Customize > Skills”, sau đó lặp lại thử nghiệm bằng cách gõ prompt và đọc “Claude’s thinking” để xác nhận kích hoạt đúng.
7. Ví dụ thực tế
Phần tiêu đề “7. Ví dụ thực tế”Ví dụ chính thức — Skill tóm tắt thay đổi git (S74), áp dụng đúng quy trình Claude Code ở mục 6:
---description: Summarizes uncommitted changes and flags anything risky. Use when the user asks what changed, wants a commit message, or asks to review their diff.---
## Current changes
!`git diff HEAD`
## Instructions
Summarize the changes above in two or three bullet points, then list anyrisks you notice such as missing error handling, hardcoded values, ortests that need updating. If the diff is empty, say there are nouncommitted changes.Test cách 1: gõ “What did I change?” — Claude tự nhận diện khớp description và kích hoạt. Test cách 2: gõ /summarize-changes — gọi trực tiếp [S74]. Đây là ví dụ đầy đủ nhất, ngắn gọn, đúng mọi nguyên tắc đã học (concise — bài 32; description 2 vế — bài 32; dùng dynamic context injection — !`git diff HEAD` tự động chèn dữ liệu thật trước khi Claude đọc, 1 tính năng nâng cao của Claude Code không bắt buộc phải dùng ngay).
8. Prompt/template/workflow
Phần tiêu đề “8. Prompt/template/workflow”---description: [Skill làm gì]. Use when [khi nào dùng].---
## Instructions
[Bước 1][Bước 2][Bước 3][ ] description có đủ 2 vế (làm gì + khi nào)?[ ] Instructions có súc tích, không giải thích thừa (bài 32)?[ ] Đã chọn đúng nền tảng (claude.ai hay Claude Code) và làm đúng quy trình tương ứng (mục 2)?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”- Chọn 1 việc từ bài tập bài 29 (đạt 4/4 tiêu chí).
- Viết
SKILL.mdhoàn chỉnh theo template mục 8. - Tạo Skill thật theo đúng quy trình nền tảng bạn đang dùng (mục 6).
- Test cả 2 cách (tự động + thủ công nếu ở Claude Code; hoặc theo quy trình claude.ai) — ghi lại: Skill có kích hoạt đúng lúc không?
- Nếu chưa kích hoạt đúng, áp dụng bài 32 để sửa
description, thử lại.
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”- Làm theo quy trình sai nền tảng — ví dụ tìm cách “đóng gói ZIP” khi đang dùng Claude Code (không cần bước này), hoặc tìm thư mục filesystem khi đang dùng claude.ai (không có khái niệm này trên web).
- Không test trước khi coi là “xong” — tạo xong Skill mà không thử với câu hỏi thật, không biết Skill có thực sự kích hoạt đúng lúc hay không.
- Copy nguyên quy trình “phỏng vấn Skill Creator” từ nguồn cũ (S09) — quy trình này không khớp tài liệu hỗ trợ hiện tại, dễ gây bối rối khi tìm không thấy tính năng được mô tả.
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 dạy quy trình tạo Skill thủ công (tự viết
SKILL.md) — không đề cập tới 1 số công cụ hỗ trợ tạo Skill có thể tồn tại (ví dụ pluginskill-creatorcủa Claude Code, dùng cho việc đánh giá/tinh chỉnh Skill đã có qua eval — khác mục đích với bài này là tạo Skill lần đầu). - Không áp dụng cho Skill dựng sẵn (pre-built, như pptx/xlsx/docx/pdf) — bạn không tự tạo những Skill này, chúng có sẵn.
14. An toàn & quản trị (Safety/Governance)
Phần tiêu đề “14. An toàn & quản trị (Safety/Governance)”Với Skill đầu tiên, chưa cần lo về disable-model-invocation (bài 34) trừ khi Skill có side-effect thật ngay từ đầu. Tuy nhiên, nếu bạn thêm script thực thi ngay ở bước làm quen này, áp dụng đúng nguyên tắc audit đã học ở bài 31/33: đọc kỹ mọi dòng code trước khi để Claude chạy, đặc biệt nếu bạn copy script từ nguồn không phải tự viết.
15. Best practices
Phần tiêu đề “15. Best practices”- Bắt đầu với 1 Skill đơn giản nhất có thể (chỉ
SKILL.md, không resources/scripts) để làm quen quy trình trước khi thêm độ phức tạp. - Test bằng câu hỏi người dùng thật sẽ gõ, không phải câu diễn đạt y hệt description.
- Sau khi Skill hoạt động đúng lần đầu, đừng dừng lại — quay lại bài 32, rà soát lại description/instructions theo đúng nguyên tắc “concise” và “degrees of freedom”.
16. Nội dung nâng cao (không bắt buộc)
Với Claude Code, có 1 plugin chính thức riêng (skill-creator, cài qua /plugin install skill-creator@claude-plugins-official) hỗ trợ quy trình eval có cấu trúc: viết test case, chạy so sánh có-Skill/không-Skill, chấm điểm tự động, và tinh chỉnh description dựa trên tỷ lệ kích hoạt đúng/sai [S74]. Đây là công cụ dành cho việc cải thiện Skill đã tồn tại (liên quan trực tiếp tới evaluation đã học ở bài 34), không phải bước bắt buộc khi mới tạo Skill lần đầu như bài này.
17. Nguồn tham khảo
Phần tiêu đề “17. Nguồn tham khảo”[S74] Extend Claude with skills, Anthropic — quy trình Claude Code đầy đủ, ví dụ summarize-changes, plugin skill-creator · [S76] Creating custom Skills, Claude Help Center — quy trình claude.ai hiện tại (ZIP + Customize > Skills), thay thế mô tả quy trình cũ của S09 · [S09] Tạo Claude Skill Đầu Tiên Của Bạn, Phan Đông Giang (Tier 3) — chỉ còn giá trị tinh thần chung, không dùng cho chi tiết quy trình UI.