14 yeni rehber yazısı (hepsi editör denetiminden geçti, 46 yazıda 829 iç link tarandı, 0 kırık hedef; 180+ DB rakamı yazıların kendi filtreleriyle yeniden koşuldu): taban-siralamalari-alti-yilda-nasil-degisti · kac-net-ile-hangi-bolum · siralama-bandlari-hangi-kapilar-acilir · ayni-bolum-farkli-universite-siralama-farki · hangi-bolumlerin-kontenjani-azaldi · yeni-acilan-bolumler-nasil-degerlendirilir · bilgisayar-mi-yazilim-muhendisligi-mi · kktc-universiteleri-okunur-mu · yapay-zekaya-tercih-sordum-guvenilir-mi · ek-madde-1-puanim-yetiyor-mu · universitede-ilk-hafta-ders-kaydi-muafiyet-kayit-dondurma · yks-2027-takvimi · rehber-ogretmenler-icin-veri-kaynaklari · bolumumu-sevmedim-hangi-kapilar-var İki canlı yazı düzeltildi: - veliler-icin-tercih-rehberi: veli diliyle kapanış; altındaki "sıralamanı gir" kutusu artık veliye ölü uç değil - bos-kontenjanlar-ne-anlatiyor: "birkaç yüz kişilik fark" aslında ~9 bin (ÖSYM 265.356 ↔ bizim 256.532); payda açıklaması tersti — ek kontenjan paydaya girseydi oran düşerdi. guncelleme alanı eklendi (sitemap lastmod). Kurallar (AGENTS.md): - Yayın sonrası arama motoru bildirimi: URL denetimi yalnız canlıda 200 dönen adrese; kota sayacı; mülk/hesap notu; sitemap grep kuralı - Yıkıcı git komutları yasak: reset/checkout --/restore/clean/stash - Tarayıcı açma: tasarımcı ve UX gerekli gördüğünde açabilir (yetenek için .claude/agents/tasarimci.md'ye tarayıcı araçları eklendi) docs/gece-vardiyasi/2026-09-22/ — 34 rapor: CEO kararları ve kapanış turu, marka/ödeme analizi, sıfır ödeme teşhisi, SEO konu planı, veri kalitesi, editör denetimi, CTO şartnamesi, yazılımcı ve güvenlik raporları, SABAH-OZETI. docs/ekip/YAYIN-KUYRUGU.md — Search Console bildirim kuyruğu. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
215 lines
26 KiB
Markdown
215 lines
26 KiB
Markdown
# 02 — Sevk yolları: ziyaretçiyi yapay zekâ listesine götüren yol haritası ve eleştirisi
|
||
|
||
Hazırlayan: Tasarımcı · 22 Eyl 2026 gündüz · Yöntem: **koddan denetim** (tarayıcı açılmadı, ekran ölçülmedi).
|
||
Sayısal kaynak: `docs/ekip-raporlari/2026-09-21/03-donusum.md` (Rybbit, 30g, iç trafik hariç).
|
||
Piksel/ekran tahminleri "koddan çıkarım" olarak işaretlendi; doğrulaması Bilal'de.
|
||
|
||
## Sade özet (5 satır)
|
||
|
||
1. **"Yapay zekâ" kelimesi, ziyaretçinin ilk gördüğü ekranların hiçbirinde geçmiyor.** Organik trafiğin indiği katalog sayfalarında funnel'ın tamamı (`cta-sira-form.tsx` kompakt satır → çekmece → sihirbaz) ürünü "Programları gör" / "Ücretsiz tablonu gör" diye satıyor; 24'lük yapay zekâ listesinden ilk kez `/sonuc`'un ~3. ekranında söz ediliyor. Ziyaretçi kapılardan geçerken ardında ne olduğunu **bilmiyor**.
|
||
2. **En büyük sıra kaynağı hiçbir yere gitmiyor.** `sira_girildi{kaynak:kapi}` 30 günde 14 olayla en büyük kaynak (03-donusum §3); bu yol (`+` toast'ı → profil kapısı) sihirbazın 3 adımını da doldurtuyor, sonra `profilTamamlandi` `null` döndürüyor (`use-tercih-profili.ts:346`) ve kullanıcı "Tercihlerin kaydedildi." toast'ıyla kataloğda kalıyor. **Liste için gereken her şey toplandı, liste teklif edilmedi.**
|
||
3. **Ürünün tek gerçek değer önizlemesi ölü bölgede.** `TadimlikSatiri` (gerçek LLM gerekçesi + risk + trend) yalnızca `/sonuc`'ta, 60 satırlık tablonun altında render ediliyor (`sonuc/page.tsx:117`); `tadimlik_goruntulendi` 30 günde **0**. Ana sayfada, katalogda, rehberde listenin çıktısı hiç gösterilmiyor — 3 kutu metin ve bir karşılaştırma tablosu var.
|
||
4. **`/sonuc` ödül sayfası olarak kurulmamış.** Sihirbazı bitiren kullanıcının gördüğü ilk şey, hiç kullanmadığı manuel listenin **boş gri placeholder'ı** (`manuel-harita.tsx:71-79`); yapay zekâ paneli ~3–4 ekran aşağıda (koddan çıkarım). Ölçüm bunu doğruluyor: panel 17 anonimin 6'sına göründü, 0 tık.
|
||
5. **Kapı sayısı fazla değil, kapıların sırası ve sessizliği sorun.** Girişsiz kullanıcı için listeye giden en kısa yol 4 kapı / 7 ekran / ~9 tık; kapılardan ikisi (sihirbaz, giriş) meşru, ama ikisi de **ne kazandıracağı söylenmeden** açılıyor.
|
||
|
||
---
|
||
|
||
## 1. Yol envanteri — listeye ulaşan her yol
|
||
|
||
Ortak kısaltma: **S** = sihirbaz (3 adım: alan → il → devlet/vakıf, `sihirbaz-adimlar.tsx:276, 296, 434`).
|
||
Kapılar: **K1** sıra girme · **K2** sihirbaz · **K3** Google girişi · **K4** kredi (üretim 3 kredi, yeni hesapta 5 deneme kredisi).
|
||
|
||
### Yol A — Ana sayfa (30g: 67 oturum → 11 sıra, %16,4; en iyi dönüşen yol)
|
||
|
||
| # | Ekran | Ne yapılıyor | Dosya |
|
||
|---|---|---|---|
|
||
| 1 | `/` hero | puan türü çipi + sıralama + "Yapay Zeka listemi kur" | `app/page.tsx:244` → `hero-form.tsx:188-196` |
|
||
| 2–4 | Dialog (S) | 3 adım, son buton girişsizde **"Ücretsiz tablonu gör"** | `hero-form.tsx:209-228`, etiket `:222` |
|
||
| 5 | `/sonuc?hazir=1` | harita placeholder → tablo → tadımlık → hazır panel | `hero-form.tsx:104`, `sonuc/page.tsx:102-126` |
|
||
| 6 | `/giris?callback=/listem?uret=1` | Google | `sihirbaz-cagri-karti.tsx:245` |
|
||
| 7 | `/listem?uret=1` | üretim (~20 sn tipik, 60 sn sunucu sınırı) | `liste-uretici.tsx:42-45` |
|
||
|
||
**7 ekran · ~9 tık · 4 kapı.** Girişli kullanıcıda 5. ekran boşa gider: `/sonuc` tam tabloyu render eder, sonra `router.replace("/listem?uret=1")` ile sekilir (`sihirbaz-cagri-karti.tsx:209-219`).
|
||
|
||
### Yol B — `/universite/[slug]` ve `/bolum/[slug]` üst kompakt satır (30g: 464 oturum → 12 sıra, %2,6)
|
||
|
||
1. Kompakt satır: başlık + özet paragrafının altında, tablo/istatistik ızgarasının üstünde (`universite-icerik.tsx:180, 290, 352`; `bolum-icerik.tsx:267`). CTA: **"Programları gör"** (`cta-sira-form.tsx:254`).
|
||
2. Gönderince çekmece **doğrudan sihirbaz adımıyla** açılır (`cta-sira-form.tsx:145-148`); kompakt varyantta çekmecenin tanıtım/kanıt ekranı (`SectionEyebrow "Saniyede gör"` + "24 tercihlik plan / Risk analizi / YÖK Atlas verisi" üçlüsü) **hiç render edilmez** — koşul `!kompakt && adim === "sira"` (`:296`).
|
||
3. S 3 adım → "Ücretsiz tablonu gör" (`:334`) → `/sonuc?hazir=1` (`:172`) → Yol A'nın 5–7. adımları.
|
||
|
||
**8 ekran · ~9 tık · 4 kapı.** Bu yolda ziyaretçi "yapay zekâ", "24 tercih", "risk analizi" ifadelerinin **hiçbirini** görmez (grep: `src/features/katalog/components/*.tsx` + kompakt dal → 0 eşleşme).
|
||
|
||
### Yol C — Katalog alt kartı (tablonun ve sayfalamanın altı)
|
||
|
||
`universite-icerik.tsx:381`, `bolum-icerik.tsx:297`. Kart varyantı: başlık + `KATALOG_CTA_ACIKLAMA` (`sayfalama.tsx:40`) + "Sıralamanı gir, programları gör" → çekmecenin **sıra adımı** açılır (kanıt üçlüsü burada görünür) → S → `/sonuc`. **9 ekran**, üstteki satırdan 1 tık fazla. 30g'de 20 satır/dilim × 3 dilim tablonun altında; mobilde ~1.500 px aşağıda (koddan çıkarım).
|
||
|
||
### Yol D — `+` (tabloya program ekleme) kapısı — **30g'deki en büyük sıra kaynağı: 14 olay**
|
||
|
||
1. Tablodaki `+` (`program-ekle-butonu.tsx:105`, `size-11` — dokunma hedefi doğru).
|
||
2. Profilsiz eklemede toast: "Seçtiklerine eklendi · Sıralamanı girersen bu programın risk seviyesini de gösteririz." + aksiyon "Sıralamamı gir" (`:69-83`).
|
||
3. Aksiyon `profilToplamaAc(null, true, "arti_toast")` → kapı **sıra adımıyla** açılır → S 3 adım.
|
||
4. **`hedef = null` → `profilTamamlandi` `null` döndürür → yönlendirme yok** (`use-tercih-profili.ts:327-346`). Kullanıcı "Tercihlerin kaydedildi." toast'ıyla (`tercih-profili-kapisi.tsx:238`) kataloğa geri düşer.
|
||
|
||
**Sonuç: 4 ekran, 2 kapı geçildi, liste teklif edilmedi.** Aynı ölü uç manuel liste çekmecesindeki "Sıralamamı gir" butonunda da var (`liste-cekmecesi.tsx:296-298`, aynı çağrı).
|
||
|
||
### Yol E — Navbar "Sıralama gir" (mobilde kalıcı, sticky 2. satır)
|
||
|
||
`katalog-arama.tsx:366` (mobil) / `:302` (lg+) → `sonucaGitIste({dogrudanSira:true})` → kapı (tanıtım adımı atlanır, doğru) → S → `hedef="sonuc"` → `sonucHref()` **parametresiz**. `/sonuc`'ta `hazir=1` olmadığı için hazır panel yerine genel panel ("24 tercihi tek tek elemek yerine, yapay zekâ kursun", `sihirbaz-cagri-karti.tsx:312-336`) çıkar — o da sayfanın en altında. **6 ekran · 3 kapı.**
|
||
|
||
### Yol F — Arama modalındaki funnel kartı
|
||
|
||
`arama-funnel-karti.tsx:132-139` → "Yapay Zeka listemi kur" → `profilToplamaAc("sihirbaz")` → kapı → S → `/sonuc?hazir=1` (girişsiz) / `?sihirbaz=1` (girişli). **Niyeti doğru taşıyan tek kısayol** — ama arama modalının arkasında, mobilde `size-9` ikon butonla açılıyor (`katalog-arama.tsx:379-386`).
|
||
|
||
### Yol G — Rehber (30g: 73 oturum → 5 sıra; %86 tek sayfa)
|
||
|
||
`rehber-makale.tsx:115` — CTA kartı **makalenin tamamının altında** (`mt-12`), `rehber/page.tsx:45` liste sayfasının altında. Yazı içinde funnel girişi yok.
|
||
|
||
### Yol H — `/listem` doğrudan (boş durum)
|
||
|
||
`/listem` giriş duvarlı (`listem-icerik.tsx:43` `verifySession`). Girişli + raporsuz kullanıcı: `Sparkles` + "Henüz Yapay Zeka listen yok" + profil yoksa CTA **ana sayfaya** atar (`listem-bos-cta.tsx:30`, `href="/"`) → kullanıcı Yol A'nın 1. adımına döner. Profil varsa doğrudan `?uret=1` — bu dal doğru.
|
||
|
||
### Yol I — `/universite/*/sayfa/N` (30g: 56 oturum → **0** sıra)
|
||
|
||
Üst satır burada da var (`universite-icerik.tsx:352`), ama sayfa metni "tablonun N. sayfası" bağlam cümlesi; listeye dair hiçbir vaat yok.
|
||
|
||
---
|
||
|
||
## 2. Her kapının hesabı
|
||
|
||
| Kapı | Şu anda gerekli mi? | Ardında ne olduğu ekranda söyleniyor mu? | Karar |
|
||
|---|---|---|---|
|
||
| **K1 · Sıra girme** | Evet — tablo da, havuz da sıralamayla hesaplanıyor (`liste-queries.ts`). Doğru kapı, doğru yerde. | Kısmen. Kompakt satır "Sıralaman {X} tabanlarının neresinde? Ücretsiz, üyelik gerekmez." diyor (`cta-sira-form.tsx:354-362`) — **tabloyu** vaat ediyor, listeyi değil. | Kalsın, **vaadi büyüt**. |
|
||
| **K2 · Sihirbaz (3 adım)** | Evet — havuzu kuran girdi (bkz. `/meraklisina` şeması, `huni-semasi.tsx:16-19`). Adım başına kayıp 1–3 kişi; sihirbazın kendisi sağlıklı. | **Hayır.** Girişsizde son buton "Ücretsiz tablonu gör" (`cta-sira-form.tsx:334`, `hero-form.tsx:222`). Kullanıcı 3 adım doldurup "tablo" vaat ediliyor; yapay zekâ listesinden söz eden tek yer girişlilere gösterilen "(3 kredi)" etiketi. | Kalsın, **etiket vaadi söylesin**. |
|
||
| **K3 · Google girişi** | Evet (liste kullanıcıya bağlı, kredi sayacı hesapta). 6/6 deneme başarılı — mekanizma sorunu yok. | Evet, iyi: `/giris` funnel dalında "Seçimlerin hazır — giriş yap, 5 deneme kredinle listen hemen üretilsin" (`giris-karti.tsx:52-58`). Kapının **kendisi** iyi; sorun oraya davet eden panelin görünmemesi. | Kalsın. |
|
||
| **K4 · Kredi (3/5)** | Evet ve zararsız: yeni hesapta 5 kredi var, ilk liste ücretsiz. | Kısmen — "5 deneme kredin hazır" yalnızca `/sonuc` panelinde ve `/giris`'te. Katalog yolunda hiç geçmiyor. | Kalsın. |
|
||
| **K0 · Profil kapısının tanıtım adımı** | **Hayır.** `+` dışındaki tüm girişler `dogrudanSira` ile bu adımı zaten atlıyor. Kalan dalda ekran şu: "Tercihine ışık tutabilmemiz için önce ne istediğini öğrenelim" + 4 satır paragraf + Vazgeç / Tercihlerimi belirle (`tercih-profili-kapisi.tsx:297-338`). Hiçbir girdi toplamıyor. | — | **Kaldırılabilir** (bkz. Öneri 1 notu). |
|
||
|
||
**Özet:** Gereksiz kapı yok; **gerekçesiz kapı** var. Kullanıcı K1 ve K2'yi "tablo görmek için" geçiyor, K3'e geldiğinde ilk kez yapay zekâ listesini duyuyor — ve o an sayfanın 3. ekranında.
|
||
|
||
---
|
||
|
||
## 3. Katalog köprüsü — 992a01a sonrası hâl yeterli mi?
|
||
|
||
**Yetersiz, üç sebeple.**
|
||
|
||
1. **Konum.** Satır, h1'in değil, 8–9 satırlık SEO özet paragrafının altında (`universite-icerik.tsx:287-290`). 375 px'te üst uç ≈ 570 px, gönder butonu ≈ 840 px (koddan çıkarım: sticky başlık ~96 px + breadcrumb ~36 + logo/h1 bloğu ~144 + paragraf 8×28 ≈ 224 + `mt-6`). Yani **buton ikinci ekranda**. `/bolum` tarafında paragraf kısa (2 satır), satır ilk ekranda (`bolum-icerik.tsx:265-268`) — iki sayfa aynı davranmıyor.
|
||
2. **"Kompakt" yalnızca `lg`'de kompakt.** `flex-col gap-3 lg:flex-row` (`cta-sira-form.tsx:195`) ve input/buton `flex-col sm:flex-row` (`:227`). 375 px'te: 5 puan türü çipi 2 satıra sarar (~66 px) + input 48 + buton 48 + başlık 2–3 satır → **~270 px**, yani mobilde tek satır değil, bir blok. Mobilin %74'ü tek sayfada çıkıyor; bu blok tek ekrana sığmıyor.
|
||
3. **Vaat eksik.** Kompakt dal kanıt üçlüsünü ve "Saniyede gör" eyebrow'unu render etmiyor (`:296` koşulu). Ziyaretçiye "tabloda nerede olduğunu göster" deniyor; ürünün kendisi (24'lük liste) anlatılmıyor. `docs/tasarim/cta-cekmece-tasarimi.md` §1'deki "kart vaat eder → çekmece tahsil eder" algısı kompakt varyantta **vaat kısmı düşerek** uygulanmış.
|
||
|
||
---
|
||
|
||
## 4. `/sonuc` ve `/listem` — sihirbazı bitiren ne görüyor?
|
||
|
||
**`/sonuc` sırası (`sonuc/page.tsx:102-126`):** ManuelHarita → SonucProgramTablosu → TadimlikBolumu → SonucSihirbazi → dipnot.
|
||
|
||
- **İlk ekran boş bir kutu.** Manuel liste boşken (yeni gelen herkeste boş) `aspect-[1050/447]` gri alan + "Tablodan + ile ekledikçe üniversiteler haritada belirir." (`manuel-harita.tsx:71-79`). 375 px'te ~143 px. Ödül sayfasının en üstünde, kullanıcının hiç kullanmadığı bir özelliğin boş durumu duruyor.
|
||
- **Tablo uzun.** Dilim başına 20 satır (`liste-queries.ts:43`), satır ~64 px → ~1.280 px (koddan çıkarım).
|
||
- **Tadımlık ~1.500 px'te**, yapay zekâ paneli **~2.200 px'te** (≈ 3,5 ekran). Ölçümle tutarlı: panel 17 anonimin 6'sına göründü, `tadimlik_goruntulendi` = 0.
|
||
- **"Kaç saniyede geliyor" hiçbir yerde yazmıyor.** Süre bilgisi yalnızca üretim başladıktan sonra, `/listem`'de görünüyor: "Bu işlem yarım dakika kadar sürebilir, sayfayı kapatma." (`liste-uretici.tsx:271`). Karar anında (panel, sihirbaz son butonu) süre vaadi yok.
|
||
- **Panel metni uzun.** 3 cümlelik tek paragraf + parantez içi kredi açıklaması (`sihirbaz-cagri-karti.tsx:286-291`); 375 px'te ~8 satır.
|
||
|
||
**`/listem` boş ekranı bir ilk kullanıcıya:** giriş duvarının arkasında olduğu için ilk kullanıcı buraya ancak giriş yaptıktan sonra düşer. Gördüğü: `Sparkles` + "Henüz Yapay Zeka listen yok" + tek paragraf + tek buton. Profil yoksa buton **ana sayfaya** atıyor (`listem-bos-cta.tsx:30`) — kullanıcı sıfır noktasına döner. Ekranda ne alacağını gösteren hiçbir görsel yok (örnek satır, iskelet, ekran görüntüsü).
|
||
|
||
---
|
||
|
||
## 5. Değer önizlemesi — üretmeden önce ne gösteriliyor?
|
||
|
||
| Yüzey | Önizleme var mı? |
|
||
|---|---|
|
||
| Ana sayfa | **Yok.** Bölümler: Sorun / Nasıl çalışır (3 metin kartı) / Karşılaştırma tablosu / Fiyat / SSS / final CTA (`app/page.tsx:267-660`). Listenin çıktısından tek bir satır bile gösterilmiyor. |
|
||
| Katalog (`/bolum`, `/universite`) | **Yok.** |
|
||
| Rehber | **Yok.** |
|
||
| `/meraklisina` | Kurallar + mermaid şeması + kendi sıralamasına göre güncellenen sayılar (`meraklisina-demo.tsx:105-130`) — süreç anlatımı, çıktı değil. |
|
||
| `/sonuc` | **Var ama görülmüyor:** `TadimlikSatiri` gerçek rapor formatında tek satır (gerekçe + risk rozeti + trend, `tadimlik-satiri.tsx:113-191`). `tadimlik_goruntulendi` 30g = **0**. |
|
||
|
||
**Önemli teknik imkân:** `tadimlikSec(sira, tur, kategoriSlug?, tip?)` (`lib/tadimlik-havuzu.ts:107`) kovaya göre çalışıyor ve her kovanın `temsiliSira` değeri sabit (`:24-32`). Yani **ziyaretçinin sıralamasını bilmeden de** ("örnek bir aday için" etiketiyle) gerçek bir tadımlık satırı render edilebilir; havuz canlıda dolu (522 satır). Yeni içerik üretimi, yeni LLM çağrısı, yeni bileşen gerekmiyor — mevcut `TadimlikSatiri` başka yüzeylere taşınabilir.
|
||
|
||
---
|
||
|
||
## 6. Tasarım önerileri (6)
|
||
|
||
> Ortak kural: hiçbir öneri yeni rozet/pill/çarpı/buton varyantı icat etmez. Rozet gerekirse `SectionEyebrow` (`pixel-decor.tsx`), CTA'da metin önce + sonda `<ArrowRight className="size-4" aria-hidden />`, çekmece/modal kapatma çarpısı `dialog.tsx` kanonik seti. `/meraklisina` şeması (`huni-semasi.tsx:16-30`) sihirbaz adım sayısını/sırasını ve havuz kurallarını belgeler; aşağıdaki önerilerin **hiçbiri** adım sayısını, sırasını, havuz kurallarını veya 24'lük dağılımı değiştirmiyor → şema senkronu gerekmiyor (Öneri 1'de yalnızca sihirbaz **sonrası** yönlendirme değişiyor, şemada o yok).
|
||
|
||
### Ö1 — Kapı azaltma: sihirbazı bitiren herkes listeye çıksın (ölü uçları kapat)
|
||
|
||
**(a) Ne değişiyor:** `+` toast'ındaki "Sıralamamı gir" (`program-ekle-butonu.tsx:82`) ve liste çekmecesindeki eşi (`liste-cekmecesi.tsx:298`) `profilToplamaAc(null, …)` yerine `profilToplamaAc("sihirbaz", …)` çağırsın; navbar girişi (`katalog-arama.tsx:115`, `sonucaGitIste` → `hedef:"sonuc"`) de `"sihirbaz"` hedefine geçsin. Ayrıca `profilTamamlandi`'nin `hedef == null` dalı (`use-tercih-profili.ts:346`) `sonucHref({ hazir: "1" })` döndürsün — sihirbazı bitirmiş hiç kimse "kaydedildi" toast'ıyla yerinde bırakılmasın. `tercih-profili-kapisi.tsx:238`'deki başarı toast'ı bu dalda gereksizleşir (akış devam ediyor, bitmiyor).
|
||
**(b) Neden:** 30g'de en büyük sıra kaynağı `kapi` (14 olay) ve `duzenle` (5) bu ölü uçta bitiyor; ikisi birlikte tüm sıra girişlerinin ~%55'i. Kullanıcı K1 ve K2'yi geçmiş, tek eksik ona listeyi teklif etmek. Bu, **liste yolunu 3 ekran kısaltır** (kataloğa dönüp tekrar funnel'a girmek yerine doğrudan ödül ekranı).
|
||
**(c) Büyüklük:** S (davranış; `src/` içinde 4–5 satır).
|
||
**(d) Kural uyumu:** görsel değişiklik yok; şema etkilenmez. Ölçüm: `sira_girildi{kaynak:kapi}` → `sonuc_goruntulendi` zinciri ilk kez kurulur.
|
||
|
||
*Not (ayrı, opsiyonel):* profil kapısının tanıtım adımı (`tercih-profili-kapisi.tsx:297-338`) hiçbir girdi toplamıyor ve `dogrudanSira` ile zaten çoğu yolda atlanıyor. `ilkAdim`'ı her zaman `"sira"` yapmak bir ekran daha siler. **S.**
|
||
|
||
### Ö2 — Mobil tek ekran: katalog üst satırı başlığın altına, gerçekten tek satıra
|
||
|
||
**(a) Ne değişiyor:** `/universite/[slug]`'da `ustSiraSatiri` SEO özet paragrafının **üstüne**, `h1`'in hemen altına alınsın (`universite-icerik.tsx:287-290` → `:285` öncesi; `/bolum` zaten böyle). Kompakt varyantın mobil düzeni: (i) puan türü çipleri varsayılan "Sayısal" seçili tek satırda yatay kaydırmalı şeride (`flex-nowrap overflow-x-auto` + `-mx-4 px-4`) alınsın ya da başlangıçta gizlenip "Puan türü: Sayısal · değiştir" satırıyla açılsın; (ii) input + buton mobilde de yan yana (`flex-row`, buton `shrink-0`, yalnız ikon değil kısa metin: "Gör"→**hayır**, metin "Programları gör" kalsın, gerekirse buton alt satırda tam genişlik kalsın ama çipler tek satıra insin). Hedef: bloğun toplam yüksekliği ~270 px'ten ~150 px'e insin ve üst uç ~380 px'e çıksın → **375×667'de input + buton ilk ekranda**.
|
||
**(b) Neden:** Katalog 464 oturum → 12 sıra (%2,6); mobil bounce %74. 992a01a satırı yukarı taşıdı ama `/universite`'de paragrafın altında ve mobilde tek satır değil (bkz. §3).
|
||
**(c) Büyüklük:** M.
|
||
**(d) Kural uyumu:** mevcut çip class seti (hero formuyla birebir) korunur; CTA deseni değişmez; yeni pill yok. Yatay kaydırmalı şeride geçilirse kaydırma göstergesi metinle desteklenmeli, çipler `role="radio"` kalmalı.
|
||
|
||
### Ö3 — Değer önizlemesi kapıdan önce: tadımlık satırını kataloğa ve ana sayfaya taşı
|
||
|
||
**(a) Ne değişiyor:** Mevcut `TadimlikSatiri` bileşeni (yeni bileşen değil) iki yeni yerde render edilsin:
|
||
· **Katalog:** üst sıra satırının hemen altında, `SectionEyebrow`'u "Yapay zekâdan örnek satır" olarak, üstünde tek cümle: "Sıralamanı girince listendeki 24 satır böyle görünür." Sıra bilinmiyorsa `kovaBul().temsiliSira` ile "örnek bir aday için" etiketli hâli (`tadimlik-havuzu.ts:24-32, 107`); bölüm sayfasında bölümün kategorisi `kategoriSlug` olarak verilebilir.
|
||
· **Ana sayfa:** "Nasıl çalışır?" bölümünün 3 kartının altına, `steps` metinlerinin karşılığı olarak tek gerçek satır (`app/page.tsx:340-358` sonrası).
|
||
Çekmecenin sıra adımındaki kanıt üçlüsü kompakt dalda da gösterilsin (`cta-sira-form.tsx:296` koşulunun kompakt dalı).
|
||
**(b) Neden:** Ürünün çıktısı hiçbir yerde üretilmeden önce gösterilmiyor (§5); tek örnek `/sonuc`'un dibinde ve 30 günde 0 kez görüldü. "Bu kapının ardında ne var?" sorusunun cevabı budur.
|
||
**(c) Büyüklük:** M (yerleştirme + sırasız/kova varyantı; içerik hattı hazır).
|
||
**(d) Kural uyumu:** `SectionEyebrow` kanonik rozet; risk rozeti zaten metin etiketli (`RISK_ETIKET`, `lib/risk.ts:9`) — renk tek başına anlam taşımıyor. Tadımlık CTA'sı mevcut ok desenini kullanıyor (`tadimlik-satiri.tsx:186-188`).
|
||
|
||
### Ö4 — `/sonuc`'u ödül sayfası yap: sıralamayı tersine çevir
|
||
|
||
**(a) Ne değişiyor:** `sonuc/page.tsx:102-126` sırası şu olsun: **(1)** kısa ödül başlığı + yapay zekâ paneli (hazır panel / genel panel) → **(2)** tadımlık (girişsizde) → **(3)** program tablosu → **(4)** manuel harita, ve harita **boşken hiç render edilmesin** (`manuel-harita.tsx:69-80` boş dalı `null` dönsün; CLS riski yok çünkü tablonun üstünde değil altında). Panel metni 3 cümleden 1 cümleye insin: başlık "Seçimlerin hazır — listen bir adım uzakta", gövde "Google ile 5 saniyede giriş yap; 5 deneme kredinle 24 tercihlik listen ~30 saniyede kurulur." (süre ilk kez karar anında söylenir, kaynak `liste-uretici.tsx:42-44`).
|
||
**(b) Neden:** Anonim kullanıcı `/sonuc`'ta medyan 33 sn kalıyor ve panele inmiyor; panel 6/17 gösterim, 0 tık. Ödül sayfasının ilk ekranı şu an kullanılmamış bir özelliğin boş durumu.
|
||
**(c) Büyüklük:** M.
|
||
**(d) Kural uyumu:** panel bileşeni ve CTA deseni aynen kalır; yalnız sıra ve metin değişir. "Ücretsiz tablo her zaman açık" güvencesi panelde tek cümleyle korunmalı (vaatsizlik).
|
||
|
||
### Ö5 — `/sonuc` mobil sabit alt çubuk (anonim + seçimleri hazır)
|
||
|
||
**(a) Ne değişiyor:** Yeni bileşen değil: `sihirbaz-cagri-karti.tsx`'in `girisBekliyor` dalına, yalnız `max-sm`'de görünen sticky bir satır. İçerik: "Listeni kaybetme — Google ile kaydet" + `<ArrowRight className="size-4" aria-hidden />`, hedef `girisUrl`, olay `giris_cta_tiklandi{kaynak:"sonuc_cubuk"}`. Teknik gereklilikler: `position: sticky; bottom: 0` (fixed değil — klavye açılınca zıplamasın), yükseklik ≥ 56 px, `pb-[max(0.75rem,env(safe-area-inset-bottom))]`, sayfa altına eşdeğer `scroll-padding`/boşluk ki dipnot çubuğun altında kalmasın, `prefers-reduced-motion`'da giriş animasyonu yok.
|
||
**(b) Neden:** Panel mobilde 3,5 ekran aşağıda; anonim mobil oturumların medyan kalış süresi 33 sn. Çubuk görünürlüğü %100'e çıkarır.
|
||
**(c) Büyüklük:** S–M.
|
||
**(d) Kural uyumu:** CTA deseni (metin önce, sonda ok) birebir; yeni renk/pill yok; layout'taki `pb-28` (`app/layout.tsx:95`) ile çakışma kontrol edilmeli.
|
||
|
||
### Ö6 — Dil birliği: kapının ardındaki ödülü her etikette söyle
|
||
|
||
**(a) Ne değişiyor:** Üç etiket:
|
||
· Sihirbaz son butonu, girişsiz: "Ücretsiz tablonu gör" → **"Listeme geç — ücretsiz tablon + yapay zekâ listen"** ya da kısa hâli **"Devam et — listeni gör"** (`cta-sira-form.tsx:334`, `hero-form.tsx:222`, `sihirbaz-cagri-karti.tsx:348`).
|
||
· Kompakt satır başlığı: "Sıralaman {X} tabanlarının neresinde?" + **"Ücretsiz, üyelik gerekmez"** cümlesine ikinci cümle: "Sıralamanı girince yapay zekâ 24 tercihlik listeni de kurabilir." (`cta-sira-form.tsx:354-362`).
|
||
· `/listem` boş durumda profil yokken CTA ana sayfaya atmasın; aynı sayfada profil kapısını açsın (`profilToplamaAc("sihirbaz")`) — `listem-bos-cta.tsx:30`.
|
||
**(b) Neden:** Kullanıcı "tablo" vaadiyle 3 kapı geçiyor, ürünü `/sonuc`'un dibinde öğreniyor (§2). Boş `/listem` CTA'sı kullanıcıyı huninin başına geri atıyor.
|
||
**(c) Büyüklük:** S.
|
||
**(d) Kural uyumu:** yalnız metin + bir `href`; CTA ok deseni korunur. Yeni metinler vaat içermez ("kurabilir", "gör" — "yerleşirsin" değil).
|
||
|
||
---
|
||
|
||
## 7. Yan bulgular — tek kaynak / erişilebilirlik ihlalleri (öneri dışı, ucuz)
|
||
|
||
| Dosya:satır | Kural / sorun | Kullanıcıya etkisi | Düzeltme | Büyüklük |
|
||
|---|---|---|---|---|
|
||
| `sihirbaz-cagri-karti.tsx:269` | AGENTS.md CTA deseni: `<Link href="/listem">Listeni gör</Link>` — sondaki `ArrowRight` **yok** | Raporu olan kullanıcının gördüğü tek CTA sitedeki diğerlerinden farklı duruyor | `Listeni gör<ArrowRight className="size-4" aria-hidden />` | S |
|
||
| `sira-gerekli.tsx:61-62` | CTA deseni: `Trophy` ikonu **metnin başında** ("başta ikon yok") | Aynı eylem iki farklı biçimde | İkonu kaldır, sonda `ArrowRight` | S |
|
||
| `liste-uretici.tsx:220-221` | CTA deseni: `RefreshCcw` metnin başında ("Tekrar dene") | Hata ekranındaki tek buton desen dışı | İkon sona ya da kaldırılsın | S |
|
||
| `liste-cekmecesi.tsx:297, 307` | `<ArrowRight data-icon="inline-end" />` — `aria-hidden` yok, kanonik `className="size-4" aria-hidden` değil (`listem-govde.tsx:290,371` aynı yazım ama `aria-hidden`'lı) | Aynı ok üç farklı yazımda | Tek yazıma indir | S |
|
||
| `tercih-profili-kapisi.tsx:393-398` | Aynı eleman iki stilde: puan türü burada `Select`, hero/CTA formunda `role="radiogroup"` çipler (`hero-form.tsx:143-164`, `cta-sira-form.tsx:199-220`) | Kullanıcı aynı soruyu iki farklı arayüzle cevaplıyor | Çip radiogroup'a birle (tek kaynak) | M |
|
||
| `katalog-arama.tsx:343, 366, 379` | Mobilde funnel'ın kalıcı girişi `h-9` / `size-9` = **36 px** dokunma hedefi (< 44 px) | Trafiğin %90'ı mobil; ana funnel girişi ve arama küçük | `h-11`/`size-11`'e çıkar (ya da dokunma alanını `::before` ile büyüt) | S |
|
||
| `arama-funnel-karti.tsx:28, 42` | Vaat/korku dili: "Doğru strateji, doğru yerleşme.", "Boş kalan tercih, kaçan fırsattır." — ürünün "yerleşme garantisi vermiyoruz" duruşuyla (`app/page.tsx:393`) çelişiyor | Güven mesajını zayıflatıyor | İki satırı çıkar ya da yeniden yaz | S |
|
||
| `arama-funnel-karti.tsx:105, 125` | Palet dışı yüzey: `bg-[#0b1f3a]` + `text-cyan-300`; sitenin funnel yüzeyi `bg-primary` + `PixelField` (`sihirbaz-cagri-karti.tsx:275`, `liste-cekmecesi.tsx:269`) | Aynı işlevli panel iki ayrı marka dilinde | **[BİLAL]** — renk paleti kararı | S |
|
||
| `arama-funnel-karti.tsx:63` vs `cta-sira-form.tsx:49` | Aynı kanıt üçlüsü iki farklı etiketle ("24 tercih" / "24 tercihlik plan") ve iki renkte | Küçük ama ölçülebilir tutarsızlık | Tek sabit hâline getir | S |
|
||
|
||
---
|
||
|
||
## 8. Bilal'in gözle kontrol etmesi gereken ekranlar (375 px, mobil)
|
||
|
||
1. `/universite/<uzun-adli-bir-üniversite>` — kompakt sıra satırının üst ucu ilk ekranda mı, gönder butonu görünüyor mu; çipler kaç satıra sarıyor.
|
||
2. `/bolum/hemsirelik` — aynı satır (burada paragraf kısa; iki sayfa arasındaki fark ne kadar büyük).
|
||
3. `/sonuc` (sıralama girmiş, girişsiz) — ilk ekranda boş gri harita kutusu görünüyor mu; yapay zekâ paneline kaç kaydırma gerekiyor; tadımlık görünüyor mu.
|
||
4. Katalog tablosunda `+` → toast → "Sıralamamı gir" → sihirbazı sonuna kadar doldur — **ekran nerede kalıyor** (Ö1'in kanıtı).
|
||
5. Navbar'daki "Sıralama gir" pill'i — parmakla ilk denemede isabet ediyor mu (36 px).
|
||
6. `/listem` (girişli, listesiz) — boş ekran ve CTA'nın gittiği yer.
|
||
|
||
## 9. Bilal'den istenen (en fazla 3)
|
||
|
||
1. Yukarıdaki 6 ekranı telefonda sırayla aç, 3 ve 4 numaralıların ekran görüntüsünü ekibe bırak — **10 dk**.
|
||
2. Ö1'i (sihirbazı bitiren herkes `/sonuc`'a çıksın) onayla ya da reddet; en büyük sıra kaynağını huniye bağlayan tek değişiklik bu — **2 dk**.
|
||
3. Arama funnel kartının koyu lacivert/cyan yüzeyi kalsın mı, `bg-primary` funnel diline mi dönsün — marka kararı — **2 dk**.
|