From b63c7e8c87290281fb1656b1ae5eb2bed789d690 Mon Sep 17 00:00:00 2001 From: bilalgursen Date: Wed, 23 Sep 2026 00:22:37 +0300 Subject: [PATCH] docs(gece-vardiyasi): P3 URAP paketi raporu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- docs/gece-vardiyasi/2026-09-22/10-p3-urap.md | 64 ++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 docs/gece-vardiyasi/2026-09-22/10-p3-urap.md diff --git a/docs/gece-vardiyasi/2026-09-22/10-p3-urap.md b/docs/gece-vardiyasi/2026-09-22/10-p3-urap.md new file mode 100644 index 0000000..9b714db --- /dev/null +++ b/docs/gece-vardiyasi/2026-09-22/10-p3-urap.md @@ -0,0 +1,64 @@ +# 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), `` + +## Ö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 `` 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: ``; 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//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 ? : 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//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.