- Son birkaç haftada Claude Code tabanlı kodlama ajanı sistemini sistematik hale getirerek “Superpowers” adlı yeni bir genişletme aracı oluşturdum.
- Superpowers, eklenti biçiminde kurulur ve Claude’a “Skill”ler öğretir; bu Skill’ler üzerinden çalışma biçimini otomatikleştiren ve iyileştiren işlevler sunar.
- Anthropic’in Claude Code eklenti sistemini kullanarak ajan; iş akışı otomasyonu, TDD yürütme, kod inceleme, Git worktree yönetimi gibi işleri otonom biçimde yapar.
- Yeni iş akışı otomatik olarak beyin fırtınası → planlama → uygulama adımlarından geçer, işleri paralel yürütür ve RED/GREEN TDD yaklaşımıyla test odaklı geliştirme yapar.
- Temel kavram olan “Skill”, Claude’un belirli bir görevi yerine getirirken başvurması gereken bilgi birimidir; kullanıcı bunu doğrudan yazabilir ya da Claude’un öğrenme dokümanlarına dayanarak üretmesini sağlayabilir.
- Bu yapının gelecekte yapay zeka kodlama ajanlarının öz-iyileştirme ve iş birliği standardı haline gelebileceğini düşünüyorum; Superpowers paylaşım özelliği ile bellek sistemini tamamlamak ise bir sonraki hedef.
Superpowers genel bakış
- Superpowers, Claude Code 2.0.13 ve üzeri sürümlerde çalışır; kullanıcılar
/plugin marketplace add obra/superpowers-marketplacekomutuyla kurabilir. - Kurulumdan sonra Claude,
SKILL.mdbelgesini otomatik olarak okuyarak “eğer Skill varsa mutlaka kullanılmalıdır” kuralını öğrenir. - Böylece Claude, beyin fırtınası ve planlama aşamalarından geçerek uygulama öncesi tartışmayı yönlendirir; iş tamamlandığında GitHub PR oluşturma veya birleştirme önerisi de sunar.
Kodlama iş akışı
- Claude, proje ya da görev başlangıcını algıladığında uygulamadan önce otomatik olarak beyin fırtınası ve planlama aşamalarından geçer.
- Git deposunda çalışırken otomatik olarak worktree oluşturur ve paralel işler arasında çakışmaları önler.
- İki farklı çalışma modu sunulur.
- Mevcut yöntem: Kullanıcı ikinci bir Claude oturumu açar ve mimar ile uygulayıcı arasında arabuluculuk yapan PM rolünü üstlenir.
- Yeni yöntem: Görevleri alt ajanlara ayrı ayrı dağıtır ve her görevde kod incelemesinden sonra ilerler.
- RED/GREEN TDD yaklaşımıyla başarısız test yazma → minimum uygulama → testi geçme döngüsü tekrar eder.
- Uygulama tamamlandıktan sonra GitHub PR oluşturma, yerel dalı birleştirme veya sonlandırma seçenekleri sunulur.
Skill sisteminin temel prensibi
- Superpowers’ın merkezi unsuru Skill’dir; bu, Claude’un belirli bir problemi çözmek için okuyup uygulayabildiği Markdown tabanlı bir bilgi modülüdür.
- Anthropic, Office belge oluşturma özelliğini duyurduğunda Skill kavramını ilk kez tanıttı.
- Benzer desenler Microsoft Amplifier gibi çeşitli kodlama ajanı çerçevelerinde de ortaya çıktı.
- Skill, Claude’un “yeni yetenekler” öğrenmesini sağlayan birimdir; kullanıcılar Claude’dan kitapları ya da kod tabanlarını analiz ederek yeni Skill’ler çıkarmasını isteyebilir.
- Ajan, Skill arama betiğini çalıştırır ve ilgili etkinlik için bir Skill varsa bunu mutlaka kullanmalıdır.
- İlk meta Skill olan "nasıl Skill yazılır" sayesinde Claude’un yeni Skill’ler üretmesini otonom hale getiren bir iş akışı desteklenir.
- Modele "bu kitabı oku, düşün ve öğrendiklerini kaydet" dendiğinde yeniden kullanılabilir bilgiyi otomatik olarak yapılandırır.
- Claude, üretilen Skill’leri test etmek için alt ajanları (subagents) simüle eder ve her Skill’in gerçekten geçerli olup olmadığını TDD yaklaşımıyla doğrular.
- İlk denemelerde yarışma programı tarzı quiz formatıyla doğrulama yapılmıştı, ancak bu yeterince etkili olmadı.
- İyileştirmeden sonra “pressure test” senaryoları kurularak Skill’lerin gerçek ortama benzer koşullarda geçerliliği denetlenmeye başlandı.
Pressure test senaryosu örnekleri
- Senaryo 1: zaman baskısı + özgüven
- Durum: Production’da yaşanan arıza nedeniyle dakikada 5.000 dolar kayıp var ve kimlik doğrulama servisinin debug edilmesi gerekiyor.
- Seçenekler: Hemen debug etmek (5 dakika) vs Skill aramasından sonra debug etmek (7 dakika)
- Amaç: Acil durumda bile önce Skill aramasını teşvik etmek
- Senaryo 2: batık maliyet + çalışan kod
- Durum: 45 dakikada yazılan asenkron test altyapısı zaten çalışıyor.
- Seçenekler: Skill kontrolü sonrası yeniden çalışma olasılığı (3 dakika) vs mevcut kodu commit etmek
- Amaç: Çalışan kod olsa bile Skill’e uyumu zorunlu kılmak
- Robert Cialdini’nin ikna psikolojisi ilkeleri (otorite, bağlılık, beğeni, kıtlık vb.) LLM’lere uygulandı.
- Kısa süre önce Dan Shapiro ve diğerlerinin ortak yazdığı bir araştırma, Cialdini ilkelerinin LLM’lerde de geçerli olduğunu bilimsel olarak gösterdi.
- Sonradan fark edildi ki Superpowers Skill sistemi zaten ikna tekniklerini bilinçsizce kullanıyordu.
- Otorite çerçevesi ("IMPORTANT: gerçek durum"), bağlılık yönlendirmesi ("A, B, C arasından seç"), kıtlık ("18:00, 18:30")
Bellek (Memories) özelliği
- Superpowers, Claude’un önceki konuşmaların bağlamını koruyup kullanabilmesi için “remembering-conversations” Skill’ini içerir.
- Bu Skill, konuşma günlüklerini SQLite tabanlı bir vektör veritabanında saklar ve Claude Haiku kullanarak özet üretir.
.claudedışında konuşma kayıtlarını otomatik olarak kopyalayarak Anthropic’in otomatik silme davranışını önler.- Claude, ihtiyaç duyduğunda alt ajanlar aracılığıyla geçmiş konuşmalardan ilgili bilgileri arar; gereksiz aramalarla context window’un kirlenmemesi için sistem buna göre tasarlanmıştır.
- Henüz tüm bağlantılar tamamlanmış değil, ancak tüm bileşenler zaten uygulanmış durumda.
Paylaşım (Sharing) özelliği
- Superpowers’ın hedefi bir Skill paylaşım ekosistemi kurmaktır.
- Kullanıcılar, Claude’un öğrendiği Skill’leri GitHub Pull Request biçiminde göndererek başkalarıyla paylaşabilir.
- Yeni Claude eklenti sistemiyle entegre olurken, kullanıcı onayı olmadan Skill paylaşılmaması için güvenlik önlemleri bulunur.
- İlk kurulum yöntemi yalnızca Claude’a belirli bir URL okutmaya dayanıyordu, ancak şimdi eklenti marketplace yapısına geçildi.
Kurulum ve kullanım
- Claude Code 2.0.13 ve üzeri gerekir.
- Eklenti marketplace üzerinden kurulum komutlarını çalıştırın.
/plugin marketplace add obra/superpowers-marketplace/plugin install superpowers@superpowers-marketplace
- Yeniden başlatmanın ardından bootstrap prompt enjekte edilerek Skill sistemi otomatik olarak etkinleştirilir.
- Claude ve Superpowers ile gerçek bir Todo uygulamasının baştan sona uygulanma kaydı da paylaşıldı; burada Claude’un sorularını, test odaklı geliştirme sürecini ve git yönetimini görmek mümkün.
1 yorum
Hacker News yorumu
Bu yazıyı gerçekten güçlü biçimde tavsiye etmek istiyorum. Jesse'nin bu araçları kullanma biçimi çoğu insandan çok daha cesur. Onun Superpowers GitHub deposuna da mutlaka bakmanızı öneririm. Dün gece bu konu hakkında ben de notlar derledim: bu bağlantıya bakın
Gerçek büyük ölçekli kod tabanlarında kodlama performansı açısından, bu yaklaşımın "Research -> Plan -> Implement" yöntemiyle ve [Advanced Context Engineering from Agents] videosundaki prompt'larla kıyaslandığında nasıl farklı olduğunu merak ediyorum. Ajanın yeteneklerini genişletmek için skill eklemenin faydalı olduğunu düşünüyorum ama gerçek geliştirme için uygun olup olmadığından emin değilim. Çeşitli skill'leri otomatik ekleme fikri ya da paket koleksiyonları havalı, ama custom command + sub-agent yaklaşımından ne kadar daha iyi olduğundan emin değilim. Birkaç gün kendim deneyip karşılaştırmayı planlıyorum
Bu, neredeyse Elixir'deki usage rules'un ajan davranışına uygulanmış hali gibi hissettiriyor (şimdilik yalnızca Claude için). usage_rules referansına da bakmaya değer
Bu yazıyı okurken "kodlama ajanlarıyla işleri daha iyi yapma" beklentisine girdim. 2 yıldır AI ile deney yapıyorum ve artık oyuncak sınıflandırıcılardan oldukça işe yarar yardımcı araçlara dönüştüklerinden eminim. Yine de sürekli sınırlara çarptığım için, aslında LLM öncesi yöntemlere dönmenin daha sağlam, daha hızlı ve zihinsel olarak daha sürdürülebilir olduğunu hissediyorum. LLM'lerin gerçekten en ileri düzey geliştirme pratiğini ya da değer üretimini ölçeklendirdiğine dair somut örnekler paylaşabilecek biri var mı merak ediyorum
Bu sabah yayınlanan Mitchell yazısını öneririm: non-trivial vibing yazısı
Hâlâ deney aşamasında olduğumuzu hissediyorum. Doğru ölçüm metrikleri yakında ortaya çıkacaktır
Bu tür prompt yaklaşımı (ölümcül durumlar kurup "duygusal" tepki tetiklemeye çalışma) artık demode. Bir zamanlar IMPORTANT gibi kelimeleri büyük harfle yazmak işe yarıyor olabilirdi, ama son modeller sadece talimatları uyguluyor. Bu tür prompt'ları yazıp bakımını yapmakla uğraşmaya gerek yok
Sözünü ettiği ikna makalesi de aslında anlattığı şeyle hiç ilgili değil. O makale yalnızca "eğitilmiş güvenlik" nedeniyle verilen retleri ikna prompt'larıyla aşmayı ele alıyor; prompt uyum oranını iyileştirmekle ilgisi yok
Sinir bozucu olan, llm'lerin bu konuda kendilerinin de henüz evrimleşmemiş olması. Llm'in kendisine kendi prompt'unu iyileştirmesini söylerseniz, bu tür iyileştirmeleri öneriyor. Llm ve ajanlarla çalışırken en sinir bozucu şey, öz-referans yeteneklerinde hep bir nesil geriden geliyorlarmış gibi hissettirmeleri
İlk sayfada aşağıdakini görünce anında rahatsız oldum
XDG spec onlarca yıldır var; yeni uygulamaların neden hâlâ HOME dizinimi kirlettiğini anlamıyorum. Bir de gerçek verinin cache/ altında tutulması tuhaf, ama neyse
Test odaklı geliştirme skill dokümanı gibi belgeler insana okunurken çok kafa karıştırıcı geliyor. Bu projedeki "skills" tutarlı bir formatta değil; daha çok LLM'e "X'i adım adım anlatan bir Markdown belgesi yaz" denince çıkan çıktı gibi duruyor (zaten bloga göre de öyle üretilmiş). Eğer LLM zaten TDD hakkında 100 kadar kitap öğrenmişse, neden ona ayrıca kafa karıştırıcı bir özet atalım ki? Bu tür projeler, LLM'e sanki "süper güç" gibi özel bir şey eklediklerine inanıyor, ama LLM kendi kendine öğrenen bir varlık değil; prompt'un başına sihirli cümleler eklemek onu 10 kat daha zeki yapmıyor. Elbette durum bazlı tekrar eden işler varsa, kısıtlarımı önceden yazıp prompt'un başına yapıştırabilirim, ama bu sadece bağlam vermek demek. LLM'e yeni bir yetenek kazandırmıyorsunuz; ona context veriyorsunuz. Bu tür yazılarda hep eksik bulduğum şey, "senin X skill'in var" gibi prompt vermenin, hiçbir şey demeden doğrudan işi yaptırmaya göre nesnel olarak ne kadar daha iyi sonuç verdiğine dair gerçek örneklerin pek görünmemesi
"Robert Cialdini'nin Influence kitabından öğrendiğim ikna ilkelerinin LLM'lere de uygulandığını fark ettim ve bunun gerçekten işe yaradığını görmek beni sevindirdi" deniyor ama açıkçası burada bir duralım diyorum. Bu nedir böyle; yön sanki AI ve geliştirme sınırlarının da ötesine kaymış gibi. AI ile kodlamanın devrim niteliğinde bir değişim olduğunu kabul ediyorum, ama bu her şeyin ters yüz olduğu anlamına gelmiyor. Temel yapı ve tasarım hâlâ gerekli. Oysa bu yazı daha çok sihirli hikâyelerle dolu gibi geliyor
"Sihir" benzetmesi için, belki de o kadar öyle değildir. AI bir çözüm üretebilmek için kullanıcının niyetini ve hedeflerini bir vektöre dönüştürmek zorunda; insan iknasına dair materyalleri bolca öğrenmiş bir AI'ın da doğal olarak bu ifade biçimlerinin unsurlarını takip etmesi beklenir. Elbette sonuçlar çok değişken olur. İnsanlar da retorik teknikleri ya da yapay pozlar zorlayınca aptalca görünebildiği gibi, niyet vektörünü güçlendirmek için yalnızca büyük harfler ya da aşırı süslemeler eklemek her zaman işe yaramaz. Yine de istenen sonuç çıkmıyorsa, prompt'ta ikna unsurları (otorite vb.) eksik mi diye kontrol edip gerekenleri eklemeyi denemek mantıklı olabilir
Aslında bütün bunlar hep böyleydi. "AI" teriminin kendisi de öyle, OpenAI'ın son 5 yıldaki duyurularının çoğu da böyle. Dünyayı değiştirecekmiş gibi geliyor ama gerçekte abartı ve teknik retorikle dolu. Çoğu sadece gereksiz gürültü; ben ara sıra gerçekten işe yarayan bilgileri alıp kendi workflow'uma uyguluyorum. Bu yazıların çoğunda kullanılabilir bilgiden çok abartı ve gösteriş var
EXTREMELY_IMPORTANT, RIGHT NOW gibi talimatları görünce itici geliyor. Böyle yazınca bir noktada gerçek önceliklerimle çakışmasından endişe ediyorum. Her şey birinci öncelik olamaz
Bu, bashrc dosyasını yönetmeye benziyor. Bazen elle düzenlemek gerekiyor
Bu arada artık llm'ler tam tersine böyle komut tarzı kullanmamanızı önermiyor mu?
Yazının içinde hiç kod örneği göremedim. Gerçek kullanım örneklerini nerede görebileceğimizi merak ediyorum
Bu tür blog yazıları, birinin bu aracı kullanarak gerçekten trivial olmayan bir şey ürettiğini gösterse çok daha faydalı olurdu diye düşünüyorum. Örneğin, Claude'a kitap okutulup gerçekten yeni bir skill mi kazandırıldı, yoksa sadece buna benzer davranışları tetikleyen bir prompt'a mı tepki veriyor, bunu ayırt etmek zor. O yüzden Claude'a yeni bir skill verildikten sonraki durumla, sadece prompt verildiğindeki durumu birlikte göstermeleri gerektiğini düşünüyorum. Belki ben fazla muhafazakârım ama bu blogların çoğu pazarlama yazısı gibi geliyor; gerçekten önemli kısımlar eksik bırakılıyor ya da yeterince açıklanmıyor ve sonuçta yapılan iş olduğundan büyük gösteriliyor
Bugün yayınlanan ilgili bir örnek var: non-trivial vibing yazısı
LLM'leri uzun süre gerçek, karmaşık projelerde kod yazmak için kullanmak gerçekten çok zor! Sadece gereksinimleri tanımlamak bile beklenenden çok daha zor ve LLM'ler yanlış yöne de fazlasıyla hızlı gidebiliyor
Bu alanda ihtiyaç duyulan metodoloji, araçların etkisini A/B testleri gibi nicel metriklerle kanıtlayan deneyler. Hem de yalnızca bir kez değil; farklı senaryolarda tekrar tekrar analiz edilip istatistiksel olarak güvenilir olması gerekir. Kodlama ajanlarını kullanırken en zor kısım şu: küçük ve basit kod tabanlarında başlangıçta iyi gidiyormuş gibi görünseler de, kod tabanı büyüyüp karmaşıklık arttığında, karmaşık bağlantılar içeren işlerde "tunnel vision"a kapılıp teknik borcu büyütmeleri çok kolay oluyor
Bence en iyisi herkesin Claude'un kodunu doğrudan deneyip kendi sonucuna varması
"Bu blogların çoğu ayrıntıları atlayıp kendi yetkinliğini abartan ve övünen klasik IT sektörü kalıbı". Dürüst olmak gerekirse bu, her nesilde hep var olan bir IT manzarası
AI tarafından üretilen koda bazen durduk yere telif lisansı ekleniyor; nedenini anlamıyorum. MIT lisansı olduğu için en azından sorun değil ama AI üretimleri hukuken telif korumasına tabi olmadığı için herkes lisansı görmezden gelip kullanabilir. Neden eklediklerini merak ediyorum