# Feature Tracking

> Feature listesi yönetimi ve ilerleme takibi. Yeni feature eklerken, feature durumu güncellerken veya ilerleme raporlarken kullanılır.

- Skill: `erhankaraarslan/feature-tracking` (Agent Skill)
- Install (CLI): `npx skillmds@latest add erhankaraarslan/feature-tracking`
- Raw SKILL.md: https://api.skillmd.com/api/skills/erhankaraarslan/feature-tracking/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: erhankaraarslan (https://skillmd.com/u/erhankaraarslan)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/erhankaraarslan/feature-tracking

---


# Feature Tracking Skill

Bu skill, Anthropic'in "Effective Harnesses for Long-Running Agents" makalesindeki best practice'lere göre feature takibi yapar.

## Feature List Yapısı

`feature-list.json` dosyası proje kökünde bulunur:

```json
{
  "project_name": "Proje Adı",
  "created_at": "2025-01-25",
  "last_updated": "2025-01-25",
  "total_features": 10,
  "completed_features": 3,
  "features": [
    {
      "id": "F001",
      "category": "core",
      "priority": "critical",
      "description": "Kullanıcı login yapabilmeli",
      "acceptance_criteria": [
        "Email ve password ile giriş",
        "Hatalı giriş mesajı",
        "Session oluşturulması"
      ],
      "passes": true,
      "completed_at": "2025-01-25",
      "dependencies": [],
      "estimated_complexity": "medium",
      "actual_sessions": 2,
      "notes": "OAuth ile entegrasyon sonraya bırakıldı"
    }
  ]
}
```

## Kullanım

### Yeni Feature Ekle
```
/feature-tracking add "Feature açıklaması" --priority high --category api
```

### Feature Durumu Güncelle
Feature'ı SADECE aşağıdaki durumlarda "passes: true" yap:
1. Tüm acceptance criteria karşılandı
2. End-to-end test yapıldı
3. Manuel veya otomatik verification başarılı

```
/feature-tracking complete F001
```

### İlerleme Raporu
```
/feature-tracking report
```

## KRİTİK KURALLAR

⚠️ **ASLA feature'ları silme veya acceptance criteria değiştirme!**
Bu, eksik veya hatalı fonksiyonelliğe yol açar.

⚠️ **Sadece `passes` field'ını değiştir**
Diğer alanları değiştirmek yasaktır (notes hariç).

⚠️ **Test etmeden "passes: true" yapma**
Her feature end-to-end test edilmeli.

## Dependency Graph

Feature'lar arasında bağımlılık yönetimi:

### depends_on (Bağımlılık)

Bir feature başlamadan önce tamamlanması gereken feature'lar:

```json
{
  "id": "F003",
  "description": "Kullanıcı profil düzenleme",
  "depends_on": ["F001", "F002"],
  "status": "pending"
}
```

**Kural:** F001 ve F002 tamamlanmadan F003'e başlama!

### blocks (Blokluyor)

Bu feature tamamlanmadan başlayamayacak feature'lar:

```json
{
  "id": "F001",
  "description": "Kullanıcı kayıt",
  "blocks": ["F002", "F003", "F005"]
}
```

**Anlam:** F001 tamamlanana kadar F002, F003, F005 beklemeli.

### Feature Seçim Algoritması

```bash
# Çalışılabilir feature'ları listele
cat feature-list.json | jq '.features[] | select(
  .status == "pending" and
  .passes == false and
  (.depends_on | length == 0 or all(.[] as $dep |
    any(.features[]; .id == $dep and .passes == true)
  ))
) | {id, priority, description}'
```

**Mantık:**
1. Status "pending" olmalı
2. passes: false olmalı (henüz tamamlanmamış)
3. Tüm bağımlılıkları tamamlanmış olmalı

### Dependency Graph Görselleştirme

```mermaid
graph TD
  F001[F001: User Registration] --> F002[F002: User Login]
  F001 --> F003[F003: Profile Edit]
  F002 --> F004[F004: Password Reset]
  F003 --> F005[F005: Avatar Upload]
```

### Circular Dependency Kontrolü

❌ **Yasak:**
```json
{
  "id": "F001",
  "depends_on": ["F002"]
},
{
  "id": "F002",
  "depends_on": ["F001"]
}
```

**Sonuç:** Deadlock! Hiçbiri başlayamaz.

**Kontrol:** Feature eklerken circular dependency check yap.

---

## Session Başı Kontrol

Her coding session'da:
1. `feature-list.json` oku
2. `passes: false` olan en yüksek öncelikli feature'ı seç
3. Sadece O feature üzerinde çalış
4. Tamamlandığında `passes: true` yap ve commit at

