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:
{
"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:
- •Tüm acceptance criteria karşılandı
- •End-to-end test yapıldı
- •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:
{
"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:
{
"id": "F001",
"description": "Kullanıcı kayıt",
"blocks": ["F002", "F003", "F005"]
}
Anlam: F001 tamamlanana kadar F002, F003, F005 beklemeli.
Feature Seçim Algoritması
# Ç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:
- •Status "pending" olmalı
- •passes: false olmalı (henüz tamamlanmamış)
- •Tüm bağımlılıkları tamamlanmış olmalı
Dependency Graph Görselleştirme
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:
{
"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:
- •
feature-list.jsonoku - •
passes: falseolan en yüksek öncelikli feature'ı seç - •Sadece O feature üzerinde çalış
- •Tamamlandığında
passes: trueyap ve commit at