Files
kolaytercih/docs/gece-vardiyasi/2026-09-22/06-ceo-kararlari.md
bilalgursen a42a1a9920
All checks were successful
Deploy / deploy (push) Successful in 17s
docs(ekip): 22-23 Eylül vardiya raporları, BACKLOG/KARARLAR/PROTOKOL güncellemeleri
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 11:43:11 +03:00

150 lines
26 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 06 — CEO kararları (Tur 2, karar turu)
2026-09-22 gecesi · Ölçüt: *"Sitede kolay bir akış, gereksiz şeyler olmamalı, bilgi vereceğiz diye kullanıcıyı boğmamalıyız."*
Bu gece **4 iş** onaylandı. Geri kalan her şey reddedildi (§3). Kod değiştirmedim; yalnız bu dosyayı ve `KARARLAR.md`'yi yazdım.
---
## §1 Hüküm — gecenin ne olduğu (5 madde)
1. **Sezon dışındayız ve örneklem karar üretmiyor.** 5 haftada 801 temiz oturum; tüm zamanlarda **3** liste üretilmiş, **5** kişi kilidi görmüş, **0** ödeme tamamlanmış. Bu gece hiçbir deney, hiçbir yeniden tasarım onaylanmadı. Onaylanan dört işin dördü de "yanlış olanı düzelt" ya da "ölç" sınıfında; hiçbiri "deneyelim bakalım" değil.
2. **Gecenin en büyük bulgusu gerçek, ama dönüşüm rakamı korelasyon.** Net/OBP verisi rakipte yok, bizde var (2023–2025, 21 bin satır/yıl — 2026 **yok**). "Açanların sıra girme oranı 3 kat" cümlesi nedensellik değil: niyetli kullanıcı zaten hem açar hem sıra girer; analitik bunu kendi yazmış. **Ama nedensellikten bağımsız bir gerçek var:** o veri, adı ekranda hiç yazmayan bir ikonun arkasında (`program-netleri.tsx:101-102` — yalnız `ListChecks` ikonu + `sr-only` metin). Hükmüm: **veriyi bir tık öne çekme kararı doğru yönde, ama bu gece uygulanmaz** — çünkü pazarlama cümlesi iki doğrulanmamış iddiaya dayanıyor (YÖK Atlas'ın veriyi gerçekten kaldırdığı + arşivi yayımlamanın uygunluğu) ve katalog satırını yeniden tasarlamak n=801'de korelasyonla savunulamaz. Bu geceki payımız, nedensellik iddiası gerektirmeyen tek parça: **risk etiketinin satırda yazıyla görünmesi (P1)** — hem analitiğin 1 numaralı önerisinin bedava kısmı hem de açık bir `AGENTS.md` ihlalinin kapanması.
3. **Üç rapor iddiası koddan yanlış çıktı; ikisi bu gecenin iş listesini değiştirdi.** (a) `/bolum` sayfasında sıra formu **var** (`bolum-icerik.tsx:267`, üstelik "üstte olsun" diye yazılmış yorumla) → analitiğin 4. önceliği düştü. (b) `/paket`'te iade **görünüyor** (`paket-satinal.tsx:96`, CTA'nın hemen altında) → markanın güven bulgusunun yarısı kapanmış durumda. (c) `kosullar/page.tsx:15`'teki "MVP taslağıdır" bir **kod yorumu**, kullanıcı görmüyor. Tam tablo §2'de.
4. **URAP yapılır, çünkü izleyicisi var.** `/universite/*` bu sitenin en kalabalık yüzeyi (tek başına 405 mobil oturum). URAP oraya **kart eklemez, "Tür" kartıyla takas olur** — ızgara 4 kart kalır. Bu, "bilgi vereceğiz diye boğma" kuralını ihlal etmeyen tek metrik ekleme biçimi. Tasarımcı ile markanın ayrıştığı yer (kart mı, uyarı cümlesi mi) uzlaştırıldı: **sayı kartta, metodoloji uyarısı + aktif atıf tablonun altındaki ayrı kaynak satırında.**
5. **Bu gecenin en değerli reddi, yapay zekâ önerileridir.** Vaat dili regex denetimi, eval seti, "tek cümleyle sihirbaz doldurma", 24 satır için hazır çipler — hepsi ucuz, hepsi zekice, hiçbiri bugün bir kullanıcının derdine dokunmuyor. Sihirbaz zaten %80,6 tamamlanıyor; orada çözülecek bir problem yok. Bilal'in "olup olmadık şeyleri test etmek" uyarısının tam hedefi bunlardı ve reddedildiler.
---
## §2 İddiaların kod doğrulaması
| # | İddia (kaynak) | Hüküm | Kanıt |
|---|---|---|---|
| 1 | `netler` tablosunda 2023–2025 için ~21 bin kayıt/yıl var (marka §1) | **Doğru ama eksik** | `sqlite3 -readonly data/yokatlas.db`: 2023=21.341, 2024=20.813, 2025=20.821. **2026 yok** — pazarlamada yıl yazılmadan kullanılamaz |
| 2 | Net verisi "sadece katalogda bir modal düğmesi" (marka §1) | **Doğru ama eksik** | Buton 3 yüzeyde: `bolum-program-listesi.tsx:262`, `universite-program-tablosu.tsx:114`, **ve `/sonuc`** (`liste/components/program-tablosu.tsx:387`). Ama üçünde de görünür etiketi yok: `program-netleri.tsx:101-102` sadece `ListChecks` + `sr-only` + `title` |
| 3 | `netler_goruntulendi` akordeon açılınca atılıyor, ad doğru ölçüyor (analitik §1) | **Doğru** | `program-netleri.tsx:86-90` `acildi(acik)` → `if (!acik) return; olay(...)` |
| 4 | `/bolum/[slug]` detayında `CtaSiraForm` **hiç yok** (analitik öncelik #4) | **YANLIŞ** | `bolum-icerik.tsx:267` (`konum="ust"`, üstünde "listenin üstünde" diye yazılmış yorum) + `:297` (`konum="alt"`). Üniversite tarafı da aynı: `:290` ve `:352`, ikisi de tablonun **üstünde** — analitik "tablonun altında" demiş, o da yanlış |
| 5 | `sihirbaz_adim` 1. adımı hiç atmıyor (analitik §5-1) | **Doğru** | `sihirbaz-adimlar.tsx:205` `if (yeniAdim > adim) olay(...)` — modal 1. adımda açıldığı için 1 hiç düşmez |
| 6 | `/paket` linklerinin çoğunda `?kaynak=` yok (analitik §5-2) | **Doğru** (sayı ufak sapmalı) | 14 `href="/paket"` var; 10'u kaynaksız (`page.tsx:543,573`, `kosullar:55`, `tercih-degisti-modali:283,335`, `sohbet-client:351,538,546`, `odeme-kromu:45`, `odeme-sonuc-karti:141`), 4'ü kaynaklı. %56 değil %71 |
| 7 | Sihirbazı tamamlayanların %69'u öncelik seçmiyor (analitik §3) | **Doğru, ama n=29** | Analitik GA %51–83 veriyor ve "tam %69 savunulamaz" diyor; hükümde "çoğunluk" olarak kullandım |
| 8 | Öncelikler "listeyi daraltmaz" (tasarımcı K5) | **Doğru ama eksik** | `sihirbaz-adimlar.tsx:487-490` ekran metni: *"gerekçelere **ve program seçimine** yön verir; listeyi daraltmaz"*. Prompt'a giriyor (`sihirbaz-sabitler.ts:182-184`) → modelin 60'tan 24'ü seçmesini etkileyebilir. Etkisi ölçülmemiş |
| 9 | `/meraklisina` şeması 3. adımda öncelikleri anlatmıyor (tasarımcı K5) | **Doğru** | `huni-semasi.tsx`: `C("3. adım · Devlet / Vakıf…")` — öncelik geçmiyor. Kaldırma şemayı değiştirmez |
| 10 | Paketsiz kullanıcı 3 kredi yakıp 21/24 satırı kilitli görüyor (yapay zekâ §4) | **Doğru** | `credits.ts:11,14` (`DENEME_KREDISI=5`, `RAPOR_KREDI=3`), `rapor-maske.ts:12` (`ACIK_SATIR=3`), `rapor-actions.ts:109-110` yorumu ve kredi düşümü maskelemeden bağımsız |
| 11 | Kilitli 21 satır açılınca aynı satış kutusunu tekrarlıyor (tasarımcı K4) | **Doğru** | `rapor-listesi.tsx:306-323` — her kilitli satırda birebir aynı "Yapay Zeka karar desteği" kutusu |
| 12 | `/sonuc` tablosunda risk **yalnız renkli nokta**, metin etiketi yok (tasarımcı R1) | **Doğru — `AGENTS.md` ihlali** | `liste/components/program-tablosu.tsx:308-312`: `<span className={RISK_NOKTA[risk]} aria-hidden />`, `RISK_ETIKET` bu dosyada hiç kullanılmıyor |
| 13 | `/listem`'de risk etiketi mobilde gizli (tasarımcı R2) | **Doğru** | `rapor-listesi.tsx:267` `sr-only sm:not-sr-only` → 390px'te yalnız renk |
| 14 | `/paket` sayfasında iade politikası **hiç görünmüyor** (marka §1, §3) | **YANLIŞ** | `paket-satinal.tsx:96`: "Paketi al" butonunun hemen altında `/kosullar#iade` linki. Marka yalnız `app/paket/page.tsx`'e bakıp client bileşenini kaçırmış. İade metni de sağlam (`kosullar/page.tsx:61-83`) |
| 15 | `kosullar/page.tsx:15`'te "MVP taslağıdır" notu duruyor (marka §3) | **Doğru ama kullanıcı görmüyor** | Satır bir `// NOT:` JS yorumu, render edilmiyor. Gerçek eksik ayrı: satıcı kimliği (unvan/adres/vergi/MERSİS) — grep ile doğruladım, yok |
| 16 | URAP 198/198 slug'ımızla eşleşiyor, yeni normalleştirme gerekmiyor (veri §2) | **Doğru (ajan çalıştırarak doğruladı)** | `uniAdiNormalize`+`turkishSlugify` zinciri; scratchpad çıktıları raporda listeli. Tekrar koşmadım |
| 17 | 3 kurumda `unitur` yanlış → sihirbaz havuzuna 27 program sızıyor (veri §6) | **Doğru** | `db.ts:79-82`: devlet = `unitur = 'DEVLET'`, vakıf = `unitur IS NOT NULL AND unitur <> 'DEVLET'` → yanlış etiketli satırlar devlete sızıyor, vakıftan düşüyor |
| 18 | Üniversite sayfasında 4 kartlık metrik ızgarası var, "Tür" kartı takas edilebilir (tasarımcı §6-A) | **Doğru** | `universite-icerik.tsx:292` `grid-cols-[1fr_1fr_1.35fr] lg:grid-rows-2` + harita; "Tür" kartı `:311-322` |
| 19 | Liste üretimi bize 1,7–2,1 kuruş (yapay zekâ A-2) | **Doğrulanmadı — ajanın kendi ölçümü** | Betik silinmiş, fiyat OpenRouter'dan alınmış. Mertebe (kuruş) savunulabilir; rakamı yayına koymayız |
| 20 | Yayından beri her `program_eklendi` `yol:"dogrudan"` (analitik §2) | **Doğrulanamaz** | Rybbit yalnız analitikte açık. n=1 gerçek oturum; zaten karar için kullanılmadı |
| 21 | Dünkü "/sonuc parametre şişmesi" bulgusu iç trafik eseri (analitik §2) | **Doğru — kabul edildi** | Gerçek kullanıcıda medyan 1 sayfa görüntüleme. CTO listesinden düşürüldü, karar kaydına geçti |
**Raporların kaçırdığı, benim eklediğim:**
- **Sezon bandı metnini Bilal 18 saat önce bizzat seçti.** `84fc88e` / `bilal/sezon-bant-metni-B` commit mesajı A ve B alternatiflerini yan yana koyup B'yi seçiyor ve "375 px'te alt satıra taşar" bedelini açıkça kabul ediyor. Tasarımcı K1'de aynı bandın silinmesini öneriyor — yeni kanıt yok. **Reddedildi (§3).**
- **Net verisi 2026'yı kapsamıyor.** Site artık 2026 yerleştirme verisiyle çalışıyor ama `netler` 2025'te bitiyor. Herhangi bir net/OBP vitrin cümlesi bu boşluğu söylemek zorunda.
- **P4 ölçüm işi bir seri kırılması yaratır.** `sihirbaz_adim{1}` modal açılışında atılmaya başlayınca bu serinin paydası değişir; `program_eklendi` için 21 Eylül'de yaptığımız gibi kırılma tarihi karar kaydına yazıldı.
---
## §3 Bu gece yapılacaklar — 4 iş
Her iş tek amaçlı, ayrı dal, lokal commit. Push yok, merge yok.
### P1 — Riskin adı satırda yazsın · `gece/0922-risk-etiketi` · **[KARAR]** · ajan: `yazilimci` · **XS (~30 dk)**
**Ne:** `/sonuc` program tablosunda risk göstergesi yalnız renkli nokta ve `aria-hidden`; metin etiketi hiç yok. `/listem`'de etiket var ama `sm` altında `sr-only` — trafiğin ~%90'ı mobil, yani gören kullanıcı yalnız rengi görüyor.
**Neden:** `AGENTS.md` açık kural koyuyor: *"kırmızı/sarı/yeşil her zaman metin etiketiyle birlikte, renk tek başına anlam taşımaz."* İki yerde de ihlal (doğrulama tablosu #12, #13). Ayrıca bu, analitiğin 1 numaralı önerisinin ("karar veren bilgi tıklamasız görünsün") nedensellik iddiası gerektirmeyen, bedava kısmı: taban sıra satırda zaten var, eksik olan tek şey riskin adı.
**Kapsam:** `liste/components/program-tablosu.tsx:306-314` → `rapor-listesi.tsx:262-270` kalıbını kopyala (nokta + `RISK_ETIKET[risk]`, tek kaynak `src/lib/risk.ts`). `rapor-listesi.tsx:267` → `sr-only sm:not-sr-only` kalkar, etiket her zaman görünür. Yeni bileşen yok, yeni sabit yok, yeni olay yok.
**Kabul kriteri:** (1) `/sonuc` ve `/listem` satırlarında risk **yazıyla** görünür, kaynak `RISK_ETIKET`; (2) 390px'te etiket kesilmez, satır taşmaz; (3) `RISK_NOKTA` rengi korunur ama tek başına anlam taşımaz; (4) `tsc` + `lint` temiz.
### P2 — Sihirbaz havuzundaki sessiz sızıntıyı kapat · `gece/0922-unitur-kacagi` · **[KARAR]** (merge `[BİLAL]`) · ajan: `veri-muhendisi` · **S (~1 sa)**
**Ne:** 3 kurum (Kıbrıs Amerikan, Uluslararası Balkan, Uluslararası Saraybosna) `unitur='DEVLET'` etiketli; 100 satır. Uluslararası Balkan'ın ili 26 satırda "Saraybosna" (üniversite Üsküp'te). Sonuç: öğrenci "devlet üniversitesi istiyorum" dediğinde havuza **27 program** sızıyor, "vakıf" dediğinde aynı 27'si eksik kalıyor.
**Neden:** Sessiz doğruluk hatası — kullanıcı yanlış olduğunu fark edemez, biz de bugüne kadar fark etmedik. Kök neden teşhis edildi ve kalıcı çözümü var (`veri §6.2`: `unitur-onar.ts`'in çelişki koruması tam ad üzerinden çalıştığı için aynı kurumun iki yazımı çelişki saymıyor).
**Kapsam:** `scripts/unitur-onar.ts`'e NULL koşulsuz `KURUM_DUZELT` haritası (~20 satır) + `scripts/veri-kalite.ts`'e "baz ad başına tek `unitur`" kontrolü (~8 satır); betik koşturulur, 126 satır düzeltilir. **`data/yokatlas.db` binary'si ayrı bir commit olur** (kod ve veri karışmasın).
**Kabul kriteri:** (1) `pnpm veri-kalite` temiz ve yeni kontrol baz ad çelişkisini yakalıyor; (2) `db.ts` devlet filtresi bu 27 programı artık döndürmüyor, vakıf filtresi döndürüyor; (3) `/universiteler` hub'ında üç kurum "Devlet" listesinden çıkıyor; (4) 2021–2026 puan/sıra kolonlarında **hiçbir** değişiklik yok (fark raporu commit mesajında).
**Kapsam dışı:** `il` boş olan 19 satır; B4 (burs/dil ekli adlar); `kategoriBul` düzeltmesi.
### P3 — URAP tek sayı: "Tür" kartıyla takas · `gece/0922-urap` · **[KARAR]** (yayın `[BİLAL]`) · ajanlar: `veri-muhendisi` → `yazilimci` · **M (~3 sa)**
**Ne:** `/universite/[slug]` metrik ızgarasında "Tür" kartının yerine **URAP TÜRKİYE · 18 / 198 · 2025-2026** kartı. Kart sayısı 4'te kalır, ızgara şablonu değişmez, yeni bileşen icat edilmez.
**Neden:** Bilal'in bu geceki gündem maddesi ve izni elde (brief §4). En kalabalık yüzeyimiz burası. Tasarımcı ile marka bağımsız olarak "tablo değil, tek sayı" dedi; veri mühendisi 198/198 eşleşmeyi ve 3 saatlik yolu gösterdi.
**Çelişki çözümü (tek yerleşim kararı):**
- **Sayı kartta, uyarı kartta değil.** Kart üç satırı geçmez: başlık, `18 / 198`, `2025-2026`. Payda kartın içinde kalır — "18." tek başına yanıltır.
- **Markanın metodoloji uyarısı + atıf, tablonun altındaki ayrı ikinci kaynak satırında.** `VeriKaynagi` **kullanılmaz ve kopyalanmaz** (o satır YÖK Atlas tarihine bağlı; URAP'ın dönemi başka). Kanonik cümle: *"URAP Türkiye Sıralaması 2025-2026 (198 üniversite arasında) — akademik yayın ve araştırma performansını ölçer; eğitim kalitesini ya da iş bulma oranını ölçmez. Kaynak: [urapcenter.org …](…)"*
- **Boş durum (31 kurum):** tasarımcı "kart çizilmesin, Tür kalsın" diyor, veri mühendisi "eksik görünür kalsın" diyor — **ikisi de uygulanır:** ızgarada "Tür" kartı yerinde kalır (hiçbir sayfada "—" ya da delik yok) **ve** alttaki kaynak satırına tek cümle düşer: *"Bu üniversite URAP Türkiye sıralamasında yer almıyor — URAP yalnız Türkiye'deki üniversiteleri sıralıyor."* (KKTC/yurt dışı) ya da *"…2025-2026 listesinde yer almıyor."* (MYO/yeni).
- **Atıf pazarlık dışı:** gerçek `<a href>`, `rel="noopener"`, yeni sekme, **`nofollow` yok**, adres `URAP_KAYNAK_URL` sabitinden. URAP sayısının göründüğü her yüzeyde aynı ekranda bulunur; link konulamayan yüzeyde (OG görseli) sayı gösterilmez.
**Kapsam:** `src/lib/urap-siralama.ts` (198 satırlık sabit, `uni-koordinatlar.ts` deseni) + `katalog.ts:363` okuma katmanı + `UniDetay` tipine tek alan + `universite-icerik.tsx` kart takası ve kaynak satırı + `veri-kalite.ts`'e 5 kontrol. **Yeni DB dosyası yok, göç yok, cron yok, çekme betiği yok.**
**Kabul kriteri:** (1) URAP'ta olan sayfada 4 kart, "Tür" yerinde URAP; olmayan sayfada 4 kart, "Tür" duruyor — hiçbir sayfada "—"/boş kutu yok; (2) URAP sayısının göründüğü her sayfada aynı ekranda aktif atıf linki ve dönem var; (3) `veri-kalite` kontrolleri geçiyor, eşleşmeyen slug sessizce düşmüyor; (4) renk yok, rozet yok, `/universiteler` hub'ında URAP'a göre sıralama/filtre yok; (5) 24'lük listeye, `/sonuc` tablosuna ve LLM prompt'una URAP **girmez**; (6) `tsc` + `lint` + `build` temiz.
### P4 — İki ölçüm deliği · `gece/0922-olcum` · **[KARAR]** · ajan: `yazilimci` · **XS (~30 dk)**
**Ne:** (a) `sihirbaz_adim{adim:1}` modal açılışında atılsın (bugün yalnız ileri geçişte atıldığı için 1. adım hiç düşmüyor, payda `sira_girildi`den türetiliyor); (b) kaynaksız 10 `/paket` linkine `?kaynak=` eklensin.
**Neden:** İkisi de kullanıcıya görünmez, ikisi de tek satırlık, ikisi de her gelecek kararın önkoşulu — 2 Kasım'daki "+ tuttu mu" okuması dahil. Bunlar "ölçüm eklemek de bir iştir" diye ertelenecek kadar pahalı değil; ertelenirse bir sonraki karar turu yine kör başlar.
**Kapsam:** `sihirbaz-adimlar.tsx:205` çevresi (açılışta bir kez, geri dönüşlerde tekrar sayma) + 10 link (`page.tsx:543,573`, `kosullar/page.tsx:55`, `tercih-degisti-modali.tsx:283,335`, `sohbet-client.tsx:351,538,546`, `odeme-kromu.tsx:45`, `odeme-sonuc-karti.tsx:141`) — kaynak adları mevcut şemayla tutarlı (`kilit`, `kredi_bitti`, `nav` desenine uygun).
**Kabul kriteri:** (1) Sihirbaz açılışında `sihirbaz_adim{adim:1}` tam bir kez düşer, 1→2→1→2 gidip gelmede tekrar düşmez; (2) 14 `/paket` linkinin 14'ünde `?kaynak=` var ve değerler tekil; (3) hiçbir görsel değişiklik yok; (4) commit mesajında **seri kırılması notu**: bu tarihten önceki `sihirbaz_adim` paydası farklıdır.
---
## §4 Reddedilenler — tek cümlelik gerekçeyle
**Tasarım kesimleri**
- **K1 — sezon bandını sezon dışında hiç çizme: REDDEDİLDİ.** Bilal bu bandın metnini 18 saat önce iki alternatif arasından bizzat seçti (`84fc88e`, `bilal/sezon-bant-metni-B`) ve iki satıra taşma bedelini açıkça kabul etti; yeni kanıt yok, verilmiş karar yeniden açılmaz.
- **K2 — `/sonuc` boş harita kutusunu kaldır: REDDEDİLDİ (bu gece).** Kazanç ölçülmemiş bir piksel tahmini, bedel (ilk eklemedeki CLS + `+` ipucu) gerçek; üstelik yayından beri `/sonuc`'ta **0** gerçek oturum var, etkisi ölçülemez.
- **K3 — `/sonuc`'ta iki giriş panelinden birini kaldır: REDDEDİLDİ (bu gece).** Tasarımcının kendisi "hangisinin kalacağını rakam belirlemeli" diyor ve rakam yok; ayrıca kesim koşullu ("tadımlık havuzu boşsa B geri gelmeli"), yani tek amaçlı değil, durum makinesi.
- **K4 — kilitli satırların tek tek açılmasını kapat: REDDEDİLDİ (bu gece), backlog önerisi.** İki bağımsız raporla en iyi kanıtlanan kesim, ama bugünkü izleyicisi ~0 (tüm zamanlarda kilidi gören 5 gerçek oturum); sezon yaklaşınca ilk sıraya alınmalı.
- **K5 — sihirbazdan "Öncelikler"i çıkar: BU GECE UYGULANMAZ, `[BİLAL]`.** Ekran öğesi kaldırmak + yapay zekânın gördüğü girdiyi değiştirmek ürün kararıdır; tavsiyem "evet, kalksın" (§5).
- **S1–S8, R3–R11: REDDEDİLDİ (bu gece).** Hepsi tek tek küçük, toplamı Bilal'in inceleme kuyruğunu dörde katlar; kontrast sistematiği (R7, 48 kullanım) ve `+` butonundaki sınıf çakışması (R11) backlog'a en güçlü adaylar.
**Yapay zekâ önerileri**
- **Vaat dili regex denetimi + kurtarma ölçümü (`[KARAR]` istendi): REDDEDİLDİ.** Tüm zamanlarda üretilmiş **3** liste var; şikâyet edilmemiş bir çıktıya filtre yazmak, Bilal'in adıyla yasakladığı işin tam tanımı — `liste_olusturuldu` 50'yi geçince yeniden bak.
- **B-1 "tek cümleyle sihirbaz ön-doldurma": REDDEDİLDİ.** Sihirbazda kopma yok (adım 2→3 geçişi %96,9, tamamlama %80,6); %80 dönüşen bir adıma yapay zekâ girişi eklemek olmayan bir sorunu çözer. Bilal isterse bu reddi bozabilir.
- **B-2/B-3 hazır çipler: REDDEDİLDİ (bu gece).** Sıfır maliyetli ama ekranı olan kullanıcı sayısı bugün tek haneli; ekranın kalabalığını artırır, kimse görmez.
- **B-4 veliye e-posta paragrafı: REDDEDİLDİ (bu gece).** Tamamlanmış tek bir ödeme yok; tetikleyicisi hiç çalışmayacak bir şablon yazılmaz.
- **B-5 URAP'ı prompt'a/liste satırına sokmak: REDDEDİLDİ.** Ürünün metin diyetini ve "24 satıra sütun ekleme" yasağını deler; URAP bu sürümde yalnız üniversite sayfasında yaşar.
**Analitik önerileri**
- **Öncelik #4 (`/bolum`'e köprü ekle): REDDEDİLDİ — iddia yanlış.** Form zaten var ve zaten üstte (`bolum-icerik.tsx:267`).
- **Öncelik #2 (rehber ilk ekranına köprü): REDDEDİLDİ (bu gece).** Analitik kendi söylüyor: rehberde okuma mı terk mi ayırt edilemiyor; ölçüm olmadan yapılacak her müdahale kör atıştır. Kaydırma kilometre taşı olayı önce gelir, o da bu gecenin işi değil.
- **Öncelik #1'in tamamı (katalog satırının yeniden tasarımı): REDDEDİLDİ.** Korelasyonla satır tasarımı açılmaz; bedava olan parçası P1 olarak alındı.
**Marka önerileri**
- **"Ücretsiz yolu da var" cümlesi: REDDEDİLDİ (bu gece).** Konum olarak doğru, zamanlama olarak yanlış: sezon dışında izleyicisi yok ve tek bir tamamlanmış satış görmeden satışı zorlaştıran bir cümleyi siteye koymak sırasız. Sezon öncesi yeniden.
- **Satıcı kimliği / `/hakkinda`: YENİDEN AÇILMADI.** 21 Eylül'de Bilal erteledi; markanın forum bulgusu gerekçeyi güçlendiriyor ama kararı değiştirmiyor.
- **`/paket`'te iade görünmüyor: KONU KAPANDI** — iddia yanlış, link zaten CTA'nın altında.
- **`kosullar/page.tsx:15` yorumunu sil: REDDEDİLDİ.** Kullanıcıya görünmeyen bir kod yorumu için inceleme slotu harcanmaz.
---
## §5 Bilal'in karar vermesi gerekenler
| # | Soru (sade) | Seçenekler | Tavsiyem | Maliyet / geri dönüş |
|---|---|---|---|---|
| 1 | Sihirbazın son adımındaki **"Senin için önemli olan"** 7 etiketi (iş bulma kolaylığı, yüksek maaş…) kalksın mı? | (a) Kalksın, son adım tek soru olsun: Devlet mi, vakıf mı? (b) Kalsın | **(a) Kalksın.** Üç bağımsız kanıt: sihirbazı bitirenlerin çoğu hiç seçmiyor; ürünün kendi akış şeması bu adımı zaten anlatmıyor; listenin 24 satırını ve sırasını kod kuruyor, bu etiketler yalnız gerekçe cümlesinin tonuna dokunuyor | **Ucuz ve geri alınabilir.** Alan veride kalır, eski kayıtlar bozulmaz; fikir değişirse geri konur. ~1 saatlik iş |
| 2 | Paketi olmayan öğrenci listesini **ücretsiz** görsün mü? Bugün 5 deneme hakkının 3'ünü tek bir listeye yakıyor ve o listenin 21 satırı kilitli geliyor. | (a) Liste bedava olsun, 5 hak tamamen danışmana soru sormaya kalsın (b) Bugünkü gibi kalsın (c) Veri birikene kadar bekle | **(a).** Bu üretim bize kuruşlar mal oluyor, yani kredi bizi bir masraftan korumuyor — sadece denemeyi zorlaştırıyor. **Asıl para kapısı (kilitli satırlar) hiç değişmiyor**, tek kaybımız yok. (c) bekleme seçeneğini eleme sebebim: ekranda 3 liste var, Kasım'dan önce okunur hâle gelmeyecek; karar zaten ekonomiyle veriliyor, veriyle değil | **Tek sayı değişikliği, geri dönüşü dakikalar.** Kötüye kullanım kullanıcı başına günlük üretim sınırıyla kapanır (kilit mekanizması dün eklendi) |
| 3 | **URAP** paketi (üniversite sayfasında "Tür" kartının yerine "URAP Türkiye 18/198" + altta atıf cümlesi) hazır olunca canlıya çıksın mı? | (a) Çıksın (b) Bekle | **(a).** İzin elde, veri %100 eşleşiyor, ekrana yeni kutu eklenmiyor — takas. Atıf şartı pazarlık dışı uygulanıyor | Geri dönüş: dosyayı sil + tek alanı kaldır. Göç yok. Ayrıca **izin e-postasını `docs/` altına koy** (kanıt), ~2 dk |
| 4 | Sihirbazda "devlet üniversitesi" diyen öğrenciye **KKTC/Bosna'daki 3 kurumun 27 programı** öneriliyor. Düzeltme veritabanı dosyasını değiştirir — onaylıyor musun? | (a) Onayla, hazırlanan dal merge edilsin (b) Bekle | **(a).** Sessiz bir doğruluk hatası; kullanıcı yanlış olduğunu anlayamaz. Puan/sıra kolonlarına dokunulmuyor | Geri dönüş: dal merge edilmeden önce fark raporu commit mesajında; sonrası için `veri-2026-son` etiketi duruyor. ~10 dk inceleme |
| 5 | **"YÖK Atlas'ın kaldırdığı 'son yerleşenin netleri' bizde duruyor"** cümlesini siteye/pazarlamaya koyalım mı? | (a) Koyalım (b) Önce iki şeyi doğrula, sonra karar | **(b).** Kaynağımız iki şikâyet/köşe yazısı, resmî duyuru yok; ayrıca veri 2023–2025'i kapsıyor, 2026'yı **kapsamıyor** — "elimizde var" derken yılı söylemek zorundayız. Doğrulanmamış rakam/atıf yayına giremez | Doğrulama ucuz (YÖK Atlas'ta bir program sayfasının ekran görüntüsü, ~10 dk); yanlış çıkarsa marka zararı pahalı |
| 6 | **Rybbit paneli:** ekip trafiğini dışla + Web Vitals'ı aç | — | **İkisini de yap.** 21–22 Eylül'de panelde görünen trafiğin **%70'i bizdik**; filtresiz bakan biri "25 ödeme başlatıldı" görür, hepsi iç. Filtre açılmazsa 2 Kasım'daki okuma da çöp olur | ~12 dk toplam, tamamen geri alınabilir panel ayarı |
---
## §6 Diğer ajanlara açık sorular (Tur 3)
- **`analitik`:** (1) Öncelik #4'ü düşür — `/bolum` sayfasında form var ve üstte; `/bolum` mobilin 8 puan kötü olmasının sebebi köprü eksikliği değil, başka bir şey. Aynı iki sayfa tipinde **form altı davranış** (`cta_form_goruntulendi` → `sira_girildi`) ayrıştırılabilir mi? (2) `netler_goruntulendi` olan oturumlarda açılıştan **önceki** sayfa sayısı nedir? Niyetin önceden mi geldiğini (ters nedensellik) ayırmanın en ucuz yolu bu. (3) P4 sonrası `sihirbaz_adim{1}` serisinin kırılma tarihini raporlarında sabit dipnot yap.
- **`tasarimci`:** K5 onaylanırsa 3. adım tek soruya inince modal yüksekliği ve "Adım 3/3" göstergesi nasıl durur — tek ekran taslağı (kod değil). Ayrıca R7 (48 yerde `text-slate-400`) tek commit'lik sistematik bir işe sığar mı, yoksa parça parça mı?
- **`veri-muhendisi`:** P3'te `URAP_YAYIN` sabiti "[doğrulanmalı]" işaretli — kaynak bulunamazsa sabiti hiç koyma, dipnotta yalnız dönemi ("2025-2026") göster. P2'de düzeltme sonrası `programs_arsiv` tarafında aynı kurumların satırları var mı, varsa etiketleri tutarlı mı?
- **`yapay-zeka-muhendisi`:** Bilal §5-2'ye "evet" derse: liste üretimi paketsize ücretsiz olduğunda kötüye kullanım sınırı **hangi eşikte** olmalı (kullanıcı/gün) ve eşiğe çarpan kullanıcı ne görmeli? Tek paragraf, yeni ekran önerme.
- **`qa-muhendisi`:** P1–P4 dallarının her biri için, onaylanan kabul kriterlerini doğrulayan en kısa duman testi. Özellikle P2'de 27 programın havuz davranışı (devlet/vakıf filtresi) ve P3'te URAP'ı olmayan bir üniversite sayfasının ızgarasında delik açılmadığı.
- **`urun-yoneticisi`:** Reddettiğim ama backlog'a ait olanlar: K4 (kilitli satır tekrarı), K2, R7, R11, rehber kaydırma olayı, `kategoriBul` baz ad düzeltmesi (BACKLOG #10 ile aynı kök). BACKLOG'a ben dokunmadım.
---
## §7 Bilal'den istenen (3 madde)
1. **§5 tablosundaki 6 soruyu sırayla cevapla** — hepsi sade, hiçbiri teknik. **~15 dk.**
2. **Rybbit panelinde iki ayar:** ekip trafiğini dışla + Web Vitals'ı aç. Yapılmazsa bir sonraki ölçüm turu da kör. **~12 dk.**
3. **URAP izin e-postasını `docs/` altına kaydet** ve URAP'a tek cümle yaz: *"Verdiğiniz adres 2025-2026 yılına ait görünüyor; yeni sıralama yayımlandığında linki ve veriyi biz güncelleyeceğiz, uygun mudur?"* — beklentiyi baştan hizalar. **~7 dk.**