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>
23 KiB
04 — "Öğrenciler hiç ödeme yapmadı" — ürün ve kod teşhisi
Hazırlayan: Ürün yöneticisi · 22 Eyl 2026 gece vardiyası
Yöntem: koddan denetim (tarayıcı açılmadı, dev sunucusu açılmadı, kod değiştirilmedi, çalışma ağacına dokunulmadı).
Sayısal kaynak: docs/ekip-raporlari/2026-09-21/03-donusum.md (Rybbit, 30g = 23 Ağu–21 Eyl, iç trafik hariç 621 gerçek ziyaret) ve docs/ekip-raporlari/2026-09-22/01-ai-listesi-hunisi.md. Bu vardiyada yeni ölçüm alınmadı.
Satır numaraları main @ e21cda4 referanslı; liste-uretici.tsx için çalışma ağacındaki hâl geçerli olabilir (Bilal'e ait commit'lenmemiş değişiklik var, açılmadı).
Pazar/psikoloji tarafı bu raporun kapsamı dışında — marka ajanında.
5 maddelik özet
- "Neden ödemiyorlar" sorusu bugün cevaplanamaz, çünkü paywall'a 30 günde 2 kişi geldi. Zincir: 621 gerçek ziyaret → 3 liste → 2 kilit gördü → 1
/paket→ 0odeme_baslatildi(03-donusum.md:54, 121-123;01-ai-listesi-hunisi.md:55-56). n=2 ile fiyat, paket içeriği ya da maske hakkında hiçbir çıkarım yapılamaz. Fiyatı indirmek, maskeyi açmak, paket içeriğini değiştirmek bu hafta yapılacak işler değil; ölçülemeyecekleri için karar da doğuramazlar. - Ama "hiç ödeme yok" kısmının bir bölümü ürün hatası, pazar değil: ödeme yolu 11 Ağu–20 Eyl arasında fiilen kırıktı. Aynı pencerede 60+
odeme_baslatildiolayına karşılık 0/odemesayfa görüntülemesi var (03-donusum.md:133, 145). 24 Ağu ve 12 Eyl'de iki gerçek kullanıcı "satın al"a bastı ve oturumu orada bitti (:139-140). Sunucu action'ınınredirect()fırlatması/paket'i<Activity>içinde sağır bırakıyordu; düzeltme 21 Eyl'de çıktı (8f4669e) ve uçtan uca bir kez bile doğrulanmadı. Bugünkü kodda yönlendirme client'ta (odeme-actions.ts:11-16,satin-al-form.tsx:56-57) — ama/odeme/sonucgörüntülemesi hiçbir gün kaydedilmedi. - Satış sayfamız girişsiz ziyaretçiye satın almayı erteletiyor.
/paket'te oturumsuz kullanıcının birincil turuncu butonu "Giriş yap — ilk 3 tercihini ücretsiz gör", altındaki cümle ise birebir "Paketi sonra alırsın." (paket-satinal.tsx:136, 141-143). Yani cüzdanı elinde/paket'e gelen kişi 299 TL'lik butonu hiç görmüyor. Aynı kişi/giris'e vardığında ikinci kez ücretsiz denemeyi duyuyor:/paketcallback'i funnel sayılmadığı için (giris-karti.tsx:30-31) metin "5 deneme kredisi… ücretsiz soru sorabilirsin" oluyor (:62-65). 24 Ağu'daki gerçek kullanıcının izlediği yol tam olarak buydu. - Ödemeye varmanın bedeli çok yüksek, karşılığında gösterilen ödül çok küçük. En kısa yol 10 ekran / ~12 tık / 1 OAuth turu / 15–30 sn bekleme ve 3 kredi yakma gerektiriyor; sonunda kullanıcı 24 satırın 3'ünde ~15 kelimelik birer cümle görüyor (
rapor-maske.ts:12,ai/rapor.ts:79-80). Ürünün tek gerçek değer önizlemesi (TadimlikSatiri) ise/sonuc'un ~2.200 px altında vetadimlik_goruntulendi30 günde 0 (02-sevk-yollari-ux.md§3-4). - Ödeyen kişiye verilen sözle kod çelişiyor.
/paket"60 Yapay Zeka danışman sorusu (her mesaj 1 kredi)" diyor (paket-satinal.tsx:40) vedocs/urun/vizyon.md"Pakete DAHİL (kredi düşmez): kişisel 24'lük liste… 2 revizyon" diyor. Kodda paketli kullanıcı da liste başına 3, revizyon başına 3 kredi ödüyor (rapor-actions.ts:98-99, 118-124;credits.ts:14). 299 TL ödeyen biri 60 değil, en fazla 51 soru sorabiliyor. Bu benim önceliklendirme ölçütümün 1. maddesi: kullanıcıya verilen sözü bozan yanlış bilgi.
1. Değer anı haritası — ne veriliyor, ne satılıyor?
Ücretsiz katman (giriş yok)
| Yüzey | Kullanıcı ne alıyor | Kanıt |
|---|---|---|
/sonuc tablosu |
Sıralamasına göre 60 program (hayal/dengeli/güvenli × 20), program adı, üniversite, il, devlet/vakıf, son N yıl taban sırası, trend oku | liste-queries.ts:37-53 (limitPerBucket: 20), sonuc/page.tsx:102-113 |
/sonuc tadımlık |
Gerçek LLM çıktısı formatında tek satır: gerekçe + risk notu + trend yorumu | tadimlik-satiri.tsx:159-168, havuz app.db/tadimlik_havuzu (522 satır, 04-uretim-engelleri.md §3) |
Katalog (/bolum, /universite) |
Tam taban/kontenjan verisi; yapay zekâ çıktısından tek satır bile yok | 02-sevk-yollari-ux.md §5 |
Kayıt sonrası (5 deneme kredisi, liste 3 kredi)
Kullanıcı 3 kredisini yakıp 24 satırlık listesini alıyor. Açık olan: 24 satırın tamamında program adı, üniversite/il, devlet-vakıf rozeti, son N yıl sıra geçmişi, trend oku, taban sıra (rapor-maske.ts:47-48 — programlar maskelenmiyor) + ilk 3 satırın tam analizi + genelDegerlendirme'nin ilk 2 cümlesi + 1 uyarı (rapor-maske.ts:28-46).
Kilitli olan (4.–24. satır): risk noktası/etiketi sütunu yerine asma kilit + "Pakette" (rapor-listesi.tsx:256-262), açılan detayda gerekçe/risk notu/trend yorumu yerine "Kişisel analiz pakette" kutusu (:306-320), genelDegerlendirme'nin kalanı, kalan uyarıların yalnızca sayısı.
Teknik not (CTO/güvenlik'e): kilitli risk etiketi istemcide deterministik hesaplanıyor —
riskHesapla(p.efektifSira, adaySira)(rapor-listesi.tsx:181-183) verapor.programlarmaskelenmeden iniyor (rapor-maske.ts:47-48). Yani ücretli gösterilen risk etiketinin girdisi zaten tarayıcıda. Sızan bir metin yok (o sunucuda maskeli), ama "risk analizi" satışının bir kısmı aslında serbest veriden türetilebilir. Bu bir acil durum değil, bir konumlandırma bilgisi.
299 TL tam olarak neyi açıyor
hasPaket → maske uygulanmaz (rapor-actions.ts:156, 199; listem-icerik.tsx:88-90) + kilitAcilisi unblur animasyonu (listem-icerik.tsx:51) + PDF (rapor-yazdir.tsx:28) + 2 revizyon (rapor-actions.ts:215, credits.ts:17) + 60 kredi (credits.ts:7).
Yani parayla satın alınan şey: 21 satırın risk etiketi + 21 × üç kısa cümle + değerlendirmenin devamı + PDF + 2 revizyon + sohbet kredisi. Gerekçe cümlesi prompt'ta "TEK kısa cümle (en fazla ~15 kelime)" olarak sınırlanmış (ai/rapor.ts:79-80).
"Vay be" anı nerede?
Koddaki tek aday: tadımlık satırı — gerçek gerekçe + risk + trendi tek kartta gösteren yer (tadimlik-satiri.tsx:159-168). 30 günde 0 kez görüntülendi. İkinci aday: kullanıcının kendi 24'lük listesinin unblur anı — ki oraya 30 günde 0 kişi geldi. Bugün ürünün ücretsiz yolunda "vay be" anı yok; ilk 3 satır bir vaat değil, bir kesinti gibi görünüyor.
2. Ödeme öncesi zorunlu adımlar envanteri
En kısa gerçekçi yol (anonim öğrenci, ana sayfadan; 02-sevk-yollari-ux.md Yol A ile uyumlu):
| # | Ekran | Zorunlu girdi | Tık | Gerçekten gerekli mi? Kaldırılırsa ne kırılır? |
|---|---|---|---|---|
| 1 | / hero |
sıralama (+ puan türü) | 2 | Gerekli. Havuz da tablo da sıralamadan kuruluyor (liste-queries.ts:37-46). Kaldırılamaz. |
| 2 | Sihirbaz adım 1 | ≥1 ilgi alanı | 2 | Gerekli. Tek zorunlu sihirbaz adımı (sihirbaz-adimlar.tsx:198); sunucu da şart koşuyor (rapor-actions.ts:104-111). |
| 3 | Sihirbaz adım 2 (il) | yok — opsiyonel | 1 | Gerekli değil, ama yine de bir ekran + bir tık. Kaldırılırsa /meraklisina şeması ve gevşetme sırası değişir → M boy, bu turda hayır. |
| 4 | Sihirbaz adım 3 (devlet/vakıf) | yok — opsiyonel | 1 | Aynı. |
| 5 | /sonuc?hazir=1 |
— | 1 (+~2.200 px kaydırma) | Ödül sayfası; ama ilk ekranı boş gri harita placeholder'ı (liste/components/manuel-harita.tsx:69-79). |
| 6 | /giris + Google OAuth |
Google hesabı | 2–3 | Gerekli. Liste kullanıcıya, kredi hesaba bağlı (listem-icerik.tsx verifySession). Anonim rapor saklama L boy iş. |
| 7 | /listem?uret=1 |
— | 0 | 3 kredi düşer (LLM'den önce) + 15–30 sn bekleme (rapor-actions.ts:118-124, 04-uretim-engelleri.md §1). |
| 8 | Maskeli liste + kilit | — | 1 | Fiyatın funnel içinde ilk göründüğü yer (listem-govde.tsx:288 "Analizleri aç — 299 TL"). |
| 9 | /paket |
— | 1 | Girişliyse buton doğrudan "299 TL — Paketi al" (paket-satinal.tsx:164-169). Girişsizse satın alma butonu YOK (bkz. §1 / Ö2). |
| 10 | /odeme (iyzico iframe) |
kart + 3D | — | Ek zorunlu alan yok; ad/soyad Google'dan türetiliyor (odeme-actions.ts:21-27, 67). Bu adım temiz ve iyi kurulmuş. |
Toplam: 10 ekran, ~12 tık, 1 OAuth turu, 15–30 sn bekleme, 3 kredi.
Envanterin sonucu: ödeme ekranının kendisinde hiçbir gereksiz sürtünme yok — form alanı sıfır, sipariş özeti bilerek kaldırılmış (odeme-sayfasi.tsx:48-50), post-ödeme akışı self-healing (odeme-sonuc-karti.tsx:26-35). Sürtünme tamamen ödemeden önceki 9 ekranda ve ikisi çıkarılabilir cinsten değil, üçü (3, 4, 5) düzeltilebilir cinsten. Ama en pahalı adım 7'dir: kullanıcı ürünün ne olduğunu görmeden 3 kredi ve yarım dakika ödüyor.
Kısa yol da var ve o da kırık: girişsiz ziyaretçi ana sayfa fiyat bölümünden (app/page.tsx:543) /paket'e 2 tıkla gelebiliyor — ama oraya vardığında satın alma butonu yerine "Paketi sonra alırsın" yazısı buluyor.
3. Fiyat ve paketleme
| Soru | Cevap | Kanıt |
|---|---|---|
| Fiyat | 299 TL tek seferlik (paket), 60 kredi |
credits.ts:7 |
| Alternatif paket | Yok. Tek ürün + top-up (129 TL / 30 kredi), top-up yalnız paketliye satılıyor | credits.ts:8, paket-satinal.tsx:174-186 |
| Kredi ne alıyor | Liste üretimi 3, revizyon 3, sohbet mesajı 1 | credits.ts:14, 17, credits.ts:98-130 |
| Yeni kullanıcı | 5 deneme kredisi (= 1 liste + 2 soru) | credits.ts:11 |
| Fiyat ilk nerede görünüyor | Ana sayfa "Fiyat" bölümü (sayfanın ~6. bölümü, app/page.tsx:479-560) ve /paket. Funnel içinde ilk kez 8. ekranda, kilit satırında |
listem-govde.tsx:288 |
| Katalogdan gelen (%75 trafik) fiyatı görüyor mu | Hayır | 02-sevk-yollari-ux.md §1 Yol B/C |
| Ödemeden önce ne aldığını biliyor mu | Kısmen. Özellik listesi var (paket-satinal.tsx:27-42), örnek çıktı yok. /paket'te tek bir gerçek liste satırı gösterilmiyor |
— |
| Sosyal kanıt | Eşik altında gizleniyor, uydurma sayı yok — doğru kurulmuş | sosyal-kanit-sabitler.ts:11, 17 |
Fiyatın kendisi hakkında karar önerisi vermiyorum. n=2 ile 299 TL'nin yüksek mi düşük mü olduğu bilinemez; çapa (danışman 1.000–3.000 TL, app/page.tsx:487-491, kaynak Armut Eylül 2026) makul kurulmuş. [BİLAL] alanı, ve bu hafta açılmamalı.
4. "Ödemek için bir sebep" testi
Tek cümlelik fark:
Ücretsiz sürümde öğrenci 24 programın hangileri olduğunu, tabanlarını ve trendini görüyor; 299 TL, bunların 21'inin yanına risk etiketini ve üçer kısa cümlelik yapay zekâ yorumunu koyuyor.
Bu bir 18 yaşındakine para ödetir mi? Bugünkü sunumuyla hayır — üç sebeple, üçü de koddan görünüyor:
- Ücretsiz ürün ücretliden daha dolu görünüyor.
/sonucgirişsiz kullanıcıya 60 satır veriyor (liste-queries.ts:41); ücretli teklif "3 yerine 24 satırın yorumu". Öğrencinin gözünde "daha az satır ama daha çok cümle" bir yükseltme gibi durmuyor. - Ödülün örneği ödeme kararından önce gösterilmiyor. Tek örnek satır (
TadimlikSatiri) 30 günde 0 kez görüldü;/paketsayfasında hiç yok. Kullanıcı "kilitli olan şey neye benziyor" sorusunun cevabını görmeden 299 TL'ye bakıyor. - Ödeme kararı, kullanıcının en yorgun olduğu ana konmuş. 10. ekran, OAuth'tan ve 15–30 sn beklemeden sonra, 3 kredisi yanmış hâlde. Mobilde
/sonuc'tan çıkışa medyan 33 sn (03-donusum.md§2) olan bir kitleye bu zincir uzun.
Eksik olan tek şey: ödemeden önce teslim edilecek şeyin kendisinden bir örnek. Ürün bunu zaten üretiyor ve bedavaya üretiyor (522 satırlık tadımlık havuzu + LLM'siz deterministik iskelet, 04-uretim-engelleri.md §3) — sadece kimsenin göreceği yerde durmuyor. Bu, yeni özellik değil, var olanın yerini değiştirme işi.
Yapmamanızı önerdiğim şey: fiyatı indirmek, maskeyi 3'ten 5'e çıkarmak, ikinci bir paket eklemek. Üçü de n=2 üzerine kurulmuş tahminler olur ve etkileri sezon dışı hacimde okunamaz.
5. Beş somut değişiklik önerisi
Sıra, önceliklendirme ölçütüme göre: (1) verilen sözü bozan hata → (2) sezon takvimi → (3) ölçülebilir huni etkisi → (4) kurucu zamanı. Hepsi S; toplam inceleme yükü ~1 saat. Hiçbiri yeniden tasarım değil; üçü kaldırma/düzeltme.
Ö1 · Ödeme yolunu canlıda bir kez uçtan uca doğrula, odeme_hata {kod} olayını ekle — S · [BİLAL] (test ödemesi) + [KARAR] (olay)
İş: Bilal canlıda gerçek kartla /paket → /odeme → /odeme/sonuc akışını bir kez tamamlar; aynı yayında satin-al-form.tsx'in üç hata dalına (:49, 53) odeme_hata {kod} olayı eklenir.
Neden: 11 Ağu–20 Eyl'de 60+ odeme_baslatildi → 0 /odeme görüntülemesi; iki gerçek kullanıcı "satın al"da kayboldu (03-donusum.md:133, 139-140, 145-146). Düzeltme 21 Eyl'de çıktı, doğrulanmadı. /odeme/sonuc görüntülemesi hiçbir gün kaydedilmemiş.
Kabul: grep -n "odeme_hata" src/features/odeme/components/satin-al-form.tsx → ≥1 sonuç ve OlayAdi birliğinde ad tanımlı (grep -n "odeme_hata" src/lib/analitik.ts); test ödemesinden sonra Rybbit'te /odeme/sonuc görüntülemesi ve odeme_tamamlandi 1 adet görünür; sipariş status="paid" ve hasPaket=1.
Not: Backlog #7 ile aynı iş — yeni satır açılmasın, #7 "onaylı"ya alınsın.
Ö2 · /paket ve /giris, satın alma niyetini söndürmeyi bıraksın — S · [KARAR] (davranış) + [BİLAL] (cümleler)
İş: (a) paket-satinal.tsx:128-146 — girişsiz ziyaretçinin birincil butonu fiyatı ve satın alma fiilini taşısın (/giris?callback=/paket'e gitmeye devam edebilir); "Paketi sonra alırsın." cümlesi kaldırılsın, ücretsiz deneme ikincil bir metin linkine insin. (b) giris-karti.tsx:30-31 — funnel koşuluna /paket callback'i eklensin ki ödemeye giden kişiye üçüncü kez ücretsiz deneme anlatılmasın.
Neden: /paket sayfasının tek işi satmak; bugün oturumsuz ziyaretçiye 299 TL'lik bir buton hiç göstermiyor (:136, 141-143). 24 Ağu'daki gerçek kullanıcı tam bu yolu yürüdü: /paket → /giris → /paket → satın al → oturum bitti (03-donusum.md:139).
Kabul: grep -n "Paketi sonra alırsın" src/features/odeme/components/paket-satinal.tsx → 0 sonuç; grep -n "299\|amountKurus" src/features/odeme/components/paket-satinal.tsx girişsiz dalda fiyatın geçtiğini gösterir; grep -n "startsWith(\"/paket\")" src/features/kullanici/components/giris-karti.tsx → 1 sonuç; pnpm build temiz.
Kapsam dışı: fiyat değişimi, yeni paket, sayfa düzeni.
Ö3 · Paket vaadi ile kredi mantığı çelişkisini kapat — S · [BİLAL] (paket içeriği kararı)
İş: İki seçenekten biri: (a) paketli kullanıcıda liste üretimi ve revizyon kredi düşmesin (rapor-actions.ts:118-124 + :215 civarında hasPaket dalı) — docs/urun/vizyon.md'deki karara döner; ya da (b) /paket özellik metni "60 kredi; liste 3, revizyon 3, soru 1 kredi" diye düzeltilsin (paket-satinal.tsx:40, app/page.tsx:201, listem-govde.tsx:345).
Neden: Bugün ödeyene "60 soru" deniyor, kodda en fazla 51 soru kalıyor (credits.ts:7, 14, 17; rapor-actions.ts:98-99). Ölçütümün 1. maddesi: kullanıcıya verilen sözü bozan yanlış bilgi. Ödeyen sayısı bugün 0 olduğu için geri dönüş maliyeti de bugün sıfır — düzeltmenin en ucuz anı.
Kabul: Seçilen dalda tek kaynak: grep -rn "danışman sorusu" src/ sonuçlarının tamamı aynı sayıyı ve aynı koşulu söyler; (a) seçilirse paketli kullanıcı için spendCredits çağrılmadığı testte gösterilir (credit_ledger'da report_generate satırı oluşmaz).
Tavsiyem: (a). "Krediler yalnız sohbet için" cümlesi anlatması kolay ve vizyonun kararı bu.
Ö4 · /sonuc'un ilk ekranından boş harita placeholder'ını kaldır — S · [KARAR]
İş: liste/components/manuel-harita.tsx:69-79 — manuel liste boşken bileşen hiç render edilmesin (if (liste.length === 0) return null), ilk ekran doğrudan tabloyla açılsın.
Neden: Sihirbazı bitiren herkeste manuel liste boştur; ödül sayfasının ilk gördüğü şey kullanıcının hiç kullanmadığı bir özelliğin boş gri kutusu (02-sevk-yollari-ux.md §4). Bu bir ekleme değil, kaldırma; CLS'i azaltır.
Kabul: grep -n "liste.length === 0" src/features/liste/components/manuel-harita.tsx → 1 sonuç; /sonuc sunucu HTML'inde boş durumda "haritada belirir" metni geçmez (curl -s "$BASE/sonuc?sira=50000&tur=say" | grep -c "haritada belirir" → 0); manuel listeye bir program eklenince harita yeniden görünür.
Not: CEO'nun ertelediği Ö4'ün (05-ceo-karari.md §5) yalnızca ucuz yarısı; sıralama tersine çevirme işi kapsam dışı bırakıldı.
Ö5 · Tadımlık satırını /sonuc'ta tablonun üstüne taşı — S · [KARAR]
İş: sonuc/page.tsx:117 — <TadimlikBolumu> çağrısı <SonucProgramTablosu>'nun öncesine alınır. Bileşende değişiklik yok, tek satır yer değişimi.
Neden: Ürünün ödeme öncesi tek gerçek değer önizlemesi bugün ~1.500 px aşağıda ve 30 günde 0 kez görüntülendi (02-sevk-yollari-ux.md §3). "Ödemek için sebep" testinin tek eksiği örnek göstermek; örnek zaten üretilmiş ve bedava (app.db/tadimlik_havuzu, 522 satır).
Kabul: /sonuc sunucu HTML'inde "Yapay zekâdan örnek satır" ifadesinin ilk geçiş konumu, tablo başlığının ilk geçiş konumundan önce gelir (curl -s "$BASE/sonuc?sira=50000&tur=say" | grep -bo -e "örnek satır" -e "Taban sıra" | head -2 ile karşılaştırılır); tadimlik_goruntulendi olayı 2 hafta içinde ≥1 adet düşer (bugün 0). Havuz boşsa bileşen yine hiç render edilmez.
Kapsam dışı: tadımlık CTA'sının metni ve hedefi — o CEO'nun P5'inde, aynı dosyaya iki el değmesin. /meraklisina şeması etkilenmez (sihirbaz adımları, havuz kuralları, 24'lük iskelet değişmiyor).
Önerilmeyenler (bilerek): fiyat indirimi, ikinci paket, maskeyi 3→5, anonim rapor saklama, /paket'e yeni bölüm. Hepsi n=2 üzerine kurulur ya da M/L boy.
Ödeyici kim olmalı — ve akış kime göre kurulmuş?
Ödeyici veli olmalı; akış bugün tamamen öğrenciye göre kurulmuş. Kanıt: docs/urun/vizyon.md "Veli modu: sürece para veren kişi çoğu zaman veli" diyor, ama kodda "veli" kelimesi iki yerde ve ikisi de aynı özellik satırı: "Veliyle paylaşılabilir PDF rapor" (app/page.tsx:197, paket-satinal.tsx:36). Veliye ait tek bir ekran, tek bir paylaşım bağlantısı, tek bir açıklama metni yok. Giriş Google/e-posta ile öğrenci hesabına bağlı (giris-karti.tsx), ödeme de aynı hesaptan yapılıyor (odeme-actions.ts:37-40) — yani velinin ödeyebilmesi için öğrencinin hesabına girmesi gerekiyor.
Ürün dili de öğrencinin: "senin sıralamana", "listen", "5 deneme kredin". Bu yanlış değil — listeyi yapan öğrenci, ve onu kaybetmemek gerekiyor. Ama para 18 yaşındakinin cebinde değil. Bu bir ürün kararı olarak açılmalı ([BİLAL]), bu gece değil: ödeme adımına velinin de tamamlayabileceği bir yol (ör. öğrencinin listesine ait paylaşılabilir salt-okunur özet + oradan ödeme) sezon öncesinde tanımlanmalı. Bugünkü hacimde ölçülemez, ama tercih dönemi (Haziran–Ağustos 2027) penceresinde bunun hazır olması gerekir. Şimdilik yalnız şunu not ediyorum: PDF dışında veliye hitap eden hiçbir şey yok, ve PDF ödemenin arkasında.
Backlog önerileri (BACKLOG.md'ye bu gece dokunulmadı)
| Öneri | Kaynak | Ne yapılsın |
|---|---|---|
#7 (odeme_hata + /odeme/sonuc doğrulaması) |
mevcut backlog | "onaylı"ya al ve sıranın başına koy. Ö1 ile aynı iş; ödeme yolunun çalıştığı bugün hâlâ bilinmiyor. |
Yeni: /paket girişsiz CTA'sı + /giris /paket callback metni |
Ö2 | Yeni satır. Neden: paket-satinal.tsx:136,141-143; kabul kriteri yukarıda. |
| Yeni: Paket vaadi ↔ kredi mantığı çelişkisi | Ö3 | Yeni satır, durum aday (Bilal kararı). |
Yeni: /sonuc boş harita placeholder'ının kaldırılması |
Ö4 | Yeni satır; CEO §5'teki "Ö4 ertelendi" kaydının ucuz yarısı olarak iliştirilsin. |
Yeni: Tadımlığın /sonuc'ta tablo üstüne taşınması |
Ö5 | Yeni satır. CEO P5 (tadımlık metni/hedefi) ile aynı dosyaya dokunuyor → aynı dalda birleştirilebilir. |
| Yeni (sezon): Veli ödeme yolu — problem tanımı ve PRD | bu rapor §"Ödeyici kim" | aday, hedef pencere: 2027 tercih dönemi öncesi (en geç Nisan 2027). Bugün iş değil, PRD konusu. |
| #13 (marka metinleri D3/D5/D6/D7) | mevcut backlog | D6 (özellik listesine havuz kısıtı + veri tarihi) Ö3 ile aynı dosyayı açıyor → birlikte sorulsun. |
| Kapanma adayı yok | — | Bu raporun hiçbir bulgusu mevcut bir backlog satırını geçersiz kılmıyor. |
Sezon notu (4–8 hafta): Ekim–Kasım tercih penceresi dışı. Bu dönemde ödeme dönüşümü ölçülemez; bu yüzden bu pencerede yapılacak iş "dönüşümü artırmak" değil, kırık olanı düzeltmek ve ölçümü kurmaktır. Takvime bağlı tek iş backlog #2 (KYK burs/kredi yazısı, 6 Ekim kilidi) ve o sırasında duruyor. Ö1 hariç hiçbir öneri tarihe bağlı değil.
Bilal'den istenen (3 madde)
- Canlıda gerçek kartla tek bir ödeme yap ve sonuna kadar götür (
/paket → /odeme → /odeme/sonuc), sonra şunu söyle:hasPaketaçıldı mı, kilit çözüldü mü, Rybbit'te/odeme/sonucgörüntülemesi düştü mü. Ödeme yolunun bugün çalıştığını kimse bilmiyor ve 30 günlük sıfırın bir kısmı bundan olabilir — ~10 dk. - Paket içeriği kararı (Ö3): paketli kullanıcı liste/revizyon için kredi ödemeye devam etsin mi (o zaman "60 soru" metni düzelir), yoksa vizyondaki gibi liste pakete dahil mi olsun? Bugün ödeyen 0 kişi olduğu için bunun geri dönüş maliyeti sıfır; bir hafta sonra olmayabilir — ~5 dk.
- İki satış cümlesi (Ö2):
/paket'te girişsiz ziyaretçinin birincil butonu ne yazsın (fiyatı ve satın almayı taşımalı), ve "Paketi sonra alırsın." yerine ücretsiz deneme nasıl ikincil olarak anlatılsın? Davranış değişikliği ajan yetkisinde, cümleler senin — ~10 dk.
(Listeden düşürdüklerim: fiyat kararı — n=2 ile sorulacak soru değil; maske satır sayısı — aynı sebep; veli ödeme yolu — sezon öncesine PRD olarak bırakıldı; Rybbit bağlama — madde 1 daha çok söyler.)