Documentation Index
Fetch the complete documentation index at: https://lokomotifai.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Hiçbir şey yapmayan “Ödeme Yap” butonu
Bir e-ticaret projesinde ajan “sepet ve ödeme akışını ekle” görevini alır. Bir oturum sonunda raporlar: “Tamamlandı.” Frontend’de “Ödeme Yap” butonu vardır, stiller yerinde, hata mesajı yok. Tıklayınca hiçbir şey olmaz. Form submit edilmiyor, ağ isteği gitmiyor, log’da iz yok. Bir sonraki ajan oturumu yarım saat boyunca neyin yapıldığını çözmeye çalışır. Ne yanlış? Ajan kendi içsel standardıyla “tamamlandı” dedi. O standart yazılı değildi, ölçülemiyordu, kimse imza atmamıştı. “Kod yazıldı, syntax hatası yok” ajanın işine geldi. Davranışsal doğrulama yoktu, durum geçişi otomatik değildi, kayıt yapılandırılmamıştı. Bu problemin kökünde tek bir eksik vardır: yapılandırılmış bir özellik listesi.Tez
Düzenek Mühendisliği (Harness Engineering) dünyasında bir özellik listesi (feature list) insan için bir doküman değil, sistem için bir primitiftir. Düzeneğin (harness) dört temel komponenti — scheduler, verifier, handoff reporter, progress tracker — hepsi bu primitife dayanır. Liste yoksa düzenek çöker; çünkü her komponentin okuyacağı bir veri yapısı kalmaz.Dokümanlar insanın okuması içindir; primitifler sistemin işletmesi içindir. Doküman atlanabilir; primitif atlanamaz.Anthropic’in uzun süreli ajanlar için yayımladığı çerçeve bu fikri açıkça koyar: “Set up a feature list file: based on the input spec, set up a structured JSON file with a list of end-to-end feature descriptions.” Liste JSON’dur, satır içi notlar değil. claude.ai klonu deneyinde 200’den fazla özellik bu yapıda tutulmuş ve başlangıçta hepsi
failing olarak işaretlenmiştir.
Özelliğin üçlüsü
Her özellik üç bileşenden oluşur. Üçü olmadan o şey özellik değildir, sadece bir niyettir.- Davranış (behavior): Sistem ne yapacak, dışarıdan nasıl gözlenecek?
- Doğrulama (verification): Hangi komut çalıştırıldığında “yapıldı” diyebiliriz?
- Durum (state): Şu an hangi aşamadadır?
Dört durumlu makine
Ders 07 bu dört durumu (not_started, active, blocked, passing) WIP=1 kuralının üzerine oturtmuştu. Burada onları bir geçiş diyagramına resmileştiriyoruz:
Pass-state kapısı — geri alınamaz, otomatik
passing’e geçiş iki özelliğe sahiptir:
- Geri alınamaz. Bir özellik
passingolduktan sonra normal akışta geri dönmez. Geri dönüyorsa o özellik baştan yanlış tanımlanmıştır. - Otomatiktir. Ajan kendi başına
passingyazamaz. Geçiş, doğrulama komutu sıfır çıkış koduyla bittiğinde script tarafından yapılır.
Listeyi okuyan dört komponent
Aynı veri yapısı, dört farklı düzenek komponentine girer.1) Scheduler — sıradaki işi seçer
not_started durumundaki özellikleri sıralı okur, ilk bağımlılığı tamam olanı active yapar. Düzenek ajana ne yapacağını söyler; ajan ne yapacağına karar vermez.
2) Verifier — kapıyı tutar
Aktif özelliğin doğrulama komutunu çalıştırır. Çıkış kodu sıfırsa durumupassing’e döndürür. Değilse active kalır. Anthropic’in tool tasarımı yazısı verifier’ın özelliklerini ayrı bir bağlamda ama aynı sözlerle koyar: doğrulamayı her “evaluation prompt” için “a verifiable response or outcome” ile eşleştirin; bu basit string karşılaştırması da olabilir, daha karmaşık bir judge de.
3) Handoff reporter — özet üretir
Oturum sonunda otomatik özet üretir: kaç özellikpassing’e geçti, kaç tanesi blocked, kaç tanesi not_started. Anthropic deneyinde bu role karşılık gelen yapı bir claude-progress.txt dosyası ve init script’idir. Yazı şöyle der: “An initial git repo and progress notes file is written.” Bu artifact, bir sonraki oturum açıldığında durum çıkarımının başlangıç noktasıdır.
4) Progress tracker — durum dağılımı
Tüm projenin sağlık fotoğrafı:Granülerlik — tek oturumda biten
Özellik granülerliğinin altın kuralı: tek bir düzenek oturumunda init’ten doğrulamaya kadar tamamlanabilmelidir. Çok büyükse parçalanır, çok küçükse birleştirilir.Biftek kesmek gibidir — bütün parçayı tabağa koymazsın; ama et makinesinden geçirip kıyma da yapmazsın. Çatalla alıp ısırılacak büyüklükte dilim.Doğru granülerlik testi: hangi özellik bir oturumda init → kod → doğrulama → commit akışından geçebiliyorsa doğru kesilmiştir.
Pratik
docs/features.json
AGENTS.md içindeki özellik kuralları
Geri basınç — listenin gerilimi
passing olmamış özellik sayısı, düzeneğin ajan üzerine bindirdiği gerilimdir. Geri basınç sıfır = proje tamam. Aksi her durum yapılacak iş demektir. Düzenek bu basıncı düşürmek için vardır; ajan basıncı azaltır ama tanımlamaz.
Sayılarla
Aynı 12 özellik, iki farklı kuruluş:| Yapı | Tamamlanma | Mükerrer uygulama | Oturum başlangıç teşhis süresi |
|---|---|---|---|
| Serbest progress notları | yüzde 45 | Var | yaklaşık 15 dk |
| Yapılandırılmış özellik listesi | yüzde 90 | 0 | yaklaşık 3 dk |
Pratik kontrol listesi
-
docs/features.jsonmevcut ve makine-okunabilir formatta. - Her özellikte davranış, doğrulama, durum üçlüsü var.
- Dört durumlu makine uygulanıyor:
not_started,active,blocked,passing. - Aynı anda yalnız bir özellik
active. - Doğrulama scripti durumu otomatik günceller; ajan elle yazmaz.
- Scheduler / verifier / handoff reporter / progress tracker dördü de aynı liste üzerinden çalışıyor.
- Özellik granülerliği “tek oturumda biten” testini geçiyor.
-
passingözellikler için kanıt (commit, log dosyası) referansı tutuluyor.
Müfredat içindeki yeri
Ders 07 WIP=1 disiplinini koydu; bu ders o disiplinin altındaki veri yapısını resmileştirdi. Liste artık insan için bir not değil, dört düzenek komponentinin işlettiği bir primitif; özelliklerin üçlüsü ve dört durumlu makine bunu mekanikleştirir. Ders 09 — Erken Zafer İlanı en kritik geçişin —passing’in — neden ajandan alınıp düzeneğe verilmesi gerektiğini ölçer.
Pratik karşılığı: Proje 04 — Çalışma Zamanı Geri Bildirimi ve Kapsam Kontrolü.
Kaynaklar
- Anthropic — Effective harnesses for long-running agents: “feature list”, “self-verification”, “handoff artifact” vokabüleri buradan gelir.
- GitHub — spec-kit: Spesifikasyonların doküman değil, çalıştırılabilir primitif olduğu fikrinin yazılı kaynağı.
- Anthropic — Writing tools for agents: Doğrulanabilir çıktı kuralı (“a verifiable response or outcome”) buradan.
- Martin Fowler / Birgitta Böckeler — Spec-Driven Development tools: Spec-driven yaklaşımın eleştirel değerlendirmesi; “agent ultimately not follow all the instructions” gözlemi neden otomatik kapıların gerekli olduğunu açıklar.