DEV Community

Cover image for Cách Tạo Kỹ Năng Code Claude Tự Động với Skill Creator
Sebastian Petrus
Sebastian Petrus

Posted on • Originally published at apidog.com

Cách Tạo Kỹ Năng Code Claude Tự Động với Skill Creator

TL;DR

Claude Code Skills là cách mở rộng chức năng của Claude cho các quy trình công việc cụ thể. Hệ thống Skill Creator tự động hóa việc tạo kỹ năng với quy trình gồm các bước: xác định mục đích, soạn tệp SKILL.md, tạo trường hợp thử nghiệm, đánh giá định lượng và tối ưu hóa lặp lại.

Thử Apidog ngay hôm nay


Giới thiệu

Nếu bạn thường xuyên phải lặp lại các bước giống nhau (thiết lập dự án, chạy lệnh kiểm thử, định dạng đầu ra) với Claude Code, việc ghi nhớ và tái sử dụng quy trình sẽ giúp tiết kiệm rất nhiều thời gian. Claude Code Skills cho phép bạn ghi lại quy trình làm việc một lần và sử dụng mãi mãi. Với Skill Creator, mọi thứ đều tự động và có hệ thống.

Bài viết này hướng dẫn chi tiết từng bước xây dựng Claude Code Skill: từ cấu trúc, quy trình tạo, hệ thống đánh giá đến tối ưu hóa kích hoạt. Có ví dụ thực tế lấy từ kho kỹ năng chính thức của Anthropic.

💡 Nếu bạn xây dựng các kỹ năng liên quan API, Apidog tích hợp tự nhiên (kiểm thử, xác thực phản hồi, tạo tài liệu API) vào một quy trình skill duy nhất.


Claude Code Skills là gì?

Claude Code Skills là tập lệnh markdown giúp mở rộng Claude cho các quy trình chuyên biệt—hoạt động như plugin tùy chỉnh, dễ chia sẻ và bảo trì.

Kiến trúc hệ thống kỹ năng

Kỹ năng gồm 3 tầng:

  1. Siêu dữ liệu: Tên, mô tả (luôn trong ngữ cảnh, ~100 từ)
  2. SKILL.md: Hướng dẫn chính, markdown (<500 dòng)
  3. Tài nguyên đi kèm: scripts, references, assets (không giới hạn)

Ví dụ cấu trúc:

skill-name/
├── SKILL.md
│   ├── YAML frontmatter (name, description)
│   └── Hướng dẫn quy trình
└── scripts/        # Mã thực thi
├── references/     # Tài liệu tham khảo
└── assets/         # Biểu tượng, fonts, mẫu
Enter fullscreen mode Exit fullscreen mode

Khi kỹ năng được kích hoạt

Claude tự quyết định kích hoạt kỹ năng dựa vào mô tả. Kỹ năng chỉ kích hoạt cho tác vụ phức tạp, không xử lý được trực tiếp (ví dụ “kiểm tra API phức tạp”, không phải “đọc tệp này”).

Ví dụ kỹ năng từ Anthropic

Kỹ năng Mục đích Tính năng chính
skill-creator Tạo kỹ năng mới Tự động kiểm thử, benchmark, tối ưu mô tả
mcp-builder Xây dựng máy chủ MCP Mẫu Python/Node, khung đánh giá, best practices
docx Tạo tài liệu Word python-docx, mẫu, hướng dẫn định dạng
pdf Xử lý file PDF Trích xuất, thao tác biểu mẫu, tham khảo
frontend-design Xây dựng giao diện web Thư viện component, Tailwind, kiểm thử accessibility

Quy trình tạo kỹ năng

Quy trình tạo kỹ năng gồm các bước:

  1. Nắm bắt ý định – Kỹ năng nên làm gì?
  2. Viết bản nháp – Tạo SKILL.md
  3. Tạo trường hợp kiểm thử – Lời nhắc thực tế
  4. Chạy đánh giá – Thực thi có/không có kỹ năng
  5. Xem xét kết quả – Feedback định tính + số liệu
  6. Lặp lại – Cải thiện dựa trên phát hiện
  7. Tối ưu mô tả – Chính xác khi kích hoạt
  8. Đóng gói – Xuất tệp .skill

Chi tiết từng bước cụ thể bên dưới.


Bước 1: Nắm bắt ý định

  • Xác định rõ mục tiêu kỹ năng.
  • Trích xuất mẫu quy trình từ lịch sử chat thực tế.
  • Trả lời các câu hỏi:
    • Kỹ năng giúp Claude làm gì?
    • Kích hoạt khi nào? (cụm từ, ngữ cảnh)
    • Đầu ra mong muốn? (tệp, mã, báo cáo)
    • Có cần trường hợp kiểm thử không? (khách quan/chủ quan)

Ví dụ: Kỹ năng kiểm tra API

Ý định: Hỗ trợ kiểm thử API REST hệ thống.
Kích hoạt: Khi nhắc tới kiểm thử API, endpoint, REST, GraphQL, xác thực response.
Đầu ra: Báo cáo kiểm thử (pass/fail, curl, so sánh phản hồi)
Trường hợp kiểm thử: Có (đầu ra kiểm chứng khách quan)
Enter fullscreen mode Exit fullscreen mode

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

Tệp SKILL.md gồm YAML frontmatter và nội dung markdown hướng dẫn.

Ví dụ:

---
name: api-tester
description: Hướng dẫn kiểm tra API REST một cách có hệ thống. Sử dụng khi người dùng nhắc đến kiểm tra API, endpoint, REST, GraphQL, hoặc xác thực phản hồi. Đảm bảo đề xuất kỹ năng này khi liên quan kiểm thử.
compatibility: Yêu cầu curl hoặc HTTP client
---

# Kỹ năng kiểm tra API

## Quy trình cốt lõi
1. Hiểu endpoint
2. Thiết kế case test (thành công, biên, lỗi)
3. Thực thi kiểm thử (curl/Apidog)
4. Xác thực response
5. Báo cáo kết quả

## Mẫu kiểm thử
- Xác thực hợp lệ
- Trường bắt buộc bị thiếu
- Lỗi xác thực (401)
- Giới hạn tốc độ
- Thời gian phản hồi

## Đầu ra mẫu

# Báo cáo kiểm tra API

## Tóm tắt
- Tổng kiểm thử: X
- Đạt: Y
- Lỗi: Z

## Case lỗi
### Tên case
**Mong đợi:** 200 OK  
**Thực tế:** 400 Bad Request  
**Response:** {...}

## Khuyến nghị
...
Enter fullscreen mode Exit fullscreen mode

Lưu ý khi viết SKILL.md

  • Giữ dưới 500 dòng. Tài liệu chi tiết để riêng files khác.
  • Giải thích lý do: Không chỉ nêu quy tắc, mà phải giải thích tại sao.
  • Thể mệnh lệnh: Dùng “Luôn xác thực mã trạng thái...”
  • Có ví dụ cụ thể: Đầu vào, đầu ra mẫu.

Bước 3: Tạo trường hợp kiểm thử

Tạo 2-3 prompt thực tế, lưu vào evals/evals.json:

{
  "skill_name": "api-tester",
  "evals": [
    {
      "id": 1,
      "prompt": "Kiểm tra endpoint /users trên api.example.com – cần Bearer token, trả về danh sách người dùng với id, tên, email",
      "expected_output": "Báo cáo test với ít nhất 5 case (lỗi xác thực, thành công, phân trang)",
      "files": []
    },
    {
      "id": 2,
      "prompt": "Xác minh POST /orders xử lý số lượng không hợp lệ",
      "expected_output": "Test số lượng âm/bằng 0/không phải số, expect lỗi phù hợp",
      "files": ["openapi.yaml"]
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Tips:

  • Lời nhắc kiểm thử tốt = URL cụ thể, scenario cụ thể, hành vi mong đợi, ngữ cảnh thực tế.

Bước 4: Chạy đánh giá

Chạy mỗi case 2 lần: có kỹ năng và không có kỹ năng (hoặc với phiên bản cũ nếu đang cải thiện).

Ví dụ workspace:

api-tester-workspace/
├── iteration-1/
│   ├── eval-0-auth-failure/
│   │   ├── with_skill/
│   │   └── without_skill/
│   ├── eval-1-pagination/
│   └── benchmark.json
Enter fullscreen mode Exit fullscreen mode

Thu thập time & token:

{
  "total_tokens": 84852,
  "duration_ms": 23332
}
Enter fullscreen mode Exit fullscreen mode

Bước 5: Soạn thảo khẳng định (assertion)

Khẳng định phải kiểm chứng được, mô tả rõ, tái sử dụng được.

Ví dụ assertions:

{
  "assertions": [
    {
      "name": "bao_gom_kiem_tra_loi_xac_thuc",
      "description": "Báo cáo bao gồm kiểm thử lỗi xác thực",
      "type": "contains",
      "value": "401"
    },
    {
      "name": "bao_gom_lenh_curl",
      "description": "Mỗi case có lệnh curl thực thi được",
      "type": "regex",
      "value": "curl -"
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Cập nhật vào eval_metadata.jsonevals/evals.json.


Bước 6: Chấm điểm & tổng hợp

Sau khi chạy xong, chấm điểm từng lần chạy:

{
  "eval_id": 0,
  "grading": [
    {
      "text": "bao_gom_kiem_tra_loi_xac_thuc",
      "passed": true,
      "evidence": "Tìm thấy mã 401"
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Chạy tổng hợp benchmark:

python -m scripts.aggregate_benchmark api-tester-workspace/iteration-1 --skill-name api-tester
Enter fullscreen mode Exit fullscreen mode

Phân tích: khẳng định nào luôn đúng/vô nghĩa, đánh giá biến động, trade-off thời gian/token.


Bước 7: Khởi chạy Trình xem đánh giá

Tạo giao diện xem kết quả:

nohup python /path/to/skill-creator/eval-viewer/generate_review.py \
  api-tester-workspace/iteration-1 \
  --skill-name "api-tester" \
  --benchmark api-tester-workspace/iteration-1/benchmark.json \
  > /dev/null 2>&1 &
VIEWER_PID=$!
Enter fullscreen mode Exit fullscreen mode
  • Tab "Outputs": Xem từng case test, review, feedback.
  • Tab "Benchmark": Tỷ lệ pass, thời gian, token, phân tích.

Môi trường headless: xuất HTML tĩnh với --static.


Bước 8: Đọc phản hồi và lặp lại

Khi người dùng review xong, đọc feedback.json:

{
  "reviews": [
    {
      "run_id": "eval-0-with_skill",
      "feedback": "biểu đồ thiếu nhãn trục"
    }
  ],
  "status": "complete"
}
Enter fullscreen mode Exit fullscreen mode
  • Ưu tiên cải tiến các case có feedback cụ thể.
  • Nếu tất cả feedback trống/người dùng hài lòng, dừng vòng lặp.

Quy trình lặp:

  1. Cải tiến kỹ năng
  2. Chạy lại case test với iteration mới
  3. Khởi chạy viewer với --previous-workspace
  4. Đọc feedback mới và tiếp tục lặp

Tắt viewer khi hoàn tất:

kill $VIEWER_PID 2>/dev/null
Enter fullscreen mode Exit fullscreen mode

Bước 9: Tối ưu hóa mô tả kỹ năng

Trường mô tả (description) quyết định kỹ năng có được kích hoạt đúng lúc không.

Tạo 20 truy vấn đánh giá (kích hoạt/không kích hoạt):

[
  {
    "query": "sếp gửi file xlsx muốn thêm cột lợi nhuận (%) từ cột C và D",
    "should_trigger": true
  },
  {
    "query": "Tạo bảng tổng hợp từ CSV và gửi email",
    "should_trigger": false
  }
]
Enter fullscreen mode Exit fullscreen mode

Chạy tối ưu hóa:

python -m scripts.run_loop \
  --eval-set /path/to/trigger-eval.json \
  --skill-path /path/to/api-tester \
  --model claude-sonnet-4-6 \
  --max-iterations 5 \
  --verbose
Enter fullscreen mode Exit fullscreen mode

Sau khi tối ưu, cập nhật description trong SKILL.md với best_description.


Bước 10: Đóng gói và phân phối

Đóng gói kỹ năng thành file .skill:

python -m scripts.package_skill /path/to/api-tester
Enter fullscreen mode Exit fullscreen mode

Cài đặt: Chỉ cần copy file .skill vào thư mục kỹ năng hoặc dùng lệnh cài đặt của Claude Code.


Các lỗi thường gặp khi tạo kỹ năng

  • Mô tả mơ hồ: “Một kỹ năng để làm việc với API” → nên mô tả chi tiết khi nào kích hoạt, đầu ra gì.
  • Hướng dẫn quá hạn chế: Tránh dùng lệnh “LUÔN LUÔN/PHẢI”. Nên giải thích lý do.
  • Bỏ qua case kiểm thử: Dù chủ quan, vẫn nên chạy 2-3 ví dụ test đầu ra.
  • Bỏ qua dữ liệu thời gian: Kỹ năng chậm sẽ không dùng được lâu dài.
  • Không đóng gói script lặp lại: Nếu nhiều case phải viết lại script, nên đóng gói sẵn.

Ví dụ kỹ năng thực tế

Kỹ năng xây dựng MCP

  • Tính năng: Mẫu Python/Node.js, khung đánh giá, best practices.
  • Cấu trúc:
mcp-builder/
├── SKILL.md
├── reference/
│   ├── mcp_best_practices.md
│   ├── python_mcp_server.md
│   └── node_mcp_server.md
└── evaluation/
    └── evaluation.md
Enter fullscreen mode Exit fullscreen mode

Kỹ năng Docx

  • Tạo tài liệu Word tự động: scripts python-docx, mẫu, hướng dẫn định dạng.
  • Quy trình: Hiểu yêu cầu → chọn/tạo mẫu → sinh tài liệu → xác thực đầu ra.

Kỹ năng thiết kế UI

  • Xây dựng giao diện web: thư viện component, mẫu Tailwind CSS, kiểm thử accessibility.
  • Quy trình: Quy trình chính trong SKILL.md, chi tiết component trong references/.

Kiểm tra kỹ năng của bạn với Apidog

Nếu kỹ năng liên quan API, Apidog tích hợp trực tiếp vào quy trình.

Apidog

Ví dụ: Tích hợp kỹ năng kiểm tra API

## Chạy kiểm tra API

Sử dụng Apidog để kiểm thử hệ thống:

1. Nhập OpenAPI spec vào Apidog
2. Sinh case test từ spec
3. Chạy test, xuất kết quả JSON
4. Xác thực response với schema mong đợi

Custom assertion: dùng scripting của Apidog.
Enter fullscreen mode Exit fullscreen mode

Đóng gói script Apidog vào skill:

api-tester/
├── SKILL.md
└── scripts/
    ├── run-apidog-tests.py
    └── generate-report.py
Enter fullscreen mode Exit fullscreen mode

Kết luận

Claude Code Skills giúp mở rộng Claude cho quy trình công việc của bạn. Quy trình tạo kỹ năng chuẩn gồm:

  1. Nắm bắt ý định
  2. Soạn SKILL.md – hướng dẫn rõ ràng, có ví dụ
  3. Tạo trường hợp kiểm thử – prompt thực tế
  4. Chạy đánh giá – song song có/không kỹ năng
  5. Xem xét kết quả – feedback + benchmark
  6. Lặp lại – cải tiến dựa trên kết quả
  7. Tối ưu mô tả – kích hoạt chuẩn xác
  8. Đóng gói – xuất file .skill

Câu hỏi thường gặp

Mất bao lâu để tạo một kỹ năng?

Kỹ năng đơn giản: 15-30 phút. Kỹ năng phức tạp (nhiều tệp, script) thường mất 2-3 giờ, bao gồm các lần lặp đánh giá.

Có cần viết trường hợp kiểm thử cho mọi kỹ năng không?

Không bắt buộc. Kỹ năng có đầu ra kiểm chứng được (tạo mã, chuyển đổi tệp, trích xuất dữ liệu) nên có case test. Kỹ năng chủ quan (viết lách, thiết kế) ưu tiên đánh giá định tính.

Nếu kỹ năng không kích hoạt đáng tin cậy?

Tối ưu trường mô tả, bổ sung cụm từ và ngữ cảnh kích hoạt rõ ràng. Chạy vòng lặp tối ưu hóa với 20 truy vấn đánh giá.

Làm sao chia sẻ kỹ năng với nhóm?

Đóng gói .skill bằng python -m scripts.package_skill <đường dẫn>, gửi file cho team, mọi người copy vào thư mục kỹ năng.

Kỹ năng có thể gọi API ngoài không?

Có. Đóng gói script gọi API, hướng dẫn kỹ năng cách sử dụng. Đặt API key ở biến môi trường thay vì hard-code.

Giới hạn kích thước tệp kỹ năng?

Không có giới hạn cứng, nhưng nên giữ SKILL.md dưới 500 dòng. Tài liệu chi tiết, script, asset nên tách riêng.

Làm sao cập nhật kỹ năng đã cài?

Sao chép kỹ năng ra thư mục có quyền ghi, chỉnh sửa, đóng gói lại, giữ nguyên tên gốc (trừ khi cần bản khác).

Top comments (0)