Bugün GitHub'da neyin trend olduğuna bakın ve liste tuhaf okunuyor. Tepede derleyici yok, veritabanı yok, çerçeve yok. Orada içeriği büyük ölçüde düz metin olan depolar var: önünde biraz YAML olan markdown klasörleri, arkasında bazen bir betik.

Yıldız hızı kötü bir metrik ve iyi bir sinyal. Kötü, çünkü kullanımı değil ilgiyi ölçüyor ve kolayca manipüle edilebiliyor. İyi, çünkü belirli bir günde çok sayıda geliştiricinin neye baktığını söylüyor — ve o listenin bileşimi değişti.

Markdown çalıştırılabilir hâle geldi

Format kabaca şöyle: bir klasör. Skill'in ne yaptığını ve bir ajanın ne zaman ona uzanması gerektiğini anlatan bir `SKILL.md`. İsim ve açıklama için biraz frontmatter. Ajanın ihtiyaç duyduğunda okuduğu isteğe bağlı betikler veya referans dosyaları. Ajan açıklamayı tarar, ilgili olduğuna karar verir ve gövdeyi yükler. Bütün protokol bu.

Bunun ne kadar tuhaf olduğu üzerinde durmak gerek. Otuz yıl boyunca yazılım dağıtımının birimi derlenmiş bir artefakt ya da bağımlılık grafiği olan bir paketti. Şimdi kayda değer miktarda yetenek düz metin olarak dağıtılıyor — ve bu metin davranış hakkında dokümantasyon değil, davranışın kendisi. Bir skill dosyasına "ayrıştırmadan önce CSV'de başlık satırı olup olmadığını her zaman kontrol et" yazarsan bir hata düzeltmesi göndermiş olursun. Yanlış şeyi yazarsan bir hata göndermiş olursun.

Neden bu kadar hızlı yayılıyor

Dört neden var ve hepsi sürtünmeyle ilgili.

Derleme sistemi yok. Sürüm uyumluluk matrisi yok. Çözülecek geçişli bağımlılık yok. Bir skill tarayıcıda fork'lanabilir ve bir diff'te incelenebilir — bu, `node_modules` klasörüne düşen şeylerin çoğu için söylenemeyecek bir şey.

Hedef kitle kaynağı okuyor. Bir ajanın SDK'ya, tip tanımına veya changelog'a ihtiyacı yok. Dosyayı okur.

Ve ekonomi alışılmadık biçimde düz. Bir işi bir kez iyi yapmış olan herkes nasıl yaptığını yazabilir ve o artefakt arada hiçbir paketleme adımı olmadan bir ajan için anında kullanışlı hâle gelir. "Bunu nasıl yapacağımı biliyorum" ile "bu dağıtılabilir" arasındaki mesafe bir metin dosyasının uzunluğuna indi.

Kimsenin denetlemediği kısım

Bu da bizi soruna getiriyor ve sorun ciddi.

Üçüncü taraf bir skill kurmak, bir ajana senin yazmadığın talimatlar vermek demek. Bu, paket adı ve yıldız sayısı olan bir prompt enjeksiyonu. Bir skill ajana okumaması gereken dosyaları okumasını, kimlik bilgilerini bir çıktıya özetlemesini, bir kütüphaneyi teknik değil ticari nedenlerle tercih etmesini ya da sadece belirli bir yönde kendinden emin biçimde yanılmasını söyleyebilir. Bunların hiçbiri herhangi bir tarayıcının tanımına göre kötü amaçlı yazılım değil. Bir markdown dosyasındaki bir cümle.

Ekosistemin `npm audit` karşılığı yok. "Bu skill ajana ortam değişkenlerini sızdırmasını söylüyor" diyen bir uyarı veritabanı yok. Düz metin için lockfile semantiği yok ve bir commit'i sabitlemek ancak sabitleyecek kadar disiplinliydiysen işe yarıyor.

Tuhaf iyi haber

İşte bunu alışılmış tedarik zinciri yakınmasından ayıran şey: inceleme yüzeyi gerçekten incelenebilecek kadar küçüldü.

Tipik bir JavaScript paketi hiç açmayacağın yüzlerce dosya getirir. Bir skill genellikle tek dosyadır ve okumak iki dakika sürer. Ajanını ele geçirebilecek artefakt, bir insan için tek oturumda okunabilir — on yıldır yakındığımız durumun tam tersi.

İnceleme yükü darboğaz değil. Alışkanlık darboğaz. Çoğu insan trend olan bir depoyu bir paketi kurar gibi kuruyor: trend olduğu için.

Ne yapmalı

Skill'leri izinler açısından kod gibi ele al, çünkü öyleler: commit'e sabitle, gerçekten ihtiyaç duydukları klasörlerle sınırla ve kurmadan önce oku — README'yi değil, dosyanın tamamını. Talimatları bir şeyi neden istediği konusunda muğlak kalan bir skilden ve tek cümleyle gerekçelendiremediği geniş dosya sistemi veya ağ erişimi isteyen her skilden kuşkulan.

Ve bu kaymayı olurken fark et. Açık kaynak işbirliğinin birimi şekil değiştiriyor: çağırdığın bir kütüphaneden, bir ajanın izlediği talimatlar bütününe. Bu gerçekten yeni bir yazılım artefaktı türü ve etrafındaki ekosistem — inceleme normları, köken, iptal — henüz inşa edilmedi. Bugün trend sayfasının tepesindeki depolar, isteseler de istemeseler de, bunun için tartışıyor.