DEV Community

Cover image for Cara Membuat Skill Kode Claude Secara Otomatis dengan Skill Creator
Walse
Walse

Posted on • Originally published at apidog.com

Cara Membuat Skill Kode Claude Secara Otomatis dengan Skill Creator

Singkatan

Keterampilan Kode Claude adalah kapabilitas kustom yang memperluas fungsionalitas Claude untuk alur kerja tertentu. Sistem Skill Creator mengotomatiskan pembuatan keterampilan melalui proses terstruktur: definisikan tujuan keterampilan Anda, susun berkas SKILL.md, buat kasus uji, jalankan evaluasi dengan tolok ukur kuantitatif, dan tingkatkan secara iteratif berdasarkan umpan balik.

Coba Apidog hari ini

Pengantar

Anda menggunakan Kode Claude setiap hari. Sering kali, Anda mengulangi urutan yang sama: menyiapkan struktur proyek, menjalankan perintah uji tertentu, memformat keluaran dengan cara tertentu. Alih-alih menjelaskan ulang alur kerja dari awal setiap kali, tangkap alur kerja itu sekali dan sediakan selamanya. Keterampilan Kode Claude memungkinkan Anda memperluas fungsionalitas Claude untuk alur kerja spesifik. Dengan Skill Creator, prosesnya otomatis dan sistematis.

Panduan ini membahas langkah-langkah implementasi, anatomi keterampilan, alur kerja pembuatan, sistem evaluasi, dan optimasi pemicuan. Contoh diambil dari repositori keterampilan resmi Anthropic.

💡 Jika Anda membangun keterampilan terkait API, Apidog terintegrasi secara alami. Uji endpoint API, validasi respons, dan hasilkan dokumentasi dalam satu alur kerja keterampilan.

Apa Itu Keterampilan Kode Claude?

Keterampilan Kode Claude adalah set instruksi khusus yang memperluas kapabilitas Claude untuk domain atau alur kerja tertentu. Keterampilan ini diimplementasikan sebagai plugin custom dalam berkas markdown.

Arsitektur Sistem Keterampilan

Keterampilan menggunakan sistem pemuatan tiga tingkat:

  1. Metadata (~100 kata) - Nama dan deskripsi (frontmatter YAML)
  2. Isi SKILL.md (<500 baris) - Instruksi inti, dimuat saat keterampilan dipicu
  3. Sumber daya terpaket (opsional) - Skrip, referensi, aset
skill-name/
├── SKILL.md (wajib)
│   ├── YAML frontmatter (nama, deskripsi)
│   └── Instruksi Markdown
└── Sumber Daya Terpaket (opsional)
    ├── scripts/    - Kode untuk tugas berulang
    ├── references/ - Dokumentasi tambahan
    └── assets/     - Templat, ikon, font
Enter fullscreen mode Exit fullscreen mode

Kapan Keterampilan Dipicu

Keterampilan muncul di daftar available_skills Claude. Claude memutuskan pemicu berdasarkan deskripsi. Hanya alur kerja kompleks yang tidak bisa ditangani langsung oleh Claude yang akan memicu keterampilan.

Contoh Nyata dari Repositori Anthropic

Keterampilan Tujuan Fitur Utama
skill-creator Membuat keterampilan baru Pembuatan kasus uji, evaluasi tolok ukur, optimasi
mcp-builder Membangun server MCP Templat Python/Node, evaluasi, praktik terbaik
docx Membuat dokumen Word Skrip python-docx, templat, panduan gaya
pdf Mengekstrak/manipulasi PDF Penanganan formulir, ekstraksi teks, referensi
frontend-design Membuat antarmuka web Komponen, pola Tailwind, pemeriksaan aksesibilitas

Alur Kerja Pembuatan Keterampilan

Ikuti siklus ini untuk membangun keterampilan yang teruji dan andal:

  1. Tangkap tujuan - Definisikan kebutuhan keterampilan
  2. Tulis draf - Buat berkas SKILL.md
  3. Buat kasus uji - Definisikan prompt realistis
  4. Jalankan evaluasi - Uji dengan/ tanpa keterampilan
  5. Tinjau hasil - Umpan balik & metrik kuantitatif
  6. Iterasi - Tingkatkan berdasarkan temuan
  7. Optimalkan deskripsi - Maksimalkan akurasi pemicu
  8. Paket - Distribusikan sebagai file .skill

Langkah 1: Tangkap Tujuan

Pahami kebutuhan alur kerja yang ingin diotomasi. Tanyakan:

  • Apa hasil yang diharapkan?
  • Kapan keterampilan dipicu (frasa/konteks)?
  • Apa format keluarannya?
  • Apakah butuh kasus uji? (Objektif vs subjektif)

Contoh: Keterampilan Pengujian API

Tujuan: Membantu pengembang menguji API REST secara sistematis
Pemicu: Saat pengguna menyebutkan pengujian API, endpoint, REST, GraphQL, atau validasi respons
Keluaran: Laporan uji (lulus/gagal, perintah curl, perbandingan respons)
Kasus uji: Ya, keluarannya dapat diverifikasi
Enter fullscreen mode Exit fullscreen mode

Langkah 2: Tulis Berkas SKILL.md

Buat SKILL.md dengan struktur berikut:

---
name: api-tester
description: Cara menguji API REST secara sistematis. Gunakan saat pengguna menyebutkan pengujian API, endpoint, REST, GraphQL, atau ingin memvalidasi respons API. Pastikan untuk menyarankan keterampilan ini kapan pun pengujian terlibat.
compatibility: Membutuhkan curl atau alat klien HTTP
---

# Keterampilan Penguji API

## Alur Kerja Inti

1. **Pahami endpoint** - Baca spesifikasi/ minta skema
2. **Rancang kasus uji** - Jalur sukses, kasus batas, error
3. **Jalankan uji** - Gunakan curl atau Apidog
4. **Validasi respons** - Cek kode status, header, struktur body
5. **Laporkan hasil** - Ringkas lulus/gagal

## Templat Kasus Uji

- Autentikasi valid & payload benar
- Autentikasi valid & field wajib hilang
- Autentikasi tidak valid (401)
- Pembatasan laju
- Waktu respons di bawah beban

## Format Keluaran

# Laporan Uji API

## Ringkasan
- Uji dijalankan: X
- Lulus: Y
- Gagal: Z

## Uji Gagal

### Nama Uji
**Diharapkan:** 200 OK
**Aktual:** 400 Bad Request
**Respons:** {...}

## Rekomendasi
...
Enter fullscreen mode Exit fullscreen mode

Praktik terbaik:

  • Jaga SKILL.md <500 baris, referensi detail di file lain.
  • Jelaskan alasan setiap langkah, bukan hanya "harus".
  • Gunakan bentuk imperatif: "Selalu validasi status code terlebih dahulu".
  • Sertakan contoh input/output.

Langkah 3: Buat Kasus Uji

Buat 2-3 prompt uji realistis di evals/evals.json:

{
  "skill_name": "api-tester",
  "evals": [
    {
      "id": 1,
      "prompt": "Uji endpoint /users di api.example.com - butuh token Bearer dan mengembalikan daftar user dengan id, nama, email",
      "expected_output": "Laporan uji minimal 5 kasus uji, termasuk auth gagal, sukses, dan paginasi",
      "files": []
    },
    {
      "id": 2,
      "prompt": "Periksa endpoint POST /orders menangani kuantitas tidak valid",
      "expected_output": "Kasus uji untuk kuantitas negatif, nol, non-numerik dengan error yang sesuai",
      "files": ["openapi.yaml"]
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Prompt uji baik: spesifik, konkrit, punya URL, ekspektasi, dan konteks nyata.

Langkah 4: Jalankan Evaluasi

Untuk tiap kasus uji, jalankan dua kali: dengan dan tanpa keterampilan.

Struktur workspace:

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

Eksekusi paralel:

# Dengan keterampilan
Jalankan tugas ini:
- Jalur keterampilan: /path/to/api-tester
- Tugas: Uji endpoint /users di api.example.com
- Simpan keluaran ke: api-tester-workspace/iteration-1/eval-0/with_skill/outputs/

# Tanpa keterampilan
Jalankan tugas ini:
- Jalur keterampilan: (none)
- Tugas: Uji endpoint /users di api.example.com
- Simpan keluaran ke: api-tester-workspace/iteration-1/eval-0/without_skill/outputs/
Enter fullscreen mode Exit fullscreen mode

Data waktu:

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

Langkah 5: Susun Pernyataan (Assertions)

Susun assertions objektif di eval_metadata.json untuk penilaian otomatis:

{
  "assertions": [
    {
      "name": "includes_auth_failure_test",
      "description": "Laporan uji mencakup kasus uji auth gagal",
      "type": "contains",
      "value": "401"
    },
    {
      "name": "includes_success_test",
      "description": "Laporan uji mencakup uji permintaan sukses",
      "type": "contains",
      "value": "200"
    },
    {
      "name": "includes_curl_commands",
      "description": "Setiap kasus uji menyertakan perintah curl",
      "type": "regex",
      "value": "curl -"
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Langkah 6: Nilai dan Agregasi

Setelah eksekusi, jalankan subagen penilai untuk mengevaluasi assertions ke keluaran. Simpan hasil di grading.json.

{
  "eval_id": 0,
  "grading": [
    {
      "text": "includes_auth_failure_test",
      "passed": true,
      "evidence": "Ditemukan 401 di kasus uji"
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Agregasi hasil dengan:

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

Langkah 7: Luncurkan Penampil Evaluasi

Jalankan penampil evaluasi untuk review hasil:

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

Untuk iterasi berikutnya:

--previous-workspace api-tester-workspace/iteration-1
Enter fullscreen mode Exit fullscreen mode

Jika tanpa browser, generate file HTML statis:

--static /path/to/output/review.html
Enter fullscreen mode Exit fullscreen mode

Langkah 8: Baca Umpan Balik & Iterasi

Setelah review, baca feedback.json:

{
  "reviews": [
    {
      "run_id": "eval-0-with_skill",
      "feedback": "grafik tidak ada label sumbu"
    }
  ],
  "status": "complete"
}
Enter fullscreen mode Exit fullscreen mode

Iterasi:

  1. Perbaiki keterampilan sesuai umpan balik
  2. Uji ulang di iterasi baru
  3. Review ulang hingga puas

Matikan penampil saat selesai:

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

Langkah 9: Optimalkan Deskripsi Keterampilan

Bagian deskripsi di frontmatter SKILL.md sangat penting. Optimasi dengan set kueri evaluasi (campur kasus yang harus/ tidak boleh memicu):

[
  {
    "query": "ok bos saya baru saja mengirimkan file xlsx ini...",
    "should_trigger": true
  },
  {
    "query": "Saya perlu membuat tabel pivot dari CSV ini...",
    "should_trigger": false
  }
]
Enter fullscreen mode Exit fullscreen mode

Uji dan iterasi deskripsi:

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

Update frontmatter dengan hasil deskripsi terbaik.

Langkah 10: Paket dan Distribusikan

Setelah iterasi selesai, paketkan keterampilan:

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

Bagikan file .skill ke tim. Instalasi dengan menaruh file di direktori keterampilan atau gunakan perintah instal Claude Code.

Kesalahan Umum dalam Pembuatan Keterampilan

1. Deskripsi Tidak Jelas

# Buruk
description: Keterampilan untuk bekerja dengan API

# Baik
description: Cara menguji API REST secara sistematis. Gunakan saat pengguna menyebutkan pengujian API, endpoint, REST, GraphQL, atau ingin memvalidasi respons API. Pastikan untuk menyarankan keterampilan ini kapan pun pengujian terlibat.
Enter fullscreen mode Exit fullscreen mode

2. Instruksi Terlalu Membatasi

# Buruk
SELALU gunakan format ini. JANGAN PERNAH menyimpang. HARUS menyertakan bagian-bagian ini.

# Baik
Gunakan format ini karena memastikan stakeholder mudah menemukan info. Jika audiens berbeda, sesuaikan struktur.
Enter fullscreen mode Exit fullscreen mode

3. Melewatkan Kasus Uji

Selalu siapkan 2-3 kasus uji, bahkan untuk keterampilan subjektif.

4. Mengabaikan Data Waktu

Pastikan keterampilan tetap efisien.

5. Tidak Menggabungkan Skrip Berulang

Bundel skrip di scripts/ untuk menghindari pengulangan.

Contoh Keterampilan Dunia Nyata

Keterampilan Pembangun MCP

Struktur:

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

Keterampilan Docx

  • Skrip python-docx
  • Sistem templat
  • Panduan gaya

Alur kerja: pahami kebutuhan → pilih templat → hasilkan dokumen → validasi.

Keterampilan Desain Frontend

  • Komponen siap pakai
  • Pola Tailwind CSS
  • Pemeriksaan aksesibilitas

SKILL.md berisi alur inti, dokumentasi komponen di references/.

Menguji Keterampilan Anda dengan Apidog

Jika membangun keterampilan API, Apidog dapat diintegrasikan:

apidog

Contoh: Integrasi Keterampilan Pengujian API

## Menjalankan Uji API

Gunakan Apidog untuk pengujian sistematis:

1. Impor spesifikasi OpenAPI ke Apidog
2. Hasilkan kasus uji dari spesifikasi
3. Jalankan uji & ekspor hasil JSON
4. Validasi respons terhadap skema

Untuk assertions kustom, gunakan fitur skrip Apidog.
Enter fullscreen mode Exit fullscreen mode

Struktur:

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

Kesimpulan

Keterampilan Kode Claude memperluas kapabilitas Claude secara terstruktur:

  1. Tangkap tujuan - Definisikan kebutuhan
  2. Susun SKILL.md - Instruksi jelas, sertakan contoh
  3. Buat kasus uji - Prompt realistis
  4. Jalankan evaluasi - Uji paralel
  5. Tinjau hasil - Umpan balik & tolok ukur
  6. Iterasi - Tingkatkan berdasarkan data & feedback
  7. Optimalkan deskripsi - Maksimalkan pemicu
  8. Paket - Distribusi sebagai file .skill

FAQ

Berapa lama waktu yang dibutuhkan untuk membuat keterampilan?

Keterampilan sederhana: 15-30 menit. Keterampilan kompleks: 2-3 jam (termasuk iterasi).

Apakah saya perlu menulis kasus uji untuk setiap keterampilan?

Tidak. Keterampilan dengan keluaran objektif (kode, data) butuh kasus uji. Keterampilan subjektif cukup dievaluasi kualitatif.

Bagaimana jika keterampilan saya tidak dipicu secara andal?

Optimalkan deskripsi. Tambahkan frasa pemicu/konteks. Jalankan siklus optimasi deskripsi dengan 20 kueri evaluasi.

Bagaimana cara berbagi keterampilan dengan tim?

Paketkan dengan python -m scripts.package_skill <path>, bagikan file .skill, dan tim menaruh di direktori keterampilan.

Bisakah keterampilan memanggil API eksternal?

Ya. Bundel skrip untuk panggilan API, simpan kunci API di environment variable.

Batas ukuran berkas untuk keterampilan?

Tidak ada batas keras, tapi SKILL.md sebaiknya <500 baris. Referensi detail, skrip, dan aset dipisahkan.

Bagaimana cara memperbarui keterampilan yang sudah ada?

Salin ke lokasi yang dapat ditulis, edit, dan paket ulang. Gunakan nama asli.

Top comments (0)