Diff'i dışarı sızdırmadan yerel kod incelemesi
Diff'i makineden çıkarmadan bir modele denetleten, sağlayıcıdan bağımsız Go CLI; CommitBrief ürününe dönüştü.
Şu an ne yapıyor
Diff hiç makineden çıkmadan yerel kod incelemesi yapıyor; `Provider` arayüzü sayesinde Anthropic, OpenAI, Gemini ve Ollama aynı sözleşmeyle takılıyor. İmzalı binary'ler yayında — diff'ini bir bulut sağlayıcısına vermek istemeyen herkes kurabilir.
- Başlangıç
- Ocak 2026 — Nisan 2026
- Labs’tan çıkış
Tür
Teknolojiler
Bu iş ürüne dönüştü:
CommitBriefDiff’i bir modele okutmak için onu makineden çıkarman gerekmiyor. Tek dış çağrı seçtiğin sağlayıcıya gidiyor — ve asıl iş o sağlayıcıyı takılabilir kılmakta.
Terminalden çıkmayan inceleme
Sorun şuydu: bir kod değişikliği başka bir insana (ya da gelecekteki bana) gitmeden önce, terminalden çıkmadan yapılandırılmış bir “ikinci göz” incelemesi alınabilsin. Diff makineden çıkmasın, inceleme çıktısı da öyle.
Tek komutun kapsamı
Kapsam tek bir komuta sığdı: staged diff, tek commit, çalışma ağacı ya da
PR tarzı üç noktalı aralık. Proje kuralları COMMITBRIEF.md ile
özelleştirilebiliyor, çıktı renkli kart / markdown / katı JSON şeması olarak
alınabiliyor.
Sağlayıcıyı takılabilir kılmak
Bir LLM aracının en kısa ömürlü parçası, bağlandığı sağlayıcıdır. İki karar bu kabulden çıktı.
Provider, database/sql kalıbında bir kayıt sistemi. Sağlayıcıyı doğrudan
çağırmak en kısa yol olurdu; ikinci sağlayıcıda o yolun bedeli ödeniyor. Kayıt
sistemiyle yeni bir sağlayıcı eklemek tek bir paket ve tek bir blank import
demek. Anthropic, OpenAI, Gemini ve Ollama API tabanlı; claude-cli ile
gemini-cli ise kullanıcının mevcut aboneliğini yeniden kullanan subprocess
tabanlı sağlayıcılar — ikisi de aynı arayüzü uyguluyor.
Git tek yoldan okunmuyor. go-git saf Go, kurulum gerektirmiyor;
commit tabanlı işlemlerin tamamını, status ve diff’i de karşılıyor. Kapsamı
çalışma ağacının kenarlarında bitiyor: add yalnız bayraksız hâliyle
destekleniyor, çoklu worktree ve index v1/v3 hiç desteklenmiyor. Saf çözüm için
binary’ye hiç düşmemek gerekirdi ve o zaman bu kenar durumların hepsi aracın kör
noktası olurdu. Hibrit yol seçildi: önce go-git, kapsamı aşan yerde git
binary’si, ikisi de aynı Repo arayüzünün arkasında.
Aynı diff’i iki kez ödememek
Üçüncü karar maliyet tarafında. Bir LLM çağrısı ücretli ve geliştirici aynı diff’i gün içinde birkaç kez inceletiyor — commit’ten önce, düzeltmeden sonra, PR açarken.
Önbellek anahtarı yalnız diff olsaydı yanlış cevap dönerdi: aynı diff farklı
sağlayıcıda, farklı modelde ya da farklı dilde başka bir inceleme demek.
Anahtar bu yüzden beş parçadan oluşuyor — diff, sistem prompt’u, sağlayıcı,
model ve dil — ve SHA256 ile özetleniyor. Aynı beşli tekrar geldiğinde çağrı
tek disk okumasına iniyor, her çağrının sonunda kazancı Saved: $X satırı
olarak yazılıyor.
Aynı disiplin gönderilen içerikte de var: üç katmanlı bir filtre modele neyin
gideceğini daraltıyor — yerleşik varsayılanlar, .commitbriefignore ve
COMMITBRIEF.md içindeki semantik filtre. Diff makineden çıkmıyor derken
kastedilen şey buydu; çıkan şeyin de ne olduğu seçilebiliyor.
İmzalı binary’lere giden yol
Labs aşaması kapandı: CommitBrief artık kendi alan adı, imzalı binary’leri ve sürüm sözleşmesi olan bir ürün. Ayrıntısı portfolyoda.