← Radar

Konu: Kodlama2 dk okuma

Open Code Review: Alibaba'nın kod inceleme aracı neden her şeyi yapay zekâya bırakmıyor?

Bu neden önemli?

Yapay zekâ kod incelemesinin en büyük sorunu, yanlış ya da yersiz yorumlarla dolu uzun listeler. Ekipler bir süre sonra bu yorumları okumayı bırakıyor. 'Her şeyi ajana bırakma, belirli adımları kodla sabitle' fikri, kendi yapay zekâ araçlarını kuranlar için de işe yarar bir tasarım dersi.

Ne bu?

Open Code Review (komut adı ocr), bir Git değişikliğini okuyup satır satır inceleme yorumları üreten bir komut satırı aracı. Alibaba’nın kendi geliştiricilerinin kullandığı iç araçtan doğmuş, Apache-2.0 lisansıyla açık kaynak olarak yayınlanmış. Better Stack’in kısa videosu aracı Claude Code gibi genel amaçlı ajanlarla kıyaslayarak gündeme getirdi.

Kurulum npm ile:

npm install -g @alibaba-group/open-code-review
ocr config provider   # hangi model sağlayıcısı
ocr review            # çalışma alanındaki değişiklikleri incele

OpenAI ve Anthropic uyumlu API’lerle çalışıyor, yani kendi seçtiğin modeli bağlıyorsun. İki dal arasındaki farkı (--from main --to ozellik), tek bir commit’i ya da diff olmadan bütün bir klasörü (ocr scan) inceletebiliyorsun. GitHub Actions ve GitLab CI gibi ortamlara da eklenebiliyor.

Fikir: Yapay zekâya her kararı verme

Claude Code gibi bir ajana “şu PR’ı incele” dediğinde, hangi dosyaları açacağına, neye dikkat edeceğine ve ne zaman duracağına model kendisi karar verir. Esnek ama öngörülemez: Büyük bir değişiklikte bazı dosyaları atlayabilir, bazılarında gereksiz yere uzun uzun düşünebilir.

Open Code Review işi ikiye bölüyor:

  1. Kesin (deterministik) kısım, klasik kodla yapılıyor. Hangi dosyaların inceleneceği, birbiriyle ilgili dosyaların aynı pakete konması ve hangi dosyaya hangi kuralın uygulanacağı bir kural motoruyla belirleniyor. Hazır kurallar arasında boş referans hataları (NPE), thread güvenliği, XSS ve SQL enjeksiyonu var. Kuralları yola göre filtreleyip kendin de ekleyebiliyorsun.
  2. Esnek kısım modele kalıyor. Model, kendisine verilen paketi ve kuralları alıp gerekirse dosya okuma, depoda arama gibi araçlarla bağlam topluyor ve yorumu yazıyor.

Bunun üstüne iki ayrı adım daha var: Biri yorumun doğru satıra yerleşip yerleşmediğini kontrol ediyor, diğeri yorumun içeriğini tekrar gözden geçiriyor (reflection). Yapay zekâ incelemelerinde sık görülen “doğru tespit, yanlış satır” sorununu hedefliyorlar.

Sonuçlar ne diyor?

Alibaba, aracı 50 açık kaynak depodan alınmış 200 gerçek PR üzerinde, 10 programlama dilinde test etmiş. Doğru cevaplar 80’den fazla deneyimli mühendisin işaretlediği 1.505 sorundan oluşuyor. Bu veri seti (AACR-Bench) Hugging Face’te açık.

Proje sayfasına göre aynı modeli kullanırken Claude Code’a kıyasla:

  • Precision (yaptığı yorumların ne kadarının gerçekten doğru olduğu) belirgin şekilde daha yüksek,
  • yaklaşık 9’da 1 token harcıyor ve daha hızlı bitiriyor,
  • ama recall (gerçek sorunların ne kadarını yakaladığı) daha düşük.

Son madde önemli ve dürüst bir not: Araç bilerek “az ama doğru yorum” tarafını seçiyor. Her sorunu yakalamaz, ama yaptığı yorumlar daha çok dikkate alınmaya değer. Bunların hepsi Alibaba’nın kendi ölçümü. Videonun başlığındaki “Fable’dan iyi” iddiası da bu tür bir kıyasa dayanıyor. Kendi kodunda denemeden kesin sonuç çıkarmamak lazım.

Anthropic’in kendi ekibinde incelemeyi nasıl katmanlara böldüğünü Claude Code kod inceleme yazısında anlattık.

Düşün

  • Senin ekibin için hangisi daha kötü: kaçırılan bir hata mı, yoksa kimsenin okumadığı 40 yorumluk bir liste mi?
  • Kendi yapay zekâ akışlarında hangi adımlar aslında basit bir if ile çözülebilir ve modele bırakılmamalı?
Kaynaklar (5, İngilizce)

Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.

Konu: Kodlama2 dkVideo: Better Stack

shadcn/lint: Ajana 'yapma' değil, 'bunu kullan' diyen linter

shadcn, Tailwind tasarım sistemleri için ajanlara yönelik bir linter yayınladı. Bir bileşenin nasıl değiştirilebileceğini sen tanımlıyorsun. Ajan kuralı çiğneyince hata mesajı neyin yanlış olduğunu ve yerine ne kullanması gerektiğini söylüyor.