Cara Berbagi Skill Agent Antar-Repo Tanpa Drift
Salin skill ke delapan repo membuat isinya drift. Kelola skill seperti dependensi: gunakan satu repo bersama, lalu kunci dan tinjau versi di tiap project.
Cara berbagi skill agent di berbagai repo
Untuk berbagi skill agent di berbagai repo, jangan lagi menyalin file. Jadikan file tersebut dependensi. Simpan satu repository skill, buat tag untuknya, lalu biarkan setiap project mengunci penggunaan pada tag tertentu. Setelah itu, tambahkan smoke test untuk setiap skill, dan tinjau setiap pembaruan dengan cara yang sama seperti meninjau pembaruan dependensi.
Ada empat bagian: sumber kebenaran bersama, versi yang dikunci untuk setiap repository, smoke test untuk setiap skill, dan jalur review. Semua bagian di bawah ini menjelaskan alasan setiap bagian diperlukan, cara tools yang dirilis pada 2026 menanganinya, serta cara membangun seluruhnya pada git remote yang di-host sendiri tanpa melibatkan service eksternal.
Skill agent adalah folder yang berisi file SKILL.md, serta script dan file referensi yang diperlukan. Jika unit tersebut masih baru, baca apa itu skill agent dan cara kerja SKILL.md terlebih dahulu. Halaman ini membahas supply chain di sekitar unit tersebut.
Lokasi skill dan alasan sulitnya berbagi
Claude Code memuat skill dari tiga tempat, dan dokumentasi skill mencantumkan setiap path.
~/.claude/skills/<skill-name>/SKILL.mdbersifat personal. Skill dimuat di semua project Anda dan tidak dimuat di project milik orang lain..claude/skills/<skill-name>/SKILL.mdberada pada level project. Skill dimuat untuk siapa pun yang melakukan checkout terhadap repository tersebut.<plugin>/skills/<skill-name>/SKILL.mddisertakan di dalam plugin. Skill dimuat di mana pun plugin tersebut diaktifkan.
Lokasi kedua paling berguna bagi tim karena file tersebut di-commit dan setiap orang yang melakukan clone terhadap repository akan mendapatkannya. Di sinilah masalah mulai muncul. Skill di .claude/skills/ dimiliki oleh satu repository. Anda memiliki delapan repository. Jadi, skill tersebut disalin delapan kali.
Frontmatter tidak membantu. Spesifikasi Agent Skills mengizinkan enam key, dan path distribusi yang memberlakukannya akan menampilkan daftar tersebut jika Anda menggunakan key lain:
Unexpected key(s) in SKILL.md frontmatter: argument-hint. Allowed properties are: allowed-tools, compatibility, description, license, metadata, namePerhatikan hal yang tidak ada: tidak ada key version. Tidak ada informasi di dalam file yang mencatat salinan mana yang lebih baru. Hal ini wajar karena skill adalah dokumen, bukan package. Namun, versioning harus berasal dari layer di sekitar file tersebut, dan layer itu menjadi tanggung jawab Anda.
Masalah pertama: delapan salinan yang perlahan tidak lagi sama
Salin-tempel berfungsi pada hari pertama. Pada hari keenam puluh, cara ini gagal. Seseorang memperbaiki instruksi yang salah di repo payments, tetapi tidak memperbarui tujuh salinan lainnya. Orang lain menambahkan aturan tentang pagination di orders. Sekarang, nama skill yang sama menghasilkan review yang berbeda, bergantung pada direktori tempat agent dijalankan, dan tidak ada developer yang menyadarinya.
Kegagalan ini tidak terlihat karena tidak ada status error. Skill berisi prosa. Instruksi yang sudah usang menghasilkan jawaban yang meyakinkan tetapi salah, dan jenis kesalahan inilah yang paling mahal. Agent tidak membandingkan salinan Anda dengan salinan orang lain. Satu-satunya sinyal adalah ketika seseorang menyadari bahwa dua repo tidak lagi sama.
Masalah kedua: tidak ada versi yang dikunci
Bahkan ketika tim menyimpan skill di satu tempat, metode berbagi yang umum adalah langkah penyalinan: skrip setup, baris curl dalam dokumen onboarding, atau shell alias yang menyinkronkan sebuah folder. Semua metode tersebut memasang apa pun yang saat ini berada di ujung branch.
Artinya, dua developer yang menggunakan commit yang sama dari aplikasi yang sama dapat menjalankan instruksi yang berbeda karena mereka melakukan sinkronisasi pada hari yang berbeda. Artinya juga, Anda tidak dapat menjawab pertanyaan penting setelah agent menjalankan tugas dengan buruk: versi skill mana yang menghasilkan ini? Tanpa revisi yang tercatat, proses tersebut tidak dapat direproduksi sehingga laporan bug tidak dapat ditindaklanjuti.
Masalah ketiga: tidak ada yang tahu bahwa skill tersebut masih berfungsi
Skill tidak memiliki compiler. Skill berisi instruksi untuk model, sehingga dapat berhenti berfungsi meskipun isi file tetap identik byte demi byte. Upgrade model dapat mengubah tingkat kepatuhan terhadap instruksi yang panjang. Command-line tool yang dipanggil skill dapat mengganti nama flag. URL dalam file referensi dapat mulai mengembalikan 404, lalu agent bekerja berdasarkan halaman error tersebut.
Tidak satu pun dari kasus itu menimbulkan kegagalan yang terlihat jelas. Agent tetap memberikan jawaban. Namun, kualitas jawabannya lebih buruk daripada bulan lalu, dan perubahan seperti ini sulit diketahui jika diperiksa satu pull request demi satu.
Solusi yang disediakan oleh tools pada 2026
Beberapa solusi saat ini mulai tersedia, tetapi pendekatannya berbeda dalam menentukan lokasi versi.
Lockfile. Tool command line skills dari Vercel Labs (vercel-labs/skills, berlisensi MIT, v1.5.22 per 5 Agustus 2026) menginstal skills dari git repository ke direktori yang diharapkan oleh agent Anda, dan memahami struktur untuk lebih dari tujuh puluh agent. npx skills add <repo> menginstal, npx skills update memperbarui, dan npx skills list menampilkan skills yang tersedia. Catatan tentang instalasi disimpan satu kali per user, bukan satu kali per repository. Permintaan terbuka pada project tersebut (issue 283) mengusulkan command skills install yang menginstal ulang setiap skill yang tercatat dalam lockfile agar mesin kedua memiliki set yang sama. Anggap permintaan tersebut sebagai laporan status. Gagasan lockfile sudah ditetapkan. Dukungan per-project masih dalam pengembangan.
Spesifikasi dan pengujian. SkillSpec menggunakan pendekatan yang berbeda. Tool ini memperlakukan SKILL.md sebagai kontrak yang harus diperiksa, bukan prosa yang cukup dipercaya, dengan tujuan membuat skills "dapat diikuti, diuji, dan dibuktikan". skillspec doctor <path> melaporkan bagian tempat agent kemungkinan besar kehilangan konteks. skillspec boundary map <path> melaporkan sumber daya yang dapat dijangkau oleh skill, dan skillspec boundary assess <path> mengurutkan temuan tersebut berdasarkan risiko. Tool ini adalah Rust crate, berlisensi ganda MIT atau Apache 2.0, pada versi 0.2.2 per 29 Juli 2026. Instal versi yang ditetapkan, bukan versi terbaru:
cargo install skillspec --version 0.2.2 --locked
skillspec --version--locked melakukan build menggunakan versi dependency yang digunakan saat crate tersebut dipublikasikan, sehingga build tidak berubah tanpa Anda sadari. skillspec --version seharusnya mencetak 0.2.2. Angka yang berbeda berarti binary yang lebih lama pada PATH Anda sedang digunakan.
Praktik vendor. Google menjelaskan cara membangun skills di google/skills melalui tulisan tentang cara membangun, menguji, dan menskalakan agent skills. Jika aspek skalanya diabaikan, mekanismenya adalah continuous integration (CI) biasa. Setiap skill melewati linter untuk metadata frontmatter, jumlah baris, struktur direktori, dan penamaan sebelum di-merge. Link checker menggagalkan build jika ada URL yang mengembalikan 404. Pemeriksaan ini mendeteksi link yang tampak valid tetapi dibuat oleh agent. Author harus menyediakan rangkaian prompt evaluasi dan rubrik penilaian bersama skill. Job evaluasi terjadwal kemudian dijalankan setiap minggu terhadap seluruh library untuk mendeteksi regresi. Setiap skill juga memiliki owner yang ditetapkan dan diharapkan memperbaikinya ketika kualitas menurun.
Pola yang mendasari ketiga jawaban
Anda tidak harus memilih salah satu dari ketiganya. Di balik ketiganya terdapat satu pola, dan git biasa menyediakan semua yang Anda perlukan.
- Satu sumber kebenaran. Skill memiliki tepat satu lokasi, dan setiap repository merujuk ke lokasi tersebut tanpa menyimpan salinannya.
- Versi yang ditetapkan untuk setiap repository. Setiap proyek mencatat revisi persis yang digunakannya, sehingga upgrade menjadi sebuah commit dalam proyek tersebut, lengkap dengan author dan tanggal.
- Smoke test untuk setiap skill. Satu pemeriksaan yang dapat dijalankan untuk membuktikan bahwa skill tersebut masih menghasilkan hasil yang dijanjikan.
- Jalur review. Perubahan pada skill bersama harus melalui review, dan setiap konsumen dapat melihat diff sebelum menerapkannya.
Itulah pola sebuah dependency. Skill menjadi artefak bersama lebih cepat daripada perkembangan tooling di sekitarnya, sehingga tooling yang sudah Anda percayai menjadi pilihan paling aman.
Tata letak untuk tim kecil pada remote git yang di-host sendiri
Satu repositori menyimpan skills. Tidak ada hal lain di dalamnya, sehingga riwayatnya berfungsi sebagai changelog instruksi.
agent-skills/
skills/
api-review/
SKILL.md
release-notes/
SKILL.md
tests/
api-review.sh
release-notes.sh
CHANGELOG.mdRilis direpresentasikan sebagai tag. Gunakan annotated tag karena tag tersebut menyertakan pesan dan tanggal. Tulis pesan berdasarkan alasan konsumen memerlukan pembaruan tersebut:
git tag -a v1.4.0 -m "api-review: require pagination on list endpoints"
git push origin v1.4.0Jika remote Anda adalah Gitea, Forgejo, GitLab, atau bare repository melalui SSH pada VPS milik Anda sendiri, tidak ada bagian berikutnya yang berubah. Semua yang digunakan di sini hanyalah git dan sebuah symlink.
Pinning dengan git submodule
Submodule mencatat satu commit tertentu dari repository lain di dalam repository Anda. Catatan tersebut adalah pin. Pada setiap project yang menggunakannya:
git submodule add https://git.example.com/team/agent-skills.git vendor/agent-skills
git -C vendor/agent-skills fetch --tags
git -C vendor/agent-skills checkout v1.4.0
mkdir -p .claude/skills
ln -s ../../vendor/agent-skills/skills/api-review .claude/skills/api-review
git add .gitmodules vendor/agent-skills .claude/skills/api-review
git commit -m "Pin shared agent skills to v1.4.0"Symlink adalah bagian yang membuat cara ini berfungsi. Entri skill pada level project dapat berupa symlink ke direktori lain di disk, dan Claude Code mengikutinya lalu membaca SKILL.md dari target tersebut. Dengan demikian, skill dimuat sebagai skill project biasa, sedangkan byte-nya berada di submodule pada commit yang Anda pilih.
Periksa pin:
git submodule statusBaris yang benar diawali spasi, lalu commit, path, dan tag terdekat:
4d1a7c2f0b93e5a1c8d6f2b40e7a95c3d1f8b602 vendor/agent-skills (v1.4.0)Awalan - berarti submodule belum pernah diinisialisasi, sehingga .claude/skills/api-review mengarah ke sesuatu yang tidak ada dan skill tidak dimuat tanpa pesan. Perbaiki dengan git submodule update --init. Awalan + berarti commit yang telah di-check out berbeda dari commit yang dicatat, sehingga developer tersebut menjalankan instruksi yang tidak dimiliki developer lain. Clone baru memerlukan git clone --recurse-submodules, dan perintah tersebut harus dicantumkan dalam README, karena clone biasa membiarkan vendor/agent-skills kosong dan tidak menampilkan error.
Upgrade dilakukan secara sengaja. Itulah tujuan utamanya:
git -C vendor/agent-skills fetch --tags
git -C vendor/agent-skills diff v1.4.0 v1.5.0 -- skills/
git -C vendor/agent-skills checkout v1.5.0
git add vendor/agent-skills
git commit -m "Bump shared agent skills to v1.5.0"Baris diff adalah jalur review. Baris tersebut menampilkan perubahan yang sama dengan yang akan dilihat semua repository pengguna lainnya dan dapat dimasukkan ke pull request.
Sebagai gantinya, gunakan pinning dengan marketplace plugin
Jika Anda tidak ingin meminta setiap developer mempelajari submodule, sistem plugin Claude Code menangani distribusinya, dan sistem ini dapat menggunakan remote yang di-host sendiri. Letakkan katalog di .claude-plugin/marketplace.json dalam repository skills:
{
"name": "acme-agents",
"owner": { "name": "Platform team", "email": "platform@example.com" },
"plugins": [
{
"name": "team-skills",
"description": "Shared review and release skills",
"version": "1.4.0",
"source": {
"source": "url",
"url": "https://git.example.com/team/agent-skills.git",
"ref": "v1.4.0",
"sha": "4d1a7c2f0b93e5a1c8d6f2b40e7a95c3d1f8b602"
}
}
]
}Ada dua sumber berbeda yang digunakan di sini, dan kesalahan yang umum terjadi adalah mencampuradukkannya. Sumber marketplace, yaitu lokasi katalog diambil, menerima ref untuk branch atau tag dan tidak menerima sha. Sumber plugin di dalam katalog menerima keduanya. Jika keduanya ditetapkan, sha menjadi pin yang efektif. Jadi, pin ke commit tertentu harus dicantumkan dalam entri katalog.
Setiap repository yang menggunakan plugin kemudian mendeklarasikan marketplace dalam .claude/settings.json yang di-commit:
{
"extraKnownMarketplaces": {
"acme-agents": {
"source": {
"source": "url",
"url": "https://git.example.com/team/agent-skills.git",
"ref": "v1.4.0"
}
}
},
"enabledPlugins": {
"team-skills@acme-agents": true
}
}Rekan satu tim yang memercayai folder project akan diminta menginstal marketplace, dan plugin akan diaktifkan untuknya tanpa perlu halaman wiki yang menjelaskan langkah tersebut. Selanjutnya, skills dapat diakses melalui /team-skills:api-review karena skills plugin menggunakan namespace berdasarkan nama plugin dan tidak dapat berbenturan dengan skill project yang memiliki nama sama. Setelah Anda melakukan push tag baru, pengguna memperbarui marketplace dengan /plugin marketplace update acme-agents, lalu menjalankan /reload-plugins jika ringkasan instalasi memintanya.
Menulis smoke test untuk satu skill
Smoke test adalah eksekusi agent berbasis skrip terhadap fixture dengan fault yang sudah diketahui, disertai satu assertion. Claude Code berjalan secara non-interaktif dengan -p, dan skill yang dipanggil pengguna dapat digunakan dalam mode tersebut: masukkan /skill-name ke string prompt, lalu nilainya diperluas sebelum eksekusi dimulai.
#!/usr/bin/env bash
set -euo pipefail
claude -p "/api-review Read fixtures/orders-api.md and list the rule ids it breaks." \
--allowedTools "Read" \
--output-format json \
--json-schema '{"type":"object","properties":{"rule_ids":{"type":"array","items":{"type":"string"}}},"required":["rule_ids"]}' \
| jq -e '.structured_output.rule_ids | index("pagination-required")' > /dev/nullfixtures/orders-api.md adalah file pendek dengan satu fault yang sengaja dibuat. Assertion-nya adalah bahwa skill menyebutkan fault tersebut. jq -e keluar dengan status non-zero ketika filternya menghasilkan null, sehingga skill yang berhenti menangkap fault yang ditanamkan akan menyebabkan skrip gagal. claude sendiri keluar dengan status non-zero ketika eksekusi gagal, dan set -euo pipefail mengubah salah satu kegagalan tersebut menjadi test yang gagal.
Model dapat mengubah susunan jawabannya di antara eksekusi, jadi jangan pernah melakukan assertion terhadap seluruh kalimat. Lakukan assertion terhadap identifier yang seharusnya dikeluarkan oleh skill, atau terhadap field dalam schema yang Anda minta. Buat fixture tetap kecil agar eksekusi tidak mahal.
Di CI, tambahkan --bare. Tanpa opsi tersebut, claude -p memuat context yang sama seperti sesi interaktif, termasuk hooks, plugins, dan CLAUDE.md dari mesin tempatnya berjalan. Akibatnya, konfigurasi pribadi rekan kerja dapat mengubah hasil. Mode bare melewati semua auto-discovery, sehingga skill yang sedang diuji juga dilewati. Karena itu, muat skill tersebut secara eksplisit. Mode bare juga tidak membaca login subscription Anda, jadi tetapkan ANTHROPIC_API_KEY di environment terlebih dahulu:
claude --bare -p "/team-skills:api-review Read fixtures/orders-api.md and list the rule ids it breaks." \
--plugin-dir vendor/agent-skills \
--allowedTools "Read" \
--output-format jsonDengan --output-format stream-json, event pertama dalam eksekusi melaporkan plugin yang berhasil dimuat dan menyertakan array plugin_errors untuk plugin yang tidak berhasil dimuat. Gagalkan job CI jika plugin_errors tidak kosong. Dengan demikian, pin yang mengarah ke revision yang sudah tidak ada dapat terdeteksi. Tanpa pemeriksaan ini, masalah tersebut tampak seperti agent mengabaikan aturan internal Anda secara diam-diam.
Instruksi yang dapat dijalankan
Dua fitur membuat pernyataan itu berlaku secara harfiah, dan keduanya penting ketika file berasal dari tim lain.
Pertama, SKILL.md dapat menjalankan perintah shell sebelum model membaca apa pun. Baris seperti ini di dalam isi file merupakan preprocessing:
- Current branch: !`git rev-parse --abbrev-ref HEAD`Perintah tersebut berjalan pada mesin yang memuat skill, dan outputnya menggantikan placeholder dalam teks yang diterima model. Blok berpagar yang dibuka dengan tiga backtick diikuti ! menjalankan beberapa perintah dengan cara yang sama. Tidak ada yang menyetujui semua proses ini saat runtime. Membaca shared skill berarti membaca substitusi perintahnya.
Kedua, frontmatter dapat memberikan persetujuan awal untuk tool. allowed-tools memberikan tool yang tercantum tanpa prompt izin pada turn yang memanggil skill. Untuk project skill, pemberian tersebut berlaku setelah seseorang menerima dialog workspace trust untuk folder itu. Dokumentasi Claude Code menjelaskan konsekuensinya secara langsung: tinjau project skill sebelum mempercayai repository, karena skill dapat memberikan akses tool yang luas kepada dirinya sendiri.
Karena itu, perlakukan pembaruan skill sama seperti pembaruan dependency. Gunakan pin berdasarkan commit yang tepat jika mekanismenya memungkinkan, karena tag dapat dipindahkan dan branch memang terus berubah. Pada mesin yang dikunci, "disableSkillShellExecution": true dalam settings mengganti setiap substitusi perintah dengan teks literal [shell command execution disabled by policy], bukan menjalankannya, dan jika diterapkan melalui managed settings, pengguna tidak dapat menimpanya. Bundled skill dan managed skill dikecualikan dari pengaturan tersebut.
Kehati-hatian yang sama berlaku untuk data yang dibaca skill. Skill yang menjalankan env atau membuka file konfigurasi akan memasukkan apa pun yang ditemukannya ke dalam context model. Inilah kegagalan yang dibahas dalam menjaga rahasia agar tidak masuk ke agent yang Anda jalankan. Skill yang mengambil halaman atau menjalankan query menciptakan paparan yang sama ke arah luar, karena teks yang diambil masuk ke dalam context dan terlihat persis seperti instruksi yang Anda tulis. Batas ini perlu dipahami sebelum Anda mengarahkan agent ke instance SearXNG Anda sendiri untuk pencarian web.
Yang perlu dibaca saat menaikkan versi
- Diff dari setiap isi
SKILL.md, karena teks tersebut merupakan instruksi yang akan diikuti agen Anda. - Setiap substitusi perintah, karena perintah tersebut dijalankan pada mesin Anda saat skill dimuat.
- Setiap perubahan pada
allowed-tools, karena baris tersebut memberikan akses ke tool tanpa meminta konfirmasi. - Pengujian di balik tag tersebut. Jika repository bersama menjalankan smoke test sendiri di CI, tag yang Anda jadikan acuan harus memiliki hasil pengujian berhasil yang terlampir.
Reviewer yang tidak dapat membaca seluruh diff dalam sepuluh menit sedang meninjau skill yang sudah terlalu besar. Pisahkan skill tersebut. Argumen yang sama berlaku untuk dokumen repository yang dibaca agen Anda: simpan aturan yang berlaku jangka panjang dalam file yang dijelaskan di pemisahan AGENTS.md dan HUMAN.md, simpan alasan arsitektur dalam DESIGN.md yang ditulis untuk agen, dan pertahankan skill sebagai prosedur yang terbatas cakupannya.
Saat model atau tool merusak sebuah skill
Beberapa hal di balik sebuah skill dapat berubah tanpa ada yang mengeditnya. Upgrade model mengubah tingkat keandalan dalam mengikuti instruksi yang panjang, sehingga skill yang bergantung pada model untuk mencapai langkah sembilan mungkin tidak lagi mencapainya. Tool command line mengganti nama sebuah flag, sehingga agent menjalankan flag lama, membaca error, lalu berimprovisasi. URL yang dirujuk mulai mengembalikan 404. Harness agent mengubah cara pemilihan skill, sehingga description yang sebelumnya memenangkan pencocokan tidak lagi terpilih. Jika prosedur mulai berhenti lebih awal seperti itu, tidak ada version bump yang dapat memperbaikinya. Instruksi itu sendiri memerlukan struktur yang memaksa langkah-langkah terakhir dijalankan. Pendekatan ini digunakan dalam skill unlazy dan metode Depth Tree-nya.
Inilah alasan smoke test menjadi bagian terpenting dalam pengaturan ini. Jalankan pengujian setiap skill secara terjadwal dan setiap kali melakukan push. Google menjalankan evaluation job setiap minggu terhadap seluruh library untuk alasan ini. Weekly cron job pada VPS kecil sudah cukup untuk tim dengan sepuluh skill. Ini satu-satunya cara untuk mengetahui kerusakan sebelum developer menemukannya.
Portabilitas juga membantu. Spesifikasi Agent Skills membatasi frontmatter hingga enam key. Dengan demikian, skill yang ditulis sesuai spesifikasi tersebut dapat dimuat pada tool selain tool yang menjadi target awalnya. Sebaliknya, setiap key khusus harness yang Anda tambahkan merupakan taruhan pada satu vendor. Menulis skill yang tetap berfungsi setelah pergantian model adalah disiplin tersendiri, yang dibahas dalam membuat skill berfungsi pada model apa pun.
FAQ
Bagaimana cara membagikan satu skill agent ke beberapa repositori?
Tempatkan skill dalam repositori git khusus, buat tag untuk setiap rilis, lalu minta setiap proyek pengguna mereferensikan tag tersebut, bukan menyalin file. Ada dua mekanisme yang dapat digunakan. git submodule mencatat commit tertentu, sedangkan symlink dari .claude/skills/<name> ke dalam submodule membuatnya dimuat sebagai skill proyek biasa. Plugin marketplace menjalankan fungsi yang sama melalui /plugin, dengan pin yang dideklarasikan dalam .claude/settings.json milik repositori pengguna. Keduanya menyimpan versi dalam riwayat git, sehingga Anda dapat menentukan instruksi yang menghasilkan eksekusi agent tertentu.
Apakah skill agent dapat dipin ke versi tertentu?
Tidak dari dalam SKILL.md, karena frontmatter tersebut tidak memiliki key version. Pin harus berasal dari lapisan di sekitar file. git submodule secara bawaan mem-pin commit tertentu. Dalam plugin marketplace Claude Code, sumber plugin menerima ref untuk branch atau tag dan sha untuk commit tertentu, sedangkan sha memiliki prioritas jika keduanya ada. Sumber marketplace itu sendiri hanya menerima ref. Sebaiknya gunakan pin commit, karena tag dapat dipindahkan setelah Anda meninjaunya.
Apa yang harus diuji oleh smoke test skill?
Lakukan assertion terhadap sesuatu yang stabil. Jalankan skill secara non-interaktif menggunakan fixture yang berisi kesalahan yang diketahui, lalu periksa apakah identifier tertentu muncul dalam output, misalnya id aturan yang seharusnya dilaporkan oleh skill. Meminta output terstruktur dengan --output-format json dan --json-schema membuat pemeriksaan menjadi tepat, sedangkan jq -e membuat script gagal jika nilainya tidak ada. Jangan melakukan assertion terhadap kalimat lengkap, karena model dapat mengubah susunan jawabannya pada setiap eksekusi.
Apakah aman memasang shared skill dari repositori tim lain?
Perlakukan sebagai dependensi kode, karena skill tersebut berisi instruksi yang dapat dieksekusi. SKILL.md dapat menjalankan shell command saat dimuat melalui bentuk command substitution !, dan field frontmatter allowed-tools dapat menyetujui tool terlebih dahulu tanpa prompt. Baca diff pada setiap pembaruan, pin ke commit tertentu alih-alih branch, dan utamakan sumber yang dikendalikan oleh tim Anda sendiri. Pada mesin terkelola, "disableSkillShellExecution": true dalam settings menghentikan seluruh eksekusi command substitution.
Apakah shared skill akan berfungsi pada agent selain Claude Code?
Hal itu bergantung pada frontmatter yang Anda gunakan. Spesifikasi Agent Skills mendefinisikan enam key: name, description, license, compatibility, metadata dan allowed-tools. Skill yang hanya menggunakan key tersebut dapat dimuat oleh tool yang mengimplementasikan spesifikasi itu, dan juga dapat dimuat di Claude Code tanpa perubahan. Key khusus harness dan fitur body di luar spesifikasi dapat diabaikan atau ditolak oleh tool lain, jadi jangan sertakan keduanya dalam skill yang ingin Anda bagikan secara luas.