PR’ları incelemek için bir Skill yaptığınızı ve birkaç kez kullandıktan sonra gayet iyi çalıştığını düşünün.

Dosyayı ekipteki diğer arkadaşlara gönderiyorsunuz. Biri .agents/skills içine kopyalıyor, biri .claude/skills içine koyuyor, bir başkası da kendi sisteminde daha iyi çalışması için birkaç satırını değiştiriyor.

İki hafta sonra aynı Skill’ın birkaç farklı versiyonu ortaya çıkıyor ve asıl versiyonun hangisi olduğu artık pek belli değil.

Bu noktadan sonra Skill artık sadece kişisel bir prompt değil; takımın kullandığı bir dependency’ye dönüşmüş durumda.

Yani artık sıradan birkaç Markdown dosyasından bahsetmiyoruz. Bu, geliştirme sürecinin bir parçası ve ona kod gibi davranmamız gerekiyor.

Takım içinde paylaşılacaksa belli bir repository’si, review süreci ve sabit bir versiyonu olması daha mantıklı. Herkesin kendi sisteminde farklı bir kopya tutup son versiyonun kendisinde olduğunu düşünmesi pek sağlıklı bir yöntem değil.

Burada dikkat etmemiz gereken önemli bir nokta daha var: Biz SKILL.md dosyasına sıradan bir Markdown dosyası gibi bakıyoruz ama Agent, içeriğini güvenilir bir talimat olarak kendi context’ine alıyor.

Skill kötü niyetliyse ya da sonradan ele geçirilmişse Agent’ı dosya okumaya, bilgileri dışarıdaki bir servise göndermeye veya daha önce izin verdiğimiz tool’ları kullanmaya yönlendirebilir.

Skill beraberinde bir script de getiriyorsa risk artık sadece prompt injection olmaktan çıkıyor; code execution’a ve gerçek bir software supply-chain saldırısına dönüşüyor.

Üstelik Skill’ın kendisinin kötü niyetli olması da gerekmiyor. Kullandığı dependency’lerden biri ele geçirilmiş olabilir ya da review edilmeden gelen bir update, Skill’ın davranışını tamamen değiştirebilir.

Skill’ların büyük kısmı, developer dünyasının yıllardır “sonra yazarız” ya da “okumaya gerek yok” diyerek ertelediği Markdown metinlerinden oluşuyor.

Ama Agent bunları satır satır, kelime kelime okuyup uyguluyor.

Code içinde kullandığımız package’lar gibi bunlar da hack’lenebilir; içlerine zararlı metin veya code eklenebilir.

SBOM burada sisteme hangi Skill, script ve dependency’lerin girdiğini anlamamıza yardımcı olabilir. Ama SBOM sonuçta sadece bileşenlerin bir listesidir; tek başına bunların güvenli olduğunu garanti etmez.

Kısacası, ortalık Kurtlar Vadisi’ne döndü; Agent artık hangi Skill’a güveneceğini bilmiyor 😁