Copilot Review'da Neyi Kaçırıyor
Stil notu güvenlik açığı değildir

Review asistanı ilk bakışta yardımsever. İsim tutarsızlığı, eksik null kontrolü, gereksiz import. Bunları görmek ucuz. Merkezde duran hata çoğu zaman orada değil. Merkezde duran hata, artık olmayan bir satır veya hiç yazılmamış bir test.
Bunu bir ürün turu gibi yazmıyorum. Kendi diff'lerimde neyin altını çizdiğini, neyi kibarca atladığını not ediyorum. Birinci yazıdaki sınır burada review rolüne iniyor.
Gördüğü yer
Biçim, tekrar, bariz bir off-by-one, kullanılmayan değişken. Bunları kabul ediyorum. Kabul etmek, review'u ona devretmek değil. Listeyi kısaltıyor. Listeyi kapatmıyor.
Silinen satır
Asistan eklenen satırlara bakmaya eğilimli. Kırmızı satır, 'temizlik' diye geçiyor. Temizlik bazen yetkiydi. Diff'i yalnızca yeşilden okumak, sözleşmeyi sessizce düşürmek.
// Once
export async function readNote(userId: string, noteId: string, db: Db) {
const note = await db.notes.find(noteId);
if (!note || note.ownerId !== userId) throw new Error("forbidden");
return note;
}
// Asistanin 'sade' hali — sahip kontrolu dustu
export async function readNote(noteId: string, db: Db) {
return db.notes.find(noteId);
}
İkinci imza derlenir, test yoksa yeşil kalır, review asistanı 'daha sade' diye sevinebilir. Kaçan şey sadelik değil, sahip. Bunu yakalamak için prompt'a 'silinen güvenlik kontrolü var mı' diye yazmak işe yarıyor — bazen. Yazmasam hiç bakmıyor.
REVIEW_PROMPT = (
"Bu diff bir kod incelemesi. "
"1. Silinen satirlarda yetki, dogrulama veya log var mi? "
"2. Yeni kod testle korunuyor mu, yoksa sadece mutlu yol mu? "
"3. Sir, token, mutlak yol veya ic hostname eklendi mi? "
"4. Stil notunu 4'ten sonraya birak. "
"Cevabi bu dort baslikla ver. Uydurma satir uydurma."
)
Test ve yetki
Asistan, var olan teste uyum önerebiliyor. Olmayan testi 'eklenmeli' diye geçiştiriyor. Geçiştirme, PR'ı birleştirmek için yeterli görünüyor. Değil. Review'un işi, eksik iddiayı merkeze almak. İsim tartışması sonraya.
- Yetki ve sahiplik: silinen veya taşınan kontrol.
- Girdi sınırı: asistanın eklediği geniş string.
- Gizli: örnek değer diye gömülen anahtar.
- Eşzamanlılık: 'şimdilik tek istek' varsayımı.
Ne zaman soruyorum
İlk geçişi insana bırakıyorum: diff'i ben okurum. İkinci geçişte asistana başlıkları soruyorum. Tersini yapınca stil gürültüsü yoruyor, asıl satırı kaçırıyorum. Asistan bir linter gibi durabilir. Sahip gibi duramaz.
Bunu takım kuralına bağlamak ayrı yazı. Burada kişisel sınır: review'u delege etmiyorum, gürültüyü delege ediyorum.
Yorumlar
Yorumlar (0)
Yorumlar üyelere açık. Üye ol · Giriş yap