Sözleşme çıktının kendisidir

Bir CLI aynı anda insanlar ve script'ler tarafından tüketilir. Bu; kararlı çıkış kodları, makine tarafından okunabilir modlar ve anlamak için ikinci bir çalıştırma gerektirmeyen metin demektir. TokenGuard sızmış bir secret bulduğunda, tek başına çıkış kodu CI'a başarısız olmayı söylemelidir; rapor ise geliştiriciye neyi rotate edeceğini söyler.

Sessizlik de bir karardır. Başarıda hiçbir şey yazdırmayan bir araç pipeline'da hoştur ama terminalde kafa karıştırır; kısa bir özet satırı iki kitleye de hizmet eder.

Örnek senaryo: pre-commit hook'u

Örnek senaryo: secret taraması yapan bir CLI pre-commit hook'u olarak çalışıyor. Geliştirici, anahtara benzeyen bir test fixture'ı içeren dosyayı commit'liyor. Allowlist mekanizması olmayan bir araç commit'i engeller ve geliştiriciyi hook'u atlamaya alıştırır. Açık ve denetlenebilir bir ignore dosyası olan araç ise fixture'a izin verirken gerçek secret'larda yine başarısız olur.

Bu açıklama amaçlı bir senaryodur; belirli bir kurulumdan ölçülmüş bir sonuç değildir.

Hız ve bütünlük dengesi

Bir tarayıcı her dosyayı tam AST ile ayrıştırabilir ya da hızlı sezgisel yöntemler kullanabilir. AST analizi takma adlı import'ları ve dinamik erişimi yakalar ama başlangıç süresi maliyetlidir; sezgiler anlıktır ama dolaylı kullanımı kaçırır. EnvDoctor AST analizini seçti çünkü gerçek kullanımı kaçıran bir config denetim aracı kullanıcıya güvensizlik öğretir — hedefin tam tersi.

Kısa CLI kontrol listesi

Çıkış kodlarını belgeleyin; dry-run veya yalnızca-kontrol modu destekleyin; varsayılan çıktıyı kısa tutup ayrıntılı ve makine tarafından okunabilir biçimler sunun; yanlış yapılandırmada tahmin yürütmek yerine net biçimde başarısız olun; aracın aynı girdiye tekrar tekrar güvenle çalıştırılabilmesini sağlayın.