Koltuk başına faturalandırma, 60 sentlik bir kod incelemesini 4 dolara çeviriyor

/ Yazı

Makine çevirisi. İngilizce aslını okuyun: Per-seat billing turns a 60¢ code review into $4 →

Greptile'dan 861,00$'lık makbuz, 3 Ağustos 2026'da ödenmiş.
Greptile'ın bir aylık faturası, Ağustos 2026. Fiyatlandırma sayfasında 30$ yazıyor.

Yapay zeka kod inceleme faturanızı bölün. Liste fiyatını değil, gerçek bölmeyi: geçen ay ne ödediniz, bölü incelediği pull request sayısına. Ekibim için yaptım ve çıkan sayı, fiyatlandırma sayfasındakinden o kadar kötüydü ki hata yaptığımı sandım.

Hata yapmamıştım. Sadece ürünü bana satıldığı gibi satın alıyordum, kullandığımız gibi değil.

İşte tez ve bundan sonraki her şey bunun kanıtı. Yapay zeka 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 yer. Ayrıca, daha da kötüsü, ödediğimiz araç altı gerçek kusur içeren bir diff okudu ve birini buldu.

Onu kendi yaptığımız bir şeyle değiştirdik. Size her iki iddianın da faturalarını göstereceğim, bizi daha kötü gösteren kısımlar dahil.

Altı kusur girdi, biri çıktı.

Pull request, platformumuzdaki bir otomatik kaydetme yeniden düzenlemesiydi. Sıradan, orta boy, bir Salı günü açılıp kimsenin uykusunu kaçırmayan türden. Greptile inceledi, iki yorum bıraktı ve yoluna devam etti.

Sonrasında mühendislerimizden biri diff’i elle inceledi ve düzgünce değerlendirdi, hangi aracın neyi bildirdiğine bakmadan her gerçek kusuru yazdı. Altı kusur. Dördü P1, birini rahatsız etmektense kullanıcı verisini 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ığı şeyin üzerine yazdı. Bir kaydetme promise’i ele alınmadan atıldı. Sayfadan ayrılmak bekleyen her şeyi düşürdü. Kaydet düğmesi yalnızca adım kaydedilemediğinde görünüyordu.

Bu altıdan biri bildirildi.

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. İnceleyici onları durdurduğu için değil. Altıda birini yakalayan bir güvenlik ağı için para ödüyorduk ve diğer beşini yakalayan şey, bir mühendisin kodu satır satır okumasıydı; bu da ürünün var olma amacını azaltmak olduğu eylem.

Kendinden emin bir şekilde tersini söylemek, hiçbir şey söylememekten beter

Yedinci bir bulgu vardı. Gerçek değildi.

Bize “başarısız otomatik kaydetmenin yeniden denemesi yok” dendi. Aynı fonksiyondaki gerçek kusur 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çırılanın toplamından daha fazla düşündüm. Bir kaçırma sessizliktir ve sessizlik hayatta kalınabilir, çünkü inceleyicinizin her şeyi bilmediğini zaten varsayarsınız. Tersine çevrilmiş bir hata sessizlikten beterdir. Bir mühendisi yanlış şeyi aramak için doğru dosyaya gönderir ve hiç var olmayan şeyi bulamayınca dosyayı kapatıp incelenmiş olarak işaretler. Yanlış bir rapor size yardım etmekte başarısız olmakla kalmaz. Dikkatinizi harcar ve gerçek hatanın saklandığı yerde harcar.

Bir gerçek bulgu. Bir ters bulgu. Diff’te altı kusur.

Tek model, tek kör nokta demektir 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 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 doğasıdır. Yani inceleme sürecinizi tam olarak bir model üzerine kurarsanız, onu tam olarak bir körlük deseni üzerine kurmuş olursunuz ve bu desenin şeklini asla öğrenemezsiniz, çünkü size bunu gösterebilecek tek araç kör olan araçtır.

Bunu açıkça söyleyeyim. Sorun, inceleyicinizin kötü olması değil. Sorun, inceleyicinizin tek olması. Kod incelemesinde ikinci bir görüş hiçbir zaman lüks olmadı, kod incelemesinin çalışma mekanizmasının ta kendisiydi ve biz onu otomatikleştirdiğimiz anda sessizce terk ettik.

Bu yüzden Juror’u yaptık. Birkaç öncü model aynı diff’i paralel olarak inceliyor, her biri kendi yerel ajan altyapısı aracılığıyla, her biri satıcısının amaçladığı şekilde deponuzu aramakta özgür. Bulguları birleşiyor, böylece bir kusurun üç neredeyse aynı raporu üç yerine tek bir bulgu haline geliyor ve pull request’e düşen tek bir yorum oluyor.

Aynı commit üzerinde çalıştırdık.

İnceleyici Buldu Kesinlik Maliyet Süre
Greptile 6’da 1 %50 açıklanmadı açıklanmadı
Juror 6’da 4 %100 1,08$ 8dk22sn

İşte kaybettiğimiz kısım

Juror ikisini kaçırdı.

Greptile atılan save promise’i yakaladı, biz yakalamadık. Hiçbir araç sonsuz yeniden deneme döngüsünü bulamadı. İki inceleyiciyi bir araya koyunca altıda beş elde ediyorsunuz, ki bu ikisinin tek başına başardığından daha iyi ve bunu yukarıdaki tablonun altına gömmeyeceğim.

Bu bölümü kesebilirdim. Saklıyorum çünkü tartışmanın ta kendisi. 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 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şlayacağım gündür.

İncelemeler için ödemiyorsunuz. Koltuklar için ödüyorsunuz.

Şimdi fatura, işte burada artık tek bir pull request’le ilgili olmaktan çıkıyor.

Greptile’ın Pro planı Ağustos 2026 itibarıyla koltuk başına aylık 30$. Buna koltuk başına 50 kredi dahildir; bir kredi standart bir inceleme, üç kredi daha derin bir inceleme alır ve ek krediler tanesi 1$’dır.

İnceleme başına bu, ucuz. Kabaca altmış sent, eğer size verilen her krediyi kullanırsanız. Tamamen adil olmak istiyorum: birim başına bu, yukarıdaki pull request’te kendi aracımızın maliyetinden daha düşük. Ödeneğini tamamen kullanan küçük bir ekip koltukları satın almalıdır ve aksini iddia etmeyeceğim.

Kimse ödeneğini tamamen kullanmaz.

Size geliştirici başına fatura kesilir. Siz incelemeleri 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, var olan her mühendislik organizasyonunda, hemen. Pro’da yirmi mühendis, ayda 600 dolar ve bin kredi demektir. Bu ekip, tamamen normal bir ay olan 150 pull request’i birleştirirse, inceleme başına 4 dolar ödemiş olursunuz ve 850 kredinin süresi dolar.

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 diyelim: ürün başına tüketilen bir ürün için geliştirici başına lisans için 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.

Bu maliyeti size 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 ve başka bir şey değildir. Otomatik kaydetme PR’ının şu 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 token’ları, önbelleğe alınmış token’ları, çıktı token’ları, doları. Sağlayıcı hesapladığında her rakam reported olarak etiketlenir veya yayınlanmış liste fiyatlarından türettiğimizde estimated olarak etiketlenir. Bir koşum takımı bize ikisini de vermezse, unknown yazdırır ve toplam bir alt sınır olarak işaretlenir. Tahmin yürütmeyiz ve kendimize doğru yuvarlamayız.

Şimdi o tablodaki “not disclosed” yazan iki hücreye tekrar bakın. Bu benim araştırmamdaki bir boşluk değil. Araç size bir incelemenin ne kadara mal olduğunu 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öntemleriyle yapmaya devam etmenizi tercih eder.

İşte asıl istediğim ve hiçbir fiyata satın alamadığım şey buydu. Daha ucuz bir incelemeci değil. Bana ne harcadığını söyleyen bir incelemeci.

Yapmayacağım şey ise buna kıyaslama demek

Bu tek bir pull request.

Kendi kıyaslama protokolümüz, bir değiştirme kararı için ön yüz, arka uç, geçişler, eşzamanlılık, güvenlik açısından hassas kod ve hem küçük hem de büyük farkları kapsayan 20 ila 30 karara bağlanmış PR gerektiğini söylüyor. Bizde bir tane var. Depoda, her iki incelemecinin de birbirinin yerini alabileceğine dair istatistiksel olarak yeterli kanıt olarak sunulmaması gerektiğine dair bir uyarıyla duruyor ve sayıları ne kadar dikkatli rapor ettiğimizle ilgili bir blog yazısının içinde kendi uyarımızı ihlal etmeyeceğim.

Altıda dörde karşı altıda bir, bir kıyaslama sonucu değildir. Bu, her ikisini de yan yana çalıştırmaya istekli olmamı sağlayan, karara bağlanmış tek bir vakadır. Dizinlenmiş bir incelemecinin iyi performans göstermesi gereken, depo genelindeki bağlama ağırlık veren farklı bir pull request, bunu makul bir şekilde tersine çevirebilir. Eğer öyleyse, o vaka da korpusa eklenir.

Örneklem büyüklüğü bir olmayan şey aritmetiktir. Koltuk başına otuz dolar çarpı yirmi mühendis, beğenip beğenmememin bir önemi olmaksızın 600 dolardır ve bin krediye karşı 150 inceleme, ölçtüğünüz herhangi bir ayda %15 kullanım oranıdır. Fiyatlandırma yapısını, bölme işlemiyle savunabileceğim ve umut verici bir vakaya dayanarak değiştirdik. 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ıdakilerin hepsini buna göre değerlendirmelisiniz.

Her iki incelemecinin de kendi deponuzda gölge modunda çalışmasına izin verin. Birkaç hafta, hiçbiri bir birleştirmeyi engellemeden çalışsınlar. 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ğukkanlılıkla karara bağlamasını sağlayın. Her birinin ne yakaladığını sayın. Her birinin ne uydurduğunu sayın.

Bunun için tam olarak ihtiyacımız olan aracı gönderdik, çünkü kendimizin de ihtiyacı vardı:

npx juror-ai benchmark --file your-corpus.json

Beslediğiniz her incelemeci için geri çağırma, kesinlik, yinelenme oranı, maliyet ve gecikmeyi raporlar ve her bir kaçırmayı adıyla 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ı, uğraşmayasınız diye düzenlenmiş. Organizasyonunuzda birileri eninde sonunda bu hesaplamayı yapar. Yaptıklarında, cevap altmış sent olmayacak.

Bu arada, o otomatik kaydetme pull request’i bu sabah birleştirildi. Oraya ulaşmak için iki commit daha gerekti, biri gezinme kaydetmelerini tek seferlik yapmak, diğeri otomatik kaydetmenin yakınsamasını ve oluşturucuyu yalnız bırakmasını sağlamak için. İyi commit’ler. Ortalıkta yangın yok.

Gerekli olduklarını kimse 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 incelemeci, altı mı yoksa sıfır mı bulduğuna bakılmaksızın aynı maliyettedir ve size az önce hangi iki ay için ödeme yaptığınızı asla söylemez.


Juror açık kaynaktı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.