TL;DR

Tạo Skill đầu tiên không cần code - chỉ cần tạo thư mục, viết file SKILL.md với YAML frontmatter và hướng dẫn Markdown, rồi restart Claude Code. Anthropic có sẵn skill-creator: meta-Skill phỏng vấn bạn về workflow rồi tự sinh ra SKILL.md và cấu trúc thư mục. Bài này đi từng bước thực hành, kèm ví dụ kiến trúc đa-Skill cho blog writing, và danh sách lỗi hay gặp nhất.

Khi nào nên làm Skill - và khi nào không

Chỉ đáng làm Skill khi xuất hiện một trong ba tín hiệu sau:

  • Bạn paste cùng một đoạn hướng dẫn vào AI lần thứ ba trở đi
  • Một phần của CLAUDE.md đã phình to thành quy trình nhiều bước thay vì chỉ là fact về project
  • Bạn cần AI áp dụng nhất quán một quy trình phức tạp, không thể tóm tắt trong 2 câu

Không đáng làm Skill khi: task chỉ làm một lần, workflow quá đơn giản (dưới 5 bước), hoặc bạn chưa biết mình sẽ dùng kiểu gì. Đừng thiết kế Skill trước khi dùng - hãy làm việc với AI vài lần, nhận ra điểm lặp, rồi mới đóng gói.

skill-creator: meta-Skill của Anthropic

Anthropic có sẵn một Skill chuyên để làm Skill - gọi là skill-creator. Thay vì bạn phải tự nghĩ ra cấu trúc, skill-creator phỏng vấn bạn một loạt câu hỏi: workflow của bạn trông như thế nào, khi nào nên trigger, đầu ra mong muốn là gì, có edge case nào không - rồi tự sinh ra SKILL.md và cấu trúc thư mục phù hợp.

Cài skill-creator bằng lệnh trong Claude Code:

Giúp tôi cài Skill này: https://github.com/anthropics/skills/tree/main/skills/skill-creator

Ngoài việc sinh Skill, skill-creator còn có khả năng nâng cao: tự tạo test case, chạy benchmark so sánh with-skill vs. baseline, tự tối ưu description qua nhiều vòng iteration, và track success rate.

Tự tạo Skill thủ công - 4 bước

Bước 1: Tạo thư mục

Skill cá nhân đặt ở ~/.claude/skills/. Tạo thư mục với tên là lệnh bạn muốn gọi:

mkdir -p ~/.claude/skills/ten-skill-cua-ban

Bước 2: Viết SKILL.md

Tạo file SKILL.md trong thư mục vừa tạo. Cấu trúc tối thiểu:

---
name: ten-skill-cua-ban
description: Mô tả Skill làm gì và khi nào dùng. Viết rõ cả trigger phrase.
---

## Quy trình thực hiện

1. Bước đầu tiên
2. Bước thứ hai
3. Bước thứ ba

Một ví dụ thực tế - Skill blog cho Small Business owner viết theo phong cách Xiaohongshu:

---
name: xiaohongshu-recipe
description: Chuyển đổi công thức nấu ăn thông thường sang phong cách Xiaohongshu.
  Dùng khi người dùng nói "chuyển sang Xiaohongshu", "viết theo style Xiaohongshu".
---

## Tiêu đề
- Bắt buộc có số, ví dụ "3 bước", "5 phút"
- Dưới 20 chữ, có yếu tố bất ngờ hoặc tương phản

## Nội dung
- Câu mở đầu nêu ngay điểm nổi bật của món ăn
- Danh sách nguyên liệu dùng emoji
- Các bước đánh số, mỗi bước tối đa 2 dòng
- Giọng văn thân mật, như nói chuyện với bạn bè
- Không dùng "Đầu tiên", "Tiếp theo", "Tóm lại"

## Kết thúc
- Câu hỏi mời tương tác
- 2-3 hashtag chủ đề
- Dưới 500 chữ tổng

Bước 3: Restart Claude Code

Nếu thư mục ~/.claude/skills/ chưa tồn tại trước session hiện tại, cần restart để Claude Code bắt đầu theo dõi thư mục mới. Các lần sau, chỉnh sửa file trong session thì có hiệu lực ngay.

Bước 4: Test

/ten-skill-cua-ban để gọi thủ công, hoặc đặt câu hỏi tự nhiên khớp với description để xem Claude tự trigger không. Quan sát kết quả và chỉnh description nếu trigger không đúng thời điểm.

Ví dụ thực tế: bộ Skill viết blog

Thay vì một Skill "viết blog làm tất cả", kiến trúc tốt hơn là 5 Skill nhỏ phối hợp:

~/.claude/skills/
├── blog-outline/       # Tạo outline từ topic
├── blog-writer/        # Viết nháp (gọi blog-outline nếu chưa có outline)
├── blog-editor/        # Chỉnh sửa và trau chuốt
├── blog-seo/           # Kiểm tra SEO - dùng script đếm từ khóa chính xác
└── blog-meta/          # Sinh meta description, tags, social copy

Skill chính (blog-writer) có thể gọi Skill con trong phần hướng dẫn:

## Quy trình
1. Nếu người dùng chưa cung cấp outline, gọi skill `blog-outline` trước
2. Viết theo style guide trong `references/style-guide.md`
3. Dùng template trong `assets/article.md.tpl` làm khung
4. Output Markdown hoàn chỉnh kèm frontmatter

Lợi ích của cách chia này: mỗi Skill có description rõ ràng dễ trigger, thay đổi style chỉ cần sửa một file trong references, có thể dùng blog-seo và blog-meta độc lập cho các task khác.

5 lỗi hay gặp nhất

  • Mega-Skill: Nhồi quá nhiều chức năng vào một Skill. Description viết không rõ nên trigger accuracy thấp, body phình to làm tốn context mỗi lần dùng. Giải pháp: chia nhỏ theo nguyên tắc mỗi Skill một nhiệm vụ rõ ràng.
  • Description quá chung chung: "Giúp xử lý công việc hàng ngày" - AI không biết khi nào trigger. Viết rõ: WHAT + WHEN, liệt kê trigger phrase cụ thể cả tiếng Việt lẫn tiếng Anh.
  • Không dùng disable-model-invocation: true cho workflow nguy hiểm: Bạn không muốn Claude tự quyết định deploy production vì "code trông có vẻ sẵn sàng". Skill có side effect như deploy, commit, gửi email phải set flag này.
  • Bỏ qua supporting files: Nhồi toàn bộ nội dung vào SKILL.md làm body phình to, tốn context mỗi turn trong suốt session. Tách tài liệu dài sang references/.
  • Muốn hoàn hảo từ v1: Skill tốt được viết ra từ thực hành, không phải từ lý thuyết. Một Skill thực tế thường cần 4-6 vòng iteration trước khi thật sự ổn định. Hãy dùng thật, quan sát chỗ AI đi sai, rồi mới chỉnh.

Kết

Kiến trúc bộ Skill viết blog: blog-outline, blog-writer, blog-editor, blog-seo, blog-meta

Làm Skill đầu tiên đơn giản hơn bạn nghĩ - thư mục + file Markdown + restart. Điều thực sự quan trọng không phải cú pháp mà là quan sát đúng chỗ bạn đang lặp lại, rồi đóng gói đúng phần đó. Skill tốt nhất không phải được thiết kế từ đầu - nó lớn dần từ những lần bạn thấy mình paste cùng một đoạn text lần thứ ba.

Bài cuối trong series sẽ nói về hệ sinh thái partner Skills, cách Anthropic build eval system để tự kiểm tra Skill, và tiềm năng thương mại của Skills như một sản phẩm có thể bán.