Projede Yapay Zeka İzleri, Metadata ve Görünmez İşaretler
AI kullanan geliştirme araçlarının oluşturdukları dosyalarda gözle görülmeyen bilgiler.
Bir yazılım projesinin yapay zeka ile geliştirildiğini anlamaya çalışırken yalnızca kod stiline bakmak çoğu zaman yeterli değildir. Daha ilginç olan konu, bazı yapay zeka sistemlerinin veya AI kullanan geliştirme araçlarının oluşturdukları dosyalarda gözle görülmeyen bilgiler bırakabilmesidir.
Ancak burada önemli bir ayrım yapmak gerekir. Her yapay zeka tarafından oluşturulan kaynak kodun içerisinde gizli bir “AI imzası” bulunduğu düşüncesi doğru değildir. Düz metin olarak oluşturulan JavaScript, PHP, Python, C# veya başka bir kaynak kod dosyasında zorunlu olarak gizli bir ChatGPT, Claude, Copilot veya Cursor etiketi bulunmaz.
Buna karşılık dosyanın kendisi, dosyanın üretildiği uygulama, proje yapısı veya kullanılan AI sistemi farklı türlerde metadata, provenance bilgisi, görünmez watermark veya araçlara özgü dosyalar bırakabilir. Gerçek AI izi araştırması tam olarak bu noktada başlar.
AI İzi ile AI Kod Stili Aynı Şey Değildir
Bir fonksiyonun fazla açıklayıcı olması veya değişken isimlerinin aşırı düzgün görünmesi yalnızca tahmine dayalı bir AI göstergesidir.
Metadata veya provenance bilgisi ise tamamen farklıdır. Bunlar dosyanın içerisinde veya çevresinde gerçekten bulunan teknik verilerdir.
- Dosyayı hangi yazılımın oluşturduğu.
- Dosyanın ne zaman üretildiği.
- Dosyanın hangi araçla düzenlendiği.
- İçeriğin AI tarafından oluşturulduğunu gösteren provenance kaydı.
- Dosyanın içine yerleştirilmiş görünmez watermark.
- Projede bırakılan AI editör veya Agent yapılandırma dosyaları.
Bunlar kaynak kodunun nasıl göründüğünden bağımsız olarak incelenebilir.
Metadata Nedir?
Metadata en basit anlamıyla “veri hakkında veri” anlamına gelir.
Bir dosyanın ekranda gördüğümüz içeriğinin yanında kullanıcıya doğrudan gösterilmeyen ek bilgiler bulunabilir.
Örneğin bir JPEG fotoğraf yalnızca piksellerden oluşmaz. Dosyanın içerisinde kameranın modeli, çekim tarihi, kullanılan yazılım ve çeşitli teknik bilgiler bulunabilir.
PDF, DOCX, PNG, JPEG ve birçok başka dosya formatında benzer metadata alanları bulunabilir.
AI Tarafından Üretilen Dosyalarda Metadata Bulunabilir
Bir AI sistemi bir görsel, doküman veya başka bir dosya oluşturduğunda kullanılan platform dosyaya oluşturucu bilgileri ekleyebilir.
Bu bilgiler her zaman dosyayı normal şekilde açtığınızda görünmez.
Örneğin metadata içerisinde teorik olarak aşağıdaki türde bilgiler bulunabilir.
- Creator
- Producer
- Software
- Creation Time
- Modification Time
- Content Credentials
- Provenance bilgileri
Ancak bu alanların bulunması kullanılan uygulamaya ve dosya formatına bağlıdır. Her AI çıktısında aynı metadata bulunmaz.
C2PA Nedir?
AI ile oluşturulan içeriklerin kaynağını belirlemek için kullanılan önemli teknolojilerden biri C2PA standardıdır.
C2PA, bir dosyanın kaynağı ve geçmişi hakkında doğrulanabilir provenance bilgilerinin dosyayla ilişkilendirilmesini sağlayan açık bir teknik standarttır.
Bu bilgiler içeriğin hangi araç veya servis tarafından oluşturulduğu ve geçmişinde hangi işlemlerin gerçekleştiği gibi verileri içerebilir. C2PA yalnızca yapay zeka için tasarlanmış bir sistem değildir; kameralar, medya kuruluşları ve farklı içerik üretim araçları tarafından da kullanılabilir. ([OpenAI Help Center][1])
Content Credentials Nedir?
Content Credentials, dijital içeriğin nereden geldiğine dair doğrulanabilir bilgiler sunmayı amaçlayan provenance sistemlerinden biridir.
Bir görsele yalnızca bakarak içeriğin yapay zeka tarafından oluşturulduğunu anlamak zor olabilir. Ancak dosyanın Content Credentials bilgileri incelendiğinde kullanılan üretim aracına ilişkin daha güçlü bir teknik sinyal elde edilebilir.
Bu yaklaşım klasik “AI detector” araçlarından farklıdır. Detector görüntünün nasıl göründüğüne bakarak tahmin yaparken provenance sistemi dosyaya iliştirilmiş gerçek oluşturma geçmişini kontrol etmeye çalışır.
OpenAI Üretilen İçeriklere Gerçekten Görünmez İşaret Ekliyor mu?
Bazı içerik türlerinde evet.
OpenAI'nin güncel açıklamasına göre desteklenen OpenAI araçlarıyla oluşturulan görsellerde C2PA metadata ve SynthID watermark kullanılmaktadır. Desteklenen ses çıktılarında ise SynthID tabanlı görünmez watermark kullanılabilir. Bu kapsam ürün, model, dosya türü ve dışa aktarma yöntemine göre değişebilir. ([OpenAI Help Center][1])
Bu oldukça önemli bir ayrıntıdır. Burada yalnızca dosyanın metadata bölümünde bulunan bir etiketten söz etmiyoruz. SynthID gibi sistemlerde işaret içeriğin kendisine gömülebilir.
SynthID Nedir?
SynthID, kullanıcı tarafından normal şekilde görülmeyen bir watermark sinyalinin üretilen medyanın içerisine yerleştirilmesini sağlayan teknolojidir.
Metadata dosyanın yanında taşınan ek bilgi olarak düşünülebilirken watermark doğrudan medyanın kendisine gömülebilir.
Bu nedenle metadata kaldırılmış olsa bile desteklenen bazı durumlarda watermark sinyalinin tespit edilebilmesi mümkün olabilir. OpenAI de C2PA metadata ile SynthID sinyalini birbirini tamamlayan provenance mekanizmaları olarak açıklamaktadır. ([OpenAI Help Center][1])
Metadata ile Watermark Arasındaki Fark
Metadata
Dosyaya eklenen açıklayıcı verilerdir. Dosyanın oluşturucusu, üretim zamanı veya provenance geçmişi gibi bilgiler taşıyabilir.
Watermark
İçeriğin kendisine gömülen görünür veya görünmez bir sinyaldir.
Bu nedenle iki sistemi aynı şey olarak değerlendirmek doğru değildir.
Kaynak Kodda da Böyle Gizli Bir AI Watermark Var mı?
Burada en fazla yanlış bilginin oluştuğu nokta budur.
Bugün standart bir TypeScript, PHP, Python, Java, C# veya C++ kaynak kodunun içerisine her AI tarafından zorunlu olarak gizli bir watermark eklendiğini söylemek doğru değildir.
Örneğin bir AI size aşağıdaki kodu üretirse bu metnin içerisinde zorunlu olarak görünmez bir “ChatGPT tarafından yazıldı” alanı bulunması gerekmez.
function calculateTotal(price: number, quantity: number) {
return price * quantity;
}Bu dosyayı normal UTF-8 metin olarak kaydettiğinizde kaynak kod açısından insan tarafından yazılmış aynı metinden ayırt edilemez hale gelebilir.
Bu nedenle medya provenance sistemleriyle kaynak kod üretimini birbirine karıştırmamak gerekir.
Peki Kaynak Kodda Görünmeyen Karakterler Bulunabilir mi?
Evet. Düz metin dosyalarının içerisinde ekranda doğrudan görünmeyen Unicode karakterleri bulunabilir.
- Zero Width Space
- Zero Width Joiner
- Zero Width Non-Joiner
- Byte Order Mark
- Farklı Unicode whitespace karakterleri
Bu karakterler kaynak kodun normal görünümünde fark edilmeyebilir.
Ancak önemli nokta şudur: Bir kaynak kodda zero-width karakter bulunması kodun AI tarafından oluşturulduğunu kanıtlamaz.
Bu karakterler kopyala-yapıştır işlemlerinden, web sayfalarından, farklı editörlerden veya metin dönüştürme işlemlerinden de gelebilir.
Görünmez Unicode Karakterleri Nasıl Tespit Edilir?
Kod editörlerinde whitespace ve Unicode karakterlerini görünür hale getiren özellikler kullanılabilir.
Ayrıca dosyanın hexadecimal görünümü incelenerek ekranda görünmeyen byte değerleri görülebilir.
Bu özellikle güvenlik incelemelerinde önemlidir çünkü bazı Unicode karakterleri kaynak kodun ekranda görünen haliyle compiler tarafından yorumlanan hali arasında farklılık oluşturabilir.
Bir Projede Asıl AI İzleri Kaynak Kodun Dışında Bulunabilir
AI destekli geliştirme araçları yalnızca kaynak kod değiştirmez. Projeyi anlamak ve Agent davranışını yönetmek için kendi dosyalarını da oluşturabilir.
Bunlar AI kullanımını tespit etmede kod stilinden çok daha somut göstergeler olabilir.
Cursor Projelerinde Bırakılabilecek İzler
Örneğin Cursor, proje içerisinde Agent davranışını belirlemek için .cursor/rules dizinini kullanabilir.
Cursor dokümantasyonuna göre bu dosyalar doğrudan proje içerisinde tutulabilir ve Git repository'sine dahil edilebilir. AGENTS.md dosyaları da Agent için proje talimatları sağlamak amacıyla kullanılabilir. ([Cursor][2])
- .cursor/
- .cursor/rules/
- .mdc rule dosyaları
- AGENTS.md
- .cursorignore
Bu dosyalardan birinin bulunması projedeki bütün kodun AI tarafından üretildiğini kanıtlamaz.
Ancak ilgili AI geliştirme ortamının projede kullanıldığına dair oldukça somut bir teknik iz oluşturabilir.
.cursorignore Dosyası Ne Anlatabilir?
Cursor projelerinde .cursorignore dosyası hangi dosya ve klasörlerin Agent context içerisine alınmayacağını belirlemek için kullanılabilir. Cursor resmi dokümantasyonunda bu dosyanın özellikle hassas veya gereksiz dosyaları AI context dışında bırakmak amacıyla kullanılabileceği belirtilmektedir. ([Cursor][3])
Bir repository içerisinde .cursorignore bulunması, Cursor veya Cursor uyumlu bir AI geliştirme sürecinin kullanıldığı konusunda doğrudan stil analizinden çok daha güçlü bir göstergedir.
AGENTS.md Neden Önemlidir?
AGENTS.md gibi dosyalar AI Agent'lara proje içerisinde nasıl davranmaları gerektiğini anlatabilir.
Örneğin dosyada aşağıdaki türde kurallar bulunabilir.
- Yeni dosyalarda TypeScript kullan.
- Controller içerisine business logic yazma.
- Veri tabanı kolonlarında snake_case kullan.
- Her yeni özellik için test oluştur.
Bunlar normal kullanıcıya çalışan uygulama içerisinde görünmez. Ancak repository incelendiğinde Agent'ın nasıl yönlendirildiği anlaşılabilir.
AI Promptları Proje İçerisinde Kalabilir
Bazı geliştirme ekipleri tekrar kullanılan promptları doğrudan repository içerisinde saklar.
- prompts/
- ai/
- instructions/
- agent/
- rules/
Bu klasörlerin bulunması tek başına belirli bir AI ürününü kanıtlamasa da projenin AI destekli geliştirme sürecine göre tasarlandığını gösterebilir.
Git Geçmişinde AI İzleri
Dosyalar temizlenmiş olsa bile Git repository'sinin geçmişinde daha önce bulunan AI araç dosyaları kalmış olabilir.
Örneğin geliştirici sonradan .cursor klasörünü projeden kaldırmış olabilir. Ancak klasör daha önce commit edildiyse eski commitlerde hâlâ görülebilir.
Bu nedenle yalnızca mevcut repository durumuna değil geçmiş commitlere de bakmak gerekir.
- Silinmiş .cursor dosyaları.
- Eski AGENTS.md dosyaları.
- Prompt dosyaları.
- AI tarafından oluşturulduğunu açıkça belirten commit mesajları.
- Agent tarafından açılmış branch veya pull request kayıtları.
Dosya Oluşturma ve Değiştirme Zamanları
Dosya sistemi üzerinde bulunan creation time ve modification time bilgileri de geliştirme sürecine ilişkin ipucu sağlayabilir.
Örneğin normalde saatler veya günler sürebilecek onlarca dosyanın birkaç saniyelik aralıklarla oluşturulmuş olması otomatik üretim yapıldığını gösterebilir.
Ancak bu veri yapay zekayı kanıtlamaz. Framework scaffolding, proje generatorları veya dosya kopyalama işlemleri de aynı sonucu oluşturabilir.
PDF Dosyalarında AI İzi
PDF dosyaları metadata açısından oldukça ilginçtir.
Bir PDF içerisinde title, author, creator, producer ve creation date gibi bilgiler bulunabilir.
AI tarafından hazırlanan bir doküman daha sonra farklı bir PDF oluşturma aracıyla dışa aktarılmışsa metadata yalnızca son kullanılan yazılımı gösterebilir.
Bu nedenle metadata üzerinde “Microsoft Word” veya başka bir PDF üreticisi görünmesi belgenin içeriğinin insan tarafından yazıldığını kanıtlamaz.
DOCX Dosyalarında Görünmeyen Bilgiler
DOCX aslında içerisinde XML dosyaları ve farklı kaynaklar bulunan bir paket yapısıdır.
Dosya içerisinde belge özellikleri, uygulama bilgileri, yazar bilgileri, revizyonlar ve başka metadata alanları bulunabilir.
Bu nedenle yalnızca ekranda görünen metni incelemek yerine belgenin iç yapısının incelenmesi çok daha fazla bilgi verebilir.
Görsellerde AI Tespiti Kaynak Koddan Daha Gerçekçidir
AI tarafından oluşturulmuş bir PNG veya JPEG dosyasının kaynağını teknik olarak tespit etmek, düz bir kaynak kod dosyasına göre bazı durumlarda daha mümkün olabilir.
Bunun nedeni görsellerde C2PA provenance bilgileri veya görünmez watermark teknolojilerinin kullanılabilmesidir.
OpenAI ayrıca desteklenen görseller ve ses dosyalarında kendi provenance sinyallerini kontrol etmek için doğrulama aracı sunmaktadır. Bu araç C2PA ve SynthID gibi desteklenen sinyallerin bulunup bulunmadığını kontrol edebilir. ([OpenAI][4])
Metadata Silinebilir mi?
Evet. Birçok metadata türü dosya yeniden kaydedildiğinde, dönüştürüldüğünde veya özel metadata temizleme araçları kullanıldığında kaybolabilir.
Örneğin bir görsel ekran görüntüsü alınarak yeniden oluşturulduğunda orijinal dosyanın metadata bilgilerinin önemli bölümü artık yeni dosyada bulunmayabilir.
Bu nedenle metadata bulunmaması içeriğin AI tarafından oluşturulmadığını kanıtlamaz.
Watermark da Her Zaman Kesin Kanıt Değildir
Watermark sistemleri metadata sistemlerine göre bazı dönüşümlere karşı daha dayanıklı olabilir.
Ancak provenance sinyalinin bulunması içeriğin doğru olduğunu, değiştirilmediğini veya hukuki sahipliğini kanıtlamaz.
OpenAI de provenance sinyallerinin içerik kaynağı konusunda yardımcı göstergeler olduğunu ancak doğruluk veya bağlam için tek başına garanti oluşturmadığını belirtmektedir. ([OpenAI Help Center][1])
Bir AI İzi Araştırılırken Nereye Bakılmalı?
Bir yazılım projesini gerçekten teknik olarak incelemek istiyorsanız yalnızca kod stiline bakmak yerine farklı katmanları birlikte kontrol etmek gerekir.
- Repository içerisindeki gizli klasörler.
- .cursor ve benzeri AI editör klasörleri.
- AGENTS.md ve rule dosyaları.
- Prompt veya Agent instruction dosyaları.
- Git geçmişi.
- Silinmiş dosyaların geçmiş commitleri.
- Dosya metadata bilgileri.
- C2PA ve Content Credentials.
- Görünmez watermark sinyalleri.
- Unicode ve görünmez karakterler.
- PDF ve DOCX iç metadata yapıları.
En Güçlü ve En Zayıf Kanıtlar
Güçlü Teknik Göstergeler
- Doğrulanabilir C2PA provenance kaydı.
- Desteklenen doğrulama sistemi tarafından bulunan AI watermark.
- AI aracına özgü proje configuration dosyaları.
- Repository geçmişinde açık AI Agent kayıtları.
- AI prompt veya session dosyalarının bulunması.
Orta Güçte Göstergeler
- AI editör rule dosyaları.
- AI araçlarına göre hazırlanmış AGENTS.md.
- Otomatik oluşturulduğu açıkça görülen büyük kod değişiklikleri.
- Dosya oluşturma zamanlarındaki sıra dışı kalıplar.
Zayıf Göstergeler
- Kodun fazla düzenli olması.
- Çok fazla yorum bulunması.
- Belirli değişken isimlerinin kullanılması.
- Kodun “AI yazmış gibi” görünmesi.
- Tek başına zero-width karakter bulunması.
Bir Kaynak Kod Dosyasından Hangi AI Modelinin Kullanıldığı Bulunabilir mi?
Çoğu durumda hayır.
Aynı fonksiyonu GPT, Claude, Gemini veya başka bir model çok benzer biçimde oluşturabilir.
Kaynak kod temiz bir metin dosyasına dönüştürüldükten sonra model kimliğini taşıyan zorunlu bir metadata alanı bulunmaz.
Ancak projede kullanılan AI aracına özgü configuration, Agent veya geçmiş dosyaları bırakılmışsa hangi geliştirme aracının kullanıldığı anlaşılabilir.
Burada model ile araç arasındaki fark da önemlidir. Örneğin Cursor kullanılabilir ancak Cursor içerisinde farklı modeller çalıştırılmış olabilir.
AI İzini Bulmak ile AI Kullanıldığını Kanıtlamak Aynı Şey Değildir
Bir projede .cursor klasörü bulmak Cursor kullanıldığını gösterebilir.
Ancak projenin yüzde 5'inin mi yoksa yüzde 95'inin mi AI tarafından oluşturulduğunu göstermez.
Benzer şekilde bir görselde AI provenance sinyali bulunması görselin belirli bir AI aracıyla üretildiğine dair güçlü kanıt sağlayabilir ancak bu durum projenin geri kalanının AI tarafından oluşturulduğunu kanıtlamaz.
Gerçek AI Forensics Yaklaşımı Nasıl Olmalı?
Bir projede AI kullanımını araştırmak istiyorsanız en doğru yöntem “Bu kod bana AI gibi göründü” demek yerine dijital izleri katman katman incelemektir.
- Önce repository'nin tamamını inceleyin.
- Gizli dosya ve klasörleri listeleyin.
- AI editörlerine ait configuration dosyalarını araştırın.
- Git geçmişinde silinmiş AI dosyalarını arayın.
- Doküman ve medya metadata bilgilerini çıkarın.
- C2PA veya Content Credentials varsa doğrulayın.
- Desteklenen içeriklerde watermark doğrulaması yapın.
- Kaynak dosyalardaki görünmeyen Unicode karakterlerini kontrol edin.
- Son aşamada kod stilini yardımcı sinyal olarak değerlendirin.
Bu yöntem çok daha gerçekçi sonuç verir çünkü tahmin yerine dosyanın ve geliştirme sürecinin bıraktığı teknik kanıtlara odaklanır.
En Önemli Gerçek
Yapay zeka gerçekten bazı içerik türlerine kullanıcı tarafından doğrudan görülmeyen provenance bilgileri ve watermark sinyalleri ekleyebilir.
Ancak “AI tarafından oluşturulan her dosyada gizli bir AI kodu vardır” iddiası doğru değildir.
Özellikle düz kaynak kod dosyalarında evrensel bir AI imzası bulunmaz. Buna karşılık görseller, sesler, doküman metadata alanları, repository yapıları, AI editör configuration dosyaları ve Git geçmişi çok daha somut izler bırakabilir.
Sonuç
Bir projede yapay zeka izi aramak artık yalnızca kodun üslubuna bakmak anlamına gelmemelidir.
Gerçek teknik inceleme dosyanın görünmeyen katmanlarına odaklanmalıdır: metadata, provenance kayıtları, C2PA, watermark sistemleri, AI Agent configuration dosyaları, repository geçmişi ve dosya iç yapıları.
Bazı yapay zeka sistemleri gerçekten kullanıcı tarafından fark edilmeyen işaretler bırakabilir. Ancak bu özellik içerik türüne ve kullanılan araca bağlıdır.
Bu nedenle doğru soru “AI kodu hangi kelimelerden anlaşılır?” değil, “Bu dosyanın ve projenin üretim geçmişinde hangi teknik izler kaldı?” olmalıdır.
AI kullanımını anlamanın en güvenilir yolu tahmin yapmak değil, dijital provenance ve proje geçmişini incelemektir.
[1]: https://help.openai.com/en/articles/8912793?utmsource=chatgpt.com "Provenance signals (Content Credentials, SynthID) in OpenAI-generated content | OpenAI Help Center" [2]: https://prod.cursor.com/docs/rules?utmsource=chatgpt.com "Rules | Cursor Docs" [3]: https://prod.cursor.com/help/customization/ignore-files?utmsource=chatgpt.com "Ignore files | Cursor Docs" [4]: https://openai.com/research/verify/?utmsource=chatgpt.com "Verify OpenAI-generated content | OpenAI"
Etiketler
İlgili yazılar