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.Bundled skills
Claude Code mencakup serangkaian bundled skills, seperti/doctor, /code-review, /batch, /debug, /loop, dan /claude-api. Bundled skills berbasis prompt: mereka memberikan Claude instruksi terperinci dan membiarkannya mengorkestrasi pekerjaan menggunakan toolsnya. Sebagian besar perintah bawaan malah mengeksekusi logika tetap secara langsung.
Anda menjalankan bundled skill dengan cara yang sama seperti skill lainnya, dengan mengetik / diikuti nama skill. Claude menjalankan beberapa bundled skills secara otomatis ketika relevan; yang lain, termasuk /verify, hanya berjalan ketika Anda menjalankannya, yang membuat Anda tetap mengendalikan kapan pemeriksaan yang berjalan lebih lama ini menghabiskan waktu dan token.
Sebagian besar bundled skills tersedia di setiap sesi. Beberapa bergantung pada fitur tertentu: /workflow-authoring, misalnya, hanya tersedia ketika dynamic workflows diaktifkan.
Untuk mematikan bundled skills, gunakan pengaturan disableBundledSkills.
Pemeriksaan setup
/doctor tetap dapat diketik ketika disableBundledSkills aktif, di Claude Code v2.1.205 dan yang lebih baru. Untuk menyembunyikannya, atur variabel lingkungan DISABLE_DOCTOR_COMMAND atau entri skillOverrides dari "doctor": "off". Sebelum v2.1.205, /doctor adalah perintah bawaan daripada bundled skill.Jalankan dan verifikasi aplikasi Anda
Tiga bundled skills bekerja bersama untuk meluncurkan aplikasi Anda dan mengonfirmasi perubahan terhadap aplikasi yang berjalan daripada hanya tes:/run dan /verify bekerja tanpa setup. Mereka menyimpulkan peluncuran dari jenis proyek Anda (CLI, server, TUI, browser-driven) dan dari apa yang ada di README, package.json, atau Makefile Anda. Inferensi itu menjadi tidak dapat diandalkan untuk proyek yang membutuhkan apa pun di luar peluncuran standar: database, file env, sesi grafis, build multi-langkah.
/run-skill-generator merekam resep sebagai gantinya. Ini membuat aplikasi Anda berjalan dari lingkungan yang bersih, menangkap apa yang berhasil (perintah install, variabel env, skrip peluncuran), dan melakukannya sebagai skill per-proyek di .claude/skills/run-<name>/. Setelah itu, /run, /verify, dan agen lainnya di repo mengikuti resep yang direkam daripada menemukannya kembali. Jalankan /run-skill-generator sekali per proyek, dan lagi jika proses build atau peluncuran berubah.
/verify juga dapat merekam resepnya sendiri. Ketika harus membangun dan menjalankan aplikasi Anda tanpa resep yang direkam, itu menulis apa yang berhasil ke .claude/skills/verify/SKILL.md di akar repo, atau di direktori paket yang disentuh dalam monorepo, sehingga run dan agen lain kemudian mengikuti langkah yang sama. Di akar repo, skill yang direkam menggantikan /verify bundled. Ini memerlukan Claude Code v2.1.200 atau yang lebih baru.
Claude mengedit file yang direkam hanya ketika itu mengarahkan run dengan salah, seperti perintah yang gagal atau langkah yang hilang, sehingga Anda dapat melakukan commit file tanpa per-session diffs. Sebelum v2.1.205, bundled skill memberi tahu Claude untuk melipat apa pun yang dipelajari run, yang menyebabkan konflik merge yang sering.
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 Baris
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:!`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 Atau panggilnya langsung dengan nama skill:Bagaimanapun, Claude harus merespons dengan ringkasan singkat edit Anda dan daftar risiko.
claude. Anda dapat menguji skill dengan dua cara.Biarkan Claude memanggilnya secara otomatis dengan menanyakan sesuatu yang cocok dengan deskripsi:Pilih tempat skills dimuat
Tempat Anda menyimpan skill menentukan sesi mana yang memuatnya. Simpan di bawah direktori home Anda untuk mendapatkannya di setiap proyek, commit ke repositori untuk membagikannya dengan semua orang yang bekerja di sana, atau distribusikan melalui plugin atau managed settings untuk menjangkau seluruh tim.
Folder skill juga mengikuti aturan ini:
- Folder yang di-symlink: entri
<skill-name>di lokasi enterprise, personal, atau project dapat berupa symlink ke direktori lain di disk. Claude Code membacaSKILL.mddari target dan memuat skill sekali meskipun beberapa lokasi menunjuk ke target yang sama. Plugin skills menangani symlinks secara berbeda. - Nama yang dicadangkan
synced: jangan beri nama folder skillsynced, dalam kapitalisasi apa pun. Claude Code menggunakan~/.claude/skills/synced/untuk skills yang diunduh dari claude.ai dan melewati skill yang Anda buat dengan nama itu di lokasi enterprise, personal, dan project. - Nama yang dicadangkan
anthropic-skills: di luar plugin, folder skill atau file perintah yang namanyaanthropic-skillsatau dimulai dengananthropic-skills:tidak dimuat. Lihat Nama yang dicadangkan untuk synced skills. - File perintah: file Markdown di
.claude/commands/adalah format yang lebih lama dan masih berfungsi. Ini mendukung frontmatter yang sama kecualinamedanpaths. Untuk menemukan nama yang Anda ketik untuk menginvokasinya, lihat Bagaimana skill mendapatkan nama perintahnya. Lebih suka skill untuk pekerjaan baru, karena skills juga mendukung file pendukung. - Folder skill sebagai plugin: tambahkan
.claude-plugin/plugin.jsonke folder skill dan itu dimuat sebagai plugin bernama<name>@skills-dir, sehingga dapat menggabungkan agents, hooks, dan MCP servers. Di.claude/skills/proyek, ini memerlukan penerimaan dialog kepercayaan workspace terlebih dahulu.
Muat skills di monorepos dan subdirektori
Claude Code memuat project skills dari.claude/skills/ di direktori tempat Anda memulainya dan di setiap direktori parent hingga akar repositori, jadi memulai di packages/frontend/ masih mengambil skills yang ditentukan di root. Ketika Anda memindahkan sesi dengan /cd pada v2.1.246 atau lebih baru, Claude Code menambahkan project skills direktori baru.
Dalam sesi yang berjalan di git worktree yang tertaut, Claude Code hanya mencari direktori parent hingga akar worktree. Pada Claude Code v2.1.277 atau lebih baru, ketika checkout worktree tidak memiliki direktori .claude/skills di rootnya, Claude Code memuat project skills checkout utama sebagai gantinya. Lihat Apa yang dibagikan worktrees dengan checkout utama.
Skills di direktori .claude/skills/ di bawah tempat Anda memulai tidak dimuat saat startup. Mereka dimuat pertama kali Claude membaca atau mengedit file di subdirektori itu dan tetap tersedia untuk sisa sesi. Sampai saat itu mereka tidak muncul di menu / dan Anda tidak dapat menginvokasinya berdasarkan nama. Untuk memuatnya lebih cepat, jalankan /add-dir dengan path subdirektori, yang memerlukan Claude Code v2.1.257 atau lebih baru.
Ketika nested skill berbagi nama dengan skill lain, keduanya tetap tersedia. Dengan skill deploy di akar repositori dan skill lain di apps/web/.claude/skills/:
/deploymenjalankan skill root. Claude Code juga mencantumkan varian yang memenuhi syarat direktori untuk Claude, dengan instruksi untuk menginvokasi yang direktorinya menyimpan file yang sedang dikerjakan, sehingga nested skill masih berlaku untuk pekerjaan diapps/web/./apps/web:deploymenjalankan nested skill sendiri. Deskripsinya menamai direktori yang berlaku.
Muat skills dari direktori di luar proyek
Ketika Anda menambahkan direktori dengan--add-dir atau /add-dir, Claude Code memuat skills di .claude/skills/ direktori itu, bersama dengan .claude/commands/ dan .claude/agents/ nya. Direktori yang Agent SDK tambahkan melalui additionalDirectories di TypeScript atau add_dirs di Python memuat dengan cara yang sama, karena SDK meneruskannya sebagai --add-dir. Pengaturan permissions.additionalDirectories di settings.json memberikan akses file saja dan tidak memuat salah satu dari ini.
Claude Code mengawasi .claude/skills/ di direktori yang Anda lewatkan dengan --add-dir saat peluncuran, seperti yang dijelaskan Edit a skill during a session. Itu tidak mengawasi .claude/commands/ atau .claude/agents/ direktori yang ditambahkan, jadi restart sesi setelah mengubah file di sana.
Beban ini bergantung pada setting source project, yang aktif secara default. Kebijakan strictPluginOnlyCustomization, bare mode, dan --safe-mode masing-masing membatasinya lebih lanjut, seperti yang dijelaskan halaman-halaman itu. Lihat Additional directories grant file access, not configuration untuk tabel lengkap apa yang dimuat direktori yang ditambahkan, termasuk CLAUDE.md dan pengaturan plugin.
Selesaikan skills yang berbagi nama
Ketika dua skills berbagi nama, tempat asal masing-masing menentukan yang mana/name jalankan. Untuk nama yang ditetapkan oleh field frontmatter name, lihat Bagaimana skill mendapatkan nama perintahnya. Tabel mencakup lokasi enterprise, personal, project, nested, plugin, dan claude.ai, skills bundel, dan file perintah:
Gunakan skills di sesi Cowork dan cloud
Sesi Cowork dan sesi cloud, termasuk routines, tidak membaca~/.claude/skills/ di mesin Anda. Baik sesi Cowork interaktif maupun terjadwal memuat skills yang diaktifkan untuk akun claude.ai Anda, disinkronkan saat startup sesi; kelola dari Customize di sidebar Desktop app atau dari pengaturan skills di claude.ai. Sesi cloud juga memuat project skills yang di-commit ke .claude/skills/ repositori yang dikloning.
Jika skill hanya ada di ~/.claude/skills/ di mesin Anda, Claude Code melaporkan bahwa skill tidak ditemukan ketika routine menginvokasinya, karena setiap jalankan routine dimulai sebagai sesi cloud segar. Untuk membuat personal skill tersedia di sesi ini:
- Untuk sesi Cowork dan cloud, aktifkan skill untuk akun claude.ai Anda.
- Untuk sesi cloud, Anda dapat sebagai gantinya commit skill ke
.claude/skills/repositori. Plugin yang dideklarasikan di.claude/settings.jsonrepositori dan plugin yang hanya diaktifkan di pengaturan pengguna Anda tidak dimuat di sesi cloud.
~/.claude/skills/.
Skills yang disinkronkan dari claude.ai
Bagian ini berlaku untuk Anda jika Anda menggunakan sesi Cowork atau cloud, atau masuk ke Claude Code di terminal Anda dengan akun claude.ai. Di sesi itu, Claude Code memuat skills yang diaktifkan untuk akun claude.ai Anda, tanpa setup di pihak Anda, seperti yang dijelaskan Tempat synced skills dimuat. Skills itu termasuk yang Anda buat atau aktifkan di pengaturan claude.ai Anda, skills yang disediakan organisasi Anda di sana, dan skills bawaan Anthropic sepertipdf dan xlsx.
Claude Code mengunduh synced skill dari akun Anda daripada membaca file yang Anda tulis di mesin tempat sesi berjalan, jadi itu menerapkan aturan ke synced skills yang tidak berlaku untuk skills yang Anda simpan di lokasi skills.
Tempat synced skills dimuat
Dalam sesi Cowork atau cloud, Claude Code memuat skills yang diaktifkan untuk akun claude.ai Anda, dan Gunakan skills di sesi Cowork dan cloud mengatakan bagaimana memilih skills mana yang sesi itu dapatkan. Di terminal Anda, Claude Code menyinkronkan skills itu di sesi tempat Anda masuk dengan akun claude.ai Anda. Ketika sesi dimulai, Claude Code mengunduh skills akun Anda ke~/.claude/skills/synced/ di latar belakang, kemudian memeriksa claude.ai untuk perubahan sekitar setiap 10 menit saat sesi berjalan. Ketika pemeriksaan menemukan bahwa skill ditambahkan, diedit, atau dimatikan di claude.ai, Claude Code menambah, memperbarui, atau menghapusnya di sesi yang berjalan tanpa restart. Sinkronisasi di sesi terminal memerlukan Claude Code v2.1.273 atau lebih baru.
Sinkronisasi tidak pernah menunda startup, karena Claude menunggu unduhan skill hanya ketika menginvokasinya. Jalankan non-interaktif yang singkat dapat selesai sebelum skill yang baru ditambahkan diunduh, dalam hal ini sesi yang lebih baru mengunduhnya. Untuk membuat jalankan non-interaktif mengunduh skills Anda dan menunggu daftar sebelum menjawab prompt, atur CLAUDE_CODE_SYNC_SKILLS ke 1.
Claude Code hanya menyinkronkan di sesi yang masuk dengan akun claude.ai Anda dan mengambil feature flags dari Anthropic. Itu tidak menyinkronkan di sesi ini:
- Sesi yang tidak menggunakan sign-in yang disimpan oleh
/login, seperti yang mengautentikasi dengan API key, atau yang manaANTHROPIC_AUTH_TOKEN,CLAUDE_CODE_OAUTH_TOKEN, atau skripapiKeyHelpermenyediakan kredensial - Sesi yang tidak mengambil feature flags, seperti yang di Amazon Bedrock atau yang mana Anda atur
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC - Sesi di bare mode atau yang Anda mulai dengan
--safe-mode - Sesi tempat managed settings organisasi Anda mengunci skills ke sumber plugin, atau yang Anda mulai dengan daftar
--setting-sourcesyang meninggalkanuser
/login selama sesi, restart Claude Code untuk mulai menyinkronkan.
Skills yang sesi sebelumnya sinkronkan tetap di disk. Claude Code memuatnya di sesi yang lebih baru yang masuk ke akun yang sama, bahkan ketika tidak dapat menjangkau claude.ai.
Claude Code mengunduh synced skills dan tidak pernah mengunggahnya. Jika Anda atau Claude mengedit file di bawah ~/.claude/skills/synced/, perubahan tidak disimpan ke akun claude.ai Anda, dan sinkronisasi yang lebih baru dapat menimpanya atau menghapusnya. Untuk mengubah synced skill, perbarui di claude.ai; sinkronisasi berikutnya mengunduh versi baru.
Untuk melihat skills mana yang disinkronkan, jalankan /skills. Menu mencantumnya di bawah claude.ai sync.
Beberapa skills Anthropic, seperti pdf dan xlsx, selalu disinkronkan. Untuk sisanya, aktifkan atau matikan skill di pengaturan skills Anda di claude.ai untuk mengubah apakah itu disinkronkan.
Untuk berhenti menyinkronkan di mesin, atur syncClaudeAiSkills ke false di pengaturan pengguna Anda. Claude Code berhenti mengunduh, dan saat berikutnya dimulai itu memindahkan skills 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 berhenti menyinkronkan sambil membiarkan Skills aktif, itu dapat mengatur kunci yang sama di managed settings.
Jika organisasi Anda mematikan Skills di claude.ai, Claude Code menghapus skills yang diunduh dan mereka berhenti dimuat. Skills yang dihapus pindah ke ~/.claude/skills/.trash/, tempat Anda dapat memulihkan file sampai retention sweep menghapusnya. Setelah organisasi Anda menghidupkan Skills kembali, Claude Code mengunduh skills yang Anda aktifkan di sinkronisasi berikutnya.
Ketika nama synced skill cocok dengan perintah lain
Anda dapat menginvokasi synced skill dengan nama lengkapnya,/anthropic-skills:<name>, atau dengan nama pendeknya, /<name>. Ketika perintah lain menggunakan nama pendek itu, /<name> menjalankan perintah lain, dan synced skill berjalan hanya sebagai /anthropic-skills:<name>. Dengan skill deploy lokal dan synced deploy, /deploy menjalankan skill lokal dan /anthropic-skills:deploy menjalankan yang disinkronkan. Sebelum v2.1.269, synced skill hanya memiliki nama pendeknya.
Dalam menu /, /skills, dan /context, synced skill muncul di bawah nama pendeknya, atau di bawah nama lengkapnya sementara perintah lain menggunakan nama pendek. Jalankan /skills di sesi Anda. Catatan di bawah daftar menjelaskan setiap synced skill yang kehilangan nama pendeknya. Jika salah satu personal skills atau file perintah Anda di ~/.claude/ menggunakan nama itu, catatan juga mengatakan apa yang harus diubah nama atau dihapus untuk membebaskannya.
Dari v2.1.269 hingga v2.1.280, daftar ini menunjukkan setiap synced skill di bawah nama lengkapnya, dan /skills tidak memiliki catatan seperti itu; keduanya berubah di v2.1.281.
Perintah yang menggunakan nama pendek dapat berupa salah satu dari ini:
- Perintah bawaan atau bundled skill, termasuk yang tidak tersedia di sesi Anda, misalnya setelah Anda mematikan bundled skills
- Skill di level lokal apa pun atau file di
.claude/commands/ - Plugin skill
- MCP prompt
/skills dan /context mengelompokkan synced skills di bawah claude.ai sync, dan menu perintah / menandainya sebagai berasal dari claude.ai.
Ketika membandingkan nama, Claude Code mengabaikan huruf besar-kecil, spasi, dan karakter tak terlihat, dan memperlakukan bentuk kompatibilitas seperti huruf lebar dan varian dash sebagai padanan polosnya. Misalnya, synced skill bernama Commit dan skill lokal bernama commit dihitung sebagai nama yang sama, jadi /commit terus menjalankan skill lokal Anda.
Nama yang berbeda hanya dengan 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 lebih baru.
Nama yang dicadangkan untuk synced skills
Claude Code mencadangkan namaanthropic-skills, dan setiap nama di dalam namespace itu seperti anthropic-skills:pdf, untuk skills yang disinkronkan dari claude.ai, jadi nama lengkap synced skill tidak pernah menjalankan apa pun yang lain. Nama dicadangkan di setiap sesi, apakah atau tidak Anda masuk dengan akun claude.ai.
- Folder skill, frontmatter
name, file atau subfolder di.claude/commands/, atau saved workflow: itu tidak dimuat. Startup notice menamai item pertama untuk diubah nama atau diedit. - Plugin bernama
anthropic-skills: itu dimuat. Ketika salah satu skillnya dan synced skill keduanya bernama<name>,/anthropic-skills:<name>menjalankan synced skill. - MCP server bernama
anthropic-skills: itu terhubung dan toolsnya bekerja, tetapi promptsnya tidak muncul sebagai perintah. Ubah nama server di konfigurasi MCP Anda untuk mencantumnya.
Bagaimana Claude Code menangani frontmatter dari synced skill
Claude Code menerapkan dua aturan ke frontmatter synced skill:- Claude Code menghormati frontmatter di setiap jenis sesi, jadi hibah
allowed-toolsmelalui permission flow normal. - Claude Code membersihkan teks tampilan yang disediakan skill, seperti deskripsinya. Itu menghapus karakter kontrol, dan dalam teks yang mencapai Claude, seperti deskripsi, itu juga menghindari tanda kurung sudut sehingga teks tidak dapat meniru pemformatan internal Claude Code. Pembersihan ini memerlukan Claude Code v2.1.228 atau lebih baru.
Bagaimana Claude Code menangani body dari synced skill
Apa yang Claude Code lakukan dengan body synced skill bergantung pada tempat sesi berjalan:- Dalam sesi cloud, body mempertahankan perilaku yang dimiliki skill lokal, karena sesi berjalan dalam kontainer terisolasi.
- Dalam sesi Cowork di desktop Anda, body mempertahankan perilaku yang dimiliki skill lokal, kecuali Claude Code menggantikan setiap baris perintah
!dengan placeholderdisableSkillShellExecution, seperti yang dilakukannya untuk setiap skill yang Anda sediakan di sana. - Dalam sesi lain di mesin Anda, Claude Code tidak menjalankan perintah
!, tidak melampirkan file yang referensi@beri nama dengan cara yang dilakukannya untuk skill lokal, dan tidak mengganti placeholder${CLAUDE_PROJECT_DIR}dan${CLAUDE_SESSION_ID}, jadi referensi@dan kedua placeholder mencapai Claude sebagai teks literal. Baris perintah!mencapai Claude sebagai teks literal juga, atau sebagai placeholder itu ketikadisableSkillShellExecutionaktif. Penanganan ini memerlukan Claude Code v2.1.228 atau lebih baru.
Edit skill selama sesi
Claude Code mengawasi direktori skill untuk perubahan file, kecuali di bare mode. Ketika Anda menambah, mengedit, atau menghapus skill di bawah~/.claude/skills/, project .claude/skills/, atau .claude/skills/ di dalam direktori --add-dir, Claude Code mengambil perubahan dalam sesi saat ini, tanpa restart.
Jika Anda membuat direktori skills tingkat atas yang tidak ada ketika sesi dimulai, jalankan /reload-skills untuk mengambil skills yang Anda letakkan di sana. Claude Code tidak mengawasi direktori itu lagi, jadi jalankan /reload-skills lagi setelah setiap perubahan di sana nanti.
Live change detection mencakup teks SKILL.md saja. Untuk folder skill yang juga merupakan plugin, perubahan ke hooks/, .mcp.json, agents/, dan output-styles/ memerlukan /reload-plugins untuk berlaku.
Hapus skill
Bagaimana Anda menghapus skill bergantung pada dari mana asalnya:- Personal atau project skill: hapus direktori skill,
~/.claude/skills/<skill-name>/atau.claude/skills/<skill-name>/. Claude Code menjatuhkannya dari/skillsdi sesi saat ini; konten yang sudah dimuat Claude Code darinya mengikuti skill content lifecycle. - Enterprise skill: administrator menghapus direktori skill dari
.claude/skills/di dalam direktori managed settings, misalnya/etc/claude-code/.claude/skills/<skill-name>/di Linux. - Plugin skill: nonaktifkan atau uninstall plugin yang menyediakannya, dari menu
/pluginatau dengan/plugin uninstall <plugin-name>@<marketplace-name>. Claude Code membongkar skills plugin ketika perubahan berlaku atau ketika Anda restart. - Skill yang disinkronkan dari claude.ai: matikan skill untuk akun claude.ai Anda, di tempat yang sama Anda mengaktifkannya. Claude Code menghapusnya dari
~/.claude/skills/synced/saat berikutnya menyinkronkan skills Anda. Jika Anda menghapus direktori dengan tangan sebagai gantinya, sinkronisasi berikutnya mengunduhnya lagi sementara skill tetap diaktifkan di claude.ai. - Bundled skill: atur
disableBundledSkillsketrueuntuk mematikan bundled skills, atau atur satu skill ke"off"diskillOverridesuntuk menyembunyikannya.
disable-model-invocation: true di frontmatter-nya, atau "user-invocable-only" di skillOverrides ketika Anda tidak ingin mengedit file.
Konfigurasi skills
Skills dikonfigurasi melalui frontmatter YAML di bagian atasSKILL.md dan konten markdown yang mengikutinya.
Jenis konten skill
File skill dapat berisi instruksi apa pun, tetapi memikirkan tentang cara Anda ingin menginvokasinya membantu memandu apa yang harus disertakan: Konten referensi menambahkan pengetahuan yang Claude terapkan pada pekerjaan Anda saat ini. Konvensi, pola, panduan gaya, pengetahuan domain. Konten ini berjalan inline sehingga Claude dapat menggunakannya bersama konteks percakapan Anda./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-nya sendiri; lihat Jalankan skills dalam subagent.
Referensi frontmatter
Konfigurasi skill dengan YAML frontmatter antara penanda--- di bagian atas SKILL.md, dan tulis instruksi skill sebagai Markdown setelah penutup ---. Nama bidang menggunakan kata-kata huruf kecil yang dipisahkan dengan tanda hubung, kecuali when_to_use. File command di .claude/commands/ menerima bidang yang sama kecuali name dan paths. Contoh ini menetapkan empat bidang:
description yang direkomendasikan sehingga Claude tahu kapan harus menggunakan skill. Nama bidang harus cocok dengan tabel dengan tepat, tanda hubung disertakan: Claude Code mengabaikan bidang yang tidak dikenalinya tanpa melaporkan kesalahan.
Claude Code membaca frontmatter hanya ketika pembukaan --- adalah baris pertama file. Jika tidak, itu memperlakukan seluruh file, penanda --- disertakan, sebagai konten skill. Jika YAML antara penanda tidak diuraikan, skill masih dimuat tanpa bidang yang ditetapkan; lihat Skill tidak memicu untuk menemukan dan memperbaiki kesalahan.
Bidang Boolean menerima yes, no, on, off, 1, dan 0 dalam huruf apa pun, selain true dan false. Sebelum v2.1.218, Claude Code hanya mengenali true dan false.
Menggunakan skill frontmatter di luar Claude Code
Claude Code menerima setiap bidang dalam tabel di atas. Di luar Claude Code, Anda hanya dapat menggunakan bidang dalam spesifikasi Agent Skills:
Ketika Anda mengaktifkan skill pribadi untuk akun claude.ai Anda, misalnya untuk menggunakannya dalam sesi Cowork dan cloud dan rutinitas, Anda mengunggahnya ke claude.ai, jadi aturan yang sama berlaku.
Jika Anda menyertakan bidang apa pun yang tidak diizinkan oleh spesifikasi, pengemasan atau unggahan gagal dengan kesalahan keras daripada mengabaikan bidang:
Bagaimana skill mendapatkan nama perintahnya
Perintah yang Anda ketik untuk menginvokasi skill berasal dari tempat file skill berada dan, untuk direktori skill dan plugin skills, dari bidang frontmattername. Dalam skill pribadi atau proyek, name menetapkan perintah yang ditampilkan menu / dan yang Anda ketik, kecuali perintah lain sudah menggunakan nama itu. Nama direktori juga menginvokasi skill. Dalam plugin skill, name menetapkan segmen terakhir dari perintah dan awalan plugin tetap ada.
Tabel di bawah menunjukkan dari mana nama perintah berasal untuk setiap tata letak:
Dalam skill plugin, frontmatter
name menggantikan nama direktori dalam segmen terakhir perintah, jadi my-plugin/skills/review/SKILL.md dengan name: fancy menjadi /my-plugin:fancy. Perintah bare /fancy juga menginvokasi skill kecuali perintah lain sudah menggunakan nama itu. Jika name yang Anda tulis sudah dimulai dengan awalan plugin itu sendiri, Claude Code tidak menambahkan awalan lagi pada v2.1.246 atau lebih baru. Misalnya, name: my-plugin:fancy masih menjadi /my-plugin:fancy. Dari v2.1.216 hingga v2.1.245, Claude Code menggandakan awalan ketika name sudah membawanya.
Dalam sesi non-interaktif, nama help dan feedback tidak dicadangkan untuk perintah bawaan khusus terminal mereka, jadi skill plugin dengan salah satu nama tersebut menyimpan perintah bare-nya di sana. Setiap terminal-only built-in lainnya, seperti /login, tetap dicadangkan meskipun perintah tidak dapat dijalankan dalam sesi tersebut.
Untuk SKILL.md akar plugin, tidak ada direktori skill untuk mengambil nama darinya, jadi name menyediakan seluruh segmen terakhir. Tanpa bidang name, Claude Code kembali ke nama direktori plugin.
Substitusi string yang tersedia
Skills mendukung substitusi string untuk nilai dinamis dalam konten skill:
Claude Code menggantikan
${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 menggantikan ${CLAUDE_PLUGIN_ROOT} dan ${CLAUDE_PLUGIN_DATA} di tempat yang sama. Menggunakan variabel yang sama di kedua tempat memungkinkan skill menjalankan skrip bundel tanpa prompt izin. Skill berikut menunjukkan polanya:
~/.claude/skills/render-chart/, kedua kemunculan ${CLAUDE_SKILL_DIR} berkembang ke direktori itu. Aturan allowed-tools kemudian cocok dengan perintah yang tepat yang diberitahu skill body kepada Claude untuk dijalankan, jadi skrip berjalan tanpa meminta.
Substitusi ${CLAUDE_PROJECT_DIR} memerlukan Claude Code v2.1.196 atau lebih baru.
Argumen yang diindeks menggunakan kutipan gaya shell, jadi bungkus nilai multi-kata dalam tanda kutip untuk meneruskannya sebagai argumen tunggal. Misalnya, /my-skill "hello world" second membuat $0 berkembang menjadi hello world dan $1 menjadi second. Placeholder $ARGUMENTS selalu berkembang ke string argumen lengkap seperti yang diketik.
Placeholder yang diindeks tanpa argumen yang sesuai, seperti $2 ketika hanya satu argumen yang diteruskan, tetap dalam konten tidak berubah. Placeholder bernama dari frontmatter arguments tanpa argumen yang cocok berkembang menjadi string kosong.
Jika Anda meneruskan nilai argumen yang sendiri 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 masih menggantikan variabel ${CLAUDE_*} seperti ${CLAUDE_SKILL_DIR} setelah menyisipkan argumen.
Untuk menyertakan literal $ sebelum digit, ARGUMENTS, atau nama argumen yang dideklarasikan, seperti $1.00 dalam prosa, lepaskan dengan garis miring terbalik: \$1.00. Garis miring terbalik sebelum $ lainnya dibiarkan tidak berubah. Hanya satu garis miring terbalik langsung sebelum token yang melepaskan. Garis miring terbalik ganda seperti \\$1 meninggalkan kedua garis miring terbalik di tempat, dan $1 masih berkembang ke nilai argumen. Pelarian garis miring terbalik hanya mencakup placeholder argumen ini. Garis miring terbalik tidak mencegah substitusi variabel ${CLAUDE_*} di mana variabel berlaku.
Contoh menggunakan substitusi:
Tambahkan file pendukung
Skills dapat mencakup beberapa file dalam direktorinya. Ini membuatSKILL.md fokus pada hal-hal penting sambil membiarkan Claude mengakses materi referensi terperinci hanya saat diperlukan. Dokumen referensi besar, spesifikasi API, atau koleksi contoh tidak perlu dimuat ke dalam konteks setiap kali skill berjalan.
SKILL.md sehingga Claude tahu apa yang berisi setiap file dan kapan memuatnya:
Kontrol siapa yang menginvokasi skill
Secara default, baik Anda maupun Claude dapat menginvokasi skill apa pun. Anda dapat mengetik/skill-name untuk menginvokasinya secara langsung, dan Claude dapat memuatnya secara otomatis ketika relevan dengan percakapan Anda. Dua bidang frontmatter memungkinkan Anda membatasi ini:
-
disable-model-invocation: true: Hanya Anda yang dapat menginvokasi skill. Gunakan ini untuk alur kerja dengan efek samping atau yang ingin Anda kontrol waktunya, seperti/commit,/deploy, atau/send-slack-message. Anda tidak ingin Claude memutuskan untuk deploy karena kode Anda terlihat siap. -
user-invocable: false: Hanya Claude yang dapat menginvokasi skill. Gunakan ini untuk pengetahuan latar belakang yang tidak dapat ditindaklanjuti sebagai perintah. Skilllegacy-system-contextmenjelaskan cara kerja sistem lama. Claude harus tahu ini ketika relevan, tetapi/legacy-system-contextbukan tindakan yang bermakna bagi pengguna untuk diambil.
disable-model-invocation: true, Claude tidak dapat menjalankan skill secara otomatis:
/deploy sendiri.
Berikut adalah bagaimana dua bidang mempengaruhi invokasi dan pemuatan konteks:
Dalam sesi reguler, deskripsi skill dimuat ke dalam konteks sehingga Claude tahu apa yang tersedia, tetapi konten skill penuh hanya dimuat saat diinvokasi. Subagents dengan skill yang dimuat sebelumnya bekerja berbeda: konten skill penuh disuntikkan saat startup.
Siklus hidup konten skill
Ketika Anda atau Claude menginvokasi skill, kontenSKILL.md yang dirender memasuki percakapan sebagai pesan tunggal dan tetap ada di seluruh giliran kemudian. Persistensi ini berlaku untuk instruksi skill, bukan izinnya: hibah allowed-tools dihapus ketika Anda mengirim pesan berikutnya. Claude Code tidak membaca ulang file skill pada giliran kemudian, jadi tulis panduan yang harus berlaku sepanjang tugas sebagai instruksi berdiri daripada langkah sekali jalan.
Ketika Claude menginvokasi ulang skill yang konten yang dirender identik dengan salinan yang sudah ada dalam konteks, Claude Code menambahkan catatan singkat bahwa skill sudah dimuat daripada salinan kedua konten. Ketika konten yang dirender berbeda, karena argumen berubah atau perintah konteks dinamis menghasilkan output baru, Claude Code menambahkan konten penuh lagi.
Auto-compaction membawa skill yang diinvokasi maju dalam anggaran token. Ketika percakapan diringkas untuk membebaskan konteks, Claude Code melampirkan kembali invokasi paling baru dari setiap skill setelah ringkasan, menyimpan 5.000 token pertama dari masing-masing. Skill yang dilampirkan kembali berbagi anggaran gabungan 25.000 token. Claude Code mengisi anggaran ini mulai dari skill yang paling baru diinvokasi, jadi skill yang lebih lama dapat dijatuhkan sepenuhnya setelah compaction jika Anda telah menginvokasi banyak dalam satu sesi.
Jika skill tampak berhenti mempengaruhi perilaku setelah respons pertama, konten biasanya masih ada dan model memilih alat atau pendekatan lain. Perkuat deskripsi skill dan instruksi sehingga model terus menyukainya, atau gunakan hooks untuk menegakkan perilaku secara deterministik. Jika skill besar atau Anda menginvokasi beberapa skill lain setelahnya, reinvokasi setelah compaction untuk mengembalikan konten penuh.
Pra-setujui tools untuk skill
Bidangallowed-tools memberikan izin untuk tools yang terdaftar selama giliran yang menginvokasi skill, sehingga Claude dapat menggunakannya tanpa meminta persetujuan Anda. Hibah dihapus ketika Anda mengirim pesan berikutnya, meskipun konten skill tetap dalam konteks; menginvokasi skill lagi menerapkannya kembali untuk giliran itu. Ini tidak membatasi tools mana yang tersedia: setiap tool tetap dapat dipanggil, dan pengaturan izin Anda masih mengatur tools yang tidak terdaftar. Untuk pra-setujui tools untuk seluruh sesi daripada satu giliran, tambahkan aturan izin ke pengaturan izin tersebut.
Kepercayaan workspace tidak membatasi bidang ini. Claude Code menerapkan allowed-tools skill proyek kapan pun Anda atau Claude menginvokasi skill, termasuk dalam jalankan -p dalam folder yang belum pernah Anda percayai. Skill dapat memberikan dirinya akses tool yang luas, jadi tinjau allowed-tools skill yang diperiksa ke dalam repositori sebelum Anda menjalankan Claude Code di sana.
Skill ini memungkinkan Claude menjalankan perintah git tanpa persetujuan per-penggunaan kapan pun Anda menginvokasinya:
disallowed-tools dalam frontmatter skill. Pembatasan dihapus ketika Anda mengirim pesan berikutnya. Seperti aturan deny, bidang tidak dapat menghapus EndConversation saat tool lain tetap ada. Untuk memblokir tools di semua skills dan prompts, tambahkan aturan deny dalam pengaturan izin Anda.
Teruskan argumen ke skills
Baik Anda maupun Claude dapat meneruskan argumen saat menginvokasi skill. Argumen tersedia melalui placeholder$ARGUMENTS.
Skill ini memperbaiki masalah GitHub berdasarkan nomor. Placeholder $ARGUMENTS diganti dengan apa pun yang mengikuti nama skill:
/fix-issue 123, Claude menerima โFix GitHub issue 123 following our coding standardsโฆโ
Jika Anda menginvokasi skill dengan argumen tetapi tidak ada placeholder dalam konten skill yang menerima satu, Claude Code menambahkan ARGUMENTS: <your input> ke akhir konten skill sehingga Claude masih melihat apa yang Anda ketik. Placeholder adalah $ARGUMENTS, bentuk yang diindeks seperti $1, atau argumen bernama. Placeholder yang diindeks tanpa argumen pada posisinya tetap sebagai teks literal dan tidak dihitung sebagai menerima satu. Placeholder bernama dihitung bahkan ketika posisinya tidak memiliki argumen, karena berkembang menjadi string kosong.
Anda juga dapat menumpuk beberapa skills di awal satu pesan. Mengetik /write-tests /fix-issue 123 memuat kedua skills dan meneruskan teks trailing 123 sebagai $ARGUMENTS ke masing-masing. Sebelum v2.1.199, hanya skill pertama yang dimuat dan menerima /fix-issue 123 sebagai teks argumen literal.
Claude Code memperluas skill pertama ditambah hingga lima lagi yang ditumpuk setelahnya. Ekspansi berhenti pada token pertama yang bukan skill yang dapat diinvokasi pengguna inline, jadi skill yang berjalan sebagai subagent yang bercabang, seperti /code-review, atau yang argumennya sendiri mungkin dimulai dengan perintah slash, seperti /loop, juga berakhir di sana. Token itu dan segalanya setelahnya menjadi teks argumen untuk setiap skill yang diperluas. /code-review berjalan sebagai subagent yang bercabang dari v2.1.218; pada versi sebelumnya itu berjalan inline dan ditumpuk.
Untuk mengakses argumen individual berdasarkan posisi, gunakan $ARGUMENTS[N] atau yang lebih pendek $N:
/migrate-component SearchBar JavaScript TypeScript menggantikan $ARGUMENTS[0] dengan SearchBar, $ARGUMENTS[1] dengan JavaScript, dan $ARGUMENTS[2] dengan TypeScript. Skill yang sama menggunakan shorthand $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:
!`<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:
"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.
Bagaimana perintah yang diinjeksi berjalan
Claude Code memilih alat yang menjalankan perintah yang diinjeksi skill dari kuncishell 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: bashketika bash tidak tersedia: invokasi gagal sebelum perintah apa pun berjalan. Ini terjadi di Windows tanpa Git Bash. Claude Code menampilkanSkill <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.
- 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
bashdefault, 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.
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 menampilkanShell 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
bashdefault: perintah yang tercantum di bawah Output limits shell: powershell, ketika alat PowerShell diaktifkan: set berbeda yang mencakupgrepdangit difftetapi bukanfindataudiff
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.
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 denganShell command permission check failed for pattern "...".
Di luar mode auto, 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. Aturan deny dan ask masih mengganti 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
Tambahkancontext: 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.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
-patau Agent SDK - Ketika Anda menetapkan
CLAUDE_CODE_DISABLE_BACKGROUND_TASKSke1, 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
background: false untuk menjaga set alat penuh.
Skill yang di-fork yang berjalan di latar belakang menerapkan editnya di luar checkpoints sesi Anda, jadi /rewind tidak membatalkannya; gunakan git untuk mengembalikannya.
Skills dan subagents bekerja bersama dalam dua arah:
Dengan
context: fork, Anda menulis tugas dalam skill Anda dan memilih tipe agen untuk menjalankannya. Agen Explore dan Plan bawaan melewati CLAUDE.md dan status git untuk menjaga konteks mereka tetap kecil, jadi skill yang di-fork menggunakan agent: Explore hanya melihat konten SKILL.md dan prompt sistem agen sendiri. 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:- Konteks terisolasi baru dibuat
- Subagent menerima konten skill sebagai promptnya (instruksi โResearch $ARGUMENTS thoroughlyโ)
- Field
agentmenentukan lingkungan eksekusi (model, alat, dan izin) - Subagent merangkum hasilnya dan mengembalikannya ke percakapan utama Anda ketika selesai
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 memilikidisable-model-invocation: true yang ditetapkan. Skills yang mendefinisikan allowed-tools memberikan Claude akses ke alat 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 alat lainnya. Beberapa perintah bawaan juga tersedia melalui alat 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:
Skill(name) untuk kecocokan tepat, Skill(name *) untuk kecocokan awalan dengan argumen apa pun. Dalam aturan allow, awalan di luar namespace yang dicadangkan untuk skills yang disinkronkan tidak cocok dengan nama di dalamnya: Skill(anthropic *) tidak mencakup anthropic-skills:pdf.
Jika aturan deny Anda menamai alias atau nama yang tidak memenuhi syarat daripada nama skill itu sendiri, Claude Code masih memblokir skill: dengan Skill(review) itu memblokir bundel /code-review melalui alias /review-nya, dan dengan Skill(deploy) itu memblokir skill bersarang yang terdaftar sebagai apps/web:deploy melalui nama yang tidak memenuhi syaratnya. 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, dan Skill(anthropic-skills *) menyetujui setiap skill yang disinkronkan.
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
PengaturanskillOverrides 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.
Sejak v2.1.199, "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 masih 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:
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 dua hal 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. Dua alat mengotomatisasi perbandingan itu. 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
Pluginskill-creator mengotomatisasi loop perbandingan di dalam Claude Code. Instal dari marketplace resmi:
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.
Run /reload-plugins to activate., 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.jsondi 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.jsonsehingga 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
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:~/.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:
~/.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
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:- Periksa deskripsi mencakup kata kunci yang akan secara alami diucapkan pengguna
- Verifikasi skill muncul di
What skills are available? - Coba rephrase permintaan Anda untuk lebih cocok dengan deskripsi
- Panggil secara langsung dengan
/skill-namejika skill dapat diinvokasi oleh pengguna
/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:- Buat deskripsi lebih spesifik
- Tambahkan
disable-model-invocation: truejika Anda hanya menginginkan invokasi manual
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.
Sumber daya terkait
- Debug konfigurasi Anda: diagnosis mengapa skill tidak muncul atau tidak terpicu
- Mengevaluasi kualitas output skill: format file eval dan alur kerja iterasi di agentskills.io
- Praktik terbaik penulisan skill: panduan penulisan yang berlaku di seluruh produk Claude
- Subagents: delegasikan tugas ke agen khusus
- Plugins: paket dan distribusikan skills dengan ekstensi lainnya
- Hooks: otomatisasi workflow di sekitar peristiwa tool
- Memory: kelola file CLAUDE.md untuk konteks persisten
- Commands: referensi untuk perintah bawaan dan skills bundel
- Permissions: kontrol akses tool dan skill
- Claude Tag skills: project skills yang di-commit ke repo juga dimuat ketika repo tersebut digunakan di saluran Claude Tag