atl doctor
Platformu tanıla ve güvenle düzeltebileceklerini kendiliğinden onar — ATL'nin her oturumda otomatik çalıştırdığı aynı denetimlerin istek üzerine erişilen yüzü.
Kullanım
atl doctorBayrak yoktur. atl doctor, mevcut projeyi (çalışma dizini proje anahtarıdır) ve global katmanı inceler, denetimlerini sırayla çalıştırır, deterministik bir düzeltmeyle onarılabilecek olanı onarır ve her denetim için bir satır yazdırır. Bir denetim FAIL olduğunda sıfırdan farklı çıkış kodu döndürür (uyarılar asla başarısız saymaz), böylece atl doctor && … bir script ya da CI adımını kapılayabilir.
Ne zaman kullanılır
Çoğu zaman kullanmazsın — bu denetimler zaten her oturum başlangıcında (session-start hook'u aracılığıyla) çalışır, sessizce kendiliğinden onarır ve yalnızca bir şey ters gittiğinde su yüzüne çıkar. atl doctor'a bilerek bakmak istediğinde başvur:
.claude/altındaki dosyaları kazara sildikten sonra (ya da bu dosyaların hiç inmediği taze bir checkout'ta) — varlıkların geri gelip gelmediğine bak,- öğrenimler takılmış gibi hissettirdiğinde — kuyruğun boşaldığını ve döngünün hâlâ tıkırdadığını doğrula,
- bir çalışma oturumundan önce ya da sonra hızlı bir "platform burada sağlıklı mı?" denetimi olarak.
Neyi denetler
Her satır STATUS check-name — detay biçimindedir; burada STATUS, OK, WARN ya da FAIL olur. Çalışma sırasında deterministik bir düzeltme uygulayan bir denetim (self-healed) etiketiyle işaretlenir.
asset-integrity — eksik dosya geri yükleme
Kurulum manifestosu bir sözleşmedir: bu dosyalar bu kapsamda var olmalıdır. doctor, her manifestoyu diskte gerçekte bulunanla karşılaştırır — hem proje katmanında (<project>/.claude) hem de global katmanda (~/.claude) — ve manifestonun listelediği ama diskte eksik olan her dosyayı geri yükler — sabitlenmiş kaynağından yeniden çekilir ve sağlama toplamı doğrulanır.
Yalnızca eksik dosyalar geri yüklenir. Var olan ama değişmiş bir dosya, bir kullanıcı düzenlemesi (ya da bir öğrenme-döngüsü evrimi) olarak değerlendirilir ve asla üzerine yazılmaz. Bir takımı tümüyle kaldırmak için, manifestoyu silen atl remove komutunu kullan. Tamamlanamayan bir geri yükleme (örneğin ağ çevrimdışıysa) oturumu engelleyici değil, bir WARN'dır.
queue-backlog — öğrenme kuyruğu boşalıyor mu?
Bu proje için öğrenme kuyruğundaki bekleyen öğeleri sayar. Kuyruk boş ya da rahatça küçük olduğunda OK; biriken iş eşiği (şu an 50) aştığında ise WARN olur ki bu, bir /drain geçişinin yetişemediğine işaret eder. Doctor kuyruğu kendisi boşaltmaz — bir kuyruk öğesini bir bilgi tabanına katmak bir LLM gerektirir ve bu da bir becerinin işidir; dolayısıyla doctor biriken işi işlemek yerine işaret eder.
tick-freshness — döngü hâlâ çalışıyor mu?
Bakım geçişinin en son ne zaman çalıştığına bakar (transcript yüksek-su işaretinden ayrı, duvar-saati son-tick zamanı). Öğeler kuyruğa alınmışken tıkırtılar 24 saatten uzun süredir çalışmadıysa (ya da kuyruğa yazılmış ama hiç tıkırtı olmamışsa) WARN olur — bu, oturum-içi temponun çalışmadığının bir işaretidir. Aksi durumda OK olur ve son tıkırtının ne kadar önce gerçekleştiğini bildirir.
hooks-bound — otomasyon gerçekten bağlı mı?
v2'de otomasyon zorunludur, ama sıfırlanmış ya da elle düzenlenmiş bir ~/.claude/settings.json ATL'nin hook'larını bağsız bırakabilir — bu da tüm döngüyü sessizce öldürür (drain, doctor ve guard tetiklenmez olur). Bu denetim settings dosyasını okur ve dört atl hook'undan (SessionStart, iki UserPromptSubmit girdisi — atl tick ve atl retrieve — ve PreToolUse) herhangi biri eksikse, senin kendi hook'larına asla dokunmayan aynı idempotent kurulumla onları yeniden bağlar — bir (self-healed) onarımı. Özelleştirdiğin bir tick throttle değeri (atl setup-hooks --throttle=…) korunur, asla varsayılana sıfırlanmaz. Okuyamadığı bir settings dosyası engelleyici değil, bir WARN'dır.
brainstorm-pins — pin bloğu hâlâ gerçeği yansıtıyor mu?
Aktif olan her brainstorm, kendisini ilgili kapsamın CLAUDE.md dosyasındaki <!-- brainstorm:active --> bloğuna iğneler ve brainstorm kapandığında o maddeyi kaldırmak /brainstorm done'un işidir. Bu adım bir becerinin içinde düz metin olduğu için atlanabiliyor — ve blok her oturumun bağlamına yüklendiğinden, geride kalan bir madde gelecekteki her oturuma kapanmış bir kararın hâlâ açık olduğunu söyler.
Bu denetim, iğnelenmiş kümeyi her brainstorm'un frontmatter status: değeriyle karşılaştırır — hem projede (<proje>/.atl/brain-storms ↔ <proje>/CLAUDE.md) hem de global katmanda (~/.atl/brain-storms ↔ ~/.claude/CLAUDE.md) — ve iki yönde birden WARN verir: kapanmış ama hâlâ iğnelenmiş bir brainstorm ve aktif ama iğnesiz bir brainstorm (brainstorm kuralının tarif ettiği kurtarma). Yalnızca frontmatter'ı okur, gövdeyi asla; böylece metninde status: active ifadesini alıntılayan kapanmış bir brainstorm işaretlenmez. Tanınmayan bir durum (elle yazılmış bir paused, frontmatter'ı olmayan bir dosya) raporlanmak yerine olduğu gibi bırakılır.
Üçüncü bir durum: blok açılmış ama hiç kapanmamışsa — bitmemiş bir kapanışta son işaretçi düşmüşse — denetim bloğun nerede bittiğini tahmin etmek yerine tam olarak bunu söyler ve orada durur. Tahmin etmek, dosyanın aşağısındaki her brainstorm bağlantısını (örneğin bir "yerleşmiş kararlar" bölümünü) sahte bir bayat-iğne raporuna dönüştürürdü.
Raporlar, asla yeniden yazmaz. Doctor'ın kendi kendini onaran adımları yalnızca ATL'ye ait dosyalara dokunur; CLAUDE.md senin her oturumda yüklenen kendi yönerge dosyandır ve eksik-iğne yönü konunun tek satırlık özetini gerektirir — mekanik bir düzeltme değil, muhakeme. .atl/brain-storms dizini olmayan bir projede sessizdir.
credential-file — çeviricinin token'ını başkaları okuyabiliyor mu?
Erişimin istem çeviricisi kimlik bilgisini ortamdan, ortam onu taşıyamadığındaysa ~/.atl/claude-token dosyasından alır — içinde yalnızca token bulunan düz bir dosya. Bu dosyayı atl asla yazmaz; dolayısıyla elle oluşturulmuş bir dosya senin umask değerini alır ve bu değer varsayılan bir macOS kabuğunda 0644'tür: makinedeki her hesabın okuyabildiği bir sır ve ağaçta bunu fark edecek başka hiçbir şey yok. Bu denetim dosyanın modunu okur ve mod sahibinden başkasına da açıksa 0600'e daraltır — bir (self-healed) onarımı. Zaten yalnızca sahibine açık olan bir dosya OK'tir; değiştiremediği bir mod ise bulduğu modu ve gerekçesini taşıyan bir WARN'dır.
Yalnızca modu denetler, başka hiçbir şeyi değil. Eksik ya da boş bir kimlik bilgisini bilerek raporlamaz — bu koşul zaten oturum-başlangıcı bildirimine aittir ve tek bir koşulu iki ayrı kanaldan bildirmek, bir sinyalin okunmaz hâle gelme biçimidir. Bu yüzden dosyanın hiç olmaması da OK'tir ("no translator credential file (optional)"); çeviri bir gereklilik değil, bir iyileştirmedir ve denetim bir kez onardıktan sonra tümüyle susar. ~/.atl dizininin kendisine bilerek dokunulmaz — o dizin, kendisini 0755 olarak oluşturan öğrenme kuyruğuyla paylaşılır; dolayısıyla dizinin modu bu denetimin tartışacağı bir şey değildir.
CLI / Beceri ayrımı
atl doctor yalnızca deterministik onarımlar yapar — eksik bir dosyayı yeniden çek, mekanik bir adımı yeniden dene. Bir LLM gerektiren her şey (kuyruğa alınmış bir öğrenimi bilgi tabanına işlemek) tasarım gereği kapsam dışıdır; doctor sayıyı su yüzüne çıkarır ve seni beceriye yönlendirir. İşte bu yüzden büyük bir biriken iş burada bir uyarı olarak görünür ama aslında /drain çalıştırılarak temizlenir.
Örnekler
Sağlıklı bir proje:
$ atl doctor
OK queue-backlog — queue empty
OK tick-freshness — last tick 3m12s ago
OK asset-integrity — all installed files present
OK hooks-bound — all automation hooks bound
OK brainstorm-pins — pins agree with brainstorm frontmatter
doctor: all healthyBir dosya silinmiş ve doctor onu geri yüklemiş, kuyruk ise geride kalmış:
$ atl doctor
WARN queue-backlog — 63 pending items — a drain skill should process them
OK tick-freshness — last tick 8s ago
OK asset-integrity — restored 1 missing file(s) — `atl remove <handle>/<team>` removes a team for good (self-healed)
OK hooks-bound — all automation hooks bound
WARN brainstorm-pins — 1 closed brainstorm(s) still pinned in CLAUDE.md — every session is told the decision is open: docs-sync-v2.md (status: completed) — fix the `<!-- brainstorm:active -->` block (brainstorm rule)
doctor: warnings above (not fatal)Çıkış mesajı, en ağır satıra göre doctor: all healthy, doctor: warnings above (not fatal) ya da doctor: failures above olur — ve çıkış kodu yalnızca failures above için sıfırdan farklıdır.
İlgili
atl learnings— biriken iş denetiminin raporladığı kuyruğu incele; temizlemek için/drainçalıştır.atl setup-hooks— bu aynı denetimleri otomatik çalıştıransession-starthook'unu bağlar.atl install/atl remove—asset-integrity'nin onardığı manifestoları yazar ve siler.- CLI genel bakışı