1. Sơ đồ thư mục đầy đủ
Một Skill là một thư mục có cấu trúc như sau:
ten-skill-cua-ban/
├── SKILL.md # Bắt buộc — file hướng dẫn chính
├── scripts/ # Tùy chọn — mã thực thi
│ ├── process_data.py
│ └── validate.sh
├── references/ # Tùy chọn — tài liệu tham chiếu
│ ├── api-guide.md
│ └── examples/
└── assets/ # Tùy chọn — mẫu, template
└── report-template.md
Chỉ SKILL.md là bắt buộc. Ba thư mục còn lại được thêm vào khi workflow cần đến.
2. Vai trò từng thành phần
2a. SKILL.md (bắt buộc)
File trung tâm, viết bằng Markdown, gồm hai phần:
- Phần khai báo YAML ở đầu file — quyết định khi nào Skill được kích hoạt (sẽ phân tích kỹ ở Bài 4).
- Phần thân — chứa hướng dẫn chi tiết Claude cần làm theo (Bài 5).
2b. scripts/ (tùy chọn)
Chứa mã thực thi như Python hoặc Bash. Dùng khi workflow cần xử lý xác định, có tính tự động — ví dụ một script kiểm tra định dạng dữ liệu đầu vào.
Một nguyên tắc quan trọng: với các kiểm tra mang tính then chốt (validation), nên đóng gói một script thực hiện kiểm tra bằng mã, thay vì chỉ dựa vào hướng dẫn bằng lời. Lý do: mã chạy có tính xác định, còn việc diễn giải ngôn ngữ thì không.
2c. references/ (tùy chọn)
Chứa tài liệu tham chiếu chi tiết. Đây là "lớp 3" trong cơ chế progressive disclosure đã nói ở Bài 1: Claude chỉ tìm đến và đọc khi cần. Mục tiêu là giữ SKILL.md gọn, đẩy phần dài vào đây.
Ví dụ nội dung phù hợp đặt trong references/: hướng dẫn phân trang API, bảng mã lỗi, hướng dẫn xử lý giới hạn truy vấn.
2d. assets/ (tùy chọn)
Chứa các tài nguyên dùng trong kết quả đầu ra: template báo cáo, font, icon. Khác với references/ (Claude đọc để hiểu), assets/ là vật liệu được dùng trực tiếp trong sản phẩm cuối.
3. Quy tắc đặt tên — phần dễ sai nhất
Đây là nhóm quy tắc gây lỗi nhiều nhất khi upload Skill. Cần tuân thủ chính xác.
3a. Tên file SKILL.md
- Phải đúng chính xác
SKILL.md(phân biệt hoa thường). - Không chấp nhận biến thể:
SKILL.MD,skill.md,Skill.mdđều sai.
3b. Tên thư mục Skill
Dùng kebab-case (chữ thường, nối bằng dấu gạch ngang):
| Cách viết | Hợp lệ? |
|---|---|
notion-project-setup |
Đúng |
Notion Project Setup (có dấu cách) |
Sai |
notion_project_setup (gạch dưới) |
Sai |
NotionProjectSetup (viết hoa) |
Sai |
3c. Không có file README.md trong thư mục Skill
- Không đặt
README.mdbên trong thư mục Skill. - Mọi tài liệu nằm trong
SKILL.mdhoặcreferences/. - Ngoại lệ: khi phân phối qua GitHub, vẫn nên có README ở cấp repo cho người đọc — nhưng đó là file riêng, không nằm trong thư mục Skill.
4. Ví dụ minh họa: phác cấu trúc một Skill cho tester
Giả sử cần một Skill sinh test case từ user story. Cấu trúc có thể như sau:
sinh-test-case-tu-user-story/
├── SKILL.md # Hướng dẫn chính + điều kiện kích hoạt
├── references/
│ └── test-case-template.md # Template test case chuẩn của team
└── assets/
└── testrail-import-format.csv # Mẫu định dạng để import vào TestRail
Trong ví dụ này:
SKILL.mddạy Claude khi nào và làm thế nào để sinh test case.references/test-case-template.mdchứa quy ước viết test case để Claude tham chiếu khi cần.assets/testrail-import-format.csvlà mẫu định dạng đầu ra.
Skill thực tế sẽ được dựng đầy đủ ở Bài 6 của chuỗi.
5. Checklist cấu trúc trước khi viết nội dung
- Thư mục đặt tên kebab-case, không dấu cách, không gạch dưới, không viết hoa.
- Có file
SKILL.md(đúng chính tả, đúng hoa thường). - Không có
README.mdbên trong thư mục Skill. - Đã xác định có cần
scripts/,references/,assets/hay không. - Tài liệu chi tiết được đẩy vào
references/thay vì nhồi hết vàoSKILL.md.
6. Tổng kết bài 3
- Skill là một thư mục; chỉ
SKILL.mdlà bắt buộc. scripts/cho mã thực thi,references/cho tài liệu tham chiếu nạp theo nhu cầu,assets/cho vật liệu dùng trong đầu ra.- Quy tắc đặt tên cần tuân thủ tuyệt đối:
SKILL.mdđúng chính tả, thư mục kebab-case, khôngREADME.mdbên trong. - Đẩy nội dung dài vào
references/để giữSKILL.mdgọn — đúng tinh thần progressive disclosure.
Bài tiếp theo (Bài 4): Viết phần khai báo YAML — thành phần quyết định Skill có được kích hoạt đúng lúc hay không, cùng cách viết trường description hiệu quả.
Bình luận (0)
Chưa có bình luận nào. Hãy là người đầu tiên!