« Tüm yayınlar

revert_guard.py: AI ajanların reddedilen kodu geri eklemesini önler

revert_guard.py, git revert geçmişini okuyarak AI ajanların daha önce reddedilen kodu (ör. card_token sütununu) commit öncesi yeniden eklemesini engelleyen offline, anahtarsız bir araçtır.

AI kodlama ajanları her oturumda temiz bir bağlamla başladığı için, bir ekibin geçmişte bilinçli olarak geri aldığı bir değişikliği (örneğin PCI-DSS kapsamı yüzünden kaldırılan bir card_token sütununu) fark etmeden yeniden önerebiliyor. Kararın arkasındaki gerekçe oturumla birlikte kaybolurken, geri alma işlemi git log'da hâlâ duruyor; sorun bu bilginin var olması ama hiçbir mekanizmanın onu uygulamamasıydı.

revert_guard.py bu boşluğu kapatmak için yazılmış, standart kütüphane dışında hiçbir bağımlılığı olmayan, offline ve anahtarsız bir pre-commit aracı. Repodaki revert commit'lerini okuyup bu commit'lerin neyi kaldırdığını çıkarıyor, ardından önerilen diff'in aynı varlığı (tablo.kolon eşleşmesiyle, dosya yoluna göre değil) yeniden eklediğini tespit ederse commit'i exit code 1 ile engelliyor. Eşleşme yoksa exit 0 ile geçiş veriyor; kolon adı eşleşse bile tablo bilgisi belirsizse exit 2 ile insan onayına düşen bir ara durum sunuyor.

Araç, geliştiricinin @masondelan'ın Dev.to'da anlattığı gerçek bir olaydan (Claude Code'un aylar sonra aynı card_token sütununu yeniden önermesi) esinlenerek yazdığı farklı bir çözüm; orijinal olay ve rakamlar o yazının, burada sadece problemin şekli ödünç alınmış. Mühendisler için önemi şu: AI ajan çıktıları teknik olarak makul görünse de, ekibin geçmiş kararlarını hafızasında tutmuyor; bu tür basit, deterministik ve offline kontroller CI'da ucuz bir güvenlik katmanı sağlayabilir.