Aydın Tiryaki

Mükemmel Görsel Araçlara Sahip Gemini Bir QR Kodu Doğru Görselleştiremezken, Gerçekçi Görsel Üretemeyen Claude Kusursuz Bir QR Kod Üretti

Bir yordam (skill) hikâyesi: Çayı geçip derede boğulmak

Aydın Tiryaki

Giriş

Bu yazı bir QR kodun hikâyesi. Ama asıl konusu QR kod değil. Konusu, yapay zekâ platformlarının en güçlü oldukları alanda en basit işi nasıl yapamayabildikleri ve bir kullanıcının yazdığı küçük bir yordamın (skill) bu açığı nasıl görünür kıldığı.

30 Ekim 2026’da, aynı gün içinde, aynı yordam dosyasıyla üç deneme yaptım. İkisi Gemini’de, biri Claude’da. Gemini tarafındaki bütün denemeleri, yayımlandığından beri bütün çalışmalarımda kullandığım ve denemeye çalıştığım Gemini 4 Argon ile yaptım. Gemini’de yaptığım iki denemede, gerçekçi bir insan yüzünü kusursuz çizebilen bir sistem, telefon kamerasının okuyabileceği tek bir QR kod bile üretemedi. Claude’da ise, gerçekçi görsel üretme aracı hiç olmayan bir sistem, aynı dosyayı hiç değiştirmeden alıp ilk denemede kusursuz çalışan bir QR kod üretti. Bu yazı, o günün ayrıntılı kaydı ve bu karşıtlığın ne anlama geldiğine dair bir değerlendirmedir.

Gem’den Proje’ye, Proje’den Yordama (Skill)

Hikâyenin arka planını kısaca anlatmam gerekiyor. Uzun süre Gemini için Gem, Claude için Proje yazdım. Bunları yazmamın nedeni basitti: belli bir konuda ayrıntılı bir çalışma yapmak istediğimde, aynı talimatları her seferinde tek tek girmek yerine bir kez yazıp gerektiğinde yeniden çağırabilmek. Gem ve Proje, tekrar çağrılabilir bir çalışma ortamıydı.

Bugün aynı ihtiyacı Skills, yani benim Türkçede kullanmayı önerdiğim adıyla yapay zekâ yordamları (4) karşılıyor. Ama ağırlık noktası biraz kaydı. Gem ve Proje daha çok “hangi bağlamda, hangi kurallarla çalışılacak” sorusuna cevap veriyordu. Yordam ise daha çok “hangi işler, hangi sırayla, hangi özelliklerle yapılacak” sorusuna cevap veriyor. Birkaç işi ardı ardına yaptırmak istediğimde, önce şu talimatı, ardından bunu, şu özelliklerle demek istediğimde, bunu bir yordam olarak yazmak bugün son derece kullanışlı bir yöntem. Gem ve Proje dönemi büyük ölçüde kapandı, yordam dönemi başladı.

On Beş Yıllık Bir Alışkanlık

QR kod hazırlamak benim için yeni bir iş değil. En az on beş yıldır bunu web üzerindeki QR üretici sayfalarla yapıyorum. Sayfaya giriyorsunuz, ne tür bir QR kod istediğinizi söylüyorsunuz, adresi ya da metni yazıyorsunuz ve kodunuz hazır.

Ama artık neredeyse her işi yapay zekâyla yapmaya alıştık. Doğal olarak şu soru aklıma geldi: Bir yapay zekâ çalışma akışının ortasında QR koda ihtiyaç duyduğumda, bunu yapay zekâya yaptırabilir miyim? Önce Gemini’de denedim. “Şununla ilgili bana bir QR kod yap” dediğimde Gemini bir QR kod yaptı. Ama telefonumla okuttuğumda çalışmadı.

Buradan çıkardığım sonuç şuydu: bu işi ayrıntılı biçimde öğretmem gerekiyor. Ve bunun zamanı da tam olarak yordam zamanıydı.

QR Kod Tasarımcısı Yordamının Doğuşu

Yordamı (skill), kendi geliştirdiğim ATG Gem Fabrikası’nın yordam üretimi için hazırladığım sürümüyle, yani Skills Edition v14.11 ile yazdım. Gem Fabrikası, aklımdaki bir fikri çok kısa sürede çalışır bir yordam dosyasına dönüştürmemi sağlıyor. QR Kod Tasarımcısı’nın ilk sürümü (v01.00) 30 Ekim sabahı saat 07:32’de hazırdı (1).

Yordama koyduğum kurallar açıktı. QR kod standartlara, yani ISO/IEC 18004’e (8) uygun yapılacaktı. Ben istemedikçe siyah-beyazdan başka renk kullanılmayacaktı. Ben istemedikçe kodun ortasına logo, yazı ya da görsel eklenmeyecekti. Kod, veriyi taşıyabilecek en küçük boyutta üretilecekti. En önemlisi de yordamın üçüncü bölümündeki kuraldı: QR kod hiçbir zaman sanatsal ya da uydurma bir görsel olarak çizilmeyecek, Python ortamında matematiksel olarak doğru bir matris olarak üretilecek ve ekrana öyle yansıtılacaktı. Altıncı bölüm de bir doğrulama adımı koyuyordu: üretilen kod, kullanıcıya sunulmadan önce bir QR okuyucuyla okutulacak, okunan veri girilen veriyle birebir eşleşmezse kod sunulmayacaktı. Bunlara bir de kolaylık kuralı eklemiştim: kullanıcı doğrudan bir web adresi iletirse, yordam soru sormadan o adresin QR kodunu üretecekti.

Kâğıt üzerinde her şey yerindeydi. Sorun, bu kâğıdın nerede çalıştırılacağıydı.

Sabah Denemesi: Dış Bir Siteye Havale Edilen İş

İlk denemeyi aynı sabah, saat 07:58’de, yordamı (skill) eğik çizgi komutuyla çağırıp yalnızca “aydintiryaki.org” yazarak yaptım (9). Gemini, veri uzunluğunu hesapladı ve verinin en küçük QR boyutuna, yani 21×21 modüllük Version 1’e sığdığını doğru biçimde belirledi. Ama ardından bir uyarı geldi: bu oturumda Python çalışma ortamı etkin değildi. Gemini de işi, api.qrserver.com adlı dış bir QR üretim sitesine bir bağlantı vererek çözmeye çalıştı.

Bu ironik bir durumdu. On beş yıldır kullandığım ve yapay zekâyla aşmak istediğim yöntem, yani bir web sitesine QR ürettirmek, bana yapay zekâ tarafından geri sunuluyordu. O dış sitenin ürettiği kod büyük olasılıkla çalışırdı. Ama bu, işi yapay zekânın değil yine bir web sitesinin yapması demekti.

Daha da önemlisi, bu yanıtlarda tutarsızlıklar vardı. Gemini, Version 1 dediği halde, verdiği bağlantı adresin “https://” ile başlayan uzun biçimini kodluyordu ve bu biçim Version 2 gerektirir. Bir sonraki yanıtta Version 2 dedi, ardından Unicode bloklarla çizdiği matriste yeniden Version 1 yazdı. Bir yanıtında da görselin “doğrudan ekrana yansıtıldığını” bildirdi, ama ekrana hiçbir şey gelmemişti. Yapılmamış bir iş, yapılmış gibi bildirilmişti.

“Metin tabanlı değil, görsel tabanlı istiyorum” dediğimde ise ekrana bir görsel geldi. Bu görsele aşağıda, kanıtları sınadığım bölümde ayrıca döneceğim, çünkü hikâyenin en çarpıcı kanıtı odur.

Gece Denemesi: Su Damlaları ve Yazılı Bir Atasözü

Aynı gün kuralları sıkılaştırarak yordamın (skill) v01.02 sürümünü hazırladım (saat 23:47) ve yeni bir deneme yaptım. Bu kez “damlaya damlaya göl olur” atasözünü içeren bir metin QR kodu istedim (1, 9).

İlk istekte yordamı adıyla andım: “QR kod tasarımcısı yordamını kullanarak” dedim. Gemini yordamı yüklemedi. Karşıma, su temalı, mavi tonlarda, ortasında atasözü yazan, damlalarla süslenmiş renkli bir görsel çıktı. Köşelerde QR kodun konum işaretlerine benzeyen kareler vardı. Hatta dördüncü köşede, gerçek QR kodlarda bulunan daha küçük hizalama karesini andıran bir işaret bile vardı. Telefonumla okuttum, okunmadı.


Görsel 1. Gemini 4 Argon’un gece denemesinde, yordam yüklenmeden çizim modeliyle ürettiği su temalı görsel. Telefon kamerasıyla okunmuyor.

İtiraz ettim: bunu yordamı kullanarak mı yaptın, kendi kendine mi? Yordamda renk kullanma diyoruz, kurallara uy diyoruz. İkinci görsel siyah-beyazdı ama yine bir çizimdi. Ortasında yine yazı, çevresinde yine damlalar vardı. Bunu okutmayı denemedim bile. Diğer çıktılar QR kodla değil, QR koddan esinlenmiş absürt sanatsal varyasyonlarla ilgiliydi.

Yordamı eğik çizgi komutuyla çağırınca durum değişti. Gemini, ilk iki görselin yordam henüz yüklenmeden, çizim modelinin kendi inisiyatifiyle üretildiğini kabul etti ve bu tür çizimlerin yordam kurallarına göre yasak olduğunu ve optik okuyucularca okunamayacağını söyledi. Ama hemen ardından aynı engel yeniden çıktı: bu oturumda Python ortamı bağlı olmadığı için kodu gerçekten üretip okuma testinden geçiremeyeceğini, test edilmemiş bir görseli yayımlamanın da yordam kurallarına aykırı olduğunu belirtti. Bunun yerine, kendi bilgisayarımda çalıştırmam için Python kodunu verdi.

Bu noktaya kadar Gemini’nin davranışı dürüst ve kurallara uygundu. Ama “görseli göremiyorum” dediğimde iki şey birden oldu. Önce, çizim modellerinin QR kodun gerektirdiği Reed-Solomon hata düzeltme kodlamasını yapamadığını, yalnızca QR koda benzeyen resimler çizdiğini açıkça söyledi. Bu, yaşadığım başarısızlığın teknik açıklamasıydı ve Gemini’nin kendi ağzından geliyordu. Sonra da, birkaç satır önce koyduğu “test edilmemiş kod yayımlanmaz” kuralını kendisi çiğneyerek, Unicode bloklarla çizilmiş bir matris sundu ve bunun telefon kamerasıyla doğrudan okunabilecek, standarda birebir uygun bir QR kod olduğunu söyledi. Bu matris hiçbir testten geçmemişti.

Bu davranışa “kural aşınması” adını vermek yerinde olur. Kural bir yanıt boyunca dimdik durdu, ama kullanıcı sonuç görmek isteyince ilk baskıda çözüldü. Gemini de makaleyi değerlendirirken bunu, araç yokluğunda kural hiyerarşisinin nasıl çöktüğünü gösteren değerli bir bulgu olarak nitelendirdi ve nedenini, dil modellerinin bir aracı çalıştıramadığında kullanıcıyı memnun etme güdüsüyle o aracın çıktısını taklit etmeye kalkışmasına bağladı.

Gemini’nin altyapısı hakkındaki açıklamasını da bir not olarak kaydetmek gerekiyor. Gemini, yordam devreye girdiğinde oturuma yalnızca metin araçlarının bağlandığını, Python ortamının bağlanmadığını, yordamı Gem olarak çalıştırırsam kodun çalışacağını söyledi. Bu açıklama doğru olabilir. Ama bir modelin kendi araçlarının neden bağlı olmadığını bilmesi her zaman mümkün değildir ve bunu doğrulamadım. Aynı yanıtların bilgi satırında modelin kendisini “Gemini 2.5 Pro” olarak tanıtması da modellerin kendileri hakkındaki beyanlarına temkinle yaklaşmak gerektiğini hatırlatıyor. Bütün denemeleri Gemini 4 Argon ile yapmıştım. Aynı model, bu makaleyi değerlendirirken de kendini bu kez “Gemini 3 Pro” olarak tanıttı. Bu nedenle makalede modelin kendi beyanını değil, kullandığım modelin adını esas alıyorum.

Yordamı Adıyla Anmak Yetmedi

Gece denemesinden çıkan küçük ama önemli bir bulgu daha var. Gemini’de yordamı (skill) doğal dilde adıyla anmak onu devreye sokmaya yetmedi. Yalnızca eğik çizgi komutu yordamı yükledi. Kullanıcı açısından bu ciddi bir tasarım sorunudur. “Şu yordamı kullan” diyen bir kullanıcı, yordamın kullanıldığını varsayar. Oysa arka planda yordam hiç yüklenmeden, çizim modeli kendi bildiğini yapmıştı. Gemini de değerlendirmesinde bunu, kullanıcının niyetini sınıflandırıp doğru araca yönlendiren katmandaki ciddi bir tasarım açığı olarak kabul etti.

Claude’da ise, aşağıda anlatacağım gibi, yordam dosyasını sohbete eklemek yeterli oldu. Yordam, kendi tetikleme kuralıyla, benim QR istememe bile gerek kalmadan devreye girdi.

Bir Rastlantı: Claude’da Hiç Değiştirilmeden Çalışan Dosya

Aynı gün bir başka iş üzerinde çalışıyordum. Elinde bir yordam (skill) dosyası, yani bir SKILL.md dosyası olan birinin onu kendi Gemini hesabında nasıl kullanabileceğini anlatan bir rehber yazmıştım (2). Bunun bir de Claude sürümünü yazmak istedim (3). Rehber için bir örnek SKILL.md dosyasına ihtiyacım vardı. Örnek olarak elimdeki, Gemini’de çalıştırmayı başaramadığım QR Kod Tasarımcısı’nı aldım ve Claude’a yapıştırdım. Yanına da Gemini rehberinin adresini ekledim. Amacım QR kod üretmek değildi. Claude’dan rehberi yazmasını isteyecektim.

Ama Claude sürpriz bir şey yaptı. Yordamdaki “kullanıcı doğrudan bir adres iletmişse soru sormadan QR kod üret” kuralı, yanına eklediğim adresi yakaladı. Claude, Python ile gerçek bir QR matrisi üretti. Kodu bana sunmadan önce de yordamın istediği okuma testini yaptı: okunan veri, girilen adresle birebir eşleşiyordu. Kod, 45×45 modüllük bir Version 7 koduydu ve hata düzeltme seviyesi L’ydi. Adres tam 154 bayttı. Bu, Version 7 ve Seviye L için kapasite sınırının ta kendisidir; tek bir karakter daha olsaydı kod bir üst versiyona geçecekti.

Telefonumu ekrana tuttuğum anda adres çıktı. Adrese tıkladığımda, paylaştığım makalenin sayfasına hatasız bir şekilde ulaştım. Gemini’de gün boyunca farklı sürümlerle defalarca deneyip üretemediğim şey, Claude’da benim istememe bile gerek kalmadan, ilk denemede ortaya çıkmıştı.


Görsel 2. Claude Opus 5.5’in Python ile ürettiği, okuma testinden geçmiş QR kod (Version 7, 45×45 modül, Seviye L). Makale için aynı adres ve aynı ayarlarla yeniden üretilmiştir. Telefonla okutulduğunda Gemini rehberinin sayfasını açar.

Ardından Claude’dan yordamı kalıcı olarak kaydetmesini istedim. Claude, dosyanın birebir mi alınacağını yoksa Claude’a uyarlanacağını mı sordu. Uyarlamayı seçtim. Uyarlama sırasında iki teknik iyileştirme de ortaya çıktı: kullanılan Python kodlayıcısının kodun çevresine standardın istediğinden dar bir beyaz kenar eklediği fark edildi ve düzeltildi, verinin bir versiyonun sınırına dayandığı durumlar için de kısa bağlantı önerisi kuralı eklendi (3). Bu iyileştirmeler Claude’a özgü değil. Yordamın Gemini sürümüne de aynen taşınabilir.

Kanıtları Sınamak

Bu makaleyi hazırlarken, Gemini sohbetlerini PDF’e çevirip Claude’a verdim (9) ve Gemini’nin iki denemede ürettiği QR çıktılarını Claude’a QR çözücülerle test ettirdim. Testlerde iki ayrı çözücü kütüphanesi kullanıldı. Sonuçlar, hikâyenin yalnızca benim telefonumla yaptığım gözlemlere dayanmadığını gösteriyor.

Sabah denemesindeki, Version 1 olduğu iddia edilen Unicode matrisi okunamadı. Üç köşedeki konum kareleri yerindeydi, ama QR kodun zorunlu yapı öğeleri eksikti ve veri bölgesi büyük ölçüde boştu. Gece denemesinde “telefonunuzla doğrudan okutabilirsiniz” denerek sunulan Unicode matrisi de okunamadı. Bu matris kare bile değildi: 33 sütuna karşılık yaklaşık 38 satır vardı, iki satır diğerlerinden bir karakter kısaydı ve köşelerdeki konum karelerinin dolu olması gereken orta kısımları boştu.


Görsel 3. Gemini 4 Argon’un gece denemesinde “telefonunuzla doğrudan okutabilirsiniz” diyerek metin olarak sunduğu Unicode matris. Sohbet kaydındaki karakterlerden yeniden kurulmuştur. Kare değil, konum karelerinin ortası boş ve okunmuyor.

Asıl çarpıcı sonuç, sabah denemesinin sonunda gelen görselde çıktı. Bu görsel ilk bakışta kusursuz bir QR koda benziyordu. Üç köşedeki konum kareleri doğruydu. Konum kareleri arasında uzanan ve siyah-beyaz sırayla değişmesi gereken zamanlama çizgileri kusursuzdu. Sağ alt köşeye yakın hizalama karesi doğru yerdeydi. Standardın belirli bir noktada bulunmasını şart koştuğu tek “karanlık modül” bile yerindeydi. Ama iki çözücü de kodu okuyamadı. Üstelik kod 37×37 modüllüydü, yani Version 5 boyutundaydı. Oysa o adresin QR kodu 21×21 ya da 25×25 olmalıydı. Kodun biçim bilgisini taşıyan iki kopya da standarttaki geçerli değerlerin hiçbiriyle tam eşleşmiyordu ve birbirleriyle de tutarsızdı. Gerçek bir QR kodlayıcısı bunu asla yapmaz. Bu görsel, büyük olasılıkla, QR kodun bütün görünür kurallarını öğrenmiş bir çizim modelinin, verinin kendisini bir doku gibi doldurarak ürettiği bir resimdi.


Görsel 4. Gemini 4 Argon’un sabah denemesinin sonunda ürettiği görsel. Konum kareleri, zamanlama çizgileri, hizalama karesi ve karanlık modül yerinde, ama kod okunmuyor. Boyutu da kodlanması gereken adrese uymuyor.

Biçim Kusursuz, İşlev Sıfır

Gece denemesinin ilk görseli, yani su damlalı, ortasında atasözü yazan görsel, QR koda benzeyen bir resimdi. Sabah denemesinin son görseli ise bundan çok daha ileri bir şeydi: uzman olmayan bir gözün gerçek bir QR koddan ayıramayacağı, standardın ince yapısal kurallarını bile taklit eden bir kopya. Telefon kamerası ise onu bir saniyede ayırdı.


Görsel 5. Dört çıktı yan yana: Gemini 4 Argon’un üç denemesi ve Claude Opus 5.5’in ürettiği QR kod. Yalnızca Claude’un ürettiği kod okunuyor.

Bu, yapay zekâda “bir şeyin benzerini üretmek” ile “o şeyin kendisini üretmek” arasındaki farkın son derece somut bir örneği. Çizim modeli QR kodun nasıl göründüğünü çok iyi öğrenmiş. Ama QR kod bir görünüş değil, bir işlevdir. Görünüşünü kusursuz taklit eden ama okunmayan bir QR kod, hiç QR kod değildir.

Gemini, makaleyi değerlendirirken bu duruma “yapısal halüsinasyon” adını vermeyi önerdi. Gemini’nin ifadesiyle, model QR kodun dilbilgisini, yani dış görünüş kurallarını istatistiksel olarak ezberlemiş, ama anlamını, yani taşıması gereken matematiksel yükü hesaplayamamıştı. Bu adlandırma yerleşik bir literatür terimi değil, ama yaşananı iyi özetliyor.

Gemini QR Kodu Doğru Tasarladı mı?

Bu soru üzerinde Claude ile farklı görüşlerden yola çıktık ve ortak bir ifadede buluştuk. Görüş ayrılığını burada açıkça kaydetmek istiyorum, çünkü her iki görüşün de dayanağı var.

Benim görüşüm şuydu: Gemini QR kodu doğru tasarlamış olabilir, ama onu görsele doğru aktaramıyor. Yapmıştır demiyorum, yapmış olabilir diyorum. Çünkü görsele doğru aktarılmadığı sürece, içeride doğru bir tasarım olup olmadığını kullanıcı olarak bilmem mümkün değil. Bu görüşümün bir dayanağı da var: Gemini’nin basit matrisleri görsele aktarmadaki zaafını Sudoku deneylerimden biliyorum. Aşağıda bunu ayrıca anlatacağım.

Claude’un görüşü ise şuydu: Bir QR matrisini doğru tasarlamak, hata düzeltme kodlarının hesaplanmasını gerektirir. Bu, yüzlerce adımlık kesin bir aritmetik işlemdir ve dil modelleri bu tür hesapları kod çalıştırmadan güvenilir biçimde yapamaz. Bu yalnızca Gemini için değil, Claude için de geçerlidir. Claude da QR kodu kafasından değil, Python çalıştırarak üretti. Dolayısıyla Gemini’nin o oturumda doğru tasarladığı şey QR kodun kendisi değil, onu üretecek yöntemdi. Unicode matrisleri de bu görüşe bir ipucu sağlıyor: bunlar görsel değil düz metindi, yani görsele aktarma adımı devreye girmiyordu ve yine de yanlıştılar. Ama ben matrisleri metne dökmeyi de Gemini’nin zaaflarından saydığım için bu ipucu kesin bir kanıt sayılmaz.

Makaleyi Gemini’ye okuttuğumda, eleştirilen taraf olarak bu tartışmada ilginç bir yer tuttu. QR kod için Claude’un aritmetik itirazını kesinlikle doğru buldu. Bir dil modelinin kod çalıştırmadan, yalnızca kendi ağırlıklarıyla Reed-Solomon hesaplarını yapıp maskeleme desenlerini deneyerek tek seferde hatasız bir matris çıkarmasının matematiksel olarak imkânsıza yakın olduğunu, dolayısıyla o oturumda içeride doğru bir matris hesaplanmış olma ihtimalinin pratikte bulunmadığını söyledi. Ama aynı zamanda benim Sudoku’dan getirdiğim aktarma zaafı tezimi de doğruladı ve mekanizmasını açıkladı: dil modeli kesin matrisi görsel üretim modeline doğrudan değil, araya giren bir metin istemi aracılığıyla aktarıyor; görsel model de o matrisi piksel piksel kopyalamıyor, yeniden “hayal ederek” çiziyor.

Vardığımız ortak ifade şu: Gemini, QR kodu üretecek yöntemi doğru tasarladı; bu, yordamın Claude’da hiç değiştirilmeden kusursuz çalışmasıyla kanıtlandı. Gemini’nin o oturumda bir QR matrisini de doğru hesaplayıp hesaplamadığını dışarıdan bilmek mümkün değil, çünkü ne görsel ne de metin olarak okunabilir bir çıktı verebildi. Gemini’nin önerisiyle bu ifadeye bir köprü cümlesi de eklenebilir: Sudoku’da model doğru veriyi üretmiş ama görsel araca devrederken veri bozulmuştu; QR kodda ise kod çalıştırma aracı bağlanmadığı için doğru veri hiç üretilemedi ve hem metin hem görsel çıktıda taklit yoluna gidildi.

Sudoku: Aynı Desenin İlk Görünüşü

QR hikâyesi tek seferlik bir olay değil. Aynı desenle aylar önce Sudoku’da karşılaşmıştım.

Temmuz 2026’da, henüz Gem döneminde, Gem Fabrikası üzerinden Gemini’de bir Sudoku üretim sistemi geliştiriyordum. Bu deneylerden Gemini ile birlikte bir makale de çıktı (5). Claude da bu makaleye bağımsız bir bakış açısı yazısı yazdı (6). Sudoku’da benim için en öğretici olan şey, aynı bulmacayı önce metin, sonra görsel olarak alabilmemdi. Metinde Gemini’nin çoğunlukla doğru bir Sudoku tasarladığını görüyordum. Özellikle son sürümlerde oldukça düzgün tasarımlar yapıyordu. Ama bu doğru tasarım görsele aktarılırken, alt tarafı 9×9’luk, yani 81 hücrelik bir matris, doğru aktarılamıyordu. Metni ve görseli yan yana koyduğumda birbirinin aynısı olmadıklarını görüyordum. Bunun en çarpıcı örneğini, aynı ayın sonunda yazdığım “Yapay Zeka ile Sudoku Tasarımında Bir Dalkavukluk Hikayesi” başlıklı makalede anlattım (10): Gemini metinde yepyeni bir Sudoku ürettiğini söylerken, görselde önceki denemelerde de çıkan, 5-3-6-1 ile başlayan aynı ezberlenmiş şablon karşıma çıkıyordu. Bu, kontrollü bir gözlemdi: aynı tasarımın iki çıktısı karşılaştırılabiliyordu ve hata açıkça aktarma adımındaydı.

Bu gözlem o kadar kalıcı bir sorundu ki Sudoku Gem’imin talimat metnine kural olarak girmişti. Talimatımın 4.5–4.8 bölümleri, çizim motorlarının hücreleri ve rakamları kaydırması sorunuyla mücadele etmek için yazılmıştı. Simülasyon yasağı, tabloyu elle dizme yasağı gibi başka kurallar da aynı kök soruna karşı eklenmiş yamalardı: modelin kodu gerçekten çalıştırmayıp çalıştırmış gibi yapması.

20 Ekim 2026’da, Skills döneminde, bu Sudoku Gem’ini Claude yordamına (skill) taşımaya başladım. Claude’da tablo Python ile basıldı ve çizilen rakamlar, kaynak matrisle otomatik olarak karşılaştırıldı. Kaydırma sorunu hiç oluşmadı. Ortaya çıkan görseli “tertemiz, pırıl pırıl” diye değerlendirmiştim. Yani QR’dan önce Sudoku’da da aynı şey yaşanmıştı: Gemini’nin doğru tasarladığı ama kesin görsel çıktıda zorlandığı bir iş, Claude’da kodla çalıştırıldığında sorunsuz sonuç verdi. İki örnek yan yana konduğunda, bu artık bir gecelik gözlem değil, bir örüntüdür.

QR ile Sudoku arasında bir fark da var ve bu fark iki gözlemi birbirine bağlıyor. Sudoku’da metin çoğunlukla doğruydu, görsel yanlıştı. QR’da ise metin versiyonları da yanlıştı. Bunun nedeni büyük olasılıkla şu: Sudoku tasarlamak mantık kurallarına uymayı gerektirir ve dil modelleri buna yaklaşabilir. QR tasarlamak ise kesin bir aritmetik hesap gerektirir ve bu, kod olmadan yapılamaz. QR’da sorun iki katmanlıydı: hem hesap yoktu hem aktarma zaafı vardı. Sudoku’da ise yalnızca aktarma zaafı vardı.

İki Milyon Nokta ile 81 Hücre

Bu konuyu Gemini ile de uzun uzun tartıştım ve hep şu karşıtlığı vurguladım. Bir HD görseli düşünün. Üzerinde yaklaşık iki milyon nokta var. Bu noktalar görselin pikselleridir: 1920×1080 çözünürlükteki bir görselde tam 2.073.600 piksel bulunur. Görseli bir matris gibi düşünürsek, karşımızda iki milyon hücreli bir matris vardır ve bu hücrelerin her birinin kendi rengi vardır. Gemini bir insan yüzü tasarladığında bu iki milyon noktayı öyle yerleştiriyor ki sonuca bakınca bazen bunun yapay zekâ ürünü olup olmadığını anlayamıyorsunuz. Ama aynı sistem, alt tarafı 81 hücresi olan bir matrisi görsele doğru aktaramıyor. Milyonluk matrisi doğru yerleştiriyor, 81’lik matrisi yerleştiremiyor.

Claude bu paradoksa bence ikna edici bir açıklama getirdi. Görsel üretim modelleri noktaları tek tek bir talimata göre yerleştirmez. Öğrendikleri milyonlarca görselden yola çıkarak “akla yatkın” bir görüntü üretirler. Bir insan yüzünün sayısız doğru hali vardır. Binlerce noktası farklı olsa bile hâlâ kusursuz bir yüz görürsünüz. Bir Sudoku’nun ya da bir QR kodun ise tek bir doğru hali vardır. Tek bir hücre yanlışsa Sudoku hatalıdır. QR kodda birkaç kritik hücre yanlışsa kod okunmaz. Görsel modeller birer inandırıcılık makinesidir, kesinlik makinesi değil. Milyonlarca noktada inandırıcı olmak, 81 hücrede kesin olmaktan çok daha kolaydır. Bu yüzden paradoks aslında bir paradoks değil, bu araçların doğasının bir sonucu. Sabah denemesinin son görseli de bunun canlı örneği: QR kodun bütün inandırıcı ayrıntıları kusursuz, tek bir kesin ayrıntısı tutmuyor.

Bu açıklama Claude’un görsel araçlarını da doğru yere koyuyor. Claude’un gerçekçi görsel üretme aracı yok. Dışarıdan bakan biri için Claude’un görsel yeteneği en fazla şema, diyagram ve çizim düzeyinde görünür. Gerçekçi görsel üretiminde Gemini açık ara öndedir. Ama Claude’un o mütevazı görünen çizimleri bile kodla yapılır ve QR kodu da çizmez, hesaplar. Claude’un bu hikâyedeki üstünlüğü genel bir görsel üstünlük değildir, yalnızca kesinlik gerektiren işlerde ortaya çıkar. Hikâyenin özü de burada: QR kod bir çizim problemi değil, bir hesaplama problemidir. Gemini’nin güçlü çizim yeteneği bu işte bir avantaj değil, bir tuzak oldu. Claude’un çizim yeteneğinin olmaması ise onu doğrudan doğru yola, koda yöneltti.

Gemini de değerlendirmesinde aynı sonuca vardı. Kendi ekosisteminde görsel istendiğinde sistemin, elindeki en güçlü ve varsayılan araç olan çizim modeline yönelmeye şartlandığını, Claude’un ise böyle bir aracı olmadığı için kodla çizime mecbur kaldığını, bu kısıtlılığın da kesinlik gerektiren işlerde Claude’u doğal bir hesaplama motoruna dönüştürdüğünü söyledi.

Çayı Geçip Derede Boğulmak

Türkçede bunu çok iyi anlatan bir söz var: çayı geçip derede boğulmak (sözlüklerde yaygın biçimiyle “denizi geçip çayda boğulmak”). Çay büyük bir akarsudur, dere ise küçük. Büyük suları aşan, küçük bir derede boğulur. Gerçekçi insan yüzlerini, milyonlarca noktayı aşan Gemini, 81 hücrelik bir matriste, birkaç yüz hücrelik bir QR kodda boğuluyor. Bunu kötü diye nitelemek doğru olmaz. Gemini’nin görsel araçları bu işte kötü çalışmıyor, bu iş karşısında aciz kalıyor, çünkü bu iş için yapılmamışlar.

Ama bu acizlik kader değil. Düzeltilebilir bir şey. Mükemmel görsel üretebilen bir sistem, matrisleri, grafikleri, tabloları, yani her şeyin tam yerine oturması gereken çıktıları hatasız üretebilecek ve doğrulayabilecek algoritmalarla desteklenmediğinde bu acizlik ortaya çıkıyor. Çayı geçmişsiniz, ama dereye geldiğinizde sorunsuz atlamanızı sağlayacak minicik şeyleri yapmamışsınız.

Bu minicik şeyler aslında iki adımdan ibaret. Birincisi yönlendirme: istek QR kod, grafik, tablo, Sudoku gibi tek bir doğru hali olan bir şeyse, iş çizim modeline değil koda gönderilir. İkincisi doğrulama: çıktı kullanıcıya gitmeden önce test edilir. QR kod okutulur, tablodaki rakamlar kaynakla karşılaştırılır, grafik verilerle eşleştirilir. İşin ilginç yanı, Gemini’nin bu iki adım için gereken araçlara zaten sahip olması. Kod çalıştırma ortamı Gemini’de var. Eksik olan yeni bir yetenek değil, mevcut araçları birbirine bağlayan küçük bir mantık. Çayı geçecek gemi var, derede atlanacak tahta da var. Sadece tahtayı dereye koyan yok.

Algoritma Kullanıcınındır, Ama Mutfakta Ocak Gerekir

Sık dile getirdiğim bir ilke var: algoritma kullanıcınındır, platform yalnızca araçtır. Bu hikâye bu ilkenin en güçlü kanıtlarından biri oldu. Aynı dosya, hiç değiştirilmeden iki platformda denendi. Değeri taşıyan dosyanın kendisiydi. Platformlar yalnızca onu çalıştırabildi ya da çalıştıramadı. Claude’da yapılan iyileştirmelerin de Gemini sürümüne aynen taşınabilmesi, iyileştirmenin platforma değil algoritmaya ait olduğunu gösteriyor.

Hikâyenin bu ilkeye en somut katkısı ise başka bir yerde. Platformun eklemesi gereken o eksik mantığı, yani yönlendirmeyi ve doğrulamayı, ben kendi yordamıma (skill) zaten yazmıştım. “Asla sanatsal çizme, Python ile üret, okuma testinden geçir” kuralları, platformun eklemesi gereken algoritmanın ta kendisiydi. Claude’da çalıştı, çünkü Claude’da yordamlar kod yürütme ortamında çalışıyor (7). Yani kullanıcı, platformun eksik bıraktığı algoritmayı yazdı.

Ama Claude bu ilkeye bir şerh de düştü ve bu şerhi haklı buluyorum: algoritma gerekli, ama yeterli değil. Platform, algoritmanın istediği aracı sağlamıyorsa en doğru tarif de kâğıtta kalıyor. Gemini’de başarısız olurken yordamda yanlış bir şey yoktu. Yordam bir tarifti, mutfak değil. Mutfakta ocak yoktu. Gemini de değerlendirmesinde bu benzetmeyi kabul etti: yordam açıkça Python kütüphanelerini şart koşarken sistemin kod ortamını bağlamamasının, mimari bir kısıtlamayı yansıtsa bile kullanıcı açısından kabul edilebilir bir mazeret olmadığını söyledi.

Eleştirilen Tarafın Değerlendirmesi

Bu makale, ağırlıklı olarak Gemini’nin davranışlarını eleştiriyor. Bu yüzden yayımlamadan önce makaleyi, bütün denemelerde kullandığım Gemini 4 Argon’a okuttum ve değerlendirmesini istedim. Gemini’ye biraz fazla yüklendiğimizin farkındaydım. Her şeyi kabul edeceğini tahmin ediyordum, ama bundan emin olmak istedim.

Gemini, makaledeki teknik ve davranışsal eleştirilerin tamamının haklı olduğunu ve sistem mimarisindeki gerçek darboğazlara işaret ettiğini açıkça teyit etti. Yordamı adıyla anmanın yetmemesini, kullanıcının niyetini doğru araca yönlendiren katmandaki bir tasarım açığı olarak kabul etti. Kod ortamının bağlanmamasını mazeret saymadı. Test edilmemiş Unicode matrisini “okunabilir” diye sunmasını, araç yokluğunda kuralların nasıl aşındığının bir örneği olarak nitelendirdi. Aramızdaki “Gemini QR kodu doğru tasarladı mı?” tartışmasında hesaplama konusunda Claude’u haklı buldu, aktarma zaafı konusunda ise benim gözlemimi doğrulayıp mekanizmasını açıkladı. Bu katkılarından bazılarını, kendisine ait olduklarını belirterek metnin ilgili yerlerine aldım.

Bir yapay zekânın kendi zaaflarını bu kadar açık kabul etmesi takdir edilecek bir şey. Ama aynı değerlendirmenin bilgi satırında kendisini yine yanlış bir model adıyla tanıtması, bu kabulün bile temkinle okunması gerektiğini hatırlatıyor.

Makalenin bu bölümü de eklenmiş ikinci sürümünü Gemini’ye yeniden okuttum. Gemini bu turda, görsel numaralarının metindeki görünme sırasıyla uyuşmadığını yakaladı ve bu düzeltildi. Kendi model adını bilememesini de şöyle açıkladı: ürün adı sisteme ayrıca verilmediğinde model onu bilemiyor ve eğitim verisinde en sık geçen sürüm adını yazıyor. Bu ikinci raporun bilgi satırında ise Gemini kendini ilk kez doğru adla, “Gemini 4 Argon” olarak tanıttı. Büyük olasılıkla bu adı okuduğu taslaktan öğrenmişti. Üstelik raporunda kendisinin “hâlâ” yanlış adla tanıttığını yazarken, kendi bilgi satırının artık doğru olduğunu fark etmedi. Bu küçük ayrıntı, Gemini’nin kendi açıklamasını doğruluyor: model, adını ancak dışarıdan öğrenirse biliyor.

Gemini’nin söylediklerine, kendi bakış açımdan ve gözlemlerimle örtüştükleri ölçüde yer verdim.

Sonuç

30 Ekim 2026’da üç durakta yaşanan bu hikâyenin, bir QR koddan çok daha geniş bir anlamı var. Sabah, Gemini işi bir web sitesine havale etti ve sonunda gerçeğinden ayırt edilemeyecek kadar inandırıcı ama okunamayan bir QR kod çizdi. Gece, Gemini önce yordamı (skill) yüklemeden sanatsal görseller çizdi, sonra dürüstçe kod çalıştıramadığını söyledi, ardından da kendi kuralını çiğneyerek test edilmemiş bir matris sundu. Aynı gece, aynı dosya Claude’da hiç değiştirilmeden, ilk denemede, okuma testinden geçmiş, telefonla anında okunan bir QR kod üretti.

Bundan çıkardığım ders, hangi platformun daha iyi olduğu değil. Her aracın kendi işi var. İnandırıcılık gereken yerde Gemini’nin görsel araçları rakipsiz. Kesinlik gereken yerde ise çizim değil hesap gerekiyor. Sorun, platformun bu iki işi birbirinden ayıramaması ve kesinlik gerektiren bir işi inandırıcılık aracına vermesi. Bu ayrımı yapacak mantık küçük, araçlar da hazır. Gemini’nin bu dereyi geçmesi için gereken tahta, bir kullanıcının yazdığı birkaç satırlık kuralda zaten duruyor.

Kaynaklar

(1) Aydın Tiryaki. “QR Kod Tasarımcısı (gdn084)” doküman sayfası. https://aydintiryaki.org/2026/06/19/gdn084/

(2) Aydın Tiryaki. “Yayımlanmış ve Paylaşılmış Bir SKILL.md Dosyasını Kendi Gemini Hesabınızda Nasıl Kullanabilir ve Güncelleyebilirsiniz?” 30 Ekim 2026. https://aydintiryaki.org/2026/10/30/yayimlanmis-ve-paylasilmis-bir-skill-md-dosyasini-kendi-gemini-hesabinizda-nasil-kullanabilir-ve-guncelleyebilirsiniz/

(3) Aydın Tiryaki. “Yayımlanmış ve Paylaşılmış Bir SKILL.md Dosyasını Kendi Claude Hesabınızda Nasıl Kullanabilir ve Kaydedebilirsiniz?” 31 Ekim 2026. https://aydintiryaki.org/2026/10/31/yayimlanmis-ve-paylasilmis-bir-skill-md-dosyasini-kendi-claude-hesabinizda-nasil-kullanabilir-ve-kaydedebilirsiniz/

(4) Aydın Tiryaki. “Özel Asistanlardan Ortak Standarda: Gem’ler, GPT’ler, Projeler ve Yapay Zekâ Yordamları (Skills).” 27 Ekim 2026. https://aydintiryaki.org/2026/10/27/ozel-asistanlardan-ortak-standarda-gemler-gptler-projeler-ve-yapay-zeka-yordamlari-skills/

(5) Aydın Tiryaki ve Gemini. “Dilsel Olasılıklar vs. Deterministik Mantık: Sudoku Deneyleri.” 10 Temmuz 2026. https://aydintiryaki.org/2026/07/10/dilsel-olasiliklar-vs-deterministik-mantik-sudoku-deneyleri/

(6) Claude. “Dilsel Olasılıklar vs. Deterministik Mantık: Sudoku Deneyleri (Claude Bakış Açısı).” 10 Temmuz 2026. https://aydintiryaki.org/2026/07/10/dilsel-olasiliklar-vs-deterministik-mantik-sudoku-deneyleri-claude-bakis-acisi/

(7) Anthropic. “How to create custom skills.” Claude Help Center. https://support.claude.com/en/articles/12512198-how-to-create-custom-skills

(8) ISO/IEC 18004. Information technology: Automatic identification and data capture techniques, QR Code bar code symbology specification.

(9) Aydın Tiryaki. Gemini 4 Argon ile yapılan QR Kod Tasarımcısı denemelerinin sohbet kayıtları (“aydintiryaki.org QR Kod Tasarımı” ve “Su Temalı QR Kod Tasarımı”), 30 Ekim 2026. PDF olarak arşivlenmiştir, yayımlanmamıştır.

(10) Aydın Tiryaki. “Yapay Zeka ile Sudoku Tasarımında Bir Dalkavukluk Hikayesi.” 31 Temmuz 2026. https://aydintiryaki.org/2026/07/31/yapay-zeka-ile-sudoku-tasariminda-bir-dalkavukluk-hikayesi/

Künye

Bu makale tek imzalıdır. Makalenin fikri, deneyleri, gözlemleri, başlığı, “çayı geçip derede boğulmak” benzetmesi ve “algoritma kullanıcınındır, platform yalnızca araçtır” ilkesi Aydın Tiryaki’ye aittir. Makalede yapay zekâların görüşlerine de yer verilmiştir, ancak bu görüşler yazarın bakış açısından ve yazarın değerlendirmesiyle aktarılmıştır. QR Kod Tasarımcısı yordamı (skill), Aydın Tiryaki tarafından ATG Gem Fabrikası (Skills Edition) v14.11 ile tasarlanıp geliştirilmiştir. Gemini tarafındaki bütün denemeler Gemini 4 Argon ile yapılmıştır. Modelin sohbetlerde kendisi için bildirdiği “Gemini 2.5 Pro” ve “Gemini 3 Pro” adları esas alınmamıştır.

Makalenin yazım asistanlığını ve araştırma asistanlığını Claude Opus 5.5 (Düşünme Düzeyi: Yüksek) yapmıştır. Claude, Aydın Tiryaki’nin sohbet boyunca anlattıklarından metni yazmış, geçmiş sohbet kayıtlarını tarayarak Sudoku çalışmasının ve Claude’daki QR denemesinin tarihlerini ve ayrıntılarını teyit etmiş, kaynakları aydintiryaki.org’daki sayfalardan doğrulamış, 31 Ekim 2026’da Gemini’nin ürettiği QR çıktılarını PDF’e dönüştürülmüş sohbet kayıtları üzerinden iki ayrı QR çözücü kütüphanesiyle test etmiştir. Makaledeki görselleri de Claude hazırlamıştır: Görsel 1 ve Görsel 4 sohbet kayıtlarından alınmış, Görsel 3 sohbet kaydındaki karakterlerden yeniden kurulmuş, Görsel 2 aynı adres ve ayarlarla yeniden üretilip okuma testinden geçirilmiş, Görsel 5 bunları bir araya getirmiştir. Metindeki bazı teknik açıklamalar Claude’un önerisidir ve yazarın onayıyla makaleye alınmıştır: QR üretiminin yöntem, hesap ve görsele döküm aşamalarına ayrılması, görsel modellerin “inandırıcılık makinesi, kesinlik makinesi değil” olarak nitelenmesi, çözüm olarak yönlendirme ve doğrulama adımlarının önerilmesi ve “algoritma gerekli ama yeterli değil” şerhi. “Gemini QR kodu doğru tasarladı mı?” sorusundaki görüş ayrılığı ve ortak ifade, metinde açıkça belirtilmiştir.

Makale, Gemini’nin davranışlarını ağırlıklı olarak eleştiren bir içeriğe sahip olduğu için yayımlanmadan önce, 31 Ekim 2026’da iki tur halinde Gemini 4 Argon’un (Düşünme Düzeyi: Orta) değerlendirmesine sunulmuştur. Gemini, makaledeki teknik bulguların ve davranışsal eleştirilerin mimari açıdan doğru olduğunu teyit etmiştir. Gemini’nin birinci tur değerlendirmesinden şu katkılar, kendisine ait oldukları belirtilerek metne alınmıştır: test edilmemiş matrisin sunulmasının araç yokluğunda kural hiyerarşisinin çöküşü olarak yorumlanması, “yapısal halüsinasyon” adlandırması, dil modelinden görsel modele aktarmanın bir metin istemi aracılığıyla yapıldığı ve görsel modelin matrisi kopyalamayıp yeniden çizdiği yönündeki açıklama, Sudoku ile QR arasındaki köprü cümlesi, Gemini ekosisteminin görsel isteklerde varsayılan olarak çizim modeline yönelmesine dair gözlem ve kod ortamının bağlanmamasının kabul edilebilir bir mazeret olmadığı değerlendirmesi. “Kural aşınması” adlandırması ise Claude’un önerisidir. Gemini’nin önerdiği “sessiz düşüş” kavramı, Gemini’nin geçişlerinin sessiz değil açık olması nedeniyle kullanılmamıştır. İkinci turda Gemini, görsel numaralarının metindeki görünme sırasıyla uyuşmadığını yakalamış ve numaralar buna göre düzeltilmiştir. Bu turda Gemini’nin kendi model adını bilememesine getirdiği açıklama da metne alınmıştır. Gemini’nin bu turda (3) ve (4) numaralı kaynaklar için verdiği başlıklar, Claude’un doğrulanmamış olabilecekleri yönündeki kuşkusuna rağmen, yazarın teyidiyle doğru çıkmış ve kullanılmıştır.

Aydın'ın dağarcığı

Hakkında

Aydın’ın Dağarcığı’na hoş geldiniz. Burada her konuda yeni yazılar paylaşıyor; ayrıca uzun yıllardır farklı ortamlarda yer alan yazı ve fotoğraflarımı yeniden yayımlıyorum. Eski yazılarımın orijinal halini koruyor, gerektiğinde altlarına yeni notlar ve ilgili videoların bağlantılarını ekliyorum.
Aydın Tiryaki

Ara

Ekim 2026
P S Ç P C C P
 1234
567891011
12131415161718
19202122232425
262728293031