> ## Documentation Index
> Fetch the complete documentation index at: https://docs.claboard.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Görev Bağımlılıkları

> Koşullu iş akışları, bağlam aktarımı ve alt görev oluşturma destekli DAG tabanlı bağımlılık sistemi

Görev bağımlılıkları yürütme sırasını tanımlar ve gelişmiş orkestrasyon kalıplarını mümkün kılar. Claude Board, koşullu dallanma, otomatik bağlam paylaşımı ve alt görev oluşturma destekli tam DAG (Yönlü Döngüsel Olmayan Graf) bağımlılıklarını destekler.

## Bağımlılık Ekleme

<Steps>
  <Step title="Görev penceresini açın">
    Mevcut bir görevde düzenle'ye tıklayın veya yeni bir görev oluşturun.
  </Step>

  <Step title="Seçenekleri genişletin">
    Bağımlılık düzenleyicisini göstermek için **Options** bölümüne tıklayın.
  </Step>

  <Step title="Arayın ve ekleyin">
    Üst görevleri aramak ve seçmek için **Add dependency** düğmesine tıklayın. Ayrıca Orkestrasyon Graf görünümünde düğümler arasında **Shift+sürükleme** de yapabilirsiniz.
  </Step>
</Steps>

## Koşullu Bağımlılıklar

Bağımlılıklar, alt görevlerin ne zaman tetikleneceğini kontrol eden koşullara sahip olabilir:

| Koşul                   | Kenar Rengi     | Davranış                                                                                            |
| ----------------------- | --------------- | --------------------------------------------------------------------------------------------------- |
| **Always** (varsayılan) | Gri düz çizgi   | Üst görev `done` veya `testing` durumuna ulaştığında alt görev başlar                               |
| **On Success**          | Yeşil kesikli   | Always ile aynı — üst görev başarılı olduğunda alt görev başlar                                     |
| **On Failure**          | Kırmızı kesikli | Yalnızca üst görev kalıcı olarak başarısız olduğunda (yeniden denemeler tükendiği) alt görev başlar |

<Tip>Otomatik kurtarma iş akışları oluşturmak için On Failure koşullarını kullanın. Örnek: Bir derleme görevi başarısız olursa, otomatik olarak bir hata ayıklama görevi tetikleyin.</Tip>

## Ajan Bağlam Aktarımı

Bir üst görev tamamlandığında, Claude Board otomatik olarak şunları içeren bir **bağlam özeti** oluşturur:

* Git diff istatistikleri (değişen dosyalar)
* Son commit mesajları
* Son Claude çıktı özeti
* Dal bilgisi

Bu bağlam, bağımlı alt görev istemlerine **otomatik olarak enjekte edilir**. Alt ajanlar, üst görevin ne yaptığını, hangi dosyaların değiştiğini bilir ve kod tabanını yeniden keşfetmeden bu çalışma üzerine inşa edebilir.

## Alt Görev Oluşturma

Çalışan ajanlar, MCP araçları aracılığıyla alt görevler oluşturabilir. Bir ajan `parent_task_id` ile `create_task` çağırdığında, alt görev üst göreve bağlanır:

1. Ajan, `parent_task_id` değerini kendi görev kimliğine ayarlayarak `create_task` çağrısında bulunur
2. Alt görev backlog'da oluşturulur ve otomatik olarak kuyruğa alınır
3. Claude süreci tamamlandıktan sonra üst görev **alt görevleri bekleme** durumuna geçer
4. Alt görevler yürütülür (DAG ve eşleşiklik kurallarına uygun olarak)
5. **Tüm** alt görevler `done`/`testing` durumuna ulaştığında, üst görev otomatik olarak tamamlanır

<Info>Alt görevler, üst görevin proje bağlamını miras alır. Üst görev istemi, Claude'a alt görevler oluştururken `parent_task_id` değerini nasıl kullanacağını belirtir.</Info>

## Döngü Algılama

Claude Board, DFS (Öncelik Derinlik Araması) geçişi kullanarak döngüsel bağımlılıkları önler. Bir bağımlılık eklemek bir döngü oluşturacaksa (A -> B -> C -> A), işlem reddedilir.

## Bağımlılık Kalıpları

<Tabs>
  <Tab title="Chain">
    Sıralı: A -> B -> C -> D. Her görev ancak önceki tamamlandıktan sonra başlar.
  </Tab>

  <Tab title="Fan-out">
    Bir üst, birden fazla alt: A -> \[B, C, D]. A tamamlandığında tüm alt görevler paralel olarak çalışır.
  </Tab>

  <Tab title="Fan-in">
    Birden fazla üst, bir alt: \[A, B, C] -> D. D yalnızca TÜM üst görevler tamamlandığında başlar.
  </Tab>

  <Tab title="Conditional">
    Başarı/başarısızlık dallanması: A -> B (on\_success), A -> C (on\_failure). A başarılı olursa B çalışır. A başarısız olursa bunun yerine C çalışır.
  </Tab>
</Tabs>

## API

* `addDependency(taskId, dependsOnId, conditionType?)` — Opsiyonel koşul (`always`, `on_success`, `on_failure`) ile bağımlılık ekle
* `removeDependency(taskId, dependsOnId)` — Bir bağımlılığı kaldır
* `getTaskDependencies(taskId)` — Üst ve alt görevleri getir
* `getDependencyGraph(projectId)` — Kenarlar (`conditionType` dahil) ve dalgalar içeren tam graf
* `getExecutionWaves(projectId)` — Dalga gruplamaları
