Agent Skills dan SKILL.md: Progressive Disclosure yang Terukur
Lima skill berisi 128.374 token instruksi hanya memakai 253 token context. Pangkas deskripsinya, agent berhenti menemukannya.
Di halaman ini
Ambil satu proyek dengan lima skill yang sudah dipublikasikan terpasang di dalamnya. Inilah biayanya.
ls .claude/skills/next-best-practices next-cache-components vercel-composition-patterns
vercel-react-best-practices vercel-react-native-skillsskill level 1 level 2 level 3 files
next-best-practices 40 966 19,374 19
next-cache-components 28 2,334 0 0
vercel-composition-patterns 59 533 10,667 13
vercel-react-best-practices 68 1,670 53,670 75
vercel-react-native-skills 58 950 37,957 41
------ ------- --------
total 253 6,453 121,668Seratus dua puluh delapan ribu token instruksi, contoh, dan aturan — lebih banyak daripada yang muat dalam context window 128.000-token — dan biaya tetap untuk membuat kelimanya tersedia adalah 253 token, dua persepuluh dari satu persen. Tidak ada hal lain dalam kursus ini yang bentuknya seperti itu. Definisi tool dibayar pada setiap request, dipakai ataupun tidak, dan Bab 26 mengukur satu MCP server pada 1.619 token sebelum ia melakukan apa pun: tiga puluh dua kali rata-rata baris level-1 pada tabel di atas.
Bab ini membahas mekanisme yang menghasilkan rasio itu, dua cara mekanisme itu rusak, dan pertanyaan yang dipaksakan mekanisme tersebut tetapi hampir tidak pernah dijawab siapa pun: untuk sebuah potongan pengetahuan, dari empat tempat yang ada, di mana seharusnya ia berada.
Mengapa bab ini tidak punya bahasa pemrograman
Tautan ke bagian: Mengapa bab ini tidak punya bahasa pemrogramanBab 14 menetapkan aturan untuk paruh kedua kursus ini — koneksi, retry, dan pembatalan adalah TypeScript — lalu menyatakan lima pengecualian. Ini salah satunya, dan alasannya bukan preferensi.
Skill adalah file Markdown. Bukan file yang mengonfigurasi program, bukan file yang dikompilasi program: dokumen yang dibaca model, dengan cara yang sama seperti ia membaca pesan yang kamu ketik. Memberi bab ini bahasa pemrograman berarti tidak memahami formatnya, dan kesalahpahaman itu adalah yang paling umum tentang skill. Semua di bawah ini adalah Markdown dan YAML, plus satu shell script kecil yang ada justru untuk menunjukkan di mana code seharusnya dan tidak seharusnya berada di dalam skill.
Tagihan yang diselesaikannya, dan ini aritmetika Bab 16
Tautan ke bagian: Tagihan yang diselesaikannya, dan ini aritmetika Bab 16Ini instruksi nyata: bagaimana satu perusahaan menulis release notes. Ini prosedur, bukan preferensi — ia punya urutan langkah, taksonomi, voice, template, dan script yang mengumpulkan bahan mentahnya.
Masukkan semuanya ke system prompt, seperti yang dilakukan sebagian besar tim, dan aritmetika Bab 16 mengambil alih. System prompt adalah prefix, dan prefix dibayar pada setiap call. Diukur dengan o200k_base atas folder yang ditulis untuk bab ini:
whole thing pasted into the system prompt 1,716 x 40 = 68,640 input tokens $0.1373
as a skill, activated once on turn 12 46 x 40
+ 324 (SKILL.md body)
+ 665 (two reference files read)
= 2,829 input tokens $0.0057
as a skill, never activated at all 46 x 40 = 1,840 input tokens $0.0037Dua puluh empat kali lebih murah saat digunakan, tiga puluh tujuh kali lebih murah saat tidak digunakan. Tarifnya adalah tarif Bab 16: $2,00 per juta input token.
Sekarang keberatan yang jujur, karena bab yang melewatkannya akan menjadi iklan. Prompt caching hampir menutup celah biaya. System prompt stabil dan berada di awal, yang menjadikannya kandidat cache terbaik yang ada; pada $0,20 per juta untuk input yang di-cache, 68.640 token yang sama berbiaya $0,0168 alih-alih $0,1373. Masih tiga kali lipat skill, tetapi tidak lagi berbeda satu orde magnitudo.
Uang tidak pernah menjadi argumen terkuat. Ini argumennya:
Caching membuat prefix permanen lebih murah. Ia tidak membuatnya lebih kecil.
Pada turn 40, versi system-prompt masih memiliki 1.716 token kebijakan release-note yang duduk di window selama percakapan tentang hal lain sepenuhnya, bersaing memperebutkan apa yang Bab 24 sebut sebagai attention budget model. Versi skill memiliki 46. Cache hal yang salah, dan yang kamu beli adalah diskon untuk distraksi.
Ditulis sebagai formula, dengan turn, metadata, body, seluruh bundle, dan himpunan file bundle yang benar-benar dibaca:
Seluruh bab ini adalah perbedaan antara mengalikan term kedua dengan dan mengalikannya dengan satu atau dengan nol.
Apa sebenarnya skill itu
Tautan ke bagian: Apa sebenarnya skill ituSkill adalah directory. Spesifikasinya cukup singkat untuk dinyatakan lengkap:
release-notes/
├── SKILL.md # required: YAML frontmatter + Markdown instructions
├── scripts/ # optional: executable code
├── references/ # optional: documentation read on demand
├── assets/ # optional: templates, schemas, examples
└── ... # anything else you likeSKILL.md harus diawali dengan YAML frontmatter, dan tepat dua field wajib ada: name dan description.1 Empat lainnya opsional dan tidak ada field lain yang didefinisikan:
| Field | Wajib | Batasan |
|---|---|---|
name | ya | 1–64 karakter, huruf kecil, digit, dan tanda hubung; tidak boleh diawali, diakhiri, atau memiliki tanda hubung ganda; harus cocok dengan nama directory |
description | ya | 1–1024 karakter, tidak kosong; mengatakan apa yang dilakukan skill dan kapan menggunakannya |
license | tidak | nama lisensi, atau nama file lisensi yang dibundel |
compatibility | tidak | hingga 500 karakter: produk yang dituju, package yang dibutuhkan, akses jaringan |
metadata | tidak | map bebas dari key string ke value string, untuk tooling kamu sendiri |
allowed-tools | tidak | daftar tool yang sudah disetujui sebelumnya, dipisahkan spasi; ditandai eksperimental |
Inilah skill release-notes, lengkap, dengan body di bawah tiga puluh baris:
---
name: release-notes
description: Write the release notes for a tagged version in this company's house style. Use when preparing a release, drafting a changelog entry, or when someone asks for the notes for a version number or a tag.
allowed-tools: Bash(git log:*) Bash(git tag:*) Read
---
# Release notes
## Procedure
1. Run `scripts/collect.sh <previous-tag> <new-tag>`. It prints one line per merged
pull request: number, title, author and the labels.
2. Drop every line whose labels contain `internal`, `ci` or `chore`.
3. Put each surviving line into exactly one of the four categories in
[references/categories.md](references/categories.md). A change that seems to fit two
belongs in the higher one; the order in that file is the order of precedence.
4. Rewrite each line as a sentence in the voice defined in
[references/voice.md](references/voice.md). The pull request title is a note to
the team; the release note is a note to a stranger.
5. Check the result against [references/examples.md](references/examples.md).
## The one rule that is not negotiable
Every note says what a person can now do, or what stopped happening to them. If a
sentence can only be understood by someone who has read the diff, it is not finished.Baca apa isi body itu. Ia bukan kebijakan — ia adalah daftar isi dengan urutan operasi. Kebijakannya berada di tiga file yang ia sebutkan dan tidak ia sertakan. Dan langkah pertama menyerahkan pekerjaan ke script, karena code sebuah script tidak pernah masuk ke context window sama sekali: hanya output-nya yang masuk.2
Tiga level, dan biaya masing-masing
Tautan ke bagian: Tiga level, dan biaya masing-masingModel loading ini punya nama dan tiga tahap. Spesifikasi menyatakannya dengan token budget yang terlampir:1
- Metadata, sekitar 100 token:
namedandescription, dimuat saat startup untuk setiap skill yang terpasang. - Instructions, direkomendasikan di bawah 5.000 token: body
SKILL.md, dimuat saat skill diaktifkan. - Resources, sesuai kebutuhan: file yang dibundel, dimuat hanya saat sesuatu membutuhkannya.
Dokumentasi referensi menambahkan kolom keempat pada tabel yang sama — kapan dimuat, biaya token, konten — dan baris yang penting adalah yang ketiga: tidak ada sampai diakses.3 Kalimat yang merangkum seluruh bab juga ada di sana:
File tidak mengonsumsi context sampai diakses, sehingga Skills dapat menyertakan dokumentasi API yang komprehensif, dataset besar, atau contoh yang luas. Tidak ada penalti context untuk konten bundle yang tidak digunakan.3
Tabel terukur di awal bab ini adalah klaim itu yang dicek terhadap lima skill yang tidak ditulis siapa pun untuk artikel ini. Dua baris layak dibaca saling berhadapan.
next-best-practices memiliki body 966-token yang menautkan ke sembilan belas file berisi 19.374 token. Minta ia memperbaiki hydration error dan agent membaca body plus hydration-error.md: 1.409 token dari 20.340, faktor empat belas, dan delapan belas file lainnya tidak pernah dibuka.
next-cache-components memiliki body 2.334-token dan tidak ada file bundle sama sekali. Itu skill yang valid dan ditulis dengan baik, dan ia tidak punya level 3 untuk diungkap. Itulah batas jujur teknik ini: progressive disclosure hanya menghemat jika ada sesuatu yang bisa ditunda. Skill yang pengetahuannya tidak terurai membayar seluruh body saat aktivasi, dan satu-satunya tuas yang tersisa adalah tidak mengaktifkannya.
Merusaknya: description adalah seluruh interface
Tautan ke bagian: Merusaknya: description adalah seluruh interfaceLevel 1 adalah keputusan routing yang dibuat dari satu kalimat. Tidak ada hal lain tentang skill yang memengaruhi apakah ia pernah dibuka — bukan kualitas body, bukan contoh, bukan script. Jadi description bukan dokumentasi. Ia adalah query surface, dan ia bisa salah.
Spesifikasi mengatakannya lewat contoh yang baik dan contoh yang buruk, dan contoh buruk itu empat kata: description: Helps with PDFs.1 Itu layak diukur, bukan sekadar diterima.
Enam skill, masing-masing dengan description yang masuk akal yang mengatakan apa yang dilakukannya dan kapan menggunakannya. Dua puluh empat request, empat per skill, dirumuskan seperti cara seseorang akan merumuskannya dan tidak pernah menyebut nama skill. Model melihat enam baris di system prompt-nya dan harus menjawab dengan satu nama atau dengan NONE. Greedy decoding, jadi ia mereproduksi. Lalu dua puluh empat request yang sama dengan enam skill yang sama, dan description dipangkas menjadi subjek polosnya.
rich - sql-review: Review a SQL migration for locks, missing indexes and unsafe
defaults before it runs on the production database. Use when someone adds
or changes a migration, an index, or a table column.
thin - sql-review: Helps with SQL.rich 295 tokens of level 1 for six skills 18/24 correct = 75.0 % [55.1, 88.0]
thin 81 tokens of level 1 for six skills 10/24 correct = 41.7 % [24.5, 61.2]
paired: rich only 9, thin only 1, two-sided sign test p = 0.0215
answered NONE: rich 1 of 24, thin 9 of 24Baca intervalnya dulu, seperti yang ditekankan Bab 4 dan akan ditekankan lagi oleh Bab 29: interval itu overlap, dan dua puluh empat kasus tidak dapat memberi peringkat dua sistem hanya dari agregatnya. Perbandingan berpasangan adalah yang menyelesaikannya, dan itu instrumen Bab 15: dari sepuluh kasus ketika kedua arm berbeda pendapat, sembilan berpihak pada description yang kaya dan satu pada yang tipis. Itu terbukti pada threshold yang biasa.
Sekarang baca baris terakhir, yang merupakan temuan sebenarnya. Dengan description tipis, model menjawab NONE pada sembilan dari dua puluh empat request. Bukan skill yang salah: tidak ada skill. Ini empat di antaranya, verbatim:
"Check this migration before I run it against production." -> release-notes
"Will this CREATE INDEX lock writes?" -> NONE
"Is this ALTER TABLE safe to deploy at peak traffic?" -> NONE
"Is 'seamless and powerful' allowed in the app store listing?" -> next-best-practicesSkill sql-review yang sempurna sudah terpasang, dengan body dan contoh serta checklist, dan ia tidak pernah dibuka, tiga kali berturut-turut, pada tiga pertanyaan yang memang ia tulis untuk jawab. Level 2 dan 3 tidak relevan bagi skill yang tidak pernah dicapai level 1.
Biaya untuk memperbaikinya: 214 token, selisih antara 295 dan 81, tersebar di enam skill. Ini adalah temuan Bab 18 yang datang dari sisi lain. Di sana, mengubah hanya description sebuah tool membawa pemformatan tanggal dari 2 benar dari 24 menjadi 24 dari 24. Di sini, mengubah hanya description sebuah skill membawa aktivasi dari 10 dari 24 menjadi 18. Dalam kedua kasus, perbaikan termurah dalam sistem adalah satu kalimat, dan dalam kedua kasus kalimat itu harus menyebut trigger dan bukan hanya subjek: bukan apa bendanya, melainkan apa yang baru saja dikatakan user saat ia berlaku.
Satu caveat yang harus dibayar bab ini kepada standarnya sendiri. Ini model setengah miliar parameter, dan frontier model melakukan routing jauh lebih baik daripada 75 %. Baca mekanismenya, bukan magnitudonya: sinyal routing hanya sepanjang satu kalimat model apa pun yang membacanya, dan tidak ada model yang bisa memilih berdasarkan informasi yang tidak kamu masukkan ke kalimat itu.
Merusaknya lagi: escape hatch yang berbiaya 26.362 token
Tautan ke bagian: Merusaknya lagi: escape hatch yang berbiaya 26.362 tokenKegagalan kedua adalah kebalikan dari yang pertama. Skill ditemukan, level-levelnya dipisahkan dengan benar, lalu agent tetap membaca semuanya.
vercel-react-best-practices adalah skill yang benar-benar dibangun dengan baik. Body 1.670-token miliknya adalah tabel prioritas delapan kategori dan quick reference yang menyebut 70 file aturan, satu baris masing-masing. Aturannya ada di disk di sebelahnya: 70 file, yang terkecil 132 token, median 319, terbesar 1.052. Ajukan satu pertanyaan tentang barrel imports dan biaya yang jujur adalah body plus satu file — di bawah 2.400 token dibanding bundle 53.670.
Lalu baris terakhir body mengatakan ini:
## Full Compiled Document
For the complete guide with all rules expanded: `AGENTS.md`AGENTS.md adalah 26.362 token. Itu adalah 70 file aturan yang digabungkan: jumlahnya 25.784, dan selisihnya adalah heading di antaranya. Jadi skill menawarkan agent pilihan antara membaca satu aturan median seharga 319 token dan membaca konten yang sama, semuanya, dengan harga delapan puluh tiga kali lipat — dan ia menawarkan pilihan itu dalam kalimat tanpa biaya yang terlampir dan tanpa kondisi kapan sebaiknya mengambilnya.
Itu bukan bug dan filenya tidak salah; dokumen terkompilasi benar-benar berguna bagi manusia, dan bagi agent yang diminta mengaudit seluruh codebase. Itu adalah file level-3 dengan undangan level-2, dan pelajarannya berlaku lebih luas dari satu skill ini: setiap path keluar dari SKILL.md harus mengatakan berapa biayanya dan kapan ia layak, karena model tidak punya cara untuk tahu bahwa sebuah filename delapan puluh tiga kali lebih mahal daripada filename di atasnya.
Folder yang sama membawa pelajaran lebih kecil tentang kebasian. Body mengatakan “70 rules across 8 categories” dan mencantumkan 70; directory rules/ berisi 72 file, dua di antaranya scaffolding (_template.md dan _sections.md); dan sidecar metadata.json mengatakan “40+ rules”. Tiga hitungan atas himpunan yang sama dalam satu folder, satu benar, satu aritmetis, dan satu tertinggal dari versi sebelumnya. Skill adalah dokumen, dan dokumen membusuk persis seperti komentar kode yang sudah drift menjauh dari kode di sampingnya — bedanya, yang ini dibaca mesin yang tidak akan mengangkat alis.
Field yang ditambahkan reference implementation, dan jebakan portabilitas
Tautan ke bagian: Field yang ditambahkan reference implementation, dan jebakan portabilitasSpesifikasi terbuka mendefinisikan enam field frontmatter. Reference implementation, Claude Code, menerima dua puluh.2 Lima kelompok layak diketahui namanya, karena di sanalah format berhenti menjadi hanya dokumen:
Permission dan invocation. allowed-tools menyetujui tool sebelumnya untuk turn yang memanggil skill dan grant tersebut bersih pada pesan berikutnya; disallowed-tools menghapusnya. disable-model-invocation menghentikan model dari memuatnya sendiri, yang mengubah skill menjadi command yang dijalankan seseorang. user-invocable: false melakukan kebalikannya: tersembunyi dari manusia, tersedia hanya untuk model, untuk pengetahuan latar belakang.
Isolation dan biaya. context: fork menjalankan skill dalam context sub-agent terpisah dengan window-nya sendiri — boundary sub-agent Bab 25 sebagai satu baris YAML — dengan agent memilih jenisnya dan background memutuskan apakah turn menunggu. model dan effort mengubah model mana yang berjalan saat skill aktif, hanya untuk turn itu.
Arguments (arguments, argument-hint) memungkinkan seseorang meneruskan value yang disubstitusikan ke body, yang membuat skill dapat digunakan sebagai slash command. Scoping (paths) membatasi aktivasi ke file yang cocok dengan glob. Dan dynamic context injection adalah yang mengubah model mental: baris berbentuk !`git diff HEAD` berjalan sebelum body dikirim, dan output-nya disubstitusikan ke teks. Dokumen adalah template, dan sebagian darinya dihitung saat dibaca.
Sekarang jebakannya, dan ia dinyatakan di dokumentasi yang sama: di luar Claude Code — pada produk web, melalui Skills API, dalam packaging — hanya enam field yang dispesifikasikan yang diizinkan, dan field lain apa pun adalah hard error saat upload.2 Jadi skill yang bekerja sempurna di satu produk gagal dipasang di produk lain milik vendor yang sama, dan ia gagal di frontmatter, bukan pada sesuatu yang bisa kamu uji dengan membaca prosanya. Jika kamu ingin skill portabel, enam field adalah seluruh budget. Jika tidak, katakan itu di compatibility, yang memang ada persis untuk ini.
Tabel yang menjadi alasan bab ini ada
Tautan ke bagian: Tabel yang menjadi alasan bab ini adaEmpat hal terus-menerus tertukar satu sama lain, dan kekacauan ini bukan pedanteri kosakata: memilih salah akan membebanimu uang pada setiap turn, atau menghilangkan guarantee yang kamu kira kamu punya.
| System prompt | Skill | Tool | MCP server | |
|---|---|---|---|---|
| Apa itu | teks di setiap request | folder yang root-nya adalah SKILL.md | JSON Schema plus endpoint di code kamu | process atau service yang berbicara dengan protocol |
| Apa yang model lakukan | membacanya, selalu | membacanya, saat ia memutuskan description cocok | memanggilnya, dan menunggu hasilmu | memanggilnya, melalui host, satu client per server |
| Berapa biayanya | panjang penuhnya, setiap turn, selamanya | sekitar 50 token per turn; body sekali, jika digunakan | schema-nya, setiap turn; eksekusi saat dipanggil | setiap schema plus instructions server, setiap turn |
| Apa yang bisa dijamin | tidak ada — ini saran | tidak ada — ini saran yang dapat dilewati model | semua yang code kamu tegakkan sebelum bertindak | semua yang ditegakkan server |
| Siapa yang menulisnya | kamu | kamu, rekan kerja, atau vendor | kamu | orang lain, untuk banyak host |
| Bab | 15 | yang ini | 18 | 26 dan 27 |
Dua baris yang dicetak tebal adalah seluruh pembedanya. Skill dibaca; tool di-invoke. Skill adalah prosa yang masuk ke context window dan bersaing memperebutkan attention dengan semua hal lain di sana; model bisa mengikutinya, salah membacanya, atau mengabaikannya, dan tidak ada bagian sistem yang menyadari. Tool adalah call yang keluar sepenuhnya dari tangan model: code kamu menerima argument, memvalidasinya, memeriksa permission, dan memutuskan. Bab 18 menyatakannya sebagai model yang mengusulkan dan code kamu yang menentukan, dan pembagian itu persis yang tidak dimiliki skill.
Jadi enam kasus nyata, diselesaikan:
“Jawab dalam bahasa user. Jangan pernah menyatakan harga yang belum diberikan kepadamu.”
Tautan ke bagian: “Jawab dalam bahasa user. Jangan pernah menyatakan harga yang belum diberikan kepadamu.”System prompt. Ini berlaku pada setiap turn, ini constraint dan bukan prosedur, dan panjangnya dua kalimat. Sesuatu yang selalu berlaku tidak punya apa pun untuk diungkap secara progresif, dan membayar discovery line pada setiap turn demi menghindari membayar dua kalimat pada setiap turn bukanlah penghematan.
“Cara kami menulis release notes di sini.”
Tautan ke bagian: “Cara kami menulis release notes di sini.”Skill. Prosedural, dibutuhkan mungkin satu turn dari empat puluh, dapat diurai menjadi voice, taksonomi, dan contoh, serta berupa prosa yang akan diedit manusia. Ini adalah bentuk yang dirancang untuk format ini, dan pengukuran di atas adalah penghematannya.
“Cari order berdasarkan identifier-nya di database gudang.”
Tautan ke bagian: “Cari order berdasarkan identifier-nya di database gudang.”Tool. Ada fungsi deterministik di baliknya dan model tidak boleh mengarang query. Menuliskannya sebagai skill — dokumen yang menjelaskan cara query gudang — menyerahkan schema ke model dan berharap. Schema plus endpoint menyerahkan jawaban.
“Baca dan tulis issue di tracker kami, dari setiap produk agent yang digunakan perusahaan.”
Tautan ke bagian: “Baca dan tulis issue di tracker kami, dari setiap produk agent yang digunakan perusahaan.”MCP server. Capability-nya bukan milikmu, beberapa host membutuhkannya, dan ia punya cerita authentication. Itulah masalah yang dibuka Bab 26, protocol adalah jawabannya, dan Bab 27 mengirimkannya dua kali. Skill tidak bisa ditemukan oleh host yang belum pernah melihat filesystem kamu — tepat celah yang sedang ditutup pekerjaan standardisasi di akhir bab ini.
“Brand manual empat ratus halaman.”
Tautan ke bagian: “Brand manual empat ratus halaman.”Tidak satu pun dari empat. Itu pengetahuan untuk dicari, bukan prosedur untuk diikuti, dan tempatnya di index yang dicari agent: Bab 19. Membundelnya sebagai level 3 diizinkan dan menggoda dan salah, karena model harus menebak file mana dari empat puluh yang memuat jawabannya hanya dari nama file. Yang merupakan skill yang baik adalah prosedur dua halaman yang memberi tahu agent kapan harus mencari index itu, apa arti similarity score rendah, dan cara mengutip yang ditemukannya.
“Jangan pernah refund lebih dari dua ratus euro tanpa manusia.”
Tautan ke bagian: “Jangan pernah refund lebih dari dua ratus euro tanpa manusia.”Tool dengan approval gate, dan tidak pernah skill. Ini kasus yang penting. Ditulis ke SKILL.md, limit itu adalah kalimat yang dibaca dan biasanya dihormati model; ditulis ke refund tool, ia adalah branch yang berjalan sebelum uang apa pun bergerak. Limit yang akan mempermalukanmu jika dilanggar bukanlah dokumentasi. Aturannya, layak dihafal: jika konsekuensi mengabaikan instruksi lebih buruk daripada jawaban yang formatnya jelek, instruksi itu tidak termasuk dalam dokumen.
Dari jargon internal ke standard, dengan angkanya
Tautan ke bagian: Dari jargon internal ke standard, dengan angkanyaSejarahnya singkat, bertanggal luar biasa rapi, dan ini bagian yang hampir tidak diceritakan siapa pun.
Agent Skills dipublikasikan pada 16 Oktober 2025 sebagai fitur satu vendor, didefinisikan dalam pengumuman itu sebagai “folder terorganisasi berisi instruksi, script, dan resource yang dapat ditemukan dan dimuat agent secara dinamis agar bekerja lebih baik pada tugas spesifik”, dengan tiga level dijelaskan lewat analogi yang layak dipertahankan: “seperti manual yang tertata baik, dimulai dengan daftar isi, lalu bab-bab spesifik, dan akhirnya appendix yang mendetail”.4
Pada 18 Desember 2025 halaman yang sama diperbarui untuk mengumumkan format tersebut sebagai open standard, dengan spesifikasinya sendiri di agentskills.io, governance terbuka untuk kontribusi, dan reference validator.3 Dibaca pada 7 September 2026, showcase client standard itu mencantumkan empat puluh enam produk — editor, terminal, platform cloud, dan mobile runtime, termasuk coding agents first-party dari Anthropic, OpenAI, Google, dan Mistral — masing-masing menautkan ke dokumentasi setup-nya sendiri.1
Konvergensi dengan MCP dilakukan secara terbuka, dengan angka yang bisa kamu cek:
| Apa itu | Dibuka | Status pada 7 Sep 2026 | |
|---|---|---|---|
| SEP-2076 | Agent Skills as a First-Class MCP Primitive: method skills/list dan skills/get baru, capability skills, notification list_changed | 13 Januari 2026 | ditutup, 24 Februari 2026 |
| Skills Over MCP working group | mendefinisikan bagaimana skill “ditemukan, didistribusikan, dan dikonsumsi melalui MCP”; bertemu mingguan; tujuh belas anggota tercantum, dua di antaranya lead | interest group 1 Februari 2026; working group 16 April 2026 | aktif |
| SEP-2640 | Skills Extension, Extensions Track: konvensi resource skill://, extension identifier io.modelcontextprotocol/skills, discovery melalui skills/list dan content melalui resources/read | 23 April 2026 | dalam review |
Bagian menariknya adalah penutupan, bukan proposalnya. SEP-2076 meminta primitive keempat di samping tools, resources, dan prompts. Working group yang terbentuk darinya memutuskan jawabannya tidak: skill menumpang pada resources primitive yang sudah ada, sebagai extension opt-in.5 Bab 26 mengukur insting yang sama dalam changelog protocol itu sendiri, ketika sampling, roots, dan logging dideprecate alih-alih dipertahankan. Badan standard yang menghapus proposal yang ia tulis sendiri sedang berperilaku baik, dan alasan menceritakan kisah ini dengan angka di depan adalah karena ringkasan yang akan kamu baca di tempat lain masih mendeskripsikan skill sebagai MCP primitive.
Ke mana arahnya berikutnya
Tautan ke bagian: Ke mana arahnya berikutnyaSekarang kamu bisa menulis SKILL.md, membaginya menjadi tiga level yang membayar dirinya sendiri, membaca frontmatter skill orang lain dan tahu field mana yang tidak akan bertahan saat di-upload ke tempat lain, serta menjawab pertanyaan yang menjadi fondasi seluruh bab — system prompt, skill, tool, atau server — dengan alasan, bukan kebiasaan.
Yang belum bisa kamu lakukan adalah tahu apakah milikmu bekerja.
Setiap klaim penting dalam bab ini adalah pengukuran, dan yang paling penting adalah akurasi: 18 dari 24 melawan 10 dari 24, dengan interval pada masing-masing dan paired test di antara keduanya, karena dua agregat yang overlap tidak memutuskan apa pun. Instrumen itu dipinjam. Description sebuah skill adalah routing key, body-nya adalah prosedur yang mungkin diikuti model dan mungkin tidak, dan kedua hal itu adalah properti yang hanya bisa kamu ketahui dengan menjalankan benda itu berkali-kali dan memberi skor pada hasilnya — yang berarti golden set, grader yang kamu tulis sebelum run, dan metric yang bertanya apakah ia berhasil setiap kali, bukan setidaknya sekali.
Bab 29 adalah itu, dan ia dibuka dengan angka yang menjadi sandaran metode bab ini: agent yang berhasil tujuh kali dari sepuluh terlihat seperti 70 %, dan pass^10-nya — peluang ia berhasil pada semua sepuluh — adalah nol. Bab itu juga mengukur tiga grader pada dua ratus transcript yang sama dan mendapatkan 0 %, 13 %, dan 26 % tanpa meregenerasi satu token pun. Sebelum kamu memercayai kalimat yang baru saja kamu tulis ke description, kamu membutuhkan instrumen yang bisa memberi tahu bahwa kalimat itu lebih buruk daripada yang kamu gantikan.
Sumber dan metode
Tautan ke bagian: Sumber dan metodeSetiap hitungan token dalam bab ini diproduksi secara lokal dengan tiktoken 0.14.0 dan encoding o200k_base, pada 7 September 2026: atas lima skill pihak ketiga yang tercantum di awal bab ini, dan atas skill release-notes yang ditulis untuk bab ini, yang teks lengkapnya direproduksi sebagian di atas. Level 1 diukur sebagai satu baris - name: description yang dirender host ke system prompt; level 2 adalah body SKILL.md setelah frontmatter; level 3 adalah setiap file lain di folder. Biaya menggunakan tarif terukur Bab 16 untuk gpt-5.6-terra, $2,00 per juta input token dan $0,20 per juta input token yang di-cache, diterapkan pada hitungan tersebut — ini aritmetika atas token yang diukur, bukan observasi atas tagihan live. Tidak ada API berbayar yang dipanggil untuk menulis bab ini.
Eksperimen aktivasi menjalankan Qwen/Qwen2.5-0.5B-Instruct dalam half precision pada satu GPU konsumen, greedy decoding, 24 request atas enam skill, dua kali — sekali dengan description yang menyatakan apa yang dilakukan skill dan kapan ia berlaku, sekali dengan description yang dipangkas menjadi subjek polos ala “poor example” milik spesifikasi sendiri. Interval adalah Wilson pada 95 %; perbandingan berpasangan adalah two-sided exact sign test atas sepuluh kasus discordant; interval Wilson adalah milik Bab 4 dan exact paired sign test adalah milik Bab 15, keduanya digunakan ulang tanpa perubahan. Baca magnitudonya sebagai properti model yang sangat kecil dan metodenya sebagai sesuatu yang dapat ditransfer.
Lima skill yang diukur di sini adalah package pihak ketiga, bukan ditulis untuk bab ini: next-best-practices dan next-cache-components dari vercel-labs/next-skills, serta vercel-composition-patterns, vercel-react-best-practices, dan vercel-react-native-skills dari vercel-labs/agent-skills. Hitungan internalnya — 70 file aturan, AGENTS.md pada 26.362 token, metadata.json bertanggal Januari 2026 dan mengklaim “40+ rules” — dibaca dari file di disk pada 7 September 2026 dan merupakan properti versi yang dipublikasikan itu, bukan kritik terhadap penulisnya: semuanya adalah jenis drift yang muncul di pohon dokumentasi mana pun yang diedit lebih sering daripada dihitung.
Referensi
Tautan ke bagian: Referensi-
Agent Skills Specification dan Overview,
agentskills.io/specificationdanagentskills.io, dibaca 7 September 2026. Sumber layout directory; tabel frontmatter yang direproduksi di atas dengan setiap constraint (name1–64 karakter dan cocok dengan directory,description1–1024 karakter,compatibilityhingga 500,allowed-toolsditandai eksperimental); contohdescriptionyang baik dan buruk; deskripsi progressive-disclosure tiga tahap dengan token budget-nya (metadata sekitar 100 token, instructions direkomendasikan di bawah 5.000, resources sesuai kebutuhan) dan saran untuk menjagaSKILL.mddi bawah 500 baris; catatan bahwa “agent akan memuat seluruh file ini setelah ia memutuskan untuk mengaktifkan skill”; konvensiscripts/,references/, danassets/; commandskills-ref validate; pernyataan bahwa format ini “awalnya dikembangkan oleh Anthropic, dirilis sebagai open standard, dan telah diadopsi oleh jumlah produk agent yang terus bertambah”; dan client showcase, yang mencantumkan empat puluh enam produk pada tanggal dibaca. ↩ ↩2 ↩3 ↩4 -
Skills dalam dokumentasi Claude Code,
code.claude.com/docs/en/skills, dibaca 7 September 2026. Sumber tabel field lengkap yang digunakan di bagian “field yang ditambahkan reference implementation” —when_to_use,argument-hint,arguments,disable-model-invocation,user-invocable,allowed-tools,disallowed-tools,model,effort,context,agent,background,hooks,paths,shell,metadata,license,compatibility— deskripsi dynamic context injection dengan!`command`yang berjalan sebelum body dikirim, aturan bahwa grantallowed-toolsbersih pada pesan berikutnya, dan catatan compliance bahwa di luar Claude Code hanya enam field yang dispesifikasikan yang diterima dan field lain apa pun menyebabkan hard error saat upload atau packaging. ↩ ↩2 ↩3 -
Overview Agent Skills,
platform.claude.com/docs/en/agents-and-tools/agent-skills/overview, dibaca 7 September 2026. Sumber tabel level dengan empat kolomnya (Level 1 metadata, selalu, sekitar 100 token per skill; Level 2 instructions, saat triggered, di bawah 5k token; Level 3+ resources, sesuai kebutuhan, tidak ada sampai diakses); kalimat yang dikutip lengkap tentang konten bundle yang tidak membawa penalti context; “sampai Skill triggered, hanya nama dan description-nya yang menempati context”; pernyataan bahwa code sebuah script tidak pernah masuk ke context window dan hanya output-nya yang masuk; dan bagian security, yang menyuruhmu menggunakan skill hanya dari sumber tepercaya dan memperingatkan bahwa skill berbahaya “dapat mengarahkan Claude untuk invoke tools atau mengeksekusi code dengan cara yang tidak sesuai dengan tujuan yang dinyatakan Skill” — subjek Bab 30, datang melalui dokumen alih-alih melalui tool description. ↩ ↩2 ↩3 -
Anthropic, Equipping agents for the real world with Agent Skills, 16 Oktober 2025,
anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills, dibaca 7 September 2026. Sumber definisi yang dikutip di atas, analogi daftar-isi/bab/appendix, tiga level sebagaimana awalnya dijelaskan, dan framing bahwa agent membutuhkan cara yang “lebih composable, scalable, dan portable” untuk diberi keahlian domain. Pengumuman produk pendamping diclaude.com/blog/skillsmemuat tanggal publikasi 16 Oktober 2025 dan pembaruan 18 Desember 2025 yang memperkenalkan manajemen seluruh organisasi dan open standard. ↩ -
Skills Over MCP Charter,
modelcontextprotocol.io/community/working-groups/skills-over-mcp, dibaca 7 September 2026. Sumber mission statement yang dikutip di atas, tanggal changelog (interest group terbentuk 1 Februari 2026, initial charter 14 April 2026, dikonversi menjadi working group 16 April 2026, SEP-2640 ditautkan 25 April 2026), leadership dan tujuh belas anggota tercantum, cadence meeting mingguan, serta kriteria sukses yang menyebut draft Skills Extension sebagai “extension formal menggunakan Resources primitives yang sudah ada”. SEP-2076, Agent Skills as a First-Class MCP Primitive,github.com/modelcontextprotocol/modelcontextprotocol/pull/2076, dibuka pada 13 Januari 2026 dan ditutup pada 24 Februari 2026; ia mengusulkanskills/list,skills/get, capability serverskillsdan notificationskills/list_changed, serta mendefinisikan skill sebagai “bundle bernama berisi instruksi plus referensi ke tools, prompts, dan resources yang bersama-sama mengajari agent cara melakukan workflow spesifik-domain”. SEP-2640, Skills Extension,.../pull/2640, dibuka pada 23 April 2026 di Extensions Track dan membawa konvensi resourceskill://serta extension identifierio.modelcontextprotocol/skills. Bab 26 mencantumkan working group yang sama di antara extension opsional protocol. ↩