SSD Nodes Learn Hosting plans →
Rehberler Matt ConnorYazan Matt Connor · Güncellendi 2026-08-27

Ponytail nedir ve kodlama ajanlarında nasıl kullanılır?

Ponytail kural setinin yapay zeka ajanlarını en az kodla çözüm üretmeye nasıl zorladığını inceleyin. Projenin çalışma mantığını, sürüm notlarını ve kurulum adımlarını öğrenin.

Ponytail nedir

Ponytail, bir yapay zeka kodlama aracının daha az kod yazmasını sağlayan bir kural kümesidir. Proje kendini tek bir cümleyle tanımlar: "Yapay zeka aracınızın odadaki en tembel kıdemli yazılımcı gibi düşünmesini sağlar. En iyi kod, hiç yazmadığınız koddur." MIT lisanslıdır. Kendine ait bir çalışma zamanı yoktur ve içinde yürütülebilir hiçbir şey bulunmaz. Bu, aracın talimatlarına eklenen metinlerden oluşur; yetenek yükleyebilen sunucular için bir yetenek (skill) olarak, desteklemeyenler için ise düz kural dosyaları olarak paketlenmiştir.

Depo DietrichGebert/ponytail adresindedir. 12 Haziran 2026 tarihinde oluşturulmuş ve 1 Ağustos 2026 itibarıyla 90.000 yıldızı geçmiştir. 1 Ağustos 2026 tarihindeki en güncel etiketli sürüm, 29 Haziran 2026'da yayınlanan v4.8.4 sürümüdür; sürümler sayfası yalnızca 14 ile 29 Haziran arasında on adet etiket listelemektedir. Bu hızla ilerleyen bir proje, siz bu metni okuduğunuzda değişmiş olacaktır; bu nedenle üzerine bir şey inşa etmeden önce bir etiketi sabitleyin.

Aracın arkasındaki fikir: tutan ilk basamakta durun

Ponytail'in temelinde bir karar merdiveni bulunur. Ajan, herhangi bir şey yazmadan önce bu merdivene tırmanır ve tutan ilk basamakta durur.

  1. Bunun gerçekten var olması gerekiyor mu? Bu, YAGNI (ihtiyacınız olmayacak) ilkesidir. Cevap hayır ise, atlayın.
  2. Bu kod tabanında zaten mevcut mu? Mevcut yardımcıyı veya kalıbı yeniden kullanın.
  3. Standart kütüphane bunu yapıyor mu? Onu kullanın.
  4. Yerel bir platform özelliği bunu kapsıyor mu? Onu kullanın.
  5. Hali hazırda yüklü bir bağımlılık bunu çözüyor mu? Onu kullanın.
  6. Tek satır olabilir mi? Tek satır yapın.
  7. Ancak o zaman, çalışan en az kodu yazın.

İşi yapan tek bir basamak değil, sıranın kendisidir. Bir tarih seçici (date picker) istendiğinde ajan bir tarih seçici yazacaktır, çünkü kendisine söyleneni yapar. Merdiven, ajanın önce 4. basamağı kontrol etmesini sağlar ve 4. basamak tarayıcının zaten <input type="date"> özelliğine sahip olduğunu söyler. Projenin kendi kıyaslama notları tam olarak bu durumu belirtir: kural olmadan 404 satırda çıkan bir tarih seçici, bu kural sayesinde 23 satıra düşmüştür; çünkü ajan bir bileşen oluşturmak yerine yerel input özelliğine yönelmiştir. Bir renk seçici de aynı sebeple 287 satırdan 23 satıra inmiştir. 2. basamak sessizce başarısız olan basamaktır; çünkü elinizdeki yardımcıyı göremeyen bir ajan, neşeyle ikincisini yazacaktır. Kod tabanınızın sorgulanabilir bir haritası bu boşluğu kapatmak için tasarlanmıştır.

Buradaki tembellik, dikkatsizlik anlamına gelmez; kural seti bunu doğrudan belirtir. "Asla tembellik edilmeyecekler" listesi; karar vermeden önce problemi anlamayı, güven sınırlarında girdi doğrulamayı, veri kaybını önleyen hata yönetimini, güvenliği, erişilebilirliği ve ismen talep ettiğiniz her şeyi kapsar. Ayrıca, karmaşık olmayan her mantık parçası için küçük ve çalıştırılabilir bir kontrol ister. Bu kural icadı kısıtlar. Doğruluğu kısıtlamaz.

Deponun aslında sundukları

  • AGENTS.md, her zaman aktif olan kural seti; beş dakikada okuyabileceğiniz tek bir dosya içinde tüm mantığı barındırır.
  • skills/ponytail/SKILL.md, beceri tanımı; lite, full veya ultra argüman ipucu ile birlikte gelir.
  • Kuralları okuyan ancak becerileri yüklemeyen ana makineler için .cursor/rules/ ve .windsurf/rules/ gibi düzenleyiciye özel dizinler altındaki kural dosyaları.
  • hooks/, benchmarks/, examples/ ve scripts/.

Yoğunluk argümanı, kuralın ne kadar zorlayıcı olacağını belirler. lite, talep ettiğinizi oluşturur ve tek satırda daha gevşek bir seçenek sunar. full varsayılan ayardır ve kademeli yapıyı zorunlu kılar. ultra ise YAGNI (You Ain't Gonna Need It) aşırılıkçı ayarıdır: ekleme yapmak yerine silmeyi tercih eder ve gereksinimin kendisini sorgular.

Beceri destekleyen ana makineler ayrıca eğik çizgi (slash) komutlarına da sahip olur. /ponytail seviyeyi ayarlar, /ponytail-review aşırı mühendislik (over-engineering) olup olmadığını anlamak için bir diff kontrolü yapar, /ponytail-audit tüm depoyu denetler, /ponytail-debt ertelediğiniz kısayolları toplar ve /ponytail-gain kıyaslama puan tablosunu yazdırır. Yalnızca kural dosyalarını okuyan ana makineler, komutlar olmaksızın kural setini alır.

Güvenmeden önce kaynak kodunu incelemek isterseniz, branch yerine tag üzerinden klonlama yapın:

git clone --depth 1 --branch v4.8.4 https://github.com/DietrichGebert/ponytail.git

Claude Code üzerinde proje, bunun yerine bir eklenti kurulumunu belgeler ve bu iki satır 1 Ağustos 2026 itibarıyla belgelendiği gibidir:

/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail

Eklenti yolu, bir tag yerine varsayılan branch'i takip eder; bu nedenle temsilcinizi yönlendiren talimatlar, oturumlar arasında değişebilir. Bu, güncelleme komutunun sağladığı kolaylık karşılığında kabul ettiğiniz bir takastır.

Neden tembel bir ajan VPS üzerinde daha ekonomiktir

Bir ajanın yazdığı fark (diff), konuşmadan ayrılmaz. Bir sonraki adımda modelin tekrar okuduğu bağlamın bir parçası haline gelir; üstelik bunu üretmek için açtığı her dosya ile birlikte. Bu nedenle 500 satırlık bir değişiklik, sadece üretildiği aşamada değil, oturumdaki sonraki her aşamada ek yük oluşturur. Kontrolden çıkmış bir yeniden düzenleme (refactor) işleminin, oturum ilerledikçe ajanı neden daha yavaş ve yetersiz hissettirdiğinin sebebi budur: Bağlam penceresi ajanın kendi çıktısıyla dolar, dolayısıyla gerçek kodunuz için ayrılan alan daralır. Bunu kontrol altında tutmak, bir kodlama ajanının bağlam penceresini yönetmek konusunun temelidir.

Token'lar hem giriş hem de çıkış için ücretlendirilir; bu yüzden yarı boyuttaki bir fark, hem yazıldığı sırada hem de tekrar okunduğu her aşamada olmak üzere iki kez tasarruf sağlar. Bu tasarrufun faturanıza yansıyıp yansımayacağı ödeme yönteminize bağlıdır; çünkü sabit bir Pro veya Max aboneliği ekstra token'ları kapsarken, token başına API ücretlendirmesi her birini ayrı ayrı faturalandırır. Kendi barındırdığınız bir kurulumda faturayı takip ediyorsanız, talimat dosyası hiçbir maliyeti olmayan bir kaldıraçtır. Bir yapay zeka ajanının size maliyetini kontrol etmek çıktı hacmiyle başlar ve bir kodlama ajanının token'larını nasıl harcadığı, yeniden okuma işleminin neden beklenenden daha önemli olduğunu açıklar.

Farkı hala bir insan okur. 20 satır olması gereken 400 satırlık bir değişiklik, inceleyenin dikkatini tüketir ve dikkat, ilk tükenen kaynaktır. Kimse günün dördüncü uzun farkını, ilkine gösterdiği özenle incelemez; bu yüzden gereğinden fazla kod yazmak sadece zaman kaybettirmez. Hataları yakalaması gereken incelemenin kalitesini sessizce düşürür.

Bir sunucuda riskler değişir, çünkü ajan genellikle kimse izlemeden çalışır. Bir tmux oturumunda veya zamanlayıcı üzerinde çalışan bir ajan, siz fark edene kadar hatalı bir karar üzerine saatlerce inşa yapabilir. Bir kodlama ajanını VPS üzerinde çalıştırmanın pratik riski budur ve döngü mühendisliği yapanların bireysel komutlar yerine kalıcı talimatlara neden bu kadar özen gösterdiklerinin sebebidir. Her zaman açık olan dosyadaki bir kural, 200. adıma da uygulanır. Sohbete yazdığınız bir kural ise sadece 3. adıma uygulanır. Bu kural aynı zamanda aynı makinede başlattığınız ikinci oturum için de geçerlidir; bu oturum kaydedilen dosyayı okur ancak iki oturum birbiriyle mesajlaşabilse bile ilkine yazdığınız hiçbir şeyi devralmaz.

Yeni bağımlılıklar diğer sessiz maliyettir. 5. basamak, yüklü olanı kullanmayı söyler. Bir ajanın kendi inisiyatifiyle eklediği her paket, daha sonra yamalamanız gereken ve o depodan oluşturduğunuz her container imajına giren bir unsurdur.

Ponytail'in kendi kıyaslama verileri ne diyor

Proje iki farklı sonuç seti yayınlamaktadır ve bu sonuçlar birbirleriyle büyük oranda çelişmektedir. Her iki veri seti de projenin kendi yayınladığı rakamlardır. Bunların hiçbiri bağımsız bir test değildir.

ChartPonytail's published reduction vs baseline, percent, Haiku
The data behind this chart
[
  {
    "label": "Lines of code",
    "single_shot_pct": 93,
    "agentic_pct": 54
  },
  {
    "label": "Cost per run",
    "single_shot_pct": 63,
    "agentic_pct": 20
  },
  {
    "label": "Wall clock time",
    "single_shot_pct": 74,
    "agentic_pct": 27
  }
]

Tek seferlik (single shot) sütunu, 13 ve 17 Haziran 2026 tarihli tekrarlanan çalıştırmaların medyan değerleri alınarak, kuralın olduğu ve olmadığı durumlarda küçük bir istem setiyle yanıt veren yalın bir modelden elde edilmiştir. Ajan tabanlı (agentic) sütunu ise, tiangolo'nun full-stack-fastapi-template deposu üzerinde, Haiku 4.5 kullanılarak dört kez çalıştırılan ve on iki özellik bileti (feature ticket) içeren, başsız (headless) bir Claude Code oturumundan elde edilmiştir; puanlama, geride bırakılan git diff çıktıları üzerinden yapılmıştır.

İkinci sütunu inceleyin. Ajan tabanlı sonuç, tek seferlik kurulumdaki 93 ve 74 değerlerine kıyasla, 54 oranında daha az kod satırı, 20 oranında daha düşük maliyet ve 27 oranında daha az toplam süre (wall clock time) göstermektedir. README dosyası bunun nedenini dürüstçe açıklamaktadır: tek seferlik temel model, "birkaç seçenek ve yorumla yanıt veren" yalın bir modeldir ve geçilmesi kolay bir hedeftir. Gerçek iş yapan gerçek bir ajanla kıyaslama yapıldığında kazanım azalmaktadır. Ancak bu sonuç gerçek kalmaya devam eder ve daha kullanışlı olan bilgi de budur.

Buradaki tek çekince projenin kendi belirttiği ve bu aracın size yardımcı olup olmayacağını belirleyen noktadır. Tasarruf, aşırı kod yazma tuzağının (over-build trap) olduğu durumlarda en yüksek seviyededir; halihazırda minimal olan kodlarda ise neredeyse sıfırdır. Bir Python ve TypeScript deposundaki on iki bilet, sizin deponuz için bir gösterge niteliği taşımaz. Eğer bu rakamlar sizin için önemliyse, kendi biletleriniz üzerinde kuralı kullanarak ve kullanmayarak karşılaştırmayı kendiniz yapın ve satır sayılarını bizzat hesaplayın.

Bugün hiçbir şey kurmadan kopyalayabileceğiniz şablon

Merdiven yapısı metin tabanlıdır, bu nedenle fikri kullanmak için bir eklentiye ihtiyacınız yoktur. Aşağıdaki gibi bir bloğu, temsilcinizin halihazırda okuduğu talimat dosyasına (bu ister AGENTS.md, ister CLAUDE.md, isterse editörünüzün kurallar dosyası olsun) yapıştırın.

## Before you write code

Climb this list in order. Stop at the first line that applies.

1. Does this need to exist? If not, say so and stop.
2. Does this repo already have it? Reuse the helper.
3. Does the standard library do it? Use it.
4. Does the platform do it natively? Use it.
5. Does an installed dependency do it? Use it.
6. Can it be one line? Write one line.
7. Otherwise write the minimum that works.

Never take the shortcut on: reading the code before changing it, validating
input that crosses a trust boundary, error handling that would otherwise lose
data, security, accessibility, or anything I asked for by name.

Do not add an abstraction I did not ask for. Do not add a dependency without
saying why in one line. Prefer deleting code to adding it.

Mark a deliberate simplification with a comment naming its ceiling and the
upgrade path.

Bu son kural tek başına ele alınmaya değerdir. Ponytail'in kuralı, aracın adıyla etiketlenmiş bir yorum satırı kullanmaktır:

# ponytail: global lock, per-account locks if throughput matters

Bu yorum iki satırlık bir çalışmadır ve aksi takdirde bir inceleme döngüsüne mal olacak bir soruyu çözer. Bir sonraki okuyucuya, basit versiyonun bilinçli bir karar olduğunu ve bu kararın hangi koşul altında geçerliliğini yitireceğini bildirir. Bu yorum olmadan, bir incelemeci bilinçli bir kısayol ile temsilcinin unuttuğu bir şeyi ayırt edemez ve sormak zorunda kalır.

Bloğu nereye yerleştirdiğiniz, ne söylediği kadar önemlidir. Temsilcinin her çalıştırmada yüklediği bir dosya, izlemediğiniz süreçler de dahil olmak üzere her çalıştırmayı yönlendirir. Bu fark, temsilcinizin gerçekten takip ettiği bir AGENTS.md yazma konusunun temelidir ve bu şablonun shell geçmişiniz yerine commit edilmiş bir dosyada bulunmasının nedenidir. Bir monorepo yapısında bu, birden fazla commit edilmiş dosyada yer almalıdır; çünkü paket başına bir AGENTS.md kullanımı, temsilcinin her çalıştırmada tüm ağacın kurallarını okuması yerine her dizinin kurallarını kısa tutmasını sağlar. Ancak yerleşim bir garanti değildir ve merdiven yapısının daha güçlü bir ifadeye ihtiyaç duyduğuna karar vermeden önce bir temsilcinin halihazırda yüklediği bir kuralı neden görmezden geldiğini bilmek faydalıdır.

Kuralın geçerliliğini yitirdiği durumlar

Bu merdiven yapısı, yeniden kullanımın genellikle mümkün ve doğru olduğu, halihazırda var olan bir kod tabanında özellik geliştirme çalışmaları için ayarlanmıştır. Yeni bir projeye (greenfield) uygun değildir; çünkü 2. basamakta yeniden kullanılacak bir şey yoktur ve 5. basamakta henüz hiçbir şey kurulmamıştır, bu yüzden aracı her seferinde 7. basamağa düşer. Ayrıca, soyutlamaya gerçekten ihtiyaç duyduğunuz anlarda da kötü bir uyum sergiler. Aynı kopyalanmış bloğun dördüncü çağırıcısını eklemek üzereyseniz, "en kısa fark" (shortest diff) size beşinci bir kopya sunar.

ultra seviyesi gereksinimlerinizi sorgulayacaktır. Bu seviyenin amacı budur ve kararı çoktan verdiğiniz ve işin bitmesini istediğiniz durumlarda bu gerçek bir maliyettir. Sıradan işler için full kullanın ve bir özellik isteğinin asıl sorun olduğunu düşündüğünüzde ultra seviyesine başvurun.

Hiçbir talimat bloğu, sorunu yanlış okumanız durumunda sizi kurtaramaz. Kural setinin ilk maddesi, karar vermeden önce kodu anlamaktır; bu, sürecin maliyetli kısmıdır ve metnin sizin yerinize yapamayacağı bölümdür. Yanlış fonksiyondaki minimal bir fark (diff) yine de yanlış bir düzeltmedir ve artık onaylanması kolay, küçük ve yanlış bir düzeltme haline gelmiştir.

Dürüst bir özet yapmak gerekirse Ponytail, dikkatlice yazılmış, iyi dağıtılmış ve numaralandırılmış bir istemdir. İçindeki hiçbir şey bir eklenti gerektirmez. Projenin size sağladığı şey, birinin bu listeyi düzgün bir şekilde yazmış, gerçek bir depo üzerinde test etmiş ve yöntemi sonucun yanında yayınlamış olmasıdır.

FAQ

Ponytail, Claude Code dışındaki ajanlarla çalışır mı?

Evet. Ponytail, beceri (skill) yükleyebilen ana bilgisayarlar için bir beceri olarak sunulur; bu liste Claude Code, Codex, OpenCode, Gemini ve README dosyasında belirtilen diğerlerini içerir. Kural dosyalarını okuyan ancak beceri yüklemeyen Cursor, Windsurf, Cline ve Copilot gibi düzenleyiciler, eşleşen kurallar dizininden her zaman açık (always-on) kurallar setini alır ancak eğik çizgi (slash) komutlarını kullanamaz. Metin her iki durumda da aynıdır; temel fark, ana bilgisayarınızın bu metni her adımda bağlam içinde tutup tutmadığı veya yalnızca bir beceri tetiklendiğinde kullanıp kullanmadığıdır.

Tembel bir ajan testleri, doğrulamayı veya güvenliği atlar mı?

Hayır, kurallar seti bunu doğrudan belirtir. "Asla tembellik etme" listesi; güven sınırlarında girdi doğrulamasını, veri kaybını önleyen hata yönetimini, güvenliği ve erişilebilirliği içerir; ayrıca karmaşık olmayan her mantık parçası için küçük ve çalıştırılabilir bir kontrol ister. Kuralın ortadan kaldırdığı şey, kimsenin talep etmediği soyutlamalar ve kimsenin ihtiyaç duymadığı bağımlılıklar gibi uydurma yapılardır. Eğer ajanınız kurulumdan sonra testleri atlamaya başlarsa, bunun nedeni kendi yapılandırmanızda bu kuraldan daha öncelikli olan başka bir talimattır; bu yüzden ajanın en son yüklediği dosyayı inceleyin.

Yayınlanan hız ve maliyet rakamları güvenilir mi?

Bunlar projenin kendi ölçümleridir, yöntemleriyle birlikte yayınlanmıştır ve bu şekilde değerlendirilmelidir. Tek seferlik (single shot) rakamlar, README dosyasının kendisinin de zayıf bir temel olarak işaret ettiği, seçenekler ve yorumlarla yanıt veren çıplak bir modelle karşılaştırılmıştır. Ajan tabanlı rakamlar ise bir FastAPI ve React deposu üzerinde, on iki bilet, her biri dört çalıştırma ve Haiku 4.5 kullanılarak yapılan başsız (headless) bir Claude Code oturumundan elde edilmiştir. Bunlar, söz konusu kurulum için dürüst rakamlardır. Kod tabanınız için bir tahmin niteliği taşımazlar, çünkü proje zaten minimal olan kodlarda tasarruf oranının sıfıra yaklaştığını da belirtmektedir.

Fayda sağlamak için herhangi bir şey yüklemem gerekiyor mu?

Hayır. Merdiven metinden ibarettir ve ajanın zaten okuduğu talimat dosyasına yapıştırılan eşdeğer bir blok, etkinin büyük kısmını sağlar. Eklenti size güncel ifadeleri, yoğunluk seviyelerini, inceleme komutlarını ve bir güncelleme yolunu sunar. Kopyalanan bloğu önce denemek, kurulumun gerekli olup olmadığı sorusuna verilen 1. basamak yanıtıdır.

Denetimsiz bir ajanın gece boyunca aşırı yapılandırma yapmasını nasıl durdururum?

Kuralı sohbet mesajı yerine her zaman açık (always-on) talimat dosyasına koyun; böylece kural sadece 3. adımda değil, uzun bir çalışmanın 200. adımında da geçerli olur. Ardından hasarı ayrı olarak sınırlandırın: ajana tek kopyanız yerine bozmasına izin verilen bir checkout verin ve herhangi bir birleştirme (merge) işleminden önce insan tarafından yapılan bir diff incelemesi zorunlu tutun. Minimal bir diff kuralı, okumanız gereken miktarı azaltır. Neyin sisteme gireceğine bu kural karar vermez ve vermemelidir.