Files
kolaytercih/docs/gece-vardiyasi/2026-09-22/10-p3-urap.md
bilalgursen b63c7e8c87 docs(gece-vardiyasi): P3 URAP paketi raporu
Kabul kriterleri 6/6, atıf şartının karşılandığı yerler, şartnameden
4 sapma ve P2 ile merge kesişmesi.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-23 00:22:37 +03:00

9.3 KiB
Raw Blame History

10 · P3 — URAP tek sayı: "Tür" kartıyla takas

Rol: yazilimci · Dal: gece/0922-urap · Tarih: 23 Eylül 2026 Commit'ler: 68cb69e (veri sabiti), 4932671 (okuma katmanı + kart takası + kaynak satırı + veri-kalite), <bu rapor>

Özet (5 madde)

  1. src/lib/urap-siralama.ts eklendi: 198 üniversitenin URAP Türkiye 2025-2026 sırası, /universite/[slug] slug'ına anahtarlı sabit + URAP_KAYNAK_URL, URAP_DONEM, URAP_TOPLAM + urapSirasiBul(). Yeni DB dosyası, göç, cron, çekme betiği yok.
  2. Üniversite sayfası metrik ızgarasında takas yapıldı: URAP'ta olan üniversitede "Tür" kartının yerini URAP TÜRKİYE · 18 / 198 · 2025-2026 alıyor; olmayan 31 kurumda "Tür" yerinde duruyor. Kart sayısı 4'te kaldı, lg ızgara şablonu değişmedi, yeni bileşen icat edilmedi.
  3. Tablonun altına ayrı ikinci kaynak satırı eklendi; VeriKaynagi kullanılmadı ve kopyalanmadı. Satırda dönem, payda, metodoloji uyarısı ve urapcenter.org'a gerçek <a href> var (rel="noopener", yeni sekme, nofollow yok, adres sabitten).
  4. scripts/veri-kalite.ts'e dosyanın en sonuna 5 URAP kontrolü eklendi (mevcut satırlar yeniden düzenlenmedi; main() içine yalnız tek satırlık çağrı girdi). Beşi de geçiyor: 198/198 eşleşme, kesintisiz sıra, azalan puan, 31 kurumluk kapsama boşluğu.
  5. pnpm exec next typegen + tsc --noEmit + pnpm lint + pnpm build temiz; doğrulama üretilmiş statik HTML üzerinden yapıldı (tarayıcı/dev sunucusu açılmadı).

Değişen dosyalar

Dosya Ne
src/lib/urap-siralama.ts (yeni, 242 satır) 198 satırlık URAP_SIRA sabiti + URAP_DONEM/URAP_TOPLAM/URAP_KAYNAK_URL + urapSirasiBul(); dosya başındaki yorumda atıf şartı yazılı
src/lib/katalog.ts (+7) UniDetay'e tek alan: urap: UrapSira | null; getUniversiteBySlug dönüşünde urapSirasiBul(slug)
src/features/katalog/components/universite-icerik.tsx (+89/−10) Kart takası + UrapKaynakSatiri bileşeni (aynı dosyada, ızgaranın altındaki kaynak satırı)
scripts/veri-kalite.ts (+89) Dosya sonuna urapKontrolleri() (5 kontrol) + main() sonunda tek satır çağrı + 3 satır import

Veri kaynağı: docs/gece-vardiyasi/2026-09-22/05-urap.md §1-2'de tarif edilen çıkarım (rankings.byurlandgroup, 198 satır), veri mühendisinin scratchpad'e bıraktığı urap-2025.txt. Hiçbir sıra, ad ya da puan elle uydurulmadı; slug'lar üretimden önce DB'deki 322 ham üniversite adından uniSayfaSlug ile türetilen kümeyle karşılaştırıldı (198/198 tuttu, 0 karşılıksız).

Kabul kriterleri — 6/6

# Kriter Durum Nasıl doğrulandı
1 URAP'ta olan sayfada 4 kart, "Tür" yerinde URAP; olmayanda 4 kart, "Tür" duruyor; hiçbir sayfada "—"/boş kutu yok ✔ Üretilmiş statik HTML'den metin çıkarımı: koc-universitesi → "Program 53 · Fakülte/Birim 7 · URAP Türkiye 1 / 198 · 2025-2026 · En iyi sıralama 65"; bogazici-universitesi → "URAP Türkiye 18 / 198"; dogu-akdeniz-universitesi → "Program 276 · Fakülte/Birim 17 · Tür Kktc · En iyi sıralama 9.061"
2 URAP sayısının göründüğü her sayfada aynı ekranda aktif atıf linki ve dönem var ✔ koc-universitesi.html içinde: <a href="https://newtr.urapcenter.org/Rankings/2025-2026/GENEL-SIRALAMASI-2025" target="_blank" rel="noopener" …>; HTML'de nofollow geçmiyor. Dönem hem kartta (2025-2026) hem kaynak satırında. Sayı yalnız 1. sayfada çiziliyor, kaynak satırı da yalnız 1. sayfada
3 veri-kalite kontrolleri geçiyor, eşleşmeyen slug sessizce düşmüyor ✔ pnpm veri-kalite --yil 2026 --db data/yokatlas.db → 5 URAP satırı: "GEÇTİ … 198 slug'ın tamamı DB'de var", "kayıt 198, URAP_TOPLAM 198", "1..198 kesintisiz", "1152.91 → 70.82", "bilgi URAP dışında 31 kurum". Sonuç: 0 ZORUNLU kaldı (3 uyarı önceden var olan uyarılar, URAP'la ilgisiz)
4 Renk yok, rozet yok, /universiteler hub'ında URAP'a göre sıralama/filtre yok ✔ Kart mevcut rounded-xl border-slate-200 bg-white kutusunun içinde, metin text-slate-900/text-slate-500; SectionEyebrow/Badge kullanılmadı, yeni renk sınıfı girmedi. universite-listesi.tsx ve hub sayfaları hiç açılmadı (git diff --stat: 4 dosya)
5 24'lük listeye, /sonuc tablosuna ve LLM prompt'una URAP girmez ✔ Dokunulan dosya kümesi bunu dışlıyor; src/lib/urap-siralama.ts'i içe aktaran yalnız katalog.ts, universite-icerik.tsx ve veri-kalite.ts
6 tsc + lint + build temiz ✔ next typegen ✓, tsc --noEmit çıktısız, pnpm lint çıktısız, pnpm build "Compiled successfully" + BUILD_ID üretildi (229 üniversite sayfası prerender). Build günlüğündeki BetterAuthError/Cal Sans uyarıları önceden var, worktree'de .env olmamasından

Atıf şartı nerede karşılanıyor

  • Veri dosyasının başında (src/lib/urap-siralama.ts yorumu): izin şartı ve "link konulamayan yüzeyde sayı gösterilmez" kuralı yazılı — sonraki geliştirici sabiti başka bir yüzeye taşırken şartı görür.
  • Ekranda (UrapKaynakSatiri): tablonun altında, VeriKaynagi'den ayrı ikinci satır. Kanonik cümle birebir: "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." Adres URAP_KAYNAK_URL sabitinden geliyor, elle yazılmadı.
  • OG görselinde URAP yok: opengraph-image dosyalarına dokunulmadı, uni.urap oraya hiç ulaşmıyor.
  • Boş durumda (31 kurum) sayı olmadığı için link de yok; yalnız tek cümlelik açıklama var. Şart "sayının göründüğü yüzey" için; burada sayı görünmüyor.

Şartnameden sapmalar

  1. Kaynak satırı yalnız 1. sayfada çiziliyor. Şartname "tablonun altına" diyor; üniversite tabloları sayfalanıyor (/universite/<slug>/sayfa/2…) ve metrik ızgarası yalnız 1. sayfada var. URAP sayısı 2. sayfada görünmediği için kaynak satırını da orada çizmedim — aksi hâlde sayfa 2'de bağlamsız bir URAP cümlesi kalırdı. Tersi isteniyorsa tek koşul kaldırılır ({ilkSayfa ? <UrapKaynakSatiri … /> : null}).
  2. Boş durum cümlesinin varyant seçimi unitur üzerinden. KKTC / YURTDISI KAMU / YURTDISI VAKIF → "URAP yalnız Türkiye'deki üniversiteleri sıralıyor."; diğerleri → "…2025-2026 listesinde yer almıyor." P2 ile kesişme: P2'nin düzelteceği 3 kurum (Kıbrıs Amerikan, Uluslararası Balkan, Uluslararası Saraybosna) bugün DEVLET etiketli olduğu için ikinci cümleyi alıyor. İki cümle de doğru, ama P2 merge edildikten sonra bu üç sayfa kendiliğinden doğru varyanta geçer — ek kod gerekmiyor.
  3. 5. veri-kalite kontrolü şartnamedekinden farklı. Veri mühendisinin önerisi "bir önceki döneme göre listeden düşen üniversite" idi; elimizde önceki dönemin sabiti olmadığı için bunu koşturmak mümkün değil. Yerine aynı riski (sessiz düşme) yakalayan bir kontrol yazdım: URAP dışında kalan 150+ programlı bir Türkiye üniversitesi varsa UYARI — bu neredeyse her zaman ad değişikliği demektir. Bugün 0 (en büyük eksik Türkiye kurumu Mudanya, 78 program).
  4. veri-kalite.ts'e 3 satır import eklendi (dosyanın en sonuna değil, import bloğunun sonuna). Kontrol gövdesi dosyanın en sonunda, main() içinde yalnız tek satırlık çağrı var; mevcut satırlar yeniden düzenlenmedi. P2 ile çakışma yüzeyi bu 4 satır.

Merge sonrası doğrulanması gerekenler

  • P2 (gece/0922-unitur-kacagi) merge edildikten sonra: dogu-akdeniz-universitesi dışında, düzeltilen 3 kurumun sayfasında boş durum cümlesinin "URAP yalnız Türkiye'deki üniversiteleri sıralıyor." varyantına geçtiği. Kod değişikliği gerekmez, yalnız gözle bakılır.
  • scripts/veri-kalite.ts merge'ü: P2 aynı dosyaya "baz ad başına tek unitur" kontrolü ekliyor. Çakışma beklenen yer import bloğunun sonu; iki taraf da birleştirildikten sonra pnpm veri-kalite --yil 2026 --db data/yokatlas.db bir kez koşturulmalı (0 ZORUNLU bekleniyor).
  • Yayın sonrası: /universite/bogazici-universitesi ve /universite/dogu-akdeniz-universitesi canlıda açılıp kartın 4'te kaldığı ve kaynak satırındaki linkin URAP sayfasına gittiği bir kez doğrulanmalı.

Gözlem (kapsam dışı, düzeltilmedi)

"Tür" kartı artık yalnız URAP'ta olmayan 31 kurumda görünüyor ve bunların çoğu KKTC/yurt dışı. trBaslikDuzeni bu değerleri "Kktc", "Yurtdisi Kamu" diye yazıyor — eskiden de böyleydi ama şimdi bu yazım yalnız o sayfalarda kaldığı için daha görünür. Şartnamede yok, dokunmadım; backlog önerisi.

Bilal'den istenen

  1. URAP izin e-postasını docs/ altına koy (kanıt) — CEO kararı §5-3'te de yazıyor. ~2 dk.
  2. İki sayfayı gözle gör: /universite/bogazici-universitesi (URAP 18/198 kartı + alttaki kaynak satırı) ve /universite/dogu-akdeniz-universitesi ("Tür" kartı yerinde + tek cümlelik boş durum). ~3 dk.
  3. Karar: kaynak satırı derin sayfalarda (/universite/<slug>/sayfa/2) da görünsün mü? Bugün görünmüyor, çünkü orada URAP sayısı da yok (sapma #1). ~1 dk.