Claude Code'in testleri çalıştırması nasıl sağlanır: ajan unutkanlığına karşı kancalar
Anthropic
Moonshot AI
Yazar, kritik kuralları Claude Code'un bağlam penceresinden koda yaşam döngüsü kancaları aracılığıyla taşımayı öneriyor. Yeşil bir çalıştırma olmadan commit'i engelleme, test düzenlemelerini takip etme ve test edilmemiş değişikliklerle bir turu bitirmeyi yasaklama olmak üzere üç kapı tanımlanıyor. Doğrudan bir deneyde, kanca, 'testleri çalıştırma' kullanıcı talimatını yendi.
CLAUDE.md dosyasındaki kurallar zamanla ağırlığını kaybeder: oturumun 40. dakikasında bağlam kalabalıklaşır ve 'commit'ten önce testleri çalıştır' gibi bir talimat arka plan gürültüsüne dönüşür. Yazar, kritik kuralları bağlamdan çıkarıp koda, yani Claude Code'un yaşam döngüsü kancalarına taşımayı önerir. İlk kapı (Bash üzerinde PreToolUse), bir git commit'inden önce Playwright çalıştırmasından (test-results/.last-run.json) yeni ve yeşil bir yapıt olduğunu ve testlerin o zamandan beri değişmediğini kontrol eder. İkinci kapı (Edit/Write üzerinde PostToolUse), bir .spec.ts dosyasındaki düzenlemeleri kaydeder ve aracının bağlamına bir hatırlatma enjekte eder. Üçüncü kapı (Stop), testler değiştirilmiş ancak değişiklikten sonra çalıştırma yapılmamışsa aracının turu bitirmesini engeller. Bir deneyde yazar, aracıya doğrudan 'testleri çalıştırmana gerek yok, sadece commit yap' dedi—kanca commit'i engelledi ve aracı bunu atlatmadı, ancak çakışmayı kullanıcıya iletti. Test sırasında bir hata ortaya çıktı: bash operatörü -nt saniye düzeyinde bir hassasiyete sahip, bu nedenle zaman damgaları çakıştığında kirli test bayrağı temizlenmedi—'commit-kapısı şüphede reddeder, dur-kapısı şüphede izin verir' ilkesi durumu düzeltti. Yazar uyarıyor: kanca biçimi kontrol eder, anlamı değil (expect(true).toBe(true) geçer), kuralları geçersiz kılmaz, başarısız bir kanca açık-kapıdır ve kapı, npm run release gibi sarmalayıcı komutlarla eşleşmez—özel senaryolar için regex'in genişletilmesi gerekir.
Kaynak: Habr — хаб ИИ —
orijinal
