Vardiya değişimi
Ustabaşı şantiyeyi terk ederken iki şey bırakır: işin nereye geldiğini söyleyen bir defter ve neden kırmızı tuğla değil de mavi seçildiğini anlatan bir karar günlüğü. Ertesi sabah gelen usta önce bu iki belgeyi okur; sonra elini taşa sürer. Yazılmadıysa, gün dünden değil sıfırdan başlar — daha kötüsü, dün takılan pencere bugün sökülür. Düzenek Mühendisliği (Harness Engineering) içindePROGRESS.md ve DECISIONS.md tam olarak bu iki belgenin karşılığıdır: düzenek (harness) içinde yaşayan, oturumlar arası süreklilik taşıyan iki durum aparatıdır.
Ne işe yarar
PROGRESS.md vardiya defteridir. Şu anki durumu, tamamlananı, devam edeni, bilinen sorunları ve sıradaki adımı tek dosyada tutar. Vardiya alımında (clock-in) ilk okunan, vardiya tesliminde (clock-out) son güncellenen aparattır. Compaction “ne yapıldı” sorusunu çoğunlukla korur; ama “şu anda nerede kaldım” sorusunun dakikası dakikasına cevabı yalnızca bu dosyadadır.
DECISIONS.md gerekçe günlüğüdür. Her bağlayıcı karar için tarih, başlık, neden, reddedilen alternatif ve kısıt yazılır. Bu aparat doğrudan compaction’ın kör noktasını hedefler: özet “ne”yi korur, “neden”i kaybeder. Bir hafta sonra başka bir oturum aynı kararı tersine çevirmek istediğinde, gerekçeli reddetmenin tek dayanağı burasıdır.
İki dosya da repo kökünde, git izli ve düz markdown olarak yaşar. 12-Factor Agents’ın 5. faktörü — “execution state ile business state’i tek olay akışında birleştir” — bu sadeliği ister: durum, önemsiz biçimde serileştirilebilir, kolayca yeniden okunabilir olmalı.
Şablon — PROGRESS.md
DECISIONS.md’de cevaplanır.
Şablon — DECISIONS.md
Konvansiyon
Tek kural: vardiya kapanışında yaz, vardiya açılışında oku, her oturum kapanışında commit et. Pratik karşılığı üç satır:- Oturum açılışında ilk iş
cat PROGRESS.md && cat DECISIONS.md. - Oturum kapanışında son iş
PROGRESS.mdgüncelle, gerek varsaDECISIONS.md’ye giriş ekle,make checkyeşil, commit at. - Açık sorular
PROGRESS.md’nin “Açık sorular” bölümüne yazılır; kullanıcıya iletilir; cevap geldiğindeDECISIONS.md’ye taşınır.
Özelleştirme
Açık sorular. Tek bir oturumda cevaplanamayan her şeyPROGRESS.md içindeki “Açık sorular” listesine düşer. Liste asla boş bırakılmak için temizlenmez — cevap gelene kadar orada durur, gelince DECISIONS.md’ye taşınır ve listeden silinir.
Engellenmiş işler. “Devam ediyor” altında parantez içine engelleyicisi yazılır: [ ] Webhook teslimi (bekliyor: prod queue erişimi). Engelleyici kalkmadan sıradaki adımlara yazılmaz.
Çoklu ajan. Birden çok ajan aynı repoda çalışıyorsa PROGRESS.md ajan başına bir başlığa bölünür: ## Ajan A — şu anki durum, ## Ajan B — şu anki durum. DECISIONS.md ortak kalır; her karar girişine “öneri: Ajan B” notu eklenir. Çatışan kararlar listenin altına “açık tartışma” başlığı altında biriktirilir; insan operatör kararı bağlayıcılaştırır.
Otomasyona bağlama
PROGRESS.md’nin commit’siz kalmasını engellemek için pre-commit hook’u kullanılır. Aşağıdaki kontrol, commit’lenmek üzere olan değişiklik kümesinde PROGRESS.md dokunulmuşsa geçer; aksi halde uyarı verir:
chore(shift): ile başlıyorsa zorla). CI tarafında ek bir kontrol: PR’da PROGRESS.md’nin son satırındaki tarih bugüne ait değilse pipeline kırmızı yanar. Bu kural Anthropic’in initializer ajan deseninin sürekli karşılığıdır — her oturum kendi git checkpoint’ini bıraktığı sürece düzenek geriye dönülebilir kalır.