Makine çevirisi. İngilizce aslını okuyun: Per-seat billing turns a 60¢ code review into $4 →
Yapay zeka kod inceleme faturanızı bölün. Etiket fiyatını değil, gerçek bölümü: geçen ay ne ödediniz, incelediği pull request sayısına bölün. Ekibim için yaptım ve sayı, fiyatlandırma sayfasındaki sayıdan o kadar kötüydü ki hata yaptığımı sandım.
Bir hata yapmamıştım. Sadece ürünü bana satıldığı şekilde satın alıyordum, onu kullanma şeklimiz yerine.
İşte tez ve bundan sonraki her şey bunun kanıtı. AI kod incelemesi, geliştirici başına satılır ve pull request başına tüketilir. Bu iki sayının birbiriyle hiçbir ilgisi yok ve aralarındaki fark, paranızın gittiği yerdir. Ayrıca ve daha kötüsü, ödeme yaptığımız araç, içinde altı gerçek hata bulunan bir diff okudu ve sadece birini buldu.
Onu kendi yaptığımız bir şeyle değiştirdik. Size her iki iddianın makbuzlarını göstereceğim, bizi daha kötü gösteren kısımlar da dahil.
Altı hata girdi. Bir tanesi çıktı.
Pull request, platformumuzdaki bir otomatik kaydetme yeniden düzenlemesiydi. Sıradan, orta boy, bir Salı günü açılan ve kimsenin uykusunu kaçırmayan türden. Greptile inceledi, iki yorum bıraktı ve devam etti.
Ardından mühendislerimizden biri diff’i elle inceledi ve düzgün bir şekilde değerlendirdi, hangi aracın ne bildirdiğine bakmadan her gerçek hatayı yazdı. Altı hata. Dördü P1, birini rahatsız etmektense kullanıcı verilerini bozan türden.
Otomatik kaydetme, değerleri normalleştirdikten sonra kendini sonsuza dek yeniden etkinleştirdi. Başarısız bir kaydetme, sonsuz döngüde yeniden denedi. Otomatik kaydetme, kullanıcının başka bir sekmede aktif olarak yazdıklarını ezdi. Bir kaydetme promise’i işlenmeden atıldı. Sayfadan ayrılmak bekleyen her şeyi düşürdü. Kaydet düğmesi yalnızca adım kaydedilemediğinde görüntülendi.
Bu altıdan biri raporlandı.
Bu altıdan hiçbiri prodüksiyona ulaşmadı ve nedenini tam olarak belirtmek istiyorum, çünkü sebep asıl mesele. Bir insan diff’i okuduğu için yakalandılar. İnceleyenin onları durdurmasından değil. Altı şeyden birini yakalayan bir güvenlik ağı için ödeme yapıyorduk ve diğer beşini yakalayan şey, bir mühendisin kodu satır satır okumasıydı; bu, ürünün azaltmak için var olduğu tam faaliyettir.
Kendinden emin bir şekilde tersini söylemek, hiçbir şey söylememekten daha kötü
Yedinci bir bulgu vardı. Gerçek değildi.
Bize “başarısız otomatik kaydetmenin yeniden denemesi yok” dendi. Aynı fonksiyonda bulunan gerçek hata tam tersiydi: başarısız otomatik kaydetme sonsuza dek yeniden denedi. Kaçırılmış bir hata değil. Tersine çevrilmiş bir hata.
Bu konuyu, beş kaçırma olayının toplamından daha fazla düşündüm. Bir kaçırma sessizliktir ve sessizlik hayatta kalınabilir, çünkü inceleyeninizin her şeyi bilmediğini zaten varsayarsınız. Bir tersine çevirme, sessizlikten daha kötüdür. Bir mühendisi doğru dosyaya, yanlış şeyi aramaya gönderir ve hiçbir zaman orada olmayan şeyi bulamadıklarında dosyayı kapatır ve incelenmiş olarak işaretler. Yanlış bir rapor size yardım etmekte başarısız olmakla kalmaz. Dikkatinizi harcar ve tam olarak gerçek hatanın saklandığı yerde harcar.
Bir gerçek bulgu. Bir ters bulgu. Diff’te altı hata.
Bir model, bir kör nokta anlamına gelir ve şeklini asla öğrenemezsiniz
İlk tepkim yanlış aracı satın aldığımız oldu. Bu tepki yanlıştı ve bunu aşmak, itiraf etmek istediğimden daha uzun sürdü.
Her öncü modelin kör noktaları vardır ve bunlar aynı kör noktalar değildir. Bu, belirli bir satıcının ürünündeki bir kusur değil, bu sistemlerin ne olduğudur. Bu, inceleme sürecinizi tam olarak bir model üzerine kurarsanız, onu tam olarak bir körlük deseni üzerine kurduğunuz anlamına gelir ve bu desenin şeklini asla öğrenemezsiniz, çünkü size bunu gösterebilecek tek araç, kör olan araçtır.
Bunu açıklayayım. Sorun, inceleyeninizin kötü olması değil. Sorun, inceleyeninizin tek olması. İkinci bir görüş, kod incelemesinde hiçbir zaman lüks olmadı, kod incelemesinin çalıştığı tüm mekanizmaydı ve biz onu otomatikleştirdiğimiz anda sessizce bıraktık.
Bu yüzden Juror’u yaptık. Birkaç öncü model aynı diff’i paralel olarak inceler, her biri kendi yerel ajan koşum takımı aracılığıyla, her biri deponuzu satıcısının amaçladığı şekilde aramakta özgürdür. Bulguları birleşir, böylece bir hatanın üç neredeyse aynı raporu üç yerine tek bir bulgu haline gelir ve pull request’e düşen tek bir yorumdur.
Aynı commit üzerinde çalıştırdık.
| İnceleyen | Buldu | Doğruluk | Maliyet | Süre |
|---|---|---|---|---|
| Greptile | 6’da 1 | %50 | belirtilmemiş | belirtilmemiş |
| Juror | 6’da 4 | %100 | 1,08$ | 8m22s |
İşte kaybettiğimiz kısım
Juror ikisini kaçırdı.
Greptile, atılan kaydetme promise’ini yakaladı, biz yakalamadık. Hiçbir araç sonsuz yeniden deneme döngüsünü bulamadı. Her iki inceleyiciyi bir araya koyun ve altıda beş elde edersiniz, ki bu her birinin tek başına başardığından daha iyidir ve bunu yukarıdaki tablonun altına gömmeyeceğim.
Bu bölümü kesebilirdim. Saklıyorum çünkü argüman budur. Farklı modeller farklı şeyleri yakalar. Bu, teklifimize iliştirilmiş garip bir uyarı değil, teklifin kendisidir ve bir rakibin modelinin bizim kaçırdığımız bir şeyi bulması, tek bir inceleyici çalıştırmanın hata olduğunun mevcut en temiz göstergesidir. Bunun olmayı bıraktığı gün, jürimizin dört şapka takan tek bir görüşe dönüştüğünden endişelenmeye başladığım gündür.
İncelemeler için ödeme yapmıyorsunuz
Şimdi fatura, işte burada artık tek bir pull request ile ilgili olmaktan çıkıyor.
Greptile Pro planı, Ağustos 2026 itibarıyla koltuk başına ayda 30$’dır. Bu, koltuk başına 50 kredi içerir; bir kredi standart bir inceleme satın alır ve üç kredi daha derin bir inceleme satın alır ve ek krediler tanesi 1$’dır.
İnceleme başına bu ucuz. Kabaca altmış sent, size verilen her krediyi kullanırsanız. Tamamen adil olmak istiyorum: birim bazında bu, yukarıdaki pull request’te kendi aracımızın maliyetinden daha düşük. Ödeneğini tamamen tüketen küçük bir ekip koltukları satın almalıdır ve aksini iddia etmeyeceğim.
Kimse ödeneğini tamamen tüketmez.
Size geliştirici başına fatura kesilir. İncelemeleri pull request başına tüketirsiniz. Bu iki sayı, çalışan sayısı birleştirme oranından daha hızlı büyüdüğü anda birbirini izlemeyi bırakır, yani hemen, var olan her mühendislik organizasyonunda. Pro’da yirmi mühendis ayda 600 dolar ve bin kredi demektir. Bu ekip, tamamen normal bir ay olan 150 pull request birleştirirse, inceleme başına 4 dolar ödemiş olursunuz ve 850 kredinin süresinin dolmasına izin verirsiniz.
Liste fiyatı hiç değişmedi. Kullanım oranınız değişti. Altmış sent dört dolar oldu ve kimse size bu konuda bir e-posta göndermedi.
Buna koltuk vergisi deyin: ürün başına tüketilen bir ürün için geliştirici başına lisansa harcanan para. Fiyatlandırma sayfasında görünmez, kullanım yerine işe alımla ölçeklenir ve fiilen ödediğiniz şeyin en büyük kalemidir.
Size bunun maliyetini söyleyebilirim çünkü makbuzu basıyoruz
Juror’da koltuk yok. Kendi GitHub Actions runner’ınızda çalışır, model API’lerini kendi anahtarlarınızla çağırır ve fatura yalnızca çıkarım maliyetidir. Otomatik kaydetme PR’ının bu incelemesi, dört gerçek hata ve sıfır yanlış pozitif, 1.08 dolara mal oldu ve sekiz dakika yirmi iki saniye sürdü.
Bunu kuruşuna kadar söyleyebilirim çünkü her Juror incelemesi bir tabloyla biter: her model, girdi tokenları, önbelleğe alınmış tokenları, çıktı tokenları, doları. Sağlayıcı hesapladığında her rakam reported olarak etiketlenir veya yayınlanmış liste fiyatlarından türettiğimizde estimated olarak. Bir koşum takımı bize ikisini de vermediğinde unknown yazdırır ve toplam alt sınır olarak işaretlenir. Tahmin etmeyiz ve kendimize yuvarlamayız.
Şimdi o tabloda “not disclosed” yazan iki hücreye tekrar bakın. Bu benim araştırmamdaki bir boşluk değil. Araç size bir incelemenin maliyetini söylemez, çünkü söylemek zorunda değildir. Bir koltuk satın aldınız. Birim ekonomisi satıcının işidir ve satıcı çarpma işlemini kendi yönteminizle yapmaya devam etmenizi tercih eder.
Aslında istediğim ve hiçbir fiyata satın alamadığım şey buydu. Daha ucuz bir inceleyici değil. Ne harcadığını bana söyleyen bir inceleyici.
Yapmayacağım şey buna kıyaslama demek
Bu bir pull request.
Kendi kıyaslama protokolümüz, bir değiştirme kararının frontend, backend, migration’lar, eşzamanlılık, güvenlik açısından hassas kod ve hem küçük hem de büyük diff’leri kapsayan 20 ila 30 karara bağlanmış PR gerektirdiğini söylüyor. Bizde bir tane var. Depoda, herhangi bir inceleyicinin diğerinin yerini alabileceğine dair istatistiksel olarak yeterli kanıt olarak sunulmaması gerektiğini belirten bir uyarıyla duruyor ve sayıları ne kadar dikkatli rapor ettiğimizle ilgili bir blog yazısında kendi uyarımızı ihlal etmeyeceğim.
Altıda dörde karşı altıda bir, bir kıyaslama sonucu değildir. Bu, ikisini yan yana çalıştırmaya istekli olmamı sağlayan, karara bağlanmış tek bir vakadır. Dizinlenmiş bir inceleyicinin iyi performans göstermesi gereken, depo genelindeki bağlama ağırlık veren farklı bir pull request, muhtemelen bunu tersine çevirebilir. Tersine çevirirse, bu vaka da korpusa girer.
Bir örneklem olmayan şey aritmetiktir. Koltuk başına otuz dolar çarpı yirmi mühendis, beğenip beğenmemem fark etmez, 600 dolardır ve bin krediye karşı 150 inceleme, ölçmek istediğiniz herhangi bir ayda %15 kullanım oranıdır. Fiyatlandırma yapısına, bölme işlemiyle savunabileceğim ve umut verici bir vakaya dayanarak geçiş yaptık. Henüz hak etmediğimiz bir performans iddiasına değil.
Gelin bizi ölçün
Bunların hiçbiri için sadece benim sözüme güvenmeyin. Vardığınız sonuçta ticari bir çıkarım var ve yukarıdaki her şeyi buna göre değerlendirmelisiniz.
Her iki inceleyiciyi de kendi deponuzda gölge moduna alın. Birkaç hafta boyunca hiçbiri birleştirmeyi engellemeden çalıştırın. Ardından tüm bulguları alın, hangi aracın ne söylediğini kimse bilmesin diye etiketleri kaldırın ve kıdemli bir mühendisin bunları koda karşı soğuk olarak değerlendirmesini sağlayın. Her birinin ne yakaladığını sayın. Her birinin ne uydurduğunu sayın.
Tam olarak bunun için araçları gönderdik, çünkü kendimiz ihtiyaç duyduk:
npx juror-ai benchmark --file your-corpus.json
Beslediğiniz her inceleyici için geri çağırma, kesinlik, yinelenme oranı, maliyet ve gecikmeyi raporlar ve her kaçırmayı ismiyle listeler. Bizimki de dahil.
Koltuk modelinin bölme işlemini yapan herhangi biriyle temas halinde hayatta kalacağını sanmıyorum. Şimdi hayatta kalıyor çünkü bölme işlemi biraz can sıkıcı ve fiyatlandırma sayfası sizi rahatsız etmeyecek şekilde düzenlenmiş. Organizasyonunuzda birileri eninde sonunda bu hesaplamayı yapar. Yaptıklarında, cevap altmış sent olmayacak.
Bu otomatik kaydetme pull request’i bu sabah birleştirildi, bu arada. Oraya ulaşmak için iki commit daha gerekti, biri navigasyon kaydetmelerini tek uçuşlu yapmak için, diğeri otomatik kaydetmenin yakınsamasını sağlamak ve oluşturucuyu rahat bırakmak için. İyi commit’ler. Ateşte hiçbir şey yok.
Kimse onların gerekli olduğunu asla bilemeyecek, çünkü birleştirmeden önce yakalanan hatalar hiçbir iz bırakmaz ve hiçbir olay raporu oluşturmaz. Sizi rahatsız etmesi gereken kısım budur. Beşini kaçıran inceleyici, altı veya sıfır bulması fark etmeksizin aynı maliyete sahiptir ve size az önce bu iki aydan hangisi için ödeme yaptığınızı asla söylemeyecektir.
Juror açık kaynaklıdır ve MIT lisanslıdır: github.com/juror-ai/juror. Greptile fiyatlandırması, Ağustos 2026 itibarıyla greptile.com/pricing adresinden alıntılanmıştır.