Files
kolaytercih/docs/ekip/KARARLAR.md
2026-09-25 01:24:46 +03:00

31 KiB
Raw Blame History

Karar günlüğü

Yalnızca sona eklenir. Sahibi ceo ajanı (ve Bilal). Verilmiş karar silinmez; değişecekse yeni kayıtla, gerekçesiyle değiştirilir ve eskisine atıf yapılır. Kurallar: docs/ekip/PROTOKOL.md.

Kayıt biçimi:

## YYYY-AA-GG — <kısa başlık>
- Karar: …
- Yetki: [KARAR] | [BİLAL] (Bilal onayladı / bekliyor)
- Gerekçe: … (kanıt: rapor/dosya:satır)
- Yerine geçtiği karar: — | <tarih — başlık>

2026-09-21 — Onay dalı (entegrasyon/kararlar-0921) canlıya çıkar

  • Karar: + anında ekleme, YÖK logosu→tarihli satır, Armut fiyat kıyası (1.000–3.000 TL), "İş bulma kolaylığı" çipi, tadımlık olasılık dili ve Lenis'in kaldırılması yayına alınır; öncesinde bağımsız kod denetimi koşulur. Deploy tarihi buraya not edilir (Rybbit'te program_eklendi serisi o günden itibaren "gerçek ekleme"dir).
  • Yetki: [BİLAL] (Bilal onayladı)
  • Gerekçe: 82 kapı açılışının 77'si eklemeden döndü (gece vardiyası 2026-09-21, 01-analitik-bulgular, 11-ceo-kararlari-tur2 #12–13).
  • Yerine geçtiği karar: —

2026-09-21 — "Garanti" dilim etiketi "Güvenli" olur

  • Karar: Yalnız görünen etiket değişir; iç anahtar garanti kalır. "Güvenli · Güvenli" tekrarını önlemek için risk etiketi yalnız dilim varsayılanından farklıysa gösterilir. Dal: entegrasyon/guvenli-etiket.
  • Yetki: [BİLAL] (Bilal onayladı)
  • Gerekçe: "Garanti vermiyoruz" ana vaadiyle çelişen tek kelime (05-ceo-kararlari #2, 11-ceo-kararlari-tur2 #2, envanter 10-marka-seo-tur2 §A).
  • Yerine geçtiği karar: —

2026-09-21 — Döngü 2 kodları bağımsız denetimden geçer

  • Karar: Yayından önce kod-denetcisi koşulur; kapsam onay dalı + p5 + commit'lenmemiş ödeme değişikliği.
  • Yetki: [BİLAL] (Bilal onayladı)
  • Gerekçe: SABAH-OZETI §7 — döngü 2 dalları denetlenmemişti.
  • Yerine geçtiği karar: —

2026-09-21 — Ödeme butonu değişikliği tamamlanır

  • Karar: baslatOdeme'nin redirect() fırlatmak yerine hedef döndürmesi + SatinAlForm'un client'ta yönlendirmesi tamamlanıp denetimden sonra commit'lenir.
  • Yetki: [BİLAL] (Bilal onayladı)
  • Gerekçe: Geri dönen kullanıcıda butonun tıklamaya sağır kalması (docs/odeme/iyzico.md, odeme-actions.ts yorumu).
  • Yerine geçtiği karar: —

2026-09-21 — /hakkinda ve satıcı kimliği şimdilik ertelendi

  • Karar: Şimdilik yapılmıyor; sezon öncesi yeniden gündeme alınır.
  • Yetki: [BİLAL] (Bilal onayladı)
  • Gerekçe: Bilal'in önceliği değil (05-ceo-kararlari #5). Not: ödeme alındığı için satıcı bilgisi zorunluluğu riski açık kalıyor.
  • Yerine geçtiği karar: —

2026-09-21 — Hukukçu tutulmayacak; hukuki konular içeride çözülür

  • Karar: Ekim hukuki gözden geçirmesi iptal. Gizlilik/koşullar metni, kredi hatırlatma e-postasının ticari ileti sınıfı ve session replay konularını ekip (guvenlik-uyum) + Bilal kendisi kapatır.
  • Yetki: [BİLAL] (Bilal onayladı)
  • Gerekçe: Bilal'in kararı (05-ceo-kararlari #10, 11-ceo-kararlari-tur2 #16).
  • Yerine geçtiği karar: —

2026-09-21 — Katalog başlık paketi (P7) ve e-posta paketi (P4) yayına alınır

  • Karar: gece/p7-katalog ve gece/p4-eposta denetimden geçerse onay dalına eklenir. Yanıt adresi destek@kolaytercih.com (koddaki varsayılan; ayrı secret gerekmez).
  • Yetki: [BİLAL] (Bilal onayladı)
  • Gerekçe: Derin katalog sayfalarında kopya başlık; giriş e-postasına yanıtların bounce olması (SABAH-OZETI §2, 04-mail-testi).
  • Yerine geçtiği karar: —

2026-09-21 — Şema fontu ücretsiz alternatifle değiştirildi

  • Karar: Sweet Cucumber Mocktail (yalnız kişisel kullanım) → Patrick Hand (SIL OFL). Commit 0400aa5.
  • Yetki: [BİLAL] (Bilal onayladı)
  • Gerekçe: Site ticari; lisans satın alınmayacak (el-cizimi-sema.tsx eski yorumu).
  • Yerine geçtiği karar: —

2026-09-21 — 2026 yerleştirme verisi çekilir

  • Karar: veri-muhendisi 2026 verisini resmî kaynaktan çeker; canlı DB'ye yazmadan önce kopya üzerinde kalite kontrolü yapılır.
  • Yetki: [BİLAL] (Bilal onayladı)
  • Gerekçe: Veri raporu, karne ve 2027 içerikleri buna bağlı (05-ceo-kararlari #11, docs/geo/geo-raporu.md T8).
  • Yerine geçtiği karar: —

2026-09-21 — Yayın kaydı: onay paketi canlıya gönderildi (8f4669e)

  • Karar: main a834f5f → 8f4669e push edildi (21 Eylül 2026). İçerik: + anında ekleme, tadımlık olasılık dili, YÖK logosu→tarihli satır, Armut kıyası, Güvenli etiketi, P4 e-posta, P7 katalog başlıkları, Patrick Hand şema fontu, ödeme butonu + çift paket koruması, denetim düzeltmeleri. Rybbit notu: program_eklendi bu tarihten önce "+ tıklaması", sonrası "gerçek ekleme"; cta_form_goruntulendi artık /bolum sayfalarında da atılır.
  • Yetki: [BİLAL] (Bilal onayladı)
  • Gerekçe: İki bağımsız kod denetimi + ödeme güvenlik denetimi "yayına alınabilir"; build push edilen commit üzerinde temiz worktree'de geçti.
  • Yerine geçtiği karar: —

2026-09-21 — Açık kalanlar (denetimlerden; karar bekliyor)

  • Karar: (1) Ödemede paid damgası ile kredi yazımı ayrı transaction — araya kesinti girerse para çekilir kredi yazılmaz; sıra çevrilmeli. (2) Çift paket ödemesi olursa politika: otomatik iade mi, kredi mi. (3) baslatOdeme'de hız sınırı / eski pending sipariş temizliği. (4) iyzico'ya giden alıcı IP'sinin güvenilir başlıktan alınması (devops teyidi). (5) 2026 verisi: refresh.ts/detay.ts yaması + okuyan taraftaki yıl sabitleri + kodu değişen programların çift satırı — tek iş. (6) Prod'da pnpm tadimlik --force (prompt değişti).
  • Yetki: [BİLAL] (bekliyor)
  • Gerekçe: guvenlik-uyum ödeme denetimi B1–B4, veri-muhendisi 2026 keşfi, kod-denetcisi bulgu 6 (21 Eylül 2026 gündüz oturumu).
  • Yerine geçtiği karar: —

2026-09-21 — Ödemede önce kredi sonra paid; çift paket ödemesi iade edilir

  • Karar: (1) odemeyiSonuclandir krediyi yazıp sonra paid damgalar; deftersiz eski paid siparişler ilk ziyarette onarılır. (2) Zaten paketli kullanıcıdan gelen ikinci paket ödemesine kredi yazılmaz, tutar iade edilir; iade iyzico panelinden ELLE yapılır (destek@ kutusuna "İade gerekli" e-postası + senkron log + /odeme/sonuc iade kartı + /kosullar#iade paragrafı, "en geç 14 gün"). Haftalık mutabakat sorgusu docs/odeme/iyzico.md'de. Yayın: 024a2a4 (21 Eylül 2026).
  • Yetki: [BİLAL] (Bilal onayladı)
  • Gerekçe: guvenlik-uyum B1–B2 ve ikinci denetim (#1–#6); test sırasında drizzle'ın UNIQUE hatasını sarması yüzünden idempotent no-op'un hiç çalışmadığı bulundu ve düzeltildi.
  • Yerine geçtiği karar: 2026-09-21 — Açık kalanlar, madde (1) ve (2)

2026-09-21 — 2026 verisi tek iş olarak yüklenir (CTO şartnamesi)

  • Karar: P-0 sözleşme (src/lib/veri-yillari.ts, 38e02e0) → P-A betikler+DB (veri-muhendisi, dal veri/2026) → P-B okuyan taraf ∥ P-C metin+şema (yazilimci). Çift satır, sorgu koşuluyla değil DB inşasında programs_arsiv'e taşınarak çözülür. Rapor promptu son 4 yılı göndermeye devam eder. Kontenjan kırılımı 2026 kolonları eklenmez. Rehber yazılarındaki 2025 atıfları ayrı iş.
  • Yetki: [BİLAL] (iş onaylandı) · iki alt karar bekliyor: "son 6 yıl (2021–2026)" metni; kılavuzda olmayan ~2.800 eski satırın siteden kalkması (en çok 22 bölüm adı + 1 üniversite sayfası kapanır)
  • Gerekçe: cto şartnamesi, 21 Eylül 2026 gündüz oturumu; veri-muhendisi keşfi.
  • Yerine geçtiği karar: 2026-09-21 — Açık kalanlar, madde (5)

2026-09-21 — "Son 6 yıl (2021–2026)"; kılavuzda olmayan eski program kayıtları siteden kalkar

  • Karar: (1) Veri penceresi kaymaz, uzar: site "son 6 yıl (2021–2026)" der. (2) Son kılavuzda yer almayan ~2.800 eski program satırı DB inşasında programs_arsiv'e taşınır; aday havuzuna yalnız son kılavuzdaki programlar girer (meraklısına şeması aynı işte güncellenir). En çok 22 bölüm adı + 1 üniversite sayfası kapanır; kapanan slug listesi seo-geo'ya gider (404 mü yönlendirme mi).
  • Yetki: [BİLAL] (Bilal onayladı)
  • Gerekçe: cto şartnamesi madde 3–4; kayıtlı rapor/tadımlık siraGecmisi dizileri 2021'e demirli, pencere kayarsa eski kayıtlar yanlış yıla okunur; eski kod satırları öğrenciye tercih edilemeyecek program önerebiliyor.
  • Yerine geçtiği karar: 2026-09-21 — 2026 verisi tek iş olarak yüklenir (bekleyen iki alt karar)

2026-09-21 — Arşivleme gerçek sayılarla yeniden onaylandı; 2026 verisi denetimden sonra canlıya çıkar

  • Karar: Son kılavuzda olmayan 3.706 program satırı (tahmin 2.800'dü) programs_arsiv'e taşınır; 25 /bolum + 2 /universite sayfası kapanır (liste: veri-muhendisi P-A raporu; büyükleri spor-yoneticiligi 113, radyo-ve-televizyon-programciligi 70, uygulamali-ingilizce-cevirmenlik 47, spor-yonetimi 35; üniversiteler izmir-kavram-meslek-yuksekokulu, kibris-ilim-universitesi). veri/2026-entegrasyon dalı kod denetimi temiz çıkınca ve build push edilecek commit'te doğrulanınca main'e alınıp push edilir.
  • Yetki: [BİLAL] (Bilal onayladı)
  • Gerekçe: Öğrenci kılavuzda olmayan programı tercih edemez; P-A kalite raporu (2025 ve öncesi değerler 0 fark, sira2026/sira2025 oranı %99,12 makul aralıkta).
  • Yerine geçtiği karar: 2026-09-21 — "Son 6 yıl (2021–2026)"; kılavuzda olmayan eski program kayıtları… (sayılar güncellendi)

2026-09-21 — Yayın kaydı: 2026 yerleştirme verisi canlıda (d275e4d, 49683fa)

  • Karar: veri/2026-entegrasyon 21 Eylül 2026 18:51'de main'e alındı (d275e4d), ardından 49683fa (kayıtlı manuel liste tabanlarının yeni veri yılına tazelenmesi + 4 rehber yazısında yıl metinleri) ile birlikte push edildi. Sitedeki taban sıraları, risk hesabı ve liste önerileri bu tarihten itibaren 2026 verisiyle çalışır; 3.706 eski program satırı arşivde. Geri dönüş noktası: 024a2a4 (2025 verili son sürüm). Not: merge ve push, asıl oturum kullanım sınırındayken başka bir oturumdan yapıldı; o oturumun denetimi 49683fa'daki bulguyu üretti. Asıl oturumdaki bağımsız kod-denetcisi turu yarıda kesildiği için YAYIN SONRASI denetim olarak origin/main @ 49683fa üzerinde sürdürülüyor.
  • Yetki: [BİLAL] (Bilal onayladı)
  • Gerekçe: git geçmişi (d275e4d, 49683fa); Bilal'in aynı günkü yayın onayı.
  • Yerine geçtiği karar: —

2026-09-21 — Yayın sonrası denetim: canlıda kalabilir; düzeltme paketi hazır (75fc12d, push bekliyor)

  • Karar: kod-denetcisi origin/main @ 49683fa için "canlıda kalabilir, geri alma gerekmez" dedi (kritik 0, yüksek 2, orta 2, düşük 2). Hazırlanan paket fix/2026-yayin-sonrasi @ 75fc12d (typegen+tsc+lint+build temiz): (B1) tadımlık örneği tabanı/geçmişi canlı DB'den okur, arşivlenmiş program örnek gösterilmez; (B3) sunucuylaBirlestir riskleri her zaman yeniler; (B2) kılavuz kodu başka programa devredilmiş 30 satırın kimliği onarıldı (29 devir + 1 ad değişimi; eski kimlikler programs_arsiv'e kopyalandı, refresh artık kimlik uyuşmazlığında yazmadan duruyor, veri-kalite'de kimlik kontrolü). 3 /bolum sayfası daha kapanır (taki-tasarimi, islam-bilimleri, endustri-yonetimi-muhendisligi — yalnız yanlış etiketli satırlardan oluşuyordu). B4 (8.631 satırda burs/dil ekli ad) UYGULANMADI: kategoriBul ham isme regex uyguladığı için ek metni sihirbaz kategorisine sızıyor; önce kategoriBul baz ada geçirilmeli, sonra refresh --isim-esitle.
  • Yetki: [BİLAL] (push onayı bekliyor) · ayrıca bekleyen: kapanan 27+3 sayfa için yönlendirme kararı; B4 için tek satırlık kategori düzeltmesi; prod'da pnpm tadimlik --force
  • Gerekçe: yayın sonrası kod-denetcisi raporu (B1–B6) ve veri-muhendisi kimlik onarımı raporu, 21 Eylül 2026.
  • Yerine geçtiği karar: —

2026-09-21 — Gece oturumu: tadımlık canlıya yüklendi; ödeme formu 17:00'den beri çalışıyor; beş karar

  • Karar: (1) Canlı tadimlik_havuzu 0 satırdı; dış modele gidilmeden elle yazılmış 522 satır (375 tekil gerekçe; risk notu ve trend koddan) konteynere node yükleyiciyle yüklendi — deploy tohumu yalnız ilk kurulumda kopyaladığı için tadımlık deploy'la taşınmaz. Prod'da pnpm tadimlik --force maddesi böylece kapandı; tadımlık için LLM koşusu varsayılan yol değildir. (2) Prod orders: 7 Ağu–12 Eyl arası ~100 siparişin hiçbiri iyzico token'ı alamamış (form hiç açılmamış); 24 Ağu ve 12 Eyl'deki iki gerçek kullanıcı bu yüzden kayboldu. 21 Eyl 17:00 diliminde 7/7 sipariş token aldı → fix(odeme) (8f4669e, 024a2a4) tuttu; uçtan uca tamamlanmış ödeme henüz yok, Bilal tarayıcıdan bir kez deneyecek. (3) fix/2026-yayin-sonrasi @ 75fc12d push edilir. (4) Kapanan 27+3 katalog sayfası benzer sayfaya kalıcı yönlendirilir (soft 404 yerine). (5) Ana sayfa karşılaştırma tablosu yeniden kurulur (ücretsiz robotların artık yapay zekâ sunduğu kabul edilir). (6) /paket girişsiz CTA "ilk 3 tercihini ücretsiz gör" olur. Açık: vakıf üniversitelerinin adıyla doluluk oranı yayımı (yazı sırası gelince).
  • Yetki: [BİLAL] (Bilal onayladı)
  • Gerekçe: docs/ekip-raporlari/2026-09-21/ 01 (QA), 03 (analitik §4), 04 (marka §7 #1–#2), 05 (SEO T1); prod orders ve tadimlik_havuzu sorguları (21 Eyl 2026 gece, Bilal sunucuda koştu).
  • Yerine geçtiği karar: 2026-09-21 — Yayın sonrası denetim… (bekleyen push onayı, yönlendirme kararı ve tadimlik --force maddeleri)

2026-09-22 — Sevk sorunu: sıra "önce çelişkiyi kaldır, sonra ölü ucu bağla", yeniden tasarım ertelendi

  • Karar: 22 Eyl gündüz oturumunda dört ajanın (analitik/tasarım/marka/yapay zekâ) tek soruya verdiği dört farklı "en yüksek etkili iş" önerisi şu sıraya kondu ve bu hafta 5 iş onaylandı: P1 sezon çelişkisi (icerik/sezon-celiskisi), P2 liste_uretim_basladi olayı (olcum/liste-uretim-basladi), P3 + ölü ucu (funnel/arti-olu-ucu), P4 girişli kullanıcıya kalıcı /listem girişi + giriş callback'i (funnel/listem-girisi), P5 tadımlık CTA'sının yanlış vaadi ve hedefi (icerik/tadimlik-vaat). Hepsi S; P2 önce merge edilir ve P3/P4 ile aynı yayında çıkar (payda olmadan huni değişikliği okunamaz). Sezon dışı olduğu için A/B yok, oran yok: kabul ölçüsü adet (haftalık olay sayısı).
  • Yetki: [KARAR] (P2, P3, P4; P1 ve P5'in yanlış/çelişkili cümleyi kaldıran kısmı) · [BİLAL] (P1'de bandın yeni sezon metni, P5'te tadımlık CTA'sının yeni cümlesi — ayrı [Bilal] commit'i olarak hazırlanır)
  • Gerekçe: Dört iddia da koddan doğrulandı — navbar'da /listem linki yok ve giriş callback'i "/" (src/components/site-header.tsx:8-38, src/features/kullanici/components/user-nav.tsx:45-64, src/features/kullanici/components/giris-karti.tsx:18-19); + kapısı sihirbazın 3 adımını doldurtup profilTamamlandi'nın null dalında bırakıyor (src/features/liste/components/program-ekle-butonu.tsx:82, liste-cekmecesi.tsx:293, use-tercih-profili.ts:346, toast tercih-profili-kapisi.tsx:238) ve bu, 30g'deki en büyük sıra kaynağı (14/28 olay, 01-ai-listesi-hunisi §1d); üst bant bugün "Tercih dönemi sona erdi" (src/components/site-top-banner.tsx:7-8,64) derken aynı sayfada CTA "Tercih dönemi bitmeden yerini al" diyor (src/features/pazarlama/components/hero-focus-button.tsx:45,65 — her iki dalda da); tadımlık CTA'sı "24 satırın tamamı için giriş yap" diyor ama maske 3 satır açıyor ve callback /sonuc'a düşüyor (tadimlik-satiri.tsx:111,186, src/lib/rapor-maske.ts:12).
  • Yerine geçtiği karar: —

2026-09-22 — /sonuc'ta LLM'siz 24 satırlık önizleme ve diğer yeniden tasarımlar bu hafta yapılmaz

  • Karar: Yapay zekâ mühendisinin "senin 24'lük iskeletin" önizlemesi (0 LLM, 04-uretim-engelleri §3), tasarımcının Ö2 (mobil katalog satırı), Ö4 (/sonuc sıralamasının tersine çevrilmesi) ve markanın H2/H3 (hero alt başlığı, katalog CTA metni) işleri ertelendi; sıradaki turda önce CTO şartnamesi yazılır. Ertelemeyen tek istisna /sonuc H1'i (src/app/sonuc/page.tsx:98-102 arasında bugün hiç <h1> yok) — gelecek turun ilk işidir. Deneme maskesinin gevşetilmesi (3→8 satır) gelir modeli kararıdır, Bilal'e bırakıldı.
  • Yetki: [KARAR] (erteleme) · [BİLAL] (maske/gelir kararı)
  • Gerekçe: Sezon 10 Ağu 2026'da kapandı; hız ~95 ziyaret/hafta ve haftada ~0,5 liste (01-ai-listesi-hunisi §5.1). Bu hacimde hiçbir oran makul sürede okunamıyor (§5.2: en iyi aday bile ~6 hafta, /listem→liste ~36 hafta) ve A/B her kolu 47 ziyaret/haftaya düşürür. Bu hafta onaylanan 5 iş "ölçülemeyecek deney" değil, koddan kesin gösterilmiş kusur ve çelişki düzeltmesidir. Kurucunun inceleme kapasitesi günde 1–2 saat (docs/urun/vizyon.md); onaylanan iş = inceleme borcu.
  • Yerine geçtiği karar: —

2026-09-22 — Gece vardiyası Tur 2: bu gece 4 iş onaylandı, gerisi reddedildi

  • Karar: Sezon dışı + okunamaz örneklem (801 temiz oturum, 3 liste üretimi, 5 kilit görüntüleme, 0 tamamlanmış ödeme) gerçeğiyle bu gece yalnız dört iş onaylandı; dördü de "yanlış olanı düzelt" ya da "ölç" sınıfında, hiçbiri deney değil. P1 gece/0922-risk-etiketi, P2 gece/0922-unitur-kacagi, P3 gece/0922-urap, P4 gece/0922-olcum. Push ve merge yok.
  • Yetki: [KARAR]
  • Gerekçe: Bilal'in gece ölçütü ("kolay akış, gereksiz şey yok, over-engineering yasak") + 01-analitik.md §2/§4 örneklem büyüklükleri; ayrıntı docs/gece-vardiyasi/2026-09-22/06-ceo-kararlari.md.
  • Yerine geçtiği karar: —

2026-09-22 — Riskin adı satırda yazıyla görünür (P1)

  • Karar: /sonuc program tablosunda risk göstergesine metin etiketi eklenir (RISK_ETIKET, tek kaynak src/lib/risk.ts); /listem'de etiketin sr-only sm:not-sr-only sınıfı kaldırılır, mobilde de görünür. Yeni bileşen/sabit/olay yok. Dal: gece/0922-risk-etiketi.
  • Yetki: [KARAR]
  • Gerekçe: AGENTS.md risk dili kuralının iki ihlali — src/features/liste/components/program-tablosu.tsx:306-314 risk yalnız renkli nokta ve aria-hidden, RISK_ETIKET o dosyada hiç kullanılmıyor; src/features/rapor/components/rapor-listesi.tsx:267 etiketi 390px'te gizliyor (trafiğin ~%90'ı mobil). Aynı zamanda 01-analitik.md önceliği #1'in ("karar veren bilgi tıklamasız görünsün") nedensellik iddiası gerektirmeyen parçası.
  • Yerine geçtiği karar: —

2026-09-22 — Sihirbaz havuzundaki unitur sızıntısı kapatılır (P2, BACKLOG #9)

  • Karar: Kıbrıs Amerikan, Uluslararası Balkan ve Uluslararası Saraybosna için 100 satır unitur + 26 satır il düzeltilir; scripts/unitur-onar.ts'e NULL koşulsuz KURUM_DUZELT haritası, scripts/veri-kalite.ts'e "baz ad başına tek unitur" kontrolü eklenir. Kod ve data/yokatlas.db binary'si AYRI commit'ler. Kapsam dışı: il boş 19 satır, B4 burs/dil adları, kategoriBul. Dal: gece/0922-unitur-kacagi; merge [BİLAL].
  • Yetki: [KARAR] (uygulama) · [BİLAL] (merge, bekliyor)
  • Gerekçe: src/lib/db.ts:79-82 devlet filtresi unitur='DEVLET', vakıf filtresi unitur<>'DEVLET' → öğrenci "devlet" dediğinde havuza 27 program sızıyor, "vakıf" dediğinde aynı 27'si eksik kalıyor. Kök neden ilk CSV ingest'inde (05-urap.md §6.2); unitur-onar.ts'in çelişki koruması tam ad üzerinden çalıştığı için aynı kurumun iki yazımı çelişki sayılmıyor.
  • Yerine geçtiği karar: —

2026-09-22 — URAP yerleşimi: "Tür" kartıyla takas; uyarı ve atıf ayrı kaynak satırında (P3)

  • Karar: /universite/[slug] metrik ızgarasında "Tür" kartının yerine URAP kartı gelir (başlık + 18 / 198 + 2025-2026); ızgara 4 kart kalır, şablon değişmez. Metodoloji uyarısı ve atıf karta değil, tablonun altındaki AYRI ikinci kaynak satırına girer — VeriKaynagi kullanılmaz/kopyalanmaz (dönemi ve tarihi 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." URAP'ta olmayan 31 kurumda kart çizilmez ve "Tür" yerinde kalır (hiçbir sayfada "—" ya da delik yok), eksiklik alttaki kaynak satırında tek cümleyle söylenir. Atıf şartı 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. Uygulama: src/lib/urap-siralama.ts 198 satırlık sabit (uni-koordinatlar.ts deseni) + katalog.ts okuma katmanı + veri-kalite.ts 5 kontrol. Yeni DB dosyası, göç, cron ve çekme betiği YOK. Dal: gece/0922-urap; yayın [BİLAL].
  • Yetki: [KARAR] (uygulama) · [BİLAL] (yayın, bekliyor)
  • Gerekçe: Bilal'in izni (brief §4) + 05-urap.md §2 (198/198 birebir slug eşleşmesi, ek normalleştirme kuralı gerekmiyor) + 02-tasarim.md §6-A (kart sayısı artmıyor; "Tür" üç yerde daha var) + 03-acilar-ve-rakipler.md §5 (tablo gürültü, tek satır ilaç; URAP metodolojisi forumda eleştiriliyor). /universite/* en kalabalık yüzey (01-analitik.md §1: 405 mobil oturum).
  • Yerine geçtiği karar: —

2026-09-22 — URAP bu sürümde yalnız üniversite sayfasında yaşar

  • Karar: URAP sayısı 24'lük liste satırına, /sonuc tablosuna, /universiteler hub'ının sıralama/filtresine ve LLM prompt'una GİRMEZ. "En iyi üniversiteler" listesi/başlığı yapılmaz, URAP'a göre program sıralanmaz, renk dili uygulanmaz (URAP risk dili değildir). 06-uni-veri.md'deki 8 göstergenin hepsinin birden kutu alması reddedilir.
  • Yetki: [KARAR]
  • Gerekçe: 02-tasarim.md §6 (aynı üniversite listede 3 kez geçerse sayı 3 kez tekrarlanır; 8 gösterge = 8 kutu = istemediğimiz tablo yığını), 03-acilar-ve-rakipler.md §5 ("öznel sıralama yok" ilkesi), 04-liste-maliyet-ve-oneriler.md öneri 5 reddi (metin diyeti, rapor.ts:83).
  • Yerine geçtiği karar: —

2026-09-22 — İki ölçüm deliği kapatılır; sihirbaz_adim serisi kırılır (P4)

  • Karar: (1) sihirbaz_adim{adim:1} modal açılışında tam bir kez atılır (bugün yalnız ileri geçişte atıldığı için 1. adım hiç düşmüyor). (2) Kaynaksız 10 /paket linkine ?kaynak= eklenir. Görsel değişiklik yok. Dal: gece/0922-olcum. Ölçüm notu: bu dal yayına girdiği tarihten önceki sihirbaz_adim serisinin paydası farklıdır; öncesi/sonrası karşılaştırılmaz (21 Eylül'deki program_eklendi notuyla aynı mantık).
  • Yetki: [KARAR]
  • Gerekçe: 01-analitik.md §5 delik #1 ve #2; sihirbaz-adimlar.tsx:205 (if (yeniAdim > adim)) ve 14 /paket linkinin 10'unda kaynak parametresi yok (koddan doğrulandı; analitiğin "10/16" sayısı 10/14'tür).
  • Yerine geçtiği karar: —

2026-09-22 — Net/OBP verisinin vitrine çıkarılması: yön doğru, bu gece uygulanmaz

  • Karar: "Net detayını açan oturum 3 kat daha çok sıra giriyor" bulgusu üzerine katalog satırı YENİDEN TASARLANMAZ; bulgunun korelasyon olduğu (ters nedensellik) kabul edilir. Pazarlama cümlesi ("YÖK Atlas'ın kaldırdığı son yerleşen netleri bizde duruyor") iki doğrulama gelmeden yayına GİRMEZ: (a) YÖK Atlas'ta verinin bugün gerçekten olmadığının ekran teyidi, (b) arşiv verisini yayımlamanın uygunluğu. Ayrıca cümlede yıl aralığı ZORUNLU: netler tablosu 2023–2025'i kapsar, 2026'yı kapsamaz (sqlite: 21.341 / 20.813 / 20.821 satır). Net butonunun görünür etiket kazanması da aynı doğrulamaya bağlandı — iki kez yapmamak için.
  • Yetki: [BİLAL] (bekliyor)
  • Gerekçe: 01-analitik.md §1 (GA'lar ayrışıyor ama niyet değişkeni kontrol edilmemiş), 03-acilar-ve-rakipler.md §4 doğrulama notu (kaynak: şikâyet + köşe yazısı; resmî duyuru bulunamadı), program-netleri.tsx:101-102 (buton yalnız ListChecks ikonu + sr-only). Protokol kuralı 9: doğrulanmamış rakam/atıf yayına giremez.
  • Yerine geçtiği karar: —

2026-09-22 — Sezon bandının kaldırılması reddedildi (K1)

  • Karar: site-top-banner.tsx sezon dışında da çizilmeye devam eder. Tasarımcının K1 kesimi reddedildi.
  • Yetki: [KARAR]
  • Gerekçe: Bilal bu bandın sezon-dışı metnini 22 Eylül 01:38'de iki alternatif arasından bizzat seçti (84fc88e, dal bilal/sezon-bant-metni-B) ve "375 px'te alt satıra taşar" bedelini commit mesajında açıkça kabul etti. 02-tasarim.md K1'in kanıtı "koddan çıkarım" bir piksel tahmini; verilmiş kararı bozacak yeni kanıt değil.
  • Yerine geçtiği karar: —

2026-09-22 — K2, K3, K4 ve yapay zekâ B-önerileri bu gece reddedildi

  • Karar: Reddedilenler: K2 (/sonuc boş harita kutusu), K3 (iki giriş panelinden biri), K4 (kilitli satırların tek tek açılması), S1–S8, R3–R11, vaat dili regex denetimi + kurtarma ölçümü, B-1 (tek cümleyle sihirbaz ön-doldurma), B-2/B-3 (hazır çipler), B-4 (veliye e-posta paragrafı), marka'nın "ücretsiz yolu da var" cümlesi, kosullar/page.tsx:15 yorumunun silinmesi. K4, K2, R7, R11 ve rehber kaydırma olayı backlog'a önerildi (BACKLOG'a dokunulmadı, sahibi urun-yoneticisi).
  • Yetki: [KARAR]
  • Gerekçe: K3 için tasarımcının kendi notu ("hangisinin kalacağını rakam belirlemeli", 02-tasarim.md §8) ve kesimin koşullu olması; K4 için izleyici sayısı (tüm zamanlarda kilidi gören 5 gerçek oturum); vaat dili filtresi ve eval için üretilmiş toplam 3 liste; B-1 için sihirbazda kopma olmaması (adım 2→3 geçişi %96,9, tamamlama %80,6); B-4 için tamamlanmış ödeme sayısının sıfır olması. Onaylanan iş = Bilal'in inceleme borcu; bir turda dörtten fazlası onaylanmaz.
  • Yerine geçtiği karar: —

2026-09-22 — Üç rapor iddiası koddan yanlış çıktı; düzeltmeler kayda geçer

  • Karar: (1) "/bolum/[slug] detayında CtaSiraForm hiç yok" iddiası YANLIŞ — form var ve üstte (bolum-icerik.tsx:267 konum="ust", :297 konum="alt"); üniversite tarafında da tablonun üstünde (universite-icerik.tsx:290, :352), analitiğin "tablonun altında" notu da yanlış. Analitik önceliği #4 düşürüldü. (2) "/paket sayfasında iade politikası hiç görünmüyor" iddiası YANLIŞ — paket-satinal.tsx:96'da "Paketi al" butonunun hemen altında /kosullar#iade linki var; konu kapandı. (3) kosullar/page.tsx:15'teki "MVP taslağıdır" bir JS yorumudur, kullanıcıya render edilmez; silinmesi için iş açılmaz. Satıcı kimliği eksikliği ayrı bir konudur ve 21 Eylül kararıyla ertelenmiş durumdadır, yeniden açılmadı.
  • Yetki: [KARAR]
  • Gerekçe: Bu vardiyada CEO'nun kod doğrulaması (06-ceo-kararlari.md §2, satır 4, 14, 15).
  • Yerine geçtiği karar: —

2026-09-22 — "/sonuc parametre şişmesi" bulgusu düşürüldü

  • Karar: 2026-09-21 turunda CTO listesine giren "/sonuc parametre şişmesi" maddesi kapatılır; iş açılmaz.
  • Yetki: [KARAR]
  • Gerekçe: 01-analitik.md §2 — dünkü "143 oturumda 1.602 görüntüleme" iç trafik eseriymiş; gerçek kullanıcıda /sonuc medyanı 1 sayfa görüntüleme, 37 sn (30 gerçek oturum).
  • Yerine geçtiği karar: 2026-09-21 turundaki CTO maddesi (parametre şişmesi)

2026-09-22 — Bilal'e giden altı karar (tavsiyelerle, bekliyor)

  • Karar: (1) Sihirbazın 3. adımındaki "Öncelikler" 7 çipi kalksın mı — tavsiye: kalksın; huni-semasi.tsx bu adımı zaten anlatmıyor, 01-analitik.md §3'e göre tamamlayanların çoğu hiç seçmiyor (20/29, GA %51–83), 04-liste-maliyet-ve-oneriler.md §1 listenin yapısını kodun kurduğunu gösteriyor; alan tipte geriye uyumlu bırakılır. (2) Liste üretimi paketsiz kullanıcıya ücretsiz olsun mu — tavsiye: evet; kredi bir maliyeti karşılamıyor, asıl paywall (maskeleme) değişmiyor, kötüye kullanım kullanıcı başına günlük sınırla kapanır (uretimKilidiAl, 9bd448b). "Veri bekleyelim" seçeneği elendi: karar ekonomiyle veriliyor, örneklem Kasım'dan önce okunur hâle gelmiyor. (3) URAP paketinin yayını + izin e-postasının docs/ altına konması. (4) P2 unitur düzeltmesinin merge'i. (5) Net/OBP vitrin cümlesi için iki doğrulama. (6) Rybbit panelinde iç trafik filtresi + Web Vitals (yayın sonrası trafiğin %70'i iç; 01-analitik.md §6).
  • Yetki: [BİLAL] (altısı da bekliyor)
  • Gerekçe: docs/gece-vardiyasi/2026-09-22/06-ceo-kararlari.md §5.
  • Yerine geçtiği karar: —

2026-09-25 — Kişiselleştirme: güncellik kuralı, v1/v2 ayrımı, profil tasarımı

  • Karar: (1) Güncellik kuralı: yılı gösterilemeyen ya da üç yıldan eski veri ürüne girmez; ÜNİ-VERİ (2014-2019 mezunları) elendi, "İş bulma kolaylığı" ve "Yüksek maaş" çipleri güncel kaynak bulunana kadar kalkar. (2) v1 (main): küçük veri işleri — kadın/erkek oranı üniversite sayfasında bilgi satırı (05402f9); filtre ya da çip yapılmaz. (3) v2 (dal v2, worktree ../kolaytercih-v2): YÖK Atlas API ek alanları (program_ozellik), danışman araçları, kapalı listeli profil, havuzun profili süzmesi. (4) Sihirbaza şimdilik soru eklenmez; tercihler danışmanda toplanır. (5) Geçiş (Ek Madde-1) soran öğrenciye danışman kapısı açılmaz; ayrı sayfa olur. DGS sonraya. (6) Profil kapalı liste (7 alan), serbest metin yok; cinsiyet/sağlık/gelir sorulmaz; profil yalnız liste üretimi ve danışman aramasında kullanılır, pazarlamada kullanılmaz; kayıt öncesi "kaydedeyim mi?" onayı (PROFIL_ONAY_SOR).
  • Yetki: (1)-(5) [BİLAL] (25 Eyl sohbeti); (6) [KARAR] — hukuk araştırmasının C.3 maddelerine dayanır, onay adımının bedeli (bir kredi) Bilal'e sorulacak.
  • Gerekçe: docs/arastirma/2026-09-25-kisisellestirme/README.md §0, §8; hukuk-ve-rakipler.md C.3/10-13.
  • Yerine geçtiği karar: 2026-09-22 "Bilal'e giden altı karar" (1) — öncelik çiplerinin kaldırılması: iki çip kalkar, diğerleri veriye bağlanana kadar durur (Dalga 3).

2026-09-25 — Gizlilik metni kodla çelişiyordu; yurt dışı aktarım dayanağı Bilal/avukat kararı

  • Karar: Gizlilik metnindeki "Anthropic (ABD)" ifadesi yanlıştı (kod: OpenRouter → DeepSeek). v2 dalında metin koda eşitlendi, profil satırı, amaç+hukuki sebep, saklama süreleri, md. 11 hakları ve 18 yaş altı notu eklendi; giriş kartında gizlilik "okudum", koşullar "kabul" oldu. Açık kalanlar: veri sorumlusu unvan/adres; yurt dışı aktarımın dayanağı (Türkiye'de model mi, Kurul standart sözleşmesi mi — açık rıza yolu sürekli aktarım için 2024'ten beri kapalı); saklama süresi sayıları; OpenRouter'da eğitimde-kullanma/saklama ayarı.
  • Yetki: metin düzeltmesi [KARAR] (v2'de, merge Bilal'de); dayanak ve unvan [BİLAL] + avukat.
  • Gerekçe: hukuk-ve-rakipler.md A.2, C.1, C.2 (31 kaynak; KVKK Yurt Dışına Aktarım Rehberi Ocak 2025; İlke Kararı 2026/347).
  • Yerine geçtiği karar: —