Skip to main content

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çinde PROGRESS.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

Her vardiya kapanışında son güncelleme satırı tarihlenir; sıradaki adımlar yeniden yazılır. Açık sorular asla örtük bırakılmaz — listeye girer ya da DECISIONS.md’de cevaplanır.

Şablon — DECISIONS.md

Yatay çizgiler girişleri ayırır; tarih + başlık formatı ızgaralanabilir, grep ile aranır. Bir karar geri çekilirse silinmez — yeni bir giriş eklenir ve eskisi “iptal edildi: bkz. 2026-06-02” notuyla kalır.

Konvansiyon

Tek kural: vardiya kapanışında yaz, vardiya açılışında oku, her oturum kapanışında commit et. Pratik karşılığı üç satır:
  1. Oturum açılışında ilk iş cat PROGRESS.md && cat DECISIONS.md.
  2. Oturum kapanışında son iş PROGRESS.md güncelle, gerek varsa DECISIONS.md’ye giriş ekle, make check yeşil, commit at.
  3. Açık sorular PROGRESS.md’nin “Açık sorular” bölümüne yazılır; kullanıcıya iletilir; cevap geldiğinde DECISIONS.md’ye taşınır.
Bu üç adım 12-Factor Agents’ın 6. faktörünün (clean pause-resume) tabandaki uygulamasıdır: durum dosyalanmışsa, oturum iki dakikada da iki haftada da kaldığı yerden devam eder.

Özelleştirme

Açık sorular. Tek bir oturumda cevaplanamayan her şey PROGRESS.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:
Sertlik düzeyi tercihe bağlıdır: küçük fix commit’lerini engellemek istemiyorsan kontrolü yalnız “vardiya kapanışı” etiketli commit’lere bağla (mesaj 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.

İlgili dersler