Kod her zaman önce alanı, sonra ili gevşetiyordu (il korunur, aynı ildeki
alan dışı programlarla dolar); fonksiyon yorumu, /meraklisina şeması,
4. bölüm anlatımı ve aria-label ise "önce il, sonra alan" diyordu.
KARARLAR.md'de sıra için karar yok; davranış DEĞİŞMEDİ, yalnız anlatım
koda eşitlendi (AGENTS.md şema senkronu). Hangi sıranın doğru olması
gerektiği raporda [BİLAL] sorusu.
Kanıt: p01 (Eskişehir), p06 (İzmir), a15 (Kilis) — il korunur, alan
gevşer; 40 profilde bu commit öncesi/sonrası havuz birebir aynı.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Havuz yalnız taban sırasına bakıyordu; hayal dilimi "adayın üstünde
kapanan her şey" olduğu için barajın hemen dışındaki adaya tam da
yazamayacağı bölümler düşüyordu (52.000 sıralı adaya tıp, 310.000'e
mühendislik). Kaynak uydurma tablo değil: program_ozellik.min_basari_sirasi
(YÖK Atlas API, 2026 kılavuzu; katalogdaki "baraj … sıra" satırı ve
danışmanın tercihBaraji alanı da aynı kolonu okur). db.havuzAdaylari artık
min_basari_sirasi < adayın sırası olan programları SQL'de çıkarır; barajı
boş program süzülmez.
Kanıt (havuzdaki baraj dışı program, önce → sonra): a04 4 → 0, a06 11 → 0,
a08 11 → 0, p03 17 → 0; 40 profilin hepsinde 0. a07 (SÖZ 310.000, eğitim):
alandaki programların tamamı barajlı olduğu için alan artık gerçekten
gevşiyor (24 hayal → 5/13/6).
Bilinen sınır: kolon bazı barajlı bölümlerde boş (ör. 16 tıp, 11 hukuk
satırı) — veri işi, raporda.
/meraklisina şeması (aday havuzu düğümü), 4. bölüm anlatımı, aria-label
ve figcaption aynı kuralla güncellendi.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
YÖK Atlas özel kontenjanları ayrı program satırı olarak veriyor; adında
"(KKTC Uyruklu)" ya da "(M.T.O.K.)" geçen, taban sırası olan 118 satır
herkesin aday havuzuna giriyordu (p02'de 54 programın 7'si). Sihirbaz
uyruk ya da lise türü sormadığı için bu satırlar herkese önerilemez.
Kural tek yerde ve export'lu: rapor-havuzu.ts → ozelKontenjanSatiriMi().
Kanıt (havuzdaki özel kontenjan satırı, önce → sonra): p02 7 → 0,
p14 6 → 0, p05 4 → 0, p09 3 → 0, a09 3 → 0; 40 profilin hepsinde 0.
Gevşetme basamağı ve liste uzunluğu hiçbir profilde değişmedi.
/meraklisina şeması (aday havuzu düğümü), 4. bölüm anlatımı, aria-label
ve figcaption aynı kuralla güncellendi.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
İl gevşeyince havuz baştan, ilsiz kuruluyordu; seçili ildeki programlar
sıraya en yakın 20'ye giremezse listeden tamamen düşüyordu (Kayseri 1/60,
Trabzon 0/25) — prompt ise "seçili illere öncelik ver" diyordu. Artık
gevşetmenin her basamağında seçime uyan programlar önce alınır, boşluk
sıraya en yakın diğer programlarla dolar. Aynı kural alan ve danışman
profili gevşediğinde de geçerli (tek yardımcı: oncelikliBirlestir). Kırpma
sonrası havuz yine dilim sırasında, dilim içinde yakından uzağa dizilir.
Kanıt (havuzda seçili ildeki program, önce → sonra): p12 Kayseri 1 → 9,
p13 Trabzon 0 → 4, b06 Düzce 2 → 10, a09 Konya 2 → 3. Gevşetme basamağı ve
liste uzunluğu hiçbir profilde değişmedi.
/meraklisina şeması, 4. bölüm anlatımı ve aria-label aynı kuralla
güncellendi.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
24 eşiği kırpmadan önce sayılıyor, sonra her dilim 20'ye iniyordu; havuzu
tek dilimde toplanan adayın listesi 20–22 satırda kalıyordu (SAY 800 devlet
sağlık: 617 güvenli program varken 22 satır). Kırpma artık dilim başına
20'yi korur ama toplam 24'ün altına düşecekse eksiği, adayı kalan
dilimlerden tamamlar. Dağıtım kuralı dilimHedefiHesapla ile aynı
(dengeli → güvenli → hayal) ve tek yardımcıda toplandı; 5/13/6 iskeleti ve
hedef hesabı değişmedi.
Kanıt (liste satırı, önce → sonra): a02 22 → 24 (1/1/22), a01 21 → 24,
a11/a12/a17/b05 20 → 24. Diğer 33 profilde havuz birebir aynı.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Havuz her dilimden sıraya en yakın 60 programı alıp alan (kategori)
süzgecini ondan sonra uyguluyordu; il seçmeyen adayın alanı, o alanda
onlarca program varken "yeterli program yok" diye gevşiyordu (matris B3:
318 denemenin 206'sı). Artık dilimin tamamı okunur (db.havuzAdaylari),
il + alan süzgeci ona uygulanır, 24 eşiği gerçek sayıya bakar, kırpma en
sonda yapılır. Gevşetme sırası ve kırpma kuralı değişmedi.
Kanıt (önce → sonra, havuzda seçili alanla eşleşen): a16 EA 200.000
Turizm 1/60 → 33/33; p03 8/60 → 60/60; a08 5/60 → 60/60; hiçbiri artık
alan gevşetmiyor.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- ilAdiNormalize harf katlayarak eşler: IZMIR / izmir / İzmir → İZMİR (program_ara,
il_ozeti, profil evIl). il_ozeti "Afyon"u da bulur.
- program_ara bölüm ve üniversite aramasını katlanmış adla yapar ("isletme",
"bogazici", "ODTÜ"); LIKE jokerleri (%/_) artık her şeyi eşlemez.
- Tek harf / boş girdi ilk kaydı (Abaza Dili, Abdullah Gül) döndürmez; "en az 3
harf" hatası döner.
- Kısaltma tablosunda bozuk satır: dtu → deu (Dokuz Eylül).
- Akış hata logu tam hata nesnesi yerine mesajı basar; cagri.ts kullanılmayan import.
- (8'in devamı) dil seçenekleri veride olan dillerle eşitlendi; doğrulama
"Almanca" süzgecini reddetmesin.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- sayiParse: birim eki (km, TL) sayının parçası değil; "300 km" artık 300.000 değil 300.
- aracCalistirici argümanı ARACLAR şemasına göre denetler (bilinmeyen alan, yanlış
tip, geçersiz seçenek, alt sınır, eksik zorunlu alan) ve modele hangi alanın neden
reddedildiğini söyler; geçersiz dilim / negatif ucret_ust sessizce süzmez.
- Şema, gövdelerin zaten kabul ettiğini söyler: program id'si ve profil değeri sayı
da olabilir; ucret_ust en az 1.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sunucu, istemci kopsa da cevabı üretip kaydeder ve kredi harcanmış kalır
(bilerek: kopmada iade, cevabı okuyup bağlantıyı kesene bedava cevap olurdu).
İstemci metni buna göre düzeltildi; görsel değişiklik yok.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
SDK akış ortası abort'u hata fırlatmadan "abort" parçasıyla bitiriyordu;
döngü bunu tamamlanma sayıp yarım metni kaydediyor, krediyi iade etmiyordu.
Döngüden sonra sinyale bakılır: kesildiyse onYarim (iade + yarım kayıt) çalışır,
istemciye hata parçası gider. Süre zamanAsimiMs ile verilebilir (varsayılan 120 sn).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Cevapsız kalmış (iade edilmiş) sorular art arda user mesajı olarak, sayıyla
kesilen pencere de danışman mesajıyla başlayarak gidiyordu. modelPenceresi
baştaki danışman mesajlarını atar, art arda aynı rolü tek mesajda birleştirir.
Pencere sorgusuna rowid sıralaması eklendi (created_at saniye çözünürlüklü).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
sohbetGecmisiGetir yeniden eskiye sıralayıp 100 alır, sonra çevirir; aynı
saniyedeki soru-cevap sırası rowid ile korunur. GET /api/soru da aynı
sorguyu kullanır (iki kopya vardı).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
profilAlanYaz oku → değiştir → yaz yerine tek SQL ifadesiyle yazar
(json_set / json_remove); eşzamanlı iki alan yazımı artık ikisini de tutar.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Metin ve davranış aynı; yeni yol src/lib/ai/danisman-prompt.ts
(sistemPromptu, PROFIL_ONAY_SOR). Route dosyasından dışa aktarım
Next'te yapılamadığı için ayrı dosya.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- Sunucu: elle yazılmış araç döngüsü yerine streamText + UI mesaj akışı
(src/lib/ai/sohbet-akisi.ts). Kredi düşme/iade, bedelsiz profil onayı,
mesaj kaydı ve Jev çıktı denetimi aynı davranışla korunur.
- İstemci: sohbet-client useChat kullanır; araç çalışırken balonun altında
durum satırı görünür. Kayıtlı geçmiş düz metin kalır.
- Sağlayıcı aynı tek kapı (AI_BASE_URL / AI_API_KEY), openai-compatible.
- Yeni araçlar: bolum_ozeti, il_ozeti, rehber_ara, tercih_takvimi.
- Kalkan davranış: sağlayıcı araç çağrısını reddedince düz sohbete düşme.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- Danışman: program_netleri, program_karsilastir ve bolum_istihdam araçları;
program_ara'ya devlet/vakıf, öğretim türü ve sıralama parametreleri;
program_detay'a trend cümlesi; bozuk araç argümanı modele hata döner.
- TÜİK Yükseköğretim İstihdam Göstergeleri 2025: bölüm bazında istihdam
oranı, ilk işi bulma süresi ve kazanç grubu (src/lib/bolum-istihdam.ts,
üretici scripts/tuik-istihdam-uret.py, kaynak Excel'ler data/kaynak/).
- Bölüm sayfasında "Mezun istihdamı" ayrıntı satırı ve alt sayfası;
AkademikAyrinti başlık/ikon alır.
- Jev (TypeSafe AI) ile danışman cevabında garanti/olasılık dili denetimi;
ihlalde cevabın sonuna düzeltme notu. Anahtar yoksa denetim atlanır.
- /gizlilik: TypeSafe AI (ABD) sağlayıcı satırı. KARARLAR.md: 5 Ekim kaydı.
- Üç katalog dosyasındaki bg-white → bg-card değişiklikleri de bu commit'te.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Kareler önce logonun üç karesi gibi belirir, sonra yerlerine büyür;
içerik satır satır netleşir. Hareketi azalt'ta yalnız kısa belirme.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- Footer: "Rabbi'şrah lî sadrî ve yessir lî emrî" (Tâhâ 25–26) Arapça +
Diyanet İşleri meali; Arapça Amiri Quran ile (önceden yüklenmez, ~45 KB).
Altında PixelMark'lı kaynak satırı.
- Konsol: ConsoleAsr artık kök layout'ta. Logodaki renklerle dot-matrix kum
saati, Asr Sûresi (Diyanet mushafı + Diyanet meali, kaynakla bayt bayt
aynı), İmam Şâfiî'nin sûfîlerden aktardığı vakit sözü, /meraklisina linki.
Tarayıcı boşa çıkınca bir kez basar.
- DESIGN.md §3: Arapça yazı tipinin tek işi (yalnız Kur'an metni) yazıldı.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Bilal kararı (26 Eyl 2026): 'kaydedeyim mi?' sorusuna kısa evet/hayır
cevabı bedelsiz. Sunucu son danışman mesajında onay ibaresini arar,
mesaj ≤40 karakter ve evet/hayır kalıbıyla başlıyorsa kredi düşmez,
ledger'a yazılmaz, iade yolu atlanır; X-Kredi-Dusuldu başlığıyla istemci
bakiyeyi buna göre günceller. Gerçek soru içeren 'evet ama …' bedava geçmez.
- Bilal kararı: model Türkiye'de barındırılacak. client.ts baseURL ve
anahtar AI_BASE_URL/AI_API_KEY'den okunur (OPENROUTER_* geriye uyumlu);
sağlayıcı değişince kod değil .env değişir, /gizlilik aynı commit'te.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- db.ts OzellikSuzgeci (dil, yalnız örgün, yalnız burslu, ücret üst sınırı)
program_ozellik alt sorgusuyla; tablo yoksa süzgeç yok.
- rapor-havuzu: profilSuzgeci (ev ili + km → il listesi; sihirbazda il
seçiliyse km uygulanmaz); havuz 24'ün altına düşerse gevşetme sırası
profil → il → kategori. rapor.ts prompt'a 'danışmana söylediği tercihler'
ve profil gevşetme notu; rapor-actions profili okuyup geçirir.
- /meraklisina şeması (huni-semasi SEMA + aria-label + figcaption) ve 4.
bölüm metni yeni adım ve gevşetme sırasıyla eşitlendi (AGENTS.md kuralı).
- /api/soru: profil kaydı öncesi 'kaydedeyim mi?' onayı (PROFIL_ONAY_SOR).
- Gizlilik metni kodla eşitlendi: OpenRouter→DeepSeek (Anthropic değil),
profil satırı, amaç+hukuki sebep, saklama süreleri, md. 11 hakları,
18 yaş altı notu; unvan/adres ve aktarım dayanağı TODO. Giriş kartı:
koşullar 'kabul', gizlilik 'okudum'. Sohbet girişine kişisel bilgi uyarısı.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Üniversite sayfasındaki 'Örgün öğrenci' karesine '%54 kadın · %46 erkek'
satırı eklendi; kaynak notu üniversite düzeyi olduğunu ve bölüm bazında
veri olmadığını söyler. Filtre ya da öncelik değil, bilgi satırı.
Üretim betiği E/K sütunlarını okur; kadinYuzdesi() yardımcı eklendi.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Telefonda dik kutu haritadan uzun olunca ülke haritasının altı kesiliyor,
şehir işareti metnin arkasına kayıyordu (Lefkoşa, 375 px). Kutu haritadan
küçükse harita içinde kalır, büyükse harita kutunun içinde kalır.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sitedeki SSS ve /kosullar ifadelerinin toplamı, yeni vaat yok; yapay zekâ
cevap motorları gövde metnini önceliklediği için tanım meta'dan gövdeye de
taşındı. Rybbit AI referrer başlangıç değeri yayın kuyruğu tablosuna yazıldı.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
İki kök neden: rakamlı başlıklarda karışık flex span satır kaydıramıyordu
(başlık artık kelime kelime kutulanıyor); Satori aynı aile adıyla kaydedilen
latin/latin-ext dosyalarından yalnızca birini kullanıyordu (ext alt-kümeleri
'<ad> Ext' adıyla kayıtlı, şablonlar OG_AILE virgüllü aile listesini veriyor).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- /universiteler/devlet ve /universiteler/vakif: şehir sayfası iskeleti,
haritada bu türden üniversitesi olan her il turuncu (yakınlaşma yok), üç
özet kartı, şehir çipleri (sayfa içi çapa), şehir şehir §4.15 satırları,
öteki türe geçiş hapı; metadata + sitemap.
- TurCipi tek kaynak: devlet/vakıf çipi tür sayfasına link (sonuç, listem,
tadımlık, bölüm, şehir/tür satırları); üniversite sayfası tür hapı ve
/universiteler başlıkları da link. UniSatirlari ortak dosyada: ad, tür ve
il ayrı linkler.
- Kompakt profilli satır (DESIGN.md §10.9): iri kupa kutusu + text-3xl/4xl
sıra, text-xl/2xl başlık, 48 px buton; telefonda alt alta, lg'de tek satır.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- UniSatirlari: kenarlıklı liste, satırın tamamı üniversite sayfasına link,
SATIR_AD_DUZ ad (hover mavi, §2.1 istisnası), SATIR_META içinde tür çipi +
program sayısı (+ ana il farklıysa il), sağda kayan ok, active:scale-[0.99].
İki sütunlu kompakt UniLinkleri /universiteler dizininde kaldı.
- DESIGN.md §4.17 güncellendi.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- Özet ızgarası relative isolate; konum haritası absolute katman (-inset-x-4
-inset-y-8) olarak ızgaranın tamamını kaplar, üçüncü sütun yalnız yer tutar.
lg'de sağdan sola, telefonda üst satırdan aşağı uzun rampalı mask.
- Yakınlaşma ease-out yerine spring bounce 0 (0,6 s gecikme, 1,6 s): sert
başlangıç gitti. Şehir yüzeyi mask'ları da uzatıldı.
- DESIGN.md §4.17 güncellendi.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- Izgara 72 → 56 sütun, serpinti kaldırıldı (Bilal: "piksel detaylarını azalt").
- Harita `doldur` (slice) ile SehirYuzeyi kartını kaplar, metin üstünde; iki
katlı mask ile hiçbir kenarda kesik kare kalmaz (Bilal: "canvas net bir
şekilde kesiliyor"). Telefonda altta, lg'de sağ yarıda belirir.
- Yakınlaşma kutusu kabın oranında kurulur, il `odakHiza` ile kabın istenen
noktasına gelir (şehir sayfası: lg sağ orta, telefon alt orta; konum kartı orta).
- usePixelHeat meet/slice + ortalama ofsetini hesaba katar.
- Üniversite konum kartı: kartı doldurur, radyal erime.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- viewBox 0,7 s gecikmeyle 1,1 s güçlü ease-out ile ilin çevresindeki kutuya
kayar (en çok 2,4 kat; ülke haritasında şehir işaretine 1,8 kat); kutu SVG
oranında ve harita dışına taşmaz. Hareketi azalt: doğrudan odak.
- usePixelHeat viewBox'ı her taramada canlı okur; yakınlaşmış haritada da
imleç doğru kareyi ısıtır (hero davranışı değişmez).
- DESIGN.md §4.17 yakınlaşma notu.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- scripts/il-izgara-uret.ts → src/lib/il-izgara-verisi.ts: 81 il ve 7 ülke
kontürü hero'nun dot-matrix ızgarasına (72×31) rasterize; küçük iller 2×2 garanti.
- SehirPikselHaritasi: iri kareler, altı opaklık, kıyı serpintisi, usePixelHeat
ısı fırçası; bulunulan il iri turuncu karelerle sırayla belirir (kt-piksel-belir)
ve nabız atar; KKTC/yurt dışında şehir merkezinde 2×2 iri kare.
- Şehir sayfası başlığı beyaz piksel dokulu yüzeyde (SehirYuzeyi), harita sağda/altta.
- UniversiteKonumHaritasi düz SVG yerine aynı piksel haritayı kullanır.
- DESIGN.md §4.12/§4.17/§10.8 güncellendi.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- ilSayfaHref: üniversite sayfası il hapı, /universiteler listesi, bölüm /
sonuç / listem / tadımlık satırlarındaki il metası şehir sayfasına gider.
- Şehir kümeleri tüm (üniversite, il) çiftlerinden: DB'deki her il değerinin
sayfası var (ODTÜ Ankara + KKTC); dev'de eski globalThis önbelleğine dayanıklı.
- PikselZemin ton="acik", CtaBandi/CtaSiraForm ton="beyaz": /universiteler
altı ve /meraklisina kapanışı beyaz, diğer bantlar mavi (dönüşümlü).
- ilUlkeHaritasi: il değerinden ülke haritası + şehir konumu.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- Veri: getAllIller/getIlBySlug (üniversite en çok programının olduğu ile
sayılır; ili boş olan hiçbir şehre girmez; tireli yurt dışı adlar baş harfli).
- /universiteler: "Şehre göre" çip satırı (2+ üniversiteli 28 şehir) +
"Tüm şehirler" A–Z üç sütunlu liste (#tum-sehirler).
- /universiteler/[il]: 92 statik şehir sayfası — katalog detay düzeni, il ve
üniversite sayısı hapları, kompakt sıra satırı, devlet/vakıf/KKTC-yurt dışı
öbekleri, diğer şehir çipleri, CTA bandı; metadata + breadcrumb JSON-LD.
- SehirCipleri: sihirbaz il çipiyle aynı kalıp, aktif şehir mavi dolu.
- Sitemap'e şehir sayfaları eklendi.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- CtaSiraForm kompakt: kayıtlı sıralamalı hâl CtaBandi kompakt kabuğuyla
birebir (bg-primary, beyaz yazı, PikselZemin); form hâli beyaz kalır.
İç boşluk ve saydam kenarlıkla iki hâlin kutusu aynı (CLS yok); telefondaki
süs piksel ayracı kaldırıldı.
- /sonuc "24 tercihlik listen hazır": beyaz kart yerine CtaBandi (seed 23),
buton sonda ArrowRight, telefonda tam genişlik.
- DESIGN.md §10.8: CtaBandi kullanım yerleri ve "piksel konmaz" listesi güncellendi.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Site metni (rapor 31 §4.3):
- "23.000+ lisans programı" → DB sayımıyla "21.000+ lisans ve önlisans"
(12.239 + 9.254); sayı tek kaynaktan (veri-kapsami.ts).
- Hero "48 saatlik panikle seçme" → "Tercih listeni gerçek veriyle kur,
panikle değil"; "Yapay zekâ veriyi tarasın" → resmî veri taransın, YZ
yalnızca havuzdan seçer; "boşta kalmanın en yaygın sebebi" ve "ihtimalini
en aza indiririz" iddiaları kaldırıldı; paket sayfasında "insan danışmanın
işini / aynı işi" dili bırakıldı.
Rehber (rapor 32 §4, 06, 07, 12):
- yerlesemedim: "ekte tabanlar gevşer" hatası düzeltildi (dolu programda
eşik ilk turun en küçük puanı, Ek Yerleştirme Kılavuzu 1.2); ek listeye
yerleşince OBP'nin yarıya indiği uyarısı ve kaynaklar eklendi.
- kyk-burs-mu-kredi-mi: "bir öğretim yılı kaybı" maddesi yorumsuz, "KYGM'ye
sor"; kısmi zamanlı çalışma (2547 md.46), kamu/özel burs ayrımı ve TEV'in
2026 duyurusu eklendi.
- yatay-gecis-cap-yandal: şemada Ek Madde-1 ve ÇAP kutuları yeşilden sarıya
(hak ≠ kabul); ÇAP 70 + ilk %20, yandal 65 eşikleri; kontenjan %30/90;
28 Şubat 2026 "baraj 90" yalnızca açık/uzaktan → örgün; kaynaklar eklendi.
- obp: meslek lisesi ek puanı bölümü (OBP × 0,06, Tablo 6C, lisansta yok,
yarıya inme, sınavsız geçiş yok). ozel-kosullu: "sınavsız" ifadesi
M.T.O.K. ve ek puanla düzeltildi.
Danışman sohbeti (rapor 06, 40 §3.2): umutsuzluk / kendine zarar dilinde
tercih konusunu bırakıp yardım almaya yönlendiren güvenlik kuralı; bu dil
artık "tercih dışı" diye reddedilmiyor.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Bilal (24 Eyl 2026): ana sayfa CTA'sında doku hiç görünmüyordu, bazı
kartlarda çok azdı; sonra "çok fazla piksel, küçük olanlar hiç olmasın"
ve "/sonuc'taki kartın arkasına da piksel koymuşsun; pikseller CTA'larda
olacak sadece".
- Kök neden: PixelMasonry sabit 420×120 çizimi kaplayacak şekilde
ölçekleniyordu; yüksek kartlarda görünen kısım boş banda düşüyordu.
Artık kabın gerçek ölçüsüne göre üretiliyor (ResizeObserver), yalnız
kenar çerçevesinde, orta boş; `haric` verilen öğenin (24'lük piksel
tablosu) çevresi her genişlikte boş. Sunucuda boş, ölçülünce belirir.
- Küçük (tek hücre) kare yok: 4×4 makro hücrede 2–4 hücrelik kareler,
iri olan seyrek ve silik. Ölçüm: kapanış kartı 1280 px'te 58 kare
(tabloya binen 0), 375 px'te 27 kare.
- Beyaz içerik kartlarından zemin geri alındı (tadımlık, /listem üretim
ve kilit kartları, boş durum, sıralama-yok, meraklısına, paket kartları,
kaydet bandı, katalog üstü kompakt satır, /sonuc "listen hazır").
Kalanlar: CtaBandi, PikselCtaYuzeyi, arama penceresi kartı.
PikselZemin'in açık tonu kaldırıldı. DESIGN.md §10.8 güncellendi.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Bilal (24 Eyl 2026): ana sayfadaki piksel tablosunun arkasına çok piksel
yığılmıştı. PixelMasonry/PikselZemin boş bant ve yoğunluk alıyor;
kapanış kartı lg'de doku yalnız sol %16'da ve seyrek, altında liste
üstte ortada boş bantta. DESIGN.md §10.8: kreatif ile doku üst üste binmez.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Bilal'in isteği (24 Eyl 2026): piksel arka planı her CTA benzeri kısmın
arkasında, büyüklü küçüklü masonry. Tek kaynak PikselZemin (açık kartta
silik mavi, koyu/mavi yüzeyde beyaz); CtaBandi ve PikselCtaYuzeyi de
onu kullanır. Eklenen yüzeyler: /sonuc "listen hazır" kartı, /listem
dört üretim kartı + boş durum + kilit kartı, tadımlık kartı, sıralama-yok
sayfası, meraklısına kapanış kartı, ana sayfa ve /paket ana paket kartı,
kaydet bandı, katalog üstü kompakt satır, arama penceresi kartı.
Kapsam dışı (form, durum kartı, modal düğmesi, 404) DESIGN.md §10.8'de.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Bilal'in isteği (24 Eyl 2026): CTA'ların arkasındaki pikseller üzerine
gelindiğinde bir şey olmasın. PixelMasonry ısı fırçasına kaydolmuyor
(data-px yok, usePixelHeat yok); yalnız seyrek turuncu vurgu kareleri
kendi kendine nefes alıyor. DESIGN.md §10.8 güncellendi.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>