# Her şeyin altındaki Ralph döngüsü

En eski loop, bir ajana tek bir prompt dosyasını sonsuza kadar veren bash while döngüsü. Her turda taze bağlam, iterasyon başına tek görev ve backpressure olarak testler onu çalıştırıyor. Durma koşulunun olmaması da kursun geri kalanına neden ihtiyaç olduğunu gösteriyor.

## Döngü şaşırtıcı derecede küçük

Geoffrey Huntley bu tekniği 2025-07-14'te yayımladı ve adına Ralph dedi. En saf hâli, tek bir prompt dosyasını bir kodlama ajanına pipe'layan, bitince yine aynısını yapan bir bash while döngüsü. Sonsuza kadar.

```bash
while true; do
  cat PROMPT.md | <your coding agent command>
done
```

Orkestratör yok, framework yok, süreç içinde hafıza yok. Nicholas Carlini bir Claude ekibiyle C derleyicisi yazarken temel yine aynıydı: Claude Code'u bir prompt dosyasıyla yeniden başlatan bir while-true bash döngüsü.

Bu kadar küçük bir şeyi neden çalışıyoruz? Çünkü bir önceki dersteki her komut, bu döngünün daha iyi parçalarla hâli. `/goal` bir kontrolcü ekliyor, `/loop` bir saat. Altındaki şekil değişmedi.

## Çalışmasını sağlayan üç tercih

**Her iterasyonda taze bağlam.** Her tur boş bir bağlam penceresiyle başlıyor. Ajan uzun ve dağınık bir konuşmayı peşinden sürüklemiyor, bu yüzden iş uzadıkça bozulmuyor. Hayatta kalması gereken her şey diskte duruyor.

**İterasyon başına tek görev.** Ajan öncelik sırasına dizilmiş bir plan dosyasını okuyor, en önemli tek maddeyi seçiyor ve sadece onu yapıyor. Huntley plan dosyasını harcanabilir sayıyor: kayarsa baştan üret. Spec'ler her turda okunan ayrı dosyalar, projenin nasıl derlenip çalıştırılacağını da kısa bir dosya tutuyor.

**Backpressure.** Huntley'nin, kötü çıktıya karşı geri iten her şey için kullandığı kelime: testler, build'ler, tip denetleyiciler, analizörler. Yanlış işi reddediyorlar, böylece loop hızlı hareket edip yine doğru kalabiliyor. Huntley yalnızca dokunulan birimin testlerini çalıştırıyor, prompt da yer tutucu (placeholder) implementasyonları yasaklıyor. Bu, kolay kaçış yolunu kapatıyor.

```flow loop
Prompt'u, spec'leri ve planı okur
En önemli tek görevi seçer
Uygular
Backpressure: test, build, tip kontrolü
Yeşilse commit atar, sonra boş başlar
```

**Question:** Ralph döngüsü her iterasyona neden taze bir bağlam penceresiyle başlıyor?

- Disk alanından tasarruf etmek için
- Ajan dağınık bir konuşmayı peşinden sürüklemesin diye, durum dosyalarda tutulsun diye
- Ajan dosya okuyamadığı için
- Her iterasyon bir öncekinden ucuz olsun diye

**Answer:** Ajan dağınık bir konuşmayı peşinden sürüklemesin diye, durum dosyalarda tutulsun diye. Taze pencere uzun bir konuşmanın bozulmasını önlüyor. Hayatta kalması gereken her şey diske yazılıyor: plan, spec'ler ve commit'ler.


## Pratikte nasıl davranıyor

Huntley'nin ana ajanı bir zamanlayıcı gibi çalışıyor. Pahalı işleri, yani kodda arama ya da test çıktısını özetleme gibi şeyleri alt ajanlara veriyor, aynı anda çalışan build ve test alt ajanı sayısına da üst sınır koyuyor. Ralph yanlış bir şey yapınca onunla tartışmıyor. Prompt'a bir "tabela" ekliyor: bir dahaki sefere o hatayı önleyen kısa bir talimat. Bu sohbet değil, ayar yapmak.

İş rotadan çıktığında iki çıkışı var: planı yeniden üret ya da git ile sıfırlayıp baştan başla. Yeşil build'lerdeki git etiketleri, dönülecek bilinen iyi noktalar sağlıyor.

> **Tek bir tanıklık, benchmark değil**
Huntley'nin sayfasında bir yüklenicinin, 50.000 dolarlık bir sözleşmeyi 297 dolara teslim ettiği anlatılıyor. Bu, kendi sayfasında anlatılan tek bir hikaye. Merak etmek için bir sebep sayın, ölçüm saymayın.


## Bilinen zayıflık

Ralph'ın resmi bir durma koşulu yok. TODO listesi boşalana ya da rotadan çıkana kadar çalışıyor, bunu fark eden de bir insan. Yanında oturuyorsanız sorun değil. Kimse yokken tehlikeli.

Carlini'nin koşusu o boşlukta ne yaşadığını gösteriyor. Yeni özellikler eskileri bozdu, o da CI ekledi. Bütün ajanlar aynı hatada takıldı. Bir ajan kendi döngüsünü `pkill` ile öldürdü. Bunlar, backpressure'ı olan ama gözetmeni olmayan bir loop'un sıradan arızaları.

Loop engineering bu boşluğa verilen cevap ve cevap daha akıllı bir model değil. Aynı şekil, artı Ralph'ın dışarıda bıraktığı parçalar: ajanın konuşarak aşamayacağı bir kontrolcü, kanıt olarak yazılmış bir durma koşulu, sert bir sınır ve aynı kontrol tekrar tekrar başarısız olunca ne yapılacağına dair bir kural. Sonraki üç ders bunları tek tek ekliyor.

> **En küçük Ralph'ı kağıtta yazın**
Henüz çalıştırmayın. İhtiyaç duyacağı üç dosyayı yazın: prompt, beş maddelik bir plan ve testlerinizin nasıl çalıştığını anlatan tek satır. Sonra onu neyin durduracağını yazın. Cevap "izlerim ve Ctrl+C'ye basarım" ise zayıflığı kendiniz bulmuşsunuz demektir.


**Question:** Yalın Ralph döngüsünün bilinen zayıflığı nedir?

- Test çalıştıramaz
- Resmi bir durma koşulu yoktur, bittiğini ya da rotadan çıktığını bir insanın fark etmesi gerekir
- Yalnızca tek dosyayla çalışır
- Her zaman tek bir prompt'tan pahalıdır

**Answer:** Resmi bir durma koşulu yoktur, bittiğini ya da rotadan çıktığını bir insanın fark etmesi gerekir. Ralph, TODO listesi boşalana ya da rotadan çıkana kadar çalışır. Durma koşulu ve sınır olmadan, başarılamayacak bir loop'u hiçbir şey bitirmez.
