Skip to main content
Skills memperluas apa yang dapat dilakukan Claude. Buat file SKILL.md dengan instruksi, dan Claude menambahkannya ke toolkit-nya. Claude menggunakan skills ketika relevan, atau Anda dapat menginvokasinya secara langsung dengan /skill-name. Buat skill ketika Anda terus menempel instruksi yang sama, checklist, atau prosedur multi-langkah ke dalam chat, atau ketika bagian dari CLAUDE.md telah berkembang menjadi prosedur daripada fakta. Tidak seperti konten CLAUDE.md, body skill hanya dimuat ketika digunakan, sehingga materi referensi yang panjang hampir tidak ada biayanya sampai Anda membutuhkannya.
Untuk perintah bawaan seperti /help dan /compact, dan skills bundel seperti /debug dan /code-review, lihat referensi perintah.Perintah kustom telah digabungkan ke dalam skills. File di .claude/commands/deploy.md dan skill di .claude/skills/deploy/SKILL.md keduanya membuat /deploy dan bekerja dengan cara yang sama. File .claude/commands/ yang ada tetap berfungsi. Skills menambahkan fitur opsional: direktori untuk file pendukung, frontmatter untuk mengontrol apakah Anda atau Claude menginvokasinya, dan kemampuan bagi Claude untuk memuatnya secara otomatis ketika relevan.
Claude Code skills mengikuti standar terbuka Agent Skills, yang bekerja di berbagai alat AI. Claude Code memperluas standar dengan fitur tambahan seperti kontrol invokasi, eksekusi subagent, dan injeksi konteks dinamis. Lihat Menggunakan frontmatter skill di luar Claude Code untuk mengetahui bidang frontmatter mana yang merupakan bagian dari standar dan mana yang merupakan ekstensi Claude Code.

Skill bawaan

Claude Code menyertakan sekumpulan skill bawaan, seperti /doctor, /code-review, /batch, /debug, /loop, dan /claude-api. Skill bawaan berbasis prompt: skill tersebut memberi Claude instruksi terperinci dan membiarkannya mengatur pekerjaan menggunakan tool-toolnya. Sebaliknya, sebagian besar perintah bawaan menjalankan logika tetap secara langsung. Anda memanggil skill bawaan dengan cara yang sama seperti skill lainnya, yaitu dengan mengetik / diikuti nama skill. Claude memanggil beberapa skill bawaan secara otomatis saat relevan; skill lainnya, termasuk /verify, hanya berjalan saat Anda memanggilnya, sehingga Anda tetap memegang kendali atas kapan pemeriksaan yang berjalan lebih lama ini menghabiskan waktu dan token. Sebagian besar skill bawaan tersedia di setiap sesi. Beberapa bergantung pada fitur tertentu: /workflow-authoring, misalnya, hanya tersedia saat dynamic workflows diaktifkan. Untuk menonaktifkan skill bawaan, gunakan pengaturan disableBundledSkills.
Pemeriksaan penyiapan /doctor tetap dapat diketik saat disableBundledSkills aktif. Untuk menyembunyikannya, atur environment variable DISABLE_DOCTOR_COMMAND atau entri skillOverrides berisi "doctor": "off".
Skill bawaan tercantum bersama perintah bawaan di referensi perintah, ditandai Skill di kolom Tujuan.

Memeriksa penyiapan Anda dengan /doctor

Jalankan /doctor di prompt Claude Code untuk pemeriksaan penyiapan yang mendiagnosis masalah dan dapat memperbaikinya. Claude melaporkan temuannya terlebih dahulu dan meminta konfirmasi sebelum mengubah apa pun. Pemeriksaan ini mencakup area berikut:
  • Kesehatan instalasi: instalasi duplikat atau sisa, masalah PATH, file pengaturan yang tidak dapat di-parse, dan apakah versi yang lebih baru tersedia di saluran rilis Anda
  • Ekstensi: skill, server MCP, dan plugin yang tidak digunakan dibandingkan dengan biaya konteksnya, serta hook yang lambat
  • File CLAUDE.md: file CLAUDE.md lokal yang menduplikasi file yang di-check-in, konten CLAUDE.md yang di-check-in yang dapat disimpulkan Claude dari codebase, dan panduan yang selalu dimuat yang tersisa, yang ditawarkan Claude untuk dimigrasikan ke skill dan file CLAUDE.md bertingkat yang dimuat sesuai kebutuhan
  • Izin: tawaran untuk menjadikan auto mode sebagai mode izin default Anda dan untuk menyetujui terlebih dahulu perintah read-only yang sering Anda tolak
Untuk diagnostik instalasi read-only tanpa memulai sesi, jalankan claude doctor di terminal Anda sebagai gantinya. Untuk mengaudit instruksi Anda alih-alih penyiapan Anda, jalankan /doctor prompt-audit di prompt Claude Code. Claude memeriksa file CLAUDE.md, skill, dan konfigurasi lainnya untuk menemukan instruksi yang usang atau saling bertentangan, alih-alih menjalankan pemeriksaan penyiapan. Subperintah prompt-audit memerlukan Claude Code v2.1.283 atau yang lebih baru.

Menjalankan dan memverifikasi aplikasi Anda

Tiga skill bawaan bekerja sama untuk meluncurkan aplikasi Anda dan mengonfirmasi perubahan terhadap aplikasi yang sedang berjalan, bukan hanya melalui pengujian: /run dan /verify berfungsi tanpa penyiapan. Keduanya menyimpulkan cara peluncuran dari jenis proyek Anda (CLI, server, TUI, berbasis browser) dan dari isi README, package.json, atau Makefile Anda. Inferensi tersebut menjadi tidak andal untuk proyek yang membutuhkan apa pun di luar peluncuran standar: database, file env, sesi grafis, build multi-langkah. /run-skill-generator justru merekam resepnya. Skill ini menjalankan aplikasi Anda dari lingkungan yang bersih, menangkap apa yang berhasil (perintah instalasi, variabel env, skrip peluncuran), dan meng-commit hasil tersebut sebagai skill per proyek di .claude/skills/run-<name>/. Setelah itu, /run, /verify, dan agent lain di repo mengikuti resep yang telah direkam alih-alih menemukannya kembali. Jalankan /run-skill-generator sekali per proyek, dan jalankan lagi jika proses build atau peluncuran berubah. /verify juga dapat merekam resepnya sendiri. Saat harus mem-build dan mengoperasikan aplikasi Anda tanpa resep yang terekam, skill ini menulis apa yang berhasil ke .claude/skills/verify/SKILL.md di root repo, atau di direktori paket yang disentuh dalam monorepo, sehingga eksekusi berikutnya dan agent lain mengikuti langkah yang sama. Di root repo, skill yang terekam menggantikan /verify bawaan. Claude hanya mengedit file yang terekam ketika file tersebut mengarahkan eksekusi ke arah yang salah, seperti perintah yang gagal atau langkah yang terlewat, sehingga Anda dapat meng-commit file tersebut tanpa diff per sesi.

Menjalankan pemeriksaan sebelum setiap commit

Saat sesi dimulai dengan skill bernama verify atau simplify yang sudah tersedia, instruksi commit Claude Code memberi tahu Claude untuk menjalankannya tepat sebelum setiap commit, kecuali untuk perubahan pada dokumen atau pengujian. Ini memerlukan Claude Code v2.1.286 atau yang lebih baru. Claude mendapatkan instruksi tersebut saat kondisi berikut terpenuhi di awal sesi:
  • Lokasi: skill dimuat dari lokasi enterprise, pribadi, proyek, atau direktori tambahan, atau dari file .claude/commands/ dengan nama tersebut. Resep yang direkam /verify di root repo Anda adalah skill proyek, jadi resep itu terhitung. /verify dan /simplify bawaan, skill plugin, dan skill dari akun claude.ai Anda tidak terhitung.
  • Pemanggilan: Claude dapat memanggil skill tersebut. Jika Anda telah mencegah Claude memanggilnya, misalnya dengan disable-model-invocation: true, Claude tidak mendapatkan instruksi tersebut.
  • Instruksi Git: Anda belum mematikan includeGitInstructions. Mematikannya akan menghapus instruksi ini bersama dengan instruksi commit dan PR bawaan lainnya.

Bekerja pada proyek Claude API

Skill bawaan /claude-api memuat materi referensi Claude API dan Managed Agents untuk bahasa proyek Anda. Claude juga mengaktifkannya secara otomatis saat kode Anda mengimpor anthropic atau @anthropic-ai/sdk. Untuk memulai salah satu alur kerja skill ini, ketik subperintah setelah nama skill di prompt Claude Code, misalnya /claude-api migrate. Tabel berikut mencantumkan fungsi setiap subperintah dan versi Claude Code paling awal yang menyertakannya. migrate dan managed-agents-onboard sudah ada sebelum v2.1.221, versi tertua yang dilacak tabel.

Memulai

Buat skill pertama Anda

Contoh ini membuat skill yang merangkum perubahan yang belum di-commit dalam repositori git Anda dan menandai apa pun yang berisiko. Ini menarik diff langsung ke dalam prompt sebelum Claude membacanya, sehingga respons didasarkan pada pohon kerja aktual Anda daripada apa yang dapat Claude tebak dari file terbuka. Claude memuat skill secara otomatis ketika Anda bertanya tentang perubahan Anda, atau Anda dapat memanggilnya langsung dengan /summarize-changes.
1

Buat direktori skill

Buat direktori untuk skill di folder skills pribadi Anda. Skills pribadi tersedia di semua proyek Anda.
2

Tulis SKILL.md

Setiap skill memerlukan file SKILL.md dengan dua bagian: frontmatter YAML antara penanda --- yang memberi tahu Claude kapan menggunakan skill, dan konten markdown dengan instruksi yang diikuti Claude ketika skill berjalan. Nama direktori, atau frontmatter name ketika Anda menetapkannya, menjadi perintah yang Anda ketik, dan description membantu Claude memutuskan kapan memuat skill secara otomatis.Simpan ini ke ~/.claude/skills/summarize-changes/SKILL.md:
Baris !`git diff HEAD` menggunakan dynamic context injection: Claude Code menjalankan perintah dan mengganti baris dengan outputnya sebelum Claude melihat konten skill, sehingga instruksi tiba dengan diff saat ini sudah inline.
3

Uji skill

Buka proyek git, buat edit kecil ke file apa pun, dan mulai Claude Code dengan menjalankan claude. Anda dapat menguji skill dengan dua cara.Biarkan Claude memanggilnya secara otomatis dengan menanyakan sesuatu yang cocok dengan deskripsi:
Atau panggilnya langsung dengan nama skill:
Bagaimanapun, Claude harus merespons dengan ringkasan singkat edit Anda dan daftar risiko.

Pilih tempat skill dimuat

Tempat Anda menyimpan skill menentukan sesi mana yang memuatnya. Simpan di bawah direktori home Anda agar tersedia di setiap proyek, lakukan commit ke repositori untuk membagikannya kepada semua orang yang bekerja di sana, atau distribusikan melalui plugin atau pengaturan terkelola untuk menjangkau seluruh tim. Folder skill juga mengikuti aturan berikut:
  • Folder symlink: entri <skill-name> di lokasi enterprise, personal, atau proyek dapat berupa symlink ke direktori di tempat lain pada disk. Claude Code membaca SKILL.md dari targetnya dan memuat skill tersebut sekali meskipun beberapa lokasi mengarah ke target yang sama. Skill plugin menangani symlink secara berbeda.
  • Nama yang dicadangkan synced: jangan menamai folder skill synced, dalam kapitalisasi apa pun. Claude Code menggunakan ~/.claude/skills/synced/ untuk skill yang diunduh dari claude.ai dan melewati skill yang Anda buat dengan nama tersebut di lokasi enterprise, personal, dan proyek.
  • Nama yang dicadangkan anthropic-skills: di luar plugin, folder skill atau file perintah yang bernama anthropic-skills atau diawali dengan anthropic-skills: tidak dimuat. Lihat Nama yang dicadangkan untuk skill yang disinkronkan.
  • Karakter dalam nama: di luar plugin, folder skill tidak dimuat jika namanya mengandung karakter seperti zero-width space atau <. Lihat Karakter yang tidak boleh ada dalam nama skill.
  • File perintah: file Markdown di .claude/commands/ adalah format lama dan masih berfungsi. File ini mendukung frontmatter yang sama kecuali name dan paths. Untuk mengetahui nama yang Anda ketik untuk memanggilnya, lihat Bagaimana skill mendapatkan nama perintahnya. Utamakan skill untuk pekerjaan baru, karena skill juga mendukung file pendukung.
  • Folder skill sebagai plugin: tambahkan .claude-plugin/plugin.json ke folder skill dan folder tersebut dimuat sebagai plugin bernama <name>@skills-dir, sehingga dapat menyertakan agent, hook, dan server MCP. Di .claude/skills/ milik proyek, ini mengharuskan Anda menerima dialog kepercayaan workspace terlebih dahulu.

Memuat skill di monorepo dan subdirektori

Claude Code memuat skill proyek dari .claude/skills/ di direktori tempat Anda memulainya dan di setiap direktori induk hingga root repositori, sehingga memulai di packages/frontend/ tetap mengambil skill yang didefinisikan di root. Saat Anda memindahkan sesi dengan /cd pada v2.1.246 atau yang lebih baru, Claude Code menambahkan skill proyek dari direktori baru tersebut. Dalam sesi yang berjalan di git worktree yang ditautkan yang Anda buat dengan --worktree atau git worktree add, Claude Code mencari direktori induk hanya sampai root worktree. Pada Claude Code v2.1.277 atau yang lebih baru, ketika checkout worktree tidak memiliki direktori .claude/skills di root-nya, Claude Code memuat skill proyek dari checkout utama sebagai gantinya. Lihat Apa yang dibagikan worktree dengan checkout utama. Skill di direktori .claude/skills/ di bawah tempat Anda memulai tidak dimuat saat startup. Skill tersebut dimuat saat pertama kali Claude membaca atau mengedit file di subdirektori tersebut dan tetap tersedia selama sisa sesi. Sebelum itu, skill tersebut tidak muncul di menu / dan Anda tidak dapat memanggilnya berdasarkan nama. Untuk memuatnya lebih awal, jalankan /add-dir dengan path subdirektori tersebut, yang memerlukan Claude Code v2.1.257 atau yang lebih baru. Untuk sesi worktree yang Anda mulai dari aplikasi desktop, lihat Apa yang dibagikan worktree dengan checkout utama. Ketika nama direktori skill bersarang cocok dengan nama skill lain, keduanya tetap tersedia. Dengan skill deploy di root repositori dan satu lagi di apps/web/.claude/skills/:
  • /deploy menjalankan skill root. Claude Code juga mencantumkan varian yang dikualifikasi direktori untuk Claude, dengan instruksi untuk memanggil varian yang direktorinya berisi file yang sedang dikerjakan, sehingga skill bersarang tetap berlaku untuk pekerjaan di apps/web/.
  • /apps/web:deploy menjalankan skill bersarang secara tersendiri. Deskripsinya menyebutkan direktori tempat skill tersebut berlaku.

Memuat skill dari direktori di luar proyek

Saat Anda menambahkan direktori dengan --add-dir atau /add-dir, Claude Code memuat skill di .claude/skills/ milik direktori tersebut, beserta .claude/commands/ dan .claude/agents/-nya. Direktori yang ditambahkan Agent SDK melalui additionalDirectories di TypeScript atau add_dirs di Python dimuat dengan cara yang sama, karena SDK meneruskannya sebagai --add-dir. Pengaturan permissions.additionalDirectories di settings.json hanya memberikan akses file dan tidak memuat satu pun dari ini. Claude Code memantau .claude/skills/ di direktori yang Anda berikan dengan --add-dir saat peluncuran, seperti yang dijelaskan di Mengedit skill selama sesi. Claude Code tidak memantau .claude/commands/ atau .claude/agents/ milik direktori yang ditambahkan, jadi mulai ulang sesi setelah mengubah file di sana. Pemuatan ini bergantung pada sumber pengaturan project, yang aktif secara default. Kebijakan strictPluginOnlyCustomization, bare mode, dan --safe-mode masing-masing membatasinya lebih lanjut, seperti yang dijelaskan di halaman-halaman tersebut. Lihat Direktori tambahan memberikan akses file, bukan konfigurasi untuk tabel lengkap tentang apa yang dimuat oleh direktori yang ditambahkan, termasuk CLAUDE.md dan pengaturan plugin.

Menyelesaikan skill yang memiliki nama yang sama

Ketika dua skill memiliki nama direktori atau file yang sama, asal masing-masing menentukan mana yang dijalankan oleh /name. Untuk nama yang ditetapkan oleh field frontmatter name, lihat Bagaimana skill mendapatkan nama perintahnya. Tabel ini mencakup lokasi enterprise, personal, proyek, bersarang, plugin, dan claude.ai, skill bawaan, perintah bawaan, serta file perintah:

Menggunakan skill di Cowork dan sesi cloud

Sesi Cowork dan sesi cloud, termasuk routine, tidak membaca ~/.claude/skills/ di mesin Anda. Sesi Cowork interaktif maupun terjadwal memuat skill yang diaktifkan untuk akun claude.ai Anda, yang disinkronkan saat sesi dimulai; kelola skill tersebut dari Customize di sidebar aplikasi Desktop atau dari pengaturan skill di claude.ai. Sesi cloud juga memuat skill proyek yang di-commit ke .claude/skills/ milik repositori yang di-clone. Jika skill hanya ada di ~/.claude/skills/ di mesin Anda, Claude Code melaporkan bahwa skill tidak ditemukan saat routine memanggilnya, karena setiap eksekusi routine dimulai sebagai sesi cloud baru. Untuk membuat skill personal tersedia di sesi-sesi ini:
  • Untuk Cowork dan sesi cloud, aktifkan skill tersebut untuk akun claude.ai Anda. Beberapa sesi di lingkungan self-hosted tidak memuat skill akun Anda.
  • Untuk sesi cloud, Anda dapat melakukan commit skill ke .claude/skills/ milik repositori sebagai gantinya. Plugin yang dideklarasikan di .claude/settings.json milik repositori dan plugin yang hanya diaktifkan di pengaturan pengguna Anda tidak dimuat di sesi cloud.
Tugas terjadwal Desktop berjalan secara lokal di mesin Anda, sehingga tugas tersebut memuat ~/.claude/skills/.

Skill yang disinkronkan dari claude.ai

Bagian ini berlaku untuk Anda jika Anda menggunakan Cowork atau sesi cloud, atau masuk ke Claude Code di terminal dengan akun claude.ai. Dalam sesi tersebut, Claude Code memuat skill yang diaktifkan untuk akun claude.ai Anda, tanpa penyiapan dari pihak Anda, seperti yang dijelaskan di Tempat skill yang disinkronkan dimuat. Skill tersebut mencakup skill yang Anda buat atau aktifkan di pengaturan claude.ai Anda, skill yang disediakan organisasi Anda di sana, dan skill bawaan Anthropic seperti pdf dan xlsx. Claude Code mengunduh skill yang disinkronkan dari akun Anda alih-alih membaca file yang Anda tulis di mesin tempat sesi berjalan, sehingga Claude Code menerapkan aturan pada skill yang disinkronkan yang tidak berlaku untuk skill yang Anda simpan di lokasi skill.

Tempat skill yang disinkronkan dimuat

Dalam sesi Cowork atau sesi cloud, Claude Code memuat skill yang diaktifkan untuk akun claude.ai Anda, dan Skill di Cowork dan sesi cloud menjelaskan cara memilih skill mana yang didapatkan sesi tersebut. Di terminal Anda, Claude Code menyinkronkan skill tersebut dalam sesi tempat Anda masuk dengan akun claude.ai. Saat sesi dimulai, Claude Code mengunduh skill akun Anda ke ~/.claude/skills/synced/ di latar belakang, lalu memeriksa perubahan di claude.ai selama sesi berjalan. Ketika pemeriksaan menemukan bahwa skill ditambahkan, diedit, atau dimatikan di claude.ai, Claude Code menambahkan, memperbarui, atau menghapusnya di sesi yang sedang berjalan tanpa restart. Sinkronisasi di sesi terminal memerlukan Claude Code v2.1.273 atau yang lebih baru. Pemeriksaan berjalan lebih jarang saat sesi dalam keadaan idle:
  • Saat Anda atau Claude bekerja dalam sesi: pemeriksaan berjalan sekitar setiap 10 menit.
  • Saat sesi idle: pemeriksaan berjalan sekitar setiap 40 menit. Saat Anda mengetik lagi di sesi, Claude Code melakukan pemeriksaan dalam beberapa menit jika pemeriksaan terakhir dilakukan lebih dari 10 menit yang lalu.
Sinkronisasi tidak pernah menunda startup, karena Claude menunggu unduhan skill hanya saat memanggil skill tersebut. Oleh karena itu, eksekusi non-interaktif yang singkat dapat selesai sebelum skill yang baru ditambahkan selesai diunduh, dan dalam hal ini sesi berikutnya yang mengunduhnya. Agar eksekusi non-interaktif mengunduh skill Anda dan menunggu daftarnya sebelum menjawab prompt, atur CLAUDE_CODE_SYNC_SKILLS ke 1. Sebelum v2.1.273, sesi terminal hanya mengunduhnya dalam eksekusi -p dengan variabel ini diatur. Claude Code hanya menyinkronkan dalam sesi yang masuk dengan akun claude.ai Anda dan mengambil feature flag dari Anthropic. Claude Code tidak menyinkronkan dalam sesi berikut:
  • Sesi yang tidak menggunakan login yang disimpan oleh /login, seperti sesi yang melakukan autentikasi dengan kunci API, atau sesi tempat ANTHROPIC_AUTH_TOKEN, CLAUDE_CODE_OAUTH_TOKEN, atau skrip apiKeyHelper menyediakan kredensial
  • Sesi yang tidak mengambil feature flag, seperti sesi di Amazon Bedrock atau sesi tempat Anda mengatur CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
  • Sesi dalam bare mode atau sesi yang Anda mulai dengan --safe-mode
  • Sesi tempat pengaturan terkelola organisasi Anda mengunci skill ke sumber plugin, atau sesi yang Anda mulai dengan daftar --setting-sources yang tidak menyertakan user
Jika Anda masuk dengan /login selama sesi, mulai ulang Claude Code untuk memulai sinkronisasi. Skill yang disinkronkan oleh sesi sebelumnya tetap ada di disk. Claude Code memuatnya di sesi berikutnya yang masuk ke akun yang sama, bahkan ketika tidak dapat menjangkau claude.ai. Claude Code mengunduh skill yang disinkronkan dan tidak pernah mengunggahnya. Jika Anda atau Claude mengedit file di bawah ~/.claude/skills/synced/, perubahan tersebut tidak disimpan ke akun claude.ai Anda, dan sinkronisasi berikutnya dapat menimpa atau menghapusnya. Untuk mengubah skill yang disinkronkan, perbarui di claude.ai; sinkronisasi berikutnya akan mengunduh versi barunya. Untuk melihat skill mana yang disinkronkan, jalankan /skills. Menu tersebut mencantumkannya di bawah claude.ai sync. Beberapa skill Anthropic, seperti pdf dan xlsx, selalu disinkronkan. Untuk skill lainnya, aktifkan atau matikan skill di pengaturan skill Anda di claude.ai untuk mengubah apakah skill tersebut disinkronkan. Untuk menghentikan sinkronisasi di suatu mesin, atur syncClaudeAiSkills ke false di pengaturan pengguna Anda. Claude Code berhenti mengunduh, dan saat dimulai berikutnya, Claude Code memindahkan skill yang sudah disinkronkan ke ~/.claude/skills/.trash/ dan tidak lagi memuatnya. Organisasi Anda dapat mematikan sinkronisasi untuk semua orang dengan mematikan Skills di claude.ai. Untuk menghentikan sinkronisasi sambil tetap mengaktifkan Skills, organisasi dapat mengatur kunci yang sama di pengaturan terkelola. Jika organisasi Anda mematikan Skills di claude.ai, Claude Code menghapus skill yang telah diunduh dan skill tersebut berhenti dimuat. Skill yang dihapus dipindahkan ke ~/.claude/skills/.trash/, tempat Anda dapat memulihkan file-filenya sampai pembersihan retensi menghapusnya. Setelah organisasi Anda mengaktifkan kembali Skills, Claude Code mengunduh skill yang Anda aktifkan pada sinkronisasi berikutnya.

Ketika nama skill yang disinkronkan cocok dengan perintah lain

Anda dapat memanggil skill yang disinkronkan dengan nama pendeknya, /<name>, atau dengan nama lengkapnya, /anthropic-skills:<name>. Ketika perintah lain menggunakan nama pendek tersebut, /<name> menjalankan perintah lain itu, dan skill yang disinkronkan hanya dijalankan sebagai /anthropic-skills:<name>. Dengan skill deploy lokal dan deploy yang disinkronkan, /deploy menjalankan skill lokal dan /anthropic-skills:deploy menjalankan yang disinkronkan. Sebelum v2.1.269, skill yang disinkronkan hanya memiliki nama pendeknya. Di menu /, /skills, dan /context, skill yang disinkronkan muncul dengan nama pendeknya, atau dengan nama lengkapnya selama perintah lain menggunakan nama pendek tersebut. Jalankan /skills di sesi Anda. Catatan di bawah daftar menjelaskan setiap skill yang disinkronkan yang kehilangan nama pendeknya. Jika salah satu skill personal atau file perintah Anda di ~/.claude/ menggunakan nama tersebut, catatan itu juga menyebutkan apa yang perlu diganti namanya atau dihapus untuk membebaskannya. Dari v2.1.269 hingga v2.1.280, daftar-daftar ini menampilkan setiap skill yang disinkronkan dengan nama lengkapnya, dan /skills tidak memiliki catatan tersebut; keduanya berubah di v2.1.281. Perintah yang menggunakan nama pendek tersebut dapat berupa salah satu dari berikut:
  • Perintah bawaan atau skill bawaan, termasuk yang tidak tersedia di sesi Anda, misalnya setelah Anda mematikan skill bawaan
  • Skill di tingkat lokal mana pun atau file di .claude/commands/
  • Skill plugin
  • Prompt MCP
Claude Code memberi label pada skill yang disinkronkan agar Anda dapat mengetahui asalnya. Menu /skills dan /context mengelompokkan skill yang disinkronkan di bawah claude.ai sync, dan menu perintah / menandainya sebagai berasal dari claude.ai. Saat membandingkan nama, Claude Code mengabaikan huruf besar/kecil, spasi, dan karakter tak terlihat, serta memperlakukan bentuk kompatibilitas seperti huruf fullwidth dan varian tanda hubung sebagai padanan biasanya. Misalnya, skill yang disinkronkan bernama Commit dan skill lokal bernama commit dihitung sebagai nama yang sama, sehingga /commit tetap menjalankan skill lokal Anda. Nama yang hanya berbeda karena huruf yang mirip dari alfabet lain dihitung sebagai nama yang berbeda, dan label claude.ai sync adalah cara Anda membedakan keduanya. Pemeriksaan dan label ini memerlukan Claude Code v2.1.228 atau yang lebih baru.

Nama yang dicadangkan untuk skill yang disinkronkan

Claude Code mencadangkan nama anthropic-skills, dan setiap nama di dalam namespace tersebut seperti anthropic-skills:pdf, untuk skill yang disinkronkan dari claude.ai, sehingga nama lengkap skill yang disinkronkan tidak pernah menjalankan hal lain. Nama tersebut dicadangkan di setiap sesi, baik Anda masuk dengan akun claude.ai maupun tidak.
  • Folder skill, name frontmatter, file atau subfolder di .claude/commands/, atau workflow yang disimpan: tidak dimuat. Pemberitahuan startup menyebutkan item pertama yang perlu diganti namanya atau diedit.
  • Plugin bernama anthropic-skills: dimuat. Ketika salah satu skill-nya dan skill yang disinkronkan sama-sama bernama <name>, /anthropic-skills:<name> menjalankan skill yang disinkronkan.
  • Server MCP bernama anthropic-skills: terhubung dan tool-nya berfungsi, tetapi prompt-nya tidak muncul sebagai perintah. Ganti nama server di konfigurasi MCP Anda untuk mencantumkannya.

Cara Claude Code menangani frontmatter skill yang disinkronkan

Claude Code menerapkan dua aturan pada frontmatter skill yang disinkronkan:
  • Frontmatter berlaku di setiap jenis sesi, sehingga pemberian allowed-tools melalui alur izin normal. Jika organisasi Anda mengatur allowManagedPermissionRulesOnly, pemberian tersebut tidak berlaku.
  • Claude Code membersihkan teks tampilan yang disediakan skill, seperti deskripsinya. Claude Code menghapus karakter kontrol, dan dalam teks yang mencapai Claude, seperti deskripsi, Claude Code juga meng-escape kurung sudut agar teks tidak dapat meniru format internal Claude Code. Pembersihan ini memerlukan Claude Code v2.1.228 atau yang lebih baru.

Cara Claude Code menangani isi skill yang disinkronkan

Apa yang dilakukan Claude Code terhadap isi skill yang disinkronkan bergantung pada tempat sesi berjalan:
  • Dalam sesi cloud, isi skill mempertahankan perilaku yang dimiliki skill lokal, karena sesi berjalan di container yang terisolasi.
  • Dalam sesi Cowork di desktop Anda, isi skill mempertahankan perilaku yang dimiliki skill lokal, kecuali bahwa Claude Code mengganti setiap baris perintah ! dengan placeholder disableSkillShellExecution, seperti yang dilakukannya untuk setiap skill yang Anda sediakan di sana.
  • Dalam sesi lain mana pun di mesin Anda, Claude Code tidak menjalankan perintah !, tidak melampirkan file yang disebutkan oleh referensi @ seperti yang dilakukannya untuk skill lokal, dan tidak mensubstitusi placeholder ${CLAUDE_PROJECT_DIR} dan ${CLAUDE_SESSION_ID}, sehingga referensi @ dan kedua placeholder tersebut mencapai Claude sebagai teks literal. Baris perintah ! juga mencapai Claude sebagai teks literal, atau sebagai placeholder tersebut ketika disableSkillShellExecution aktif. Penanganan ini memerlukan Claude Code v2.1.228 atau yang lebih baru.

Mengedit skill selama sesi

Claude Code memantau direktori skill untuk perubahan file, kecuali dalam bare mode. Saat Anda menambahkan, mengedit, atau menghapus skill di bawah ~/.claude/skills/, .claude/skills/ milik proyek, atau .claude/skills/ di dalam direktori --add-dir, Claude Code mengambil perubahan tersebut dalam sesi saat ini, tanpa restart. Jika Anda membuat direktori skill tingkat atas yang belum ada saat sesi dimulai, jalankan /reload-skills untuk mengambil skill yang Anda letakkan di sana. Claude Code belum memantau direktori tersebut, jadi jalankan /reload-skills lagi setelah setiap perubahan berikutnya di sana. Deteksi perubahan langsung hanya mencakup teks SKILL.md. Untuk folder skill yang juga merupakan plugin, perubahan pada hooks/, .mcp.json, agents/, dan output-styles/ memerlukan /reload-plugins agar berlaku.

Menghapus skill

Cara Anda menghapus skill bergantung pada asalnya:
  • Skill personal atau proyek: hapus direktori skill tersebut, ~/.claude/skills/<skill-name>/ atau .claude/skills/<skill-name>/. Claude Code menghapusnya dari /skills di sesi saat ini; konten yang sudah dimuat Claude Code darinya mengikuti siklus hidup konten skill.
  • Skill enterprise: administrator menghapus direktori skill dari .claude/skills/ di dalam direktori pengaturan terkelola, misalnya /etc/claude-code/.claude/skills/<skill-name>/ di Linux.
  • Skill plugin: nonaktifkan atau hapus instalasi plugin yang menyediakannya, dari menu /plugin atau dengan /plugin uninstall <plugin-name>@<marketplace-name>. Claude Code membongkar skill plugin tersebut saat perubahan berlaku atau saat Anda memulai ulang.
  • Skill yang disinkronkan dari claude.ai: matikan skill tersebut untuk akun claude.ai Anda, di tempat yang sama dengan tempat Anda mengaktifkannya. Claude Code menghapusnya dari ~/.claude/skills/synced/ saat berikutnya menyinkronkan skill Anda. Jika Anda menghapus direktori secara manual, sinkronisasi berikutnya akan mengunduhnya lagi selama skill tersebut tetap diaktifkan di claude.ai.
  • Skill bawaan: atur disableBundledSkills ke true untuk mematikan skill bawaan, atau atur satu skill ke "off" di skillOverrides untuk menyembunyikannya.
Untuk mempertahankan skill personal atau proyek tetapi mencegah Claude memanggilnya sendiri, atur disable-model-invocation: true di frontmatter-nya, atau "user-invocable-only" di skillOverrides jika Anda tidak ingin mengedit file tersebut.

Mengonfigurasi skills

Skills dikonfigurasi melalui frontmatter YAML di bagian atas SKILL.md dan konten markdown yang mengikutinya.

Jenis konten skill

File skill dapat berisi instruksi apa pun, tetapi memikirkan bagaimana Anda ingin memanggilnya membantu menentukan apa yang perlu disertakan: Konten referensi menambahkan pengetahuan yang diterapkan Claude pada pekerjaan Anda saat ini. Konvensi, pola, panduan gaya, pengetahuan domain. Konten ini berjalan inline sehingga Claude dapat menggunakannya bersama konteks percakapan Anda.
Konten tugas memberi Claude instruksi langkah demi langkah untuk tindakan tertentu, seperti deployment, commit, atau pembuatan kode. Ini sering kali merupakan tindakan yang ingin Anda panggil langsung dengan /skill-name daripada membiarkan Claude memutuskan kapan menjalankannya. Tambahkan disable-model-invocation: true untuk mencegah Claude memicunya secara otomatis. Contoh di bawah menambahkan context: fork, yang menjalankan skill dalam konteks subagent tersendiri; lihat Menjalankan skills dalam subagent.
Jaga agar isi skill itu sendiri tetap ringkas. Setelah skill dimuat, kontennya tetap berada dalam konteks di sepanjang giliran, sehingga setiap baris merupakan biaya token yang berulang. Nyatakan apa yang harus dilakukan alih-alih menjelaskan bagaimana atau mengapa, dan terapkan uji keringkasan yang sama seperti yang Anda lakukan untuk konten CLAUDE.md.

Referensi frontmatter

Konfigurasikan skill dengan frontmatter YAML di antara penanda --- di bagian atas SKILL.md, dan tulis instruksi skill sebagai Markdown setelah penutup ---. Nama field menggunakan kata-kata huruf kecil yang dipisahkan tanda hubung, kecuali when_to_use. File perintah di .claude/commands/ menerima field yang sama kecuali name dan paths. Contoh ini mengatur empat field:
Semua field bersifat opsional. Hanya description yang direkomendasikan agar Claude tahu kapan harus menggunakan skill tersebut. Nama field harus sama persis dengan tabel, termasuk tanda hubungnya: Claude Code mengabaikan field yang tidak dikenalinya tanpa melaporkan kesalahan. Claude Code membaca frontmatter hanya jika --- pembuka berada di baris pertama file. Jika tidak, seluruh file, termasuk penanda ---, diperlakukan sebagai konten skill. Jika YAML di antara penanda tidak dapat di-parse, skill tetap dimuat tanpa field apa pun yang diatur; lihat Skill tidak terpicu untuk menemukan dan memperbaiki kesalahannya. Field boolean menerima yes, no, on, off, 1, dan 0 dalam huruf besar maupun kecil, selain true dan false. Sebelum v2.1.218, Claude Code hanya mengenali true dan false.

Menggunakan frontmatter skill di luar Claude Code

Claude Code menerima setiap field dalam tabel di atas. Di luar Claude Code, Anda hanya dapat menggunakan field yang ada dalam spesifikasi Agent Skills: Ketika Anda mengaktifkan skill pribadi untuk akun claude.ai Anda, misalnya untuk menggunakannya dalam Cowork dan sesi cloud serta routine, Anda mengunggahnya ke claude.ai, sehingga aturan yang sama berlaku. Jika Anda menyertakan field apa pun yang tidak diizinkan oleh spesifikasi, pengemasan atau pengunggahan gagal dengan kesalahan keras alih-alih mengabaikan field tersebut:
Membatasi frontmatter pada enam field spesifikasi menghindari kesalahan unexpected-key di atas. Spesifikasi Agent Skills dan persyaratan Skills API mendefinisikan semua hal lain yang divalidasi oleh jalur-jalur tersebut. Fitur isi skill yang khusus Claude Code, seperti injeksi konteks dinamis, tidak berfungsi dalam obrolan claude.ai atau melalui API. Claude Code menerima keenam field tersebut, sehingga frontmatter yang mengikuti spesifikasi dapat dimuat di Claude Code tanpa perubahan.

Bagaimana skill mendapatkan nama perintahnya

Perintah yang Anda ketik untuk memanggil skill berasal dari lokasi file skill dan, untuk direktori skill dan skill plugin, dari field frontmatter name. Dalam direktori skill pribadi atau proyek, name mengatur perintah yang ditampilkan menu / dan yang Anda ketik, kecuali perintah lain sudah menggunakan nama tersebut. Nama direktori juga dapat memanggil skill. Dalam skill plugin, name mengatur segmen terakhir perintah dan prefiks plugin tetap dipertahankan. Tabel di bawah menunjukkan asal nama perintah untuk setiap tata letak: Dalam skill plugin, frontmatter name menggantikan nama direktori di segmen terakhir perintah, sehingga my-plugin/skills/review/SKILL.md dengan name: fancy menjadi /my-plugin:fancy. /fancy tanpa prefiks juga memanggil skill kecuali perintah lain sudah menggunakan nama tersebut. Jika name yang Anda tulis sudah diawali dengan prefiks plugin itu sendiri, Claude Code tidak menambahkan prefiks lagi pada v2.1.246 atau yang lebih baru. Misalnya, name: my-plugin:fancy tetap menjadi /my-plugin:fancy. Dari v2.1.216 hingga v2.1.245, Claude Code menggandakan prefiks ketika name sudah membawanya. Dalam sesi non-interaktif, nama help dan feedback tidak dicadangkan untuk perintah bawaan khusus terminal, sehingga skill plugin dengan salah satu nama tersebut mempertahankan perintah tanpa prefiksnya di sana. Nama setiap perintah bawaan khusus terminal lainnya, seperti /login, tetap dicadangkan meskipun perintah tersebut tidak dapat berjalan dalam sesi tersebut. Untuk SKILL.md di root plugin, tidak ada direktori skill yang dapat diambil namanya, sehingga name menyediakan seluruh segmen terakhir. Tanpa field name, Claude Code menggunakan nama direktori plugin sebagai fallback.

Karakter yang tidak boleh ada dalam nama skill

Jika skill atau perintah kustom tidak muncul di menu /, atau menu tidak menampilkan frontmatter name dari sebuah skill, periksa namanya. Claude Code menolak nama perintah atau frontmatter name yang berisi karakter seperti berikut:
  • Spasi lebar-nol (zero-width space) atau karakter kontrol
  • Karakter private-use atau karakter yang belum ditetapkan, seperti glyph dari font ikon
  • Karakter yang mengubah arah teks di sekitarnya
  • Karakter kosong selain satu spasi biasa di antara kata, seperti no-break space, dua spasi berturut-turut, atau spasi di awal atau akhir
  • < atau >
Perintah kustom atau skill tidak dimuat ketika Claude Code menolak nama direktori atau nama filenya. Ganti nama folder atau file tersebut untuk menghapus karakter-karakter itu. Skill tetap dimuat ketika karakter-karakter ini hanya ada dalam nama folder skill plugin atau dalam frontmatter name-nya:
  • Folder di direktori skills/ plugin atau di path skills manifesnya: Anda tidak perlu mengganti nama folder. Karakter-karakter ini menjadi tanda hubung dalam nama perintah skill, jadi ketik perintah dengan tanda hubung tersebut.
  • Frontmatter name: menu / tidak menampilkan nilai name dan mengetiknya tidak memanggil skill. Edit baris name: untuk menghapus karakter-karakter tersebut.
Untuk mengetahui nama mana yang ditolak Claude Code, jalankan dengan claude --debug dari shell Anda dan cari [names] di log debug. Dalam sesi interaktif, pemberitahuan startup juga memberi tahu Anda bahwa ada nama yang ditolak. Setelah mengganti nama atau mengedit name:, mulai ulang sesi, kecuali file berada di direktori yang dipantau perubahannya oleh Claude Code.

Substitusi string yang tersedia

Skills mendukung substitusi string untuk nilai dinamis dalam konten skill: Claude Code menyubstitusi ${CLAUDE_SKILL_DIR} dan ${CLAUDE_PROJECT_DIR} di dua tempat: konten markdown skill, dan aturan Bash dalam frontmatter allowed-tools. Dalam skill plugin, Claude Code menyubstitusi ${CLAUDE_PLUGIN_ROOT} dan ${CLAUDE_PLUGIN_DATA} di dua tempat yang sama. Menggunakan variabel yang sama di kedua tempat memungkinkan skill menjalankan skrip yang dibundel tanpa permintaan izin. Skill berikut menunjukkan polanya:
Jika skill ini diinstal di ~/.claude/skills/render-chart/, kedua kemunculan ${CLAUDE_SKILL_DIR} diperluas ke direktori tersebut. Aturan allowed-tools kemudian cocok dengan perintah persis yang diinstruksikan isi skill kepada Claude untuk dijalankan, sehingga skrip berjalan tanpa permintaan izin. Argumen berindeks menggunakan kutipan gaya shell, jadi bungkus nilai multi-kata dalam tanda kutip untuk meneruskannya sebagai satu argumen. Misalnya, /my-skill "hello world" second membuat $0 diperluas menjadi hello world dan $1 menjadi second. Placeholder $ARGUMENTS selalu diperluas menjadi string argumen lengkap sebagaimana diketik. Placeholder berindeks tanpa argumen yang sesuai, seperti $2 ketika hanya satu argumen yang diteruskan, tetap berada dalam konten tanpa perubahan. Placeholder bernama dari frontmatter arguments tanpa argumen yang cocok diperluas menjadi string kosong. Jika Anda meneruskan nilai argumen yang sendirinya berisi teks seperti $1 atau $ARGUMENTS, Claude Code menyisipkannya sebagai teks literal dan tidak memperluasnya. Misalnya, jika isi skill berisi Summarize $0 dan Anda menjalankan /summarize "$ARGUMENTS from yesterday", Claude menerima Summarize $ARGUMENTS from yesterday. Claude Code tetap mengganti variabel ${CLAUDE_*} seperti ${CLAUDE_SKILL_DIR} setelah menyisipkan argumen. Untuk menyertakan $ literal sebelum digit, ARGUMENTS, atau nama argumen yang dideklarasikan, seperti $1.00 dalam teks, escape dengan backslash: \$1.00. Backslash sebelum $ lainnya dibiarkan tanpa perubahan. Hanya satu backslash tepat sebelum token yang meng-escape-nya. Backslash ganda seperti \\$1 membiarkan kedua backslash di tempatnya, dan $1 tetap diperluas menjadi nilai argumen. Escape backslash hanya mencakup placeholder argumen ini. Backslash tidak mencegah substitusi variabel ${CLAUDE_*} di tempat variabel tersebut berlaku. Contoh penggunaan substitusi:

Menambahkan file pendukung

Skills dapat menyertakan beberapa file dalam direktorinya. Ini menjaga SKILL.md tetap fokus pada hal-hal penting sambil memungkinkan Claude mengakses materi referensi terperinci hanya saat dibutuhkan. Dokumen referensi besar, spesifikasi API, atau kumpulan contoh tidak perlu dimuat ke dalam konteks setiap kali skill dijalankan.
Referensikan file pendukung dari SKILL.md agar Claude tahu isi setiap file dan kapan harus memuatnya:
Jaga SKILL.md di bawah 500 baris. Pindahkan materi referensi terperinci ke file terpisah.

Mengontrol siapa yang memanggil skill

Secara default, Anda dan Claude sama-sama dapat memanggil skill apa pun. Anda dapat mengetik /skill-name untuk memanggilnya secara langsung, dan Claude dapat memuatnya secara otomatis ketika relevan dengan percakapan Anda. Dua field frontmatter memungkinkan Anda membatasi hal ini:
  • disable-model-invocation: true: Claude tidak dapat memanggil skill atas inisiatifnya sendiri. Gunakan ini untuk alur kerja yang memiliki efek samping atau yang waktunya ingin Anda kontrol, seperti /commit, /deploy, atau /send-slack-message. Anda tidak ingin Claude memutuskan untuk men-deploy karena kode Anda terlihat siap.
  • user-invocable: false: Hanya Claude yang dapat memanggil skill. Gunakan ini untuk pengetahuan latar belakang yang tidak dapat dijalankan sebagai perintah. Skill legacy-system-context menjelaskan cara kerja sistem lama. Claude perlu mengetahui hal ini ketika relevan, tetapi /legacy-system-context bukanlah tindakan yang bermakna bagi pengguna.
Contoh ini membuat skill deploy. Jika Anda mengatur disable-model-invocation: true, Claude tidak dapat menjalankan skill secara otomatis:
Jika Claude tetap mencobanya, Claude Code memblokir panggilan tersebut dan menginstruksikannya untuk tidak mereproduksi langkah-langkah deploy dengan cara lain, jadi Claude kemungkinan akan menyarankan Anda menjalankan /deploy sendiri. Berikut cara kedua field tersebut memengaruhi pemanggilan dan pemuatan konteks:
Dalam sesi biasa, deskripsi skill dimuat ke dalam konteks agar Claude tahu apa saja yang tersedia, tetapi konten skill lengkap hanya dimuat saat dipanggil. Subagent dengan skill yang dimuat lebih dulu bekerja secara berbeda: konten skill lengkap disuntikkan saat startup.

Tempat Anda menulis nama skill

Untuk menjalankan skill secara langsung, letakkan namanya di awal pesan Anda. Jika ditulis setelah teks biasa, nama tersebut memberi Claude izin untuk menjalankan skill tetapi tidak menjalankannya: Untuk menulis tentang skill tanpa mengizinkannya dijalankan, hilangkan garis miringnya.

Siklus hidup konten skill

Ketika Anda atau Claude memanggil skill, konten SKILL.md yang telah dirender masuk ke percakapan sebagai satu pesan dan tetap berada di sana di sepanjang giliran berikutnya. Persistensi ini berlaku untuk instruksi skill, bukan izinnya: pemberian izin allowed-tools dihapus ketika Anda mengirim pesan berikutnya. Claude Code tidak membaca ulang file skill pada giliran berikutnya, jadi tulis panduan yang harus berlaku di sepanjang tugas sebagai instruksi tetap, bukan langkah satu kali. Ketika Claude memanggil ulang skill yang konten hasil rendernya identik dengan salinan yang sudah ada dalam konteks, Claude Code menambahkan catatan singkat bahwa skill sudah dimuat alih-alih salinan kedua dari konten tersebut. Ketika konten hasil rendernya berbeda, karena argumen berubah atau perintah konteks dinamis menghasilkan output baru, Claude Code menambahkan konten lengkap lagi. Auto-compaction membawa skill yang telah dipanggil ke depan dalam batas anggaran token. Ketika percakapan diringkas untuk mengosongkan konteks, Claude Code melampirkan kembali pemanggilan terbaru setiap skill setelah ringkasan, dengan mempertahankan 5.000 token pertama dari masing-masing skill. Skill yang dilampirkan kembali berbagi anggaran gabungan sebesar 25.000 token. Claude Code mengisi anggaran ini mulai dari skill yang paling baru dipanggil, sehingga skill yang lebih lama dapat dibuang sepenuhnya setelah compaction jika Anda telah memanggil banyak skill dalam satu sesi. Jika Claude berhenti mengikuti skill di tengah sesi, lihat Claude berhenti mengikuti skill.

Menyetujui tool terlebih dahulu untuk skill

Field allowed-tools memberikan izin untuk tool yang tercantum selama giliran yang memanggil skill, sehingga Claude dapat menggunakannya tanpa meminta persetujuan Anda. Pemberian izin ini dihapus ketika Anda mengirim pesan berikutnya, meskipun konten skill tetap berada dalam konteks; memanggil skill lagi akan menerapkannya kembali untuk giliran tersebut. Field ini tidak membatasi tool mana yang tersedia: setiap tool tetap dapat dipanggil, dan pengaturan izin Anda tetap mengatur tool yang tidak tercantum. Untuk menyetujui tool terlebih dahulu untuk seluruh sesi alih-alih satu giliran, tambahkan aturan allow ke pengaturan izin tersebut. Kepercayaan workspace tidak membatasi field ini. Claude Code menerapkan allowed-tools dari skill proyek bahkan dalam eksekusi -p di folder yang belum pernah Anda percayai. Skill dapat memberikan dirinya sendiri akses tool yang luas, jadi tinjau allowed-tools dari skill yang di-commit ke repositori sebelum Anda menjalankan Claude Code di sana. Untuk menahan field ini dari skill repositori di seluruh organisasi Anda, lihat Ketika hanya aturan izin terkelola yang berlaku. Skill ini memungkinkan Claude menjalankan perintah git tanpa persetujuan per penggunaan setiap kali Anda memanggilnya:
Untuk menghapus tool dari kumpulan tool yang tersedia bagi Claude selama skill aktif, cantumkan tool tersebut dalam disallowed-tools di frontmatter skill. Pembatasan ini dihapus ketika Anda mengirim pesan berikutnya. Seperti aturan deny, field ini tidak dapat menghapus EndConversation selama masih ada tool lain. Untuk memblokir tool di semua skill dan prompt, tambahkan aturan deny dalam pengaturan izin Anda.

Ketika hanya aturan izin terkelola yang berlaku

Ketika organisasi Anda mengatur allowManagedPermissionRulesOnly dalam pengaturan terkelola, Claude Code mengabaikan allowed-tools dalam skill proyek dan pribadi serta dalam sumber lain yang tercantum dalam entri pengaturan tersebut. Ini memerlukan Claude Code v2.1.282 atau yang lebih baru. Tool yang tercantum dalam skill yang terdampak akan melalui aturan terkelola organisasi Anda dan permintaan izin normal. Jalankan /status untuk menampilkan daftar setiap skill yang allowed-tools-nya telah diabaikan Claude Code sejauh ini dalam sesi. Perintah yang disuntikkan dalam skill yang tidak diizinkan oleh aturan terkelola mana pun mengikuti Pemeriksaan izin pada perintah yang disuntikkan.

Meneruskan argumen ke skills

Anda dan Claude sama-sama dapat meneruskan argumen saat memanggil skill. Argumen tersedia melalui placeholder $ARGUMENTS. Skill ini memperbaiki issue GitHub berdasarkan nomor. Placeholder $ARGUMENTS diganti dengan apa pun yang mengikuti nama skill:
Ketika Anda menjalankan /fix-issue 123, Claude menerima “Fix GitHub issue 123 following our coding standards…” Jika Anda memanggil skill dengan argumen tetapi tidak ada placeholder dalam konten skill yang menerimanya, Claude Code menambahkan ARGUMENTS: <your input> ke akhir konten skill agar Claude tetap melihat apa yang Anda ketik. Placeholder adalah $ARGUMENTS, bentuk berindeks seperti $1, atau argumen bernama. Placeholder berindeks tanpa argumen di posisinya tetap sebagai teks literal dan tidak dihitung sebagai menerima argumen. Placeholder bernama tetap dihitung meskipun posisinya tidak memiliki argumen, karena diperluas menjadi string kosong. Anda juga dapat menumpuk beberapa skill di awal satu pesan. Mengetik /write-tests /fix-issue 123 memuat kedua skill dan meneruskan teks di belakangnya, 123, sebagai $ARGUMENTS ke masing-masing skill. Claude Code memperluas skill pertama ditambah hingga lima skill lagi yang ditumpuk setelahnya. Perluasan berhenti pada token pertama yang bukan skill inline yang dapat dipanggil pengguna, sehingga skill yang berjalan sebagai subagent hasil fork, seperti /code-review, atau skill yang argumennya sendiri dapat diawali dengan perintah garis miring, seperti /loop, juga mengakhiri rangkaian di sana. Token tersebut dan semua yang mengikutinya menjadi teks argumen untuk setiap skill yang diperluas. /code-review berjalan sebagai subagent hasil fork sejak v2.1.218; pada versi sebelumnya, skill ini berjalan inline dan dapat ditumpuk. Untuk mengakses argumen individual berdasarkan posisi, gunakan $ARGUMENTS[N] atau bentuk yang lebih pendek $N:
Menjalankan /migrate-component SearchBar JavaScript TypeScript mengganti $ARGUMENTS[0] dengan SearchBar, $ARGUMENTS[1] dengan JavaScript, dan $ARGUMENTS[2] dengan TypeScript. Skill yang sama menggunakan singkatan $N:

Pola lanjutan

Injeksi konteks dinamis

Sintaks !`<command>` menjalankan perintah shell sebelum konten skill dikirim ke Claude. Output perintah menggantikan placeholder, sehingga Claude menerima data aktual, bukan perintah itu sendiri. Claude Code tidak menjalankan perintah ini di mesin Anda ketika skill disinkronkan dari akun claude.ai Anda. Pembatasan ini memerlukan Claude Code v2.1.228 atau lebih baru. Skill ini merangkum pull request dengan mengambil data PR langsung menggunakan GitHub CLI. Perintah !`gh pr diff` dan perintah lainnya berjalan terlebih dahulu, dan outputnya dimasukkan ke dalam prompt:
Substitusi berjalan sekali di atas file asli. Output perintah dimasukkan sebagai teks biasa dan tidak dipindai ulang untuk placeholder !`<command>` lebih lanjut, sehingga perintah tidak dapat mengeluarkan placeholder untuk pass berikutnya untuk diperluas. Bentuk inline hanya dikenali ketika ! muncul di awal baris atau segera setelah whitespace. Jika ! mengikuti karakter lain, seperti dalam KEY=!`cmd`, placeholder dibiarkan sebagai teks literal dan perintah tidak berjalan. Untuk perintah multi-baris, gunakan blok kode yang dibuka dengan ```! bukan bentuk inline:
Untuk menonaktifkan perilaku ini untuk skills dan perintah kustom dari pengguna, proyek, plugin, atau sumber additional-directory, atur "disableSkillShellExecution": true dalam settings. Setiap perintah diganti dengan [shell command execution disabled by policy] alih-alih dijalankan. Skills bundel dan terkelola tidak terpengaruh. Pengaturan ini paling berguna dalam managed settings, di mana pengguna tidak dapat menggantinya. Claude Code tidak pernah menjalankan perintah ini di mesin Anda ketika perintah muncul dalam skills disinkronkan dari akun claude.ai Anda, terlepas dari pengaturan ini. Pembatasan ini memerlukan Claude Code v2.1.228 atau lebih baru. Bagaimana Claude Code menangani isi skill yang disinkronkan mengatakan apa yang Claude terima sebagai pengganti perintah dalam setiap jenis sesi.
Untuk meminta penalaran yang lebih dalam ketika skill berjalan, sertakan ultrathink di mana saja dalam konten skill. Lihat Gunakan ultrathink untuk penalaran mendalam sekali jalan.

Bagaimana perintah yang diinjeksi berjalan

Claude Code memilih alat yang menjalankan perintah yang diinjeksi skill dari kunci shell dalam frontmatter skill dan lingkungan Anda. Setiap kombinasi menjalankan perintah melalui alat Bash atau alat PowerShell, kecuali satu yang gagal dalam invokasi:
  • shell: powershell, dengan alat PowerShell diaktifkan: perintah berjalan melalui alat PowerShell.
  • shell: bash ketika bash tidak tersedia: invokasi gagal sebelum perintah apa pun berjalan. Ini terjadi di Windows tanpa Git Bash. Claude Code menampilkan Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found.
  • Kombinasi lainnya: perintah berjalan melalui alat Bash ketika bash tersedia. Ketika tidak, mereka berjalan melalui alat PowerShell.
Kedua alat menjalankan perintah dengan cara yang sama seperti menjalankan perintah shell Claude sendiri. Mereka berbagi direktori kerja, timeout, dan penanganan output:
  • Direktori kerja: Claude Code menjalankan setiap perintah di direktori kerja shell sesi saat ini. Direktori itu bergerak ketika Claude menjalankan cd. Gunakan ${CLAUDE_SKILL_DIR} atau ${CLAUDE_PROJECT_DIR} dalam path yang harus diselesaikan dengan cara yang sama setiap kali.
  • stderr: dengan shell bash default, Claude Code menggabungkan stderr ke stdout. Apa pun yang ditulis perintah ke stderr muncul dalam teks yang diinjeksi.
  • Timeout: setiap perintah berjalan di bawah timeout default 2 menit alat Bash. Ketika alat Bash memindahkan perintah yang kedaluwarsa ke latar belakang, skill masih dirender. Teks yang diinjeksi melaporkan perpindahan dan menamai tugas latar belakang dan file yang mengumpulkan output perintah. Ketika perintah adalah salah satu yang tidak pernah dilatarbelakangkan oleh alat Bash, Claude Code membunuhnya pada timeout. Kegagalan itu membatalkan invokasi.
  • Ukuran output: output melampaui batas inline alat Bash tiba sebagai jalur file plus pratinjau singkat, bukan teks terpotong. Output limits mencakup batas dan cara menyesuaikan setiap batas.
Alat PowerShell menerapkan perilaku timeout, backgrounding, dan output-ceiling yang sama pada perintah yang dijalankannya. Lihat bagian alat PowerShell untuk spesifikasinya.

Ketika perintah yang diinjeksi gagal

Perintah yang gagal membatalkan seluruh invokasi skill, bukan hanya placeholder-nya sendiri. Claude tidak pernah melihat konten skill untuk invokasi itu. Pembatalan menampilkan Shell command failed for pattern "...". Pesan kesalahan mencakup output perintah di bawah [stderr]. Dengan shell bash default, kode keluar non-nol apa pun dihitung sebagai kegagalan. Satu pengecualian berlaku: Claude Code memperlakukan kode keluar 1 dari perintah pencarian dan perbandingan sebagai hasil normal dan menyuntikkan outputnya. Kode keluar 2 atau lebih tinggi gagal bahkan untuk perintah tersebut. Perintah mana yang mendapatkan pengecualian tergantung pada shell:
  • Shell bash default: perintah yang tercantum di bawah Output limits
  • shell: powershell, ketika alat PowerShell diaktifkan: set berbeda yang mencakup grep dan git diff tetapi bukan find atau diff
Dengan shell bash default, tambahkan || true ke perintah lain apa pun yang Anda harapkan keluar non-nol. Skrip pemeriksaan yang keluar 1 ketika menemukan masalah adalah satu contoh.

Karakter kontrol dalam perintah yang diinjeksi

No shell command in <name> was run berarti salah satu perintah ! dalam file berisi karakter kontrol mentah selain tab atau baris baru, sehingga tidak satu pun dari perintah tersebut dijalankan. Lihat cara menemukan dan menghapus karakter tersebut.

Pemeriksaan izin pada perintah yang diinjeksi

Perintah yang diinjeksi tidak pernah meminta izin saat skill dirender. Claude Code memeriksa masing-masing terhadap aturan izin Anda terlebih dahulu. Perintah yang cocok dengan aturan deny membatalkan invokasi dengan Shell command permission check failed for pattern "...". Di luar auto mode, ketika pemeriksaan izin perintah mengembalikan apa pun selain allow, Claude Code membatalkan invokasi dengan kesalahan yang sama. Ini termasuk aturan yang biasanya akan menanyakan Anda. Untuk menjaga perintah yang tidak cocok agar tidak membatalkan di sini, pra-setujui dengan allowed-tools. Jika organisasi Anda membatasi aturan izin hanya pada pengaturan terkelola, lihat Ketika hanya aturan izin terkelola yang berlaku. Aturan deny dan ask masih menimpa allowed-tools. Lihat Kelola izin. Dalam mode auto, perintah yang sebaliknya memerlukan persetujuan Anda tidak membatalkan invokasi. Skill dimuat dengan instruksi yang memberi tahu Claude untuk menjalankan perintah terlebih dahulu, dan panggilan Claude sendiri kemudian melalui pemeriksaan biasa mode auto. Invokasi masih membatalkan dalam skill yang di-fork yang menetapkan agent, dan dalam sesi di mana Claude tidak memiliki alat shell yang menjalankan perintah yang diinjeksi.

Jalankan skills dalam subagent

Tambahkan context: fork ke frontmatter Anda ketika Anda ingin skill berjalan dalam isolasi. Claude Code memulai subagent baru dari tipe yang ditetapkan dalam field agent dan memberikannya konten skill sebagai promptnya. Subagent tidak melihat riwayat percakapan Anda, sehingga instruksi skill harus berdiri sendiri.
Meskipun namanya, skill dengan context: fork tidak berjalan dalam fork dari percakapan saat ini, yang akan memberikan subagent semua yang telah Anda diskusikan sejauh ini. Ketika tugas bergantung pada riwayat itu, fork percakapan alih-alih menggunakan context: fork.
Subagent yang di-fork berjalan di latar belakang: Anda terus bekerja sementara itu berjalan, dan hasilnya tiba dalam percakapan Anda ketika selesai. Atur background: false dalam frontmatter untuk menunggu hasil dalam giliran yang menginvokasi skill. Sebelum v2.1.218, skill yang di-fork selalu memblokir giliran sampai selesai. Claude Code juga menunggu hasil, bahkan ketika skill tidak menetapkan background: false, dalam kasus seperti ini:
  • Dalam mode non-interaktif, dengan flag -p atau Agent SDK
  • Ketika Anda menetapkan CLAUDE_CODE_DISABLE_BACKGROUND_TASKS ke 1, yang juga mematikan semua fitur tugas latar belakang lainnya
  • Ketika Anda menginvokasi skill yang di-fork sementara invokasi sebelumnya dari skill yang sama masih berjalan
  • Ketika tugas terjadwal diaktifkan dengan skill sebagai promptnya
Ketika agent dalam workflow dinamis menginvokasi skill yang di-fork, agent tersebut menunggu dan menerima hasilnya, bahkan ketika skill tidak menetapkan background: false. Sebelum v2.1.295, Claude Code tidak menunggu dalam kasus ini, dan ketika skill berjalan di latar belakang, hasilnya tiba di percakapan utama Anda alih-alih sampai ke agent tersebut. Fork yang di-background juga berjalan dengan set alat yang lebih sempit yang berlaku untuk subagent latar belakang: subagent skill adalah tipe agen reguler, jadi pengecualian untuk subagent yang mem-fork percakapan tidak mencakupnya. Jika langkah skill Anda bergantung pada alat di luar set itu, atur background: false untuk menjaga set alat penuh. Skill yang di-fork yang berjalan di latar belakang menerapkan editnya di luar checkpoint sesi Anda. Setelah skill tersebut berjalan, /rewind hanya memulihkan file yang sudah diedit Claude dalam percakapan Anda. Edit skill pada file lain tetap ada, jadi gunakan git untuk mengembalikannya.
context: fork hanya masuk akal untuk skills dengan instruksi eksplisit. Jika skill Anda berisi pedoman seperti “gunakan konvensi API ini” tanpa tugas, subagent menerima pedoman tetapi tidak ada prompt yang dapat ditindaklanjuti, dan kembali tanpa output yang bermakna.
Skills dan subagents bekerja bersama dalam dua arah: Dengan context: fork, Anda menulis tugas dalam skill Anda dan memilih tipe agent untuk menjalankannya. Agent Explore dan Plan bawaan dimulai tanpa CLAUDE.md dan status git untuk menjaga konteks mereka tetap kecil. Masukkan semua yang dibutuhkan tugas ke dalam SKILL.md Anda. Skill yang di-fork menggunakan agent: Explore dimulai dengan konten tersebut dan system prompt milik agent itu sendiri, tanpa satu pun file CLAUDE.md Anda. Untuk kebalikannya, di mana Anda mendefinisikan subagent kustom yang menggunakan skills sebagai materi referensi, lihat Subagents.

Contoh: Skill penelitian menggunakan agen Explore

Skill ini menjalankan penelitian dalam agen Explore yang di-fork. Konten skill menjadi tugas, dan agen menyediakan alat read-only yang dioptimalkan untuk eksplorasi codebase:
Ketika skill ini berjalan:
  1. Konteks terisolasi baru dibuat
  2. Subagent menerima konten skill sebagai promptnya (instruksi “Research $ARGUMENTS thoroughly”)
  3. Field agent menentukan lingkungan eksekusi (model, alat, dan izin)
  4. Subagent merangkum hasilnya dan mengembalikannya ke percakapan utama Anda ketika selesai
Field agent menentukan konfigurasi subagent mana yang akan digunakan. Opsi mencakup agen bawaan (Explore, Plan, general-purpose) atau subagent kustom apa pun dari .claude/agents/. Jika dihilangkan, menggunakan general-purpose.

Batasi akses skill Claude

Secara default, Claude dapat menginvokasi skill apa pun yang tidak memiliki disable-model-invocation: true yang ditetapkan. Skills yang mendefinisikan allowed-tools memberikan Claude akses ke tool tersebut tanpa persetujuan per-penggunaan selama giliran yang menginvokasi skill; hibah dihapus ketika Anda mengirim pesan berikutnya. Pengaturan izin Anda masih mengatur perilaku persetujuan dasar untuk semua tool lainnya. Beberapa perintah bawaan juga tersedia melalui tool Skill, termasuk /init dan /security-review. Perintah bawaan lainnya seperti /compact tidak. Tiga cara untuk mengontrol skill mana yang dapat diinvokasi Claude: Nonaktifkan semua skills dengan menolak alat Skill dalam /permissions:
Izinkan atau tolak skills spesifik menggunakan aturan izin:
Sintaks izin: Skill(name) untuk kecocokan tepat, Skill(name *) untuk kecocokan awalan dengan argumen apa pun. Tabel menunjukkan apa yang aturan deny Anda blokir di luar nama yang Anda tulis, berdasarkan jenis nama dalam aturan. Sebelum v2.1.260, Claude Code tidak memblokir skill bersarang yang terdaftar di bawah nama yang memenuhi syaratnya ketika aturan deny hanya menamai nama yang tidak memenuhi syarat. Claude Code mencocokkan aturan allow hanya terhadap nama skill itu sendiri dan nama dalam invokasi Claude. Untuk menyetujui skill yang disinkronkan tanpa prompt, namai dalam namespace yang dicadangkan-nya:
  • Skill(anthropic-skills:pdf) menyetujui skill pdf yang disinkronkan
  • Skill(anthropic-skills *) menyetujui setiap skill yang disinkronkan
  • Skill(anthropic *) tidak mencakup anthropic-skills:pdf, karena awalan di luar namespace tidak cocok dengan nama di dalamnya
Sembunyikan skills individual dengan menambahkan disable-model-invocation: true ke frontmatter mereka. Ini menghapus skill dari konteks Claude sepenuhnya.
Dengan user-invocable: false, Anda tidak dapat menginvokasi skill, tetapi Claude masih bisa. Untuk menjaga Claude agar tidak menginvokasinya melalui alat Skill, atur disable-model-invocation: true.

Ganti visibilitas skill dari pengaturan

Pengaturan skillOverrides mengontrol visibilitas skill dari settings Anda alih-alih frontmatter skill itu sendiri. Gunakan untuk skills yang SKILL.md-nya tidak ingin Anda edit, seperti yang diperiksa ke dalam repo proyek bersama. Menu /skills menulisnya untuk Anda: sorot skill dan tekan Space untuk mengubah status, lalu Esc untuk menyimpan ke .claude/settings.local.json. Setiap kunci adalah nama skill dan setiap nilai adalah salah satu dari empat status: Menu /skills memberi label status "user-invocable-only" user-only. "off" juga menyembunyikan skill dari daftar perintah yang diiklankan ke klien Remote Control dan ke pemanggil Agent SDK, selain menu / terminal. Menginvokasi skill tersembunyi dengan nama lengkapnya mengembalikan kesalahan skillOverrides alih-alih menjalankannya. Skill yang tidak ada dalam skillOverrides diperlakukan sebagai "on". Contoh di bawah ini menciutkan satu skill menjadi namanya dan mematikan yang lain sepenuhnya:
Beberapa skills bundel memiliki alias, seperti checkup untuk /doctor. Jika Anda menetapkan entri skillOverrides di bawah alias dalam managed settings atau dalam file yang Anda lewatkan dengan flag --settings, Claude Code menerapkannya ke skill di balik alias. Anda hanya dapat membatasi skill lebih lanjut melalui alias, tidak pernah membuatnya lebih terlihat, dan jika Anda juga menetapkan entri di bawah nama skill itu sendiri dalam managed settings, entri itu memiliki prioritas. Sebelum v2.1.260, Claude Code tidak menerapkan entri di bawah alias ke skill dalam sumber pengaturan apa pun. Dalam pengaturan pengguna, proyek, dan lokal, Claude Code mencocokkan entri hanya terhadap nama skill. Jika Anda menetapkan entri untuk review di sana, itu berlaku untuk skill bernama review, bukan bundel /code-review melalui alias /review-nya. Plugin skills tidak terpengaruh oleh skillOverrides. Kelola mereka melalui /plugin sebagai gantinya.

Temukan skills yang tidak digunakan

Setiap skill dalam daftar skill menambah konteks Anda pada setiap giliran, terlepas dari apakah Claude pernah menggunakannya. Jalankan /skill-doctor untuk melihat apa yang setiap skill Anda biayai dan seberapa sering digunakan, sehingga Anda dapat memutuskan skill mana yang akan dimatikan. Dalam sesi interaktif, laporan dibuka di tab Stats manajer /plugin. Dalam mode non-interaktif dengan -p, Claude Code mencetaknya sebagai teks. Laporan mencakup skills dalam sesi Anda selain skills bundel dan skills enterprise. Ini menandai skills dalam daftar yang tidak pernah diinvokasi dan mengatakan di mana untuk mematikannya. Dari skills yang diberitahu untuk dimatikan, mulai dengan yang memiliki biaya konteks tertinggi. Laporan juga mencantumkan plugin yang belum Anda gunakan baru-baru ini. /skill-doctor memerlukan Claude Code v2.1.252 atau lebih baru dan tidak tersedia dalam sesi yang melewati pengambilan flag fitur. Jika Anda menjalankan /skill-doctor melalui Remote Control dari ponsel atau browser Anda, Claude Code menjawab Skill usage reports are not available on this connection. sebagai gantinya. Jalankan /skill-doctor di terminal pada mesin tempat sesi berjalan.

Evaluasi dan iterasi pada sebuah skill

Melihat skill terpicu memberitahu Anda bahwa Claude menemukannya, bukan bahwa itu melakukan apa yang Anda maksudkan. Untuk mengetahui skill berfungsi, ukur secara terpisah apakah Claude menginvokasinya pada prompt yang seharusnya, dan apakah output cocok dengan apa yang Anda harapkan saat itu terjadi. Pemeriksaan untuk keduanya adalah perbandingan baseline. Kumpulkan beberapa prompt yang realistis, jalankan masing-masing dalam sesi baru dengan skill tersedia dan lagi dengan itu dinonaktifkan, dan bandingkan hasilnya. Sesi baru penting karena konteks sisa dari pembuatan skill akan menyembunyikan celah dalam instruksi tertulis. Cara Anda menonaktifkan skill untuk run kedua tergantung pada tempat asalnya:
  • Personal atau project skill: atur ke "off" dalam skillOverrides.
  • Skill yang disediakan plugin: skillOverrides tidak berlaku untuk skill plugin. Gunakan claude plugin eval sebagai gantinya, yang mengulangi setiap run tanpa plugin yang dimuat.
Dua alat mengotomatisasi perbandingan baseline. Untuk skill yang dikirim dalam plugin, claude plugin eval menjalankan setiap prompt dalam sesi terisolasi dengan dan tanpa plugin, mencetak skornya dengan grader yang Anda tentukan atau yang ditulis untuk Anda, dan keluar dengan non-zero di bawah ambang batas sehingga Anda dapat membatasi CI padanya. Untuk iterasi pada skill tunggal di dalam percakapan Claude Code, plugin skill-creator di bawah menjalankan loop serupa dengan format evals/evals.json miliknya sendiri. Dua format tidak dapat dipertukarkan.

Jalankan evals dengan skill-creator

Plugin skill-creator mengotomatisasi loop perbandingan di dalam Claude Code. Di ekstensi VS Code atau aplikasi desktop, instal dari marketplace resmi dengan mengikuti Instal plugin. Di terminal, mulai Claude Code dengan menjalankan claude, lalu masukkan ini di prompt-nya:
Jika instalasi gagal, cocokkan pesan yang dilaporkan Claude Code:
  • Marketplace "claude-plugins-official" not found: tambahkan marketplace dengan /plugin marketplace add anthropics/claude-plugins-official, kemudian coba ulang instalasi.
  • Plugin tidak ditemukan di marketplace: periksa nama plugin.
Jika ringkasan instalasi melaporkan Run /reload-plugins to apply., Claude Code kemudian menjalankan reload itu untuk Anda. Jika reload memperingatkan bahwa pesan berikutnya Anda akan membaca ulang percakapan, jalankan /reload-plugins --force untuk membuat skill plugin tersedia dalam sesi saat ini. Kemudian minta Claude untuk mengevaluasi skill yang ada, misalnya evaluate my summarize-changes skill with skill-creator. Plugin memandu Anda melalui penulisan test case dan menjalankan loop:
  • Test cases: menyimpan prompt, file input, dan perilaku yang diharapkan dalam evals/evals.json di dalam direktori skill
  • Isolated runs: menjalankan subagent per test case sehingga setiap run dimulai dengan konteks bersih, dan mencatat jumlah token dan durasi
  • Grading: memeriksa setiap assertion terhadap output dan menulis pass atau fail dengan bukti ke grading.json
  • Benchmark: mengagregasi pass rate, waktu, dan token untuk with-skill versus without-skill ke dalam benchmark.json sehingga Anda dapat membandingkan peningkatan pass-rate terhadap overhead token dan waktu
  • Version comparison: menjalankan blind A/B antara dua versi skill sehingga Anda dapat mengkonfirmasi edit adalah peningkatan sebelum melakukan commit
  • Description tuning: menghasilkan prompt should-trigger dan should-not-trigger, mengukur hit rate, dan mengusulkan edit deskripsi saat skill diaktifkan pada permintaan yang salah
  • Review viewer: membuka laporan HTML di mana Anda memeriksa setiap output dan mencatat umpan balik kualitatif yang dibaca iterasi berikutnya
Untuk format file eval dan alur kerja iterasi lengkap, lihat Evaluating skill output quality di agentskills.io. Untuk latar belakang pada mode benchmark dan perbandingan, lihat skill-creator announcement.

Bagikan skills

Skills dapat didistribusikan pada berbagai cakupan tergantung pada audiens Anda:
  • Project skills: Commit .claude/skills/ ke version control
  • Plugins: Buat direktori skills/ di plugin Anda
  • Managed: Terapkan di seluruh organisasi melalui managed settings

Hasilkan output visual

Skills dapat membundel dan menjalankan skrip dalam bahasa apa pun, memberikan Claude kemampuan di luar apa yang mungkin dalam satu prompt. Satu pola adalah menghasilkan output visual: file HTML interaktif yang terbuka di browser Anda untuk menjelajahi data, debugging, atau membuat laporan. Contoh ini membuat penjelajah codebase: tampilan pohon interaktif di mana Anda dapat memperluas dan menciutkan direktori, melihat ukuran file sekilas, dan mengidentifikasi jenis file berdasarkan warna. Buat direktori Skill:
Simpan ini ke ~/.claude/skills/codebase-visualizer/SKILL.md. Deskripsi memberi tahu Claude kapan harus mengaktifkan Skill ini, dan instruksi memberi tahu Claude untuk menjalankan skrip yang dibundel. Jalur skrip menggunakan ${CLAUDE_SKILL_DIR} sehingga dapat diselesaikan dengan benar apakah skill dipasang di tingkat personal, project, atau plugin:
Simpan ini ke ~/.claude/skills/codebase-visualizer/scripts/visualize.py. Skrip ini memindai pohon direktori dan menghasilkan file HTML yang mandiri dengan:
  • Sidebar ringkasan yang menampilkan jumlah file, jumlah direktori, ukuran total, dan jumlah jenis file
  • Bagan batang yang memecah codebase berdasarkan jenis file (8 teratas berdasarkan ukuran)
  • Pohon yang dapat diciutkan di mana Anda dapat memperluas dan menciutkan direktori, dengan indikator jenis file berkode warna
Skrip memerlukan Python 3 tetapi hanya menggunakan perpustakaan bawaan, jadi tidak ada paket yang perlu dipasang:
Untuk menguji, buka Claude Code di proyek apa pun dan minta “Visualize this codebase.” Claude menjalankan skrip, yang mencetak jalur file yang dihasilkan, seperti Generated /path/to/codebase-map.html, dan membukanya di browser Anda. Jika Anda bekerja di lingkungan headless di mana tidak ada browser yang terbuka, jalur yang dicetak mengkonfirmasi bahwa skrip berhasil. Pola ini berfungsi untuk output visual apa pun: grafik dependensi, laporan cakupan pengujian, dokumentasi API, atau visualisasi skema database. Skrip yang dibundel melakukan pekerjaan sementara Claude menangani orkestrasi.

Troubleshooting

Skill tidak terpicu

Jika Claude tidak menggunakan skill Anda saat diharapkan:
  1. Periksa deskripsi mencakup kata kunci yang akan secara alami diucapkan pengguna
  2. Verifikasi skill muncul di What skills are available?
  3. Coba rephrase permintaan Anda untuk lebih cocok dengan deskripsi
  4. Panggil secara langsung dengan /skill-name jika skill dapat diinvokasi oleh pengguna
  5. Jika /skill-name juga tidak dikenali, periksa apakah Claude Code menolak nama skill tersebut
Jika YAML frontmatter tidak valid, Claude Code memuat badan skill dengan metadata kosong, jadi /skill-name tetap berfungsi tetapi Claude tidak dapat mencocokkan terhadap description Anda. Jalankan dengan --debug untuk melihat error parse. Jika skill dikirim dalam plugin, Anda dapat mengukur seberapa sering skill tersebut terpicu di seluruh prompt yang realistis daripada memeriksa satu per satu: tulis kasus eval dengan tool_used: Skill grader dan jalankan dengan claude plugin eval setelah setiap perubahan deskripsi. Untuk menemukan file SKILL.md yang frontmatter-nya tidak parse, jalankan claude plugin validate pada direktori skills, misalnya claude plugin validate .claude/skills untuk project skills atau claude plugin validate ~/.claude/skills untuk personal skills. Memerlukan Claude Code v2.1.233 atau lebih baru.

Skill terpicu terlalu sering

Jika Claude menggunakan skill Anda saat Anda tidak menginginkannya:
  1. Buat deskripsi lebih spesifik
  2. Tambahkan disable-model-invocation: true jika Anda hanya menginginkan invokasi manual

Claude berhenti mengikuti skill

Jika Claude mengikuti skill dalam respons pertamanya dan berhenti mengikutinya nanti, mulai dengan salah satu kasus berikut yang cocok:
  • Claude melewatkan aturan yang harus berlaku setiap saat: pindahkan aturan ke dalam hook. Claude Code menjalankan hook setiap kali event-nya terjadi, seperti sebelum setiap edit file, terlepas dari apakah Claude mengikuti skill atau tidak. Untuk menjaga aturan bersama skill, tentukan hook dalam hooks frontmatter skill. Hook tersebut berlaku dari saat skill diinvokasi hingga sesi berakhir.
  • Claude melewatkan panduan yang seharusnya diterapkan dengan pertimbangan: kata-katakan panduan sehingga berlaku untuk seluruh tugas, misalnya “Jalankan tes setelah setiap edit” daripada “Jalankan tes”. Claude Code menambahkan konten skill ke percakapan saat skill diinvokasi dan tidak membaca ulang file pada giliran berikutnya.
  • Percakapan telah dikompakkan: panggil skill lagi untuk memulihkan konten lengkapnya. Setelah compaction, Claude Code hanya dapat menyimpan awal skill yang diinvokasi, jadi letakkan instruksi paling penting di dekat bagian atas SKILL.md.

Deskripsi skill terpotong

Claude Code memuat daftar nama skill dan deskripsi ke dalam konteks sehingga Claude tahu apa yang tersedia. Daftar selalu berisi setiap nama skill, tetapi jika Anda memiliki banyak skill, Claude Code mempersingkat deskripsi agar sesuai dengan anggaran karakter daftar, yang dapat menghilangkan kata kunci yang Claude butuhkan untuk mencocokkan permintaan Anda. Anggaran diskalakan pada 1% dari jendela konteks model. Ketika daftar melampaui batas, Claude Code menghapus deskripsi dimulai dengan skill yang Anda panggil paling sedikit, sehingga skill yang Anda gunakan paling banyak mempertahankan teks lengkap mereka. Jalankan /doctor untuk estimasi biaya konteks daftar dan kontributor terbesarnya. Untuk menemukan skill yang layak dimatikan, jalankan /skill-doctor. Ketika daftar melebihi anggarannya, Claude Code juga menulis peringatan ke debug log, terlihat dengan --debug. Baris Skills di /context melaporkan ukuran daftar setelah anggaran diterapkan, sehingga cocok dengan apa yang diterima model. Sebelum v2.1.196, baris menghitung teks lengkap setiap deskripsi dan dapat menunjukkan nilai beberapa kali lebih besar dari anggaran yang dikonfigurasi. Untuk menaikkan anggaran, atur pengaturan skillListingBudgetFraction (misalnya 0.02 = 2%) atau variabel lingkungan SLASH_COMMAND_TOOL_CHAR_BUDGET ke jumlah karakter tetap. Untuk membebaskan anggaran untuk skill lain, atur entri prioritas rendah ke "name-only" di skillOverrides sehingga mereka terdaftar tanpa deskripsi. Anda juga dapat memangkas teks description dan when_to_use di sumber: letakkan kasus penggunaan utama terlebih dahulu, karena teks gabungan setiap entri dibatasi pada 1.536 karakter terlepas dari anggaran. Batas dapat dikonfigurasi dengan skillListingMaxDescChars.

Personal skills hilang

Jika folder skill yang Anda buat di ~/.claude/skills/ hilang, lihat di ~/.claude/skills/.trash/. Ketika Claude Code menyinkronkan skill dari claude.ai, skill tersebut diunduh ke subfolder synced terpisah dan tidak memindahkan atau menghapus folder yang Anda buat. Sebelum v2.1.280, file bernama manifest.json di ~/.claude/skills/ menyebabkan Claude Code memindahkan folder skill yang terdaftar dalam file tersebut ke folder dengan stempel waktu di bawah ~/.claude/skills/.trash/, dan skill tersebut berhenti dimuat. Untuk memulihkan skill, pindahkan foldernya dari folder dengan stempel waktu kembali ke ~/.claude/skills/. Lakukan ini sebelum retention sweep menghapus entri trash, secara default 30 hari setelah dipindahkan ke trash.