# Saate bağlı çalışan işler

Claude Code'da bir şeyi tekrar tekrar çalıştırmanın üç yeri var: cloud routine'ler, Desktop zamanlanmış görevler ve oturum içi /loop. Nerede çalıştıkları, ne sıklıkla tetiklenebildikleri ve neyin ayakta kaldığı birbirinden farklı.

## Üç yer, üç ödünleşim

İlk soru bir şeyi nasıl zamanlayacağınız değil. Nerede çalışacağı, çünkü gerisini o belirliyor.

- **Cloud routine'ler**, `/schedule` ile kurulur, bilgisayarınız olmadan çalışır. Asgari aralık 1 saat.
- **Desktop zamanlanmış görevler** sizin bilgisayarınızda çalışır. Claude kurduğunda asgari aralık 1 dakika.
- **`/loop`** açık bir oturumun içinde çalışır.

```flow
Dizüstü kapalıyken de lazım mı?
Evet: cloud routine, en sık saatlik
Hayır, bilgisayarım açık kalabilir: Desktop görevi
Yalnızca ben çalışırken: /loop
```

Kural basit. İş siz yokken olacaksa bilgisayarınızın açık olmasına bağlı olamaz, bunun bedeli de daha kaba bir saat.

**Question:** Bir cloud routine en kısa hangi aralıkla çalışabilir?

- 1 dakika
- 10 dakika
- 1 saat
- 24 saat

**Answer:** 1 saat. Cloud routine bilgisayarınız olmadan çalışır ama asgari aralığı 1 saat. 1 dakikalık asgari Desktop zamanlanmış görevlere ait.


## Pratikte /loop

`/loop`'un üç biçimi var.

- `/loop 5m prompt` sabit aralıkla çalışır.
- `/loop prompt` aralığı her seferinde Claude seçer. Doğru aralığın gördüğüne bağlı olduğu işler için uygun.
- Yalın `/loop` yerleşik bir bakım prompt'unu ya da sizinkini çalıştırır.

Sizinki projede `.claude/loop.md` içinde durur ve o kazanır, kullanıcı için `~/.claude/loop.md` olur. Yalın loop'un varsayılan prompt'unun yerini alır, değişiklikler bir sonraki turda geçerli olur. Yani çalışan bir loop'u bir dosyayı düzenleyerek ayarlayabilirsiniz.

```terminal
$ claude
> /loop 5m check whether the deploy finished and tell me if it failed
* Kontrolü 5 dakikada bir zamanlar
* Çalıştırır, "hala build oluyor" der
# Esc ve Ctrl+C durdurmaz. Claude'dan loop'u iptal etmesini isteyin.
```

Son nokta insanları şaşırtıyor. Sabit aralıklı bir loop'u durdurmak için Claude'dan iptal etmesini isteyin. Esc ve Ctrl+C durdurmuyor.

## Zamanlanmış tetiklemenin yapamadıkları

Zamanlanmış çalıştırmaya cevap verecek kimse olmadığı için kısıtlı. Yerleşik komutları, `disable-model-invocation` işaretli skill'leri ve MCP prompt'larını çalıştıramıyor. Loop prompt'unuz bir slash komutuna dayanıyorsa, elle yazdığınızdaki gibi çalışmaz.

Bilmeniz gereken sınırlar:

- Bir oturum en fazla 50 zamanlanmış görev tutar.
- Her birinin `CronDelete`'in aldığı 8 karakterlik bir ID'si var, `CronList` bir sonraki çalışma zamanlarını gösterir.
- Oturum görevleri `--resume` ile geri gelir, süresi dolmadıysa. Süre yedi gün.

> **Loop bir söz değil**
Oturum görevleri bir oturumda yaşar. Oturumu kapatıp yedi gün geçirirseniz zamanlama gider. Güvendiğiniz bir iş için Pazartesi başlattığınız bir loop değil, routine ya da Desktop görevi kullanın.


## Arka plan işleri

Siz izlemeden işi sürdürmenin tek yolu zamanlama değil. `claude --bg` arka planda bir ajan başlatır. `claude --bg --exec 'pytest -x'` bir shell işini arka planda PTY işi olarak çalıştırır.

Bilmeye değer iki komşu var. Yoklamak yerine olaylara tepki vermek için Channels kullanın. Bir koşula doğru çalışmayı sürdürmek için `/goal` kullanın. Loop saate bakıp "zamanı geldi mi?" diye soruyor. Bunlar "bir şey oldu mu?" ya da "vardık mı?" diye soruyor, çoğu zaman asıl kastettiğiniz de bu oluyor.

> **Print modu loop'ları bekler**
Bir `claude -p` çalıştırması çıkmadan önce bekleyen `/loop` uyanışlarını bekliyor, boşta bekleme 10 dakikada kesiliyor. Headless bir script sonunda takılıyorsa başlattığı bir loop sebep olabilir.


> **Kendini düzenleyen loop'u izleyin**
`.claude/loop.md` oluşturup tek satır yazın, örneğin "git status'a bak, commit edilmemiş bir şey varsa söyle". Yalın bir `/loop` çalıştırın, çalışırken dosyayı değiştirin. Sonraki tur yeni metni kullanır.


**Question:** Sabit aralıklı bir /loop nasıl durdurulur?

- Esc'ye basarak
- Ctrl+C'ye basarak
- Claude'dan iptal etmesini isteyerek
- Sadece terminal sekmesini kapatarak

**Answer:** Claude'dan iptal etmesini isteyerek. Esc ve Ctrl+C durdurmaz. Claude'dan loop'u iptal etmesini istersiniz, o da zamanlanmış görevi kaldırır.
