# 18 — Yazar raporu: `kac-net-ile-hangi-bolum` **Rol:** rehber-yazari · **Tarih:** 22 Eylül 2026 (gece vardiyası) · **Şartname:** `02-seo-konu-plani.md` §0 + §2 Dalga A #2 **Yazılan tek dosya:** `content/rehber/kac-net-ile-hangi-bolum.md` · Commit atılmadı, `git add` yapılmadı, başka dosyaya dokunulmadı. --- ## Özet (5 madde) 1. **Şartnamedeki en temel iddia yanlıştı ve düzeltildi.** SEO planı (§2 #2) ve görev brief'i `netler` tablosunu "yerleşenlerin gerçekte yaptığı netlerin **ortalaması**" diye tanımlıyor. Veri bunu desteklemiyor: bu tablo YÖK Atlas'ın **"son yerleşen kişinin netleri"** (Net Sihirbazı) verisidir — tek bir öğrencinin, taban puanı yapan kişinin profili. Üç bağımsız kanıt aşağıda. Yazı bu doğru tanımla kuruldu; "yerleşenlerin ortalaması" cümlesi yazının içinde açıkça **yanlış okuma** olarak işaretlendi. 2. **Rakamlar YÖK Atlas'ın canlı servisinden 5 programda alan alan doğrulandı** (Hacettepe Tıp, ODTÜ Bilgisayar Müh., Boğaziçi Bilgisayar Müh., Ankara Ü. Hukuk, İstanbul Ü. Psikoloji, Ege Ü. Hemşirelik — 6 program, 6/6 birebir tuttu). **Yayımlanabilir.** 3. **"2026 net verisi yok" iddiası doğrudan kaynaktan teyit edildi:** canlı API `yil DESC` sıralandığında en yeni kayıt 2025 (22 Eyl 2026, 03:40 civarı). Yazıda her net rakamının yanında yıl etiketi var; ayrı bir H2 "Neden 2026 netleri yok?" bunu okura anlatıyor. 4. **Vaat dili yok.** "Şu kadar net yaparsan girersin" cümlesi kurulmadı; tersine, üç ayrı bölüm (OBP, puan türü ağırlıkları, yılın sınav zorluğu) neden kurulamayacağını anlatıyor. `/rehber/obp-nedir-nasil-hesaplanir` ve `/rehber/taban-puan-mi-siralama-mi` bağlantıları istenen yerde. 5. **40 iç linkin 40'ı doğrulandı** (bölüm slug'ları `turkishSlugify(bolumBazAdi(isim))` ile DB'deki 634 slug havuzuna karşı, rehber linkleri `content/rehber/` dosya listesine karşı, `#hero-form` `src/app/page.tsx:241`'e karşı). `/tercih-robotu` kullanılmadı. --- ## 1. Şartname düzeltmesi: `netler` ne değildir SEO planı §2 #2: *"bu rakamlar hedef değil, **yerleşenlerin gerçekte yaptığı netlerin ortalaması**"*. Bu tanım yanlış. Kanıtlar: **(a) Kod zaten doğrusunu yazıyor.** `src/features/katalog/components/program-netleri.tsx:3-4` — *"YÖK Atlas'ın **'yerleşen son kişinin netleri'** verisini … gösterir"*. Aynı ifade `scripts/detay.ts:5` başlığında: *"A) Yerleşen son kişinin netleri"*. **(b) Değerler tek kişiye ait.** Net = doğru − yanlış/4 olduğu için tek bir kişinin neti daima 0,25'in katıdır; yüzlerce kişinin ortalaması neredeyse hiç tam çeyreğe oturmaz. ```sql SELECT COUNT(*) toplam, SUM(CASE WHEN ABS(tytMatNet*4 - ROUND(tytMatNet*4)) < 1e-9 THEN 1 ELSE 0 END) ceyrek_katlari FROM netler WHERE yil=2025 AND tytMatNet IS NOT NULL; -- çıktı: 20821 | 20820 (%99,995) ``` **(c) Satırın taban puanı = programın taban puanı.** Yani satırın sahibi, o programın taban puanını yapan kişi = en son yerleşen. ```sql SELECT COUNT(*) FROM netler n JOIN programs p ON p.id=n.program_id WHERE n.yil=2025 AND ABS(n.tabanPuan - p.puan2025) < 0.0001; -- 17265 SELECT COUNT(*) FROM netler n JOIN programs p ON p.id=n.program_id WHERE n.yil=2025 AND n.tabanPuan IS NOT NULL AND p.puan2025 IS NOT NULL; -- 17301 -- %99,8 ``` `scripts/detay.ts:158-183` bu eşitliği zaten bir emniyet kilidi olarak kullanıyor (≥%95 tutmazsa betik duruyor). **Sonuç:** Veri aslında *daha* kullanışlı — "ortalama" bölümü tanıtır, "son yerleşen" ise o yıl o programa en düşük hangi profille girilebildiğini söyler. Ama "eşik/baraj" diye satılamaz, çünkü tek kişilik bir gözlem ve yıldan yıla çok oynuyor. Yazı tam olarak bunu anlatıyor. **Editöre not:** `02-seo-konu-plani.md` §2 #2'deki tanım ve "İlk paragraf cevabı" cümlesi düzeltilmeli; ayrıca §2 #15 (veli yazısı) aynı yanlış tanımı devralmasın. Ben o dosyaya dokunmadım. --- ## 2. Kullanılan SQL sorguları (tam metin) Hepsi `sqlite3 -readonly /Users/bilalgursen/Desktop/kolaytercih/data/yokatlas.db` ile koşuldu. ### 2.1 Kapsam / kapsama kontrolü ```sql SELECT yil, COUNT(*) FROM netler GROUP BY yil; -- 2023|21341 2024|20813 2025|20821 SELECT COUNT(*) FROM netler; -- 62975 SELECT COUNT(DISTINCT program_id) FROM netler; -- 25166 SELECT COUNT(*) FROM netler x JOIN programs p ON p.id=x.program_id WHERE x.yil=2025 AND p.onlisans=0 AND p.unitur='DEVLET' AND p.sira2025 IS NOT NULL; -- 5801 SELECT COUNT(DISTINCT p.isim) FROM netler x JOIN programs p ON p.id=x.program_id WHERE x.yil=2025 AND p.onlisans=0 AND p.unitur='DEVLET' AND p.sira2025 IS NOT NULL; -- 409 ``` ### 2.2 Tablo 2 — SAY bölüm ortalamaları (yazıdaki ana tablo) ```sql SELECT p.isim, COUNT(*) n, ROUND(AVG(x.tytTrkNet),1) tyt_trk, ROUND(AVG(x.tytMatNet),1) tyt_mat, ROUND(AVG(x.aytMatNet),1) ayt_mat, ROUND(AVG(x.aytFizNet + x.aytKimNet + x.aytBioNet),1) ayt_fen, CAST(AVG(p.sira2025) AS INT) s25 FROM netler x JOIN programs p ON p.id=x.program_id WHERE x.yil=2025 AND p.onlisans=0 AND p.unitur='DEVLET' AND p.tur='SAYISAL' AND p.sira2025 IS NOT NULL AND p.isim IN ('Tıp','Diş Hekimliği','Eczacılık','Endüstri Mühendisliği', 'Bilgisayar Mühendisliği','Hemşirelik','Elektrik-Elektronik Mühendisliği', 'Yazılım Mühendisliği','Makine Mühendisliği','Veteriner','Mimarlık', 'İnşaat Mühendisliği','Beslenme ve Diyetetik','Fizyoterapi ve Rehabilitasyon', 'Moleküler Biyoloji ve Genetik') GROUP BY p.isim ORDER BY s25 ASC; ``` Çıktı (yazıdaki tabloyla birebir): ``` isim n tyt_trk tyt_mat ayt_mat ayt_fen s25 Tıp 106 31.5 28.2 33.8 34.5 17237 Diş Hekimliği 75 30.2 25.5 30.9 31.9 31607 Eczacılık 36 29.1 24.4 29.2 29.6 44463 Endüstri Mühendisliği 64 28.6 21.0 22.0 23.8 111114 Bilgisayar Mühendisliği 114 27.9 19.4 20.7 23.2 120182 Hemşirelik 116 26.6 16.1 17.2 19.9 143896 Elektrik-Elektronik Mühendisliği 110 27.0 18.3 17.9 21.4 147235 Yazılım Mühendisliği 37 26.3 17.6 17.1 20.1 152171 Makine Mühendisliği 101 26.0 16.9 18.1 19.4 163481 Veteriner 34 26.7 16.0 17.1 21.4 164612 Mimarlık 57 27.3 16.3 15.9 18.2 165879 İnşaat Mühendisliği 95 25.8 14.9 14.3 16.1 206016 Fizyoterapi ve Rehabilitasyon 63 24.8 11.3 11.0 13.1 260335 Beslenme ve Diyetetik 65 25.5 12.8 10.5 11.3 271607 Moleküler Biyoloji ve Genetik 43 25.0 12.2 9.6 13.3 327838 ``` ### 2.3 Tablo 3 — EA / SÖZ / DİL ```sql SELECT p.tur, p.isim, COUNT(*) n, ROUND(AVG(x.tytTrkNet),1) tyt_trk, ROUND(AVG(x.tytMatNet),1) tyt_mat, ROUND(AVG(x.aytMatNet),1) ayt_mat, ROUND(AVG(x.aytTdeNet),1) tde, ROUND(AVG(x.aytTrh1Net + x.aytCog1Net),1) sos1, ROUND(AVG(x.ydtYdilNet),1) ydt, CAST(AVG(p.sira2025) AS INT) s25 FROM netler x JOIN programs p ON p.id=x.program_id WHERE x.yil=2025 AND p.onlisans=0 AND p.unitur='DEVLET' AND p.sira2025 IS NOT NULL AND p.isim IN ('Hukuk','Psikoloji','Rehberlik ve Psikolojik Danışmanlık', 'Sınıf Öğretmenliği','İşletme','İktisat','Uluslararası İlişkiler', 'Özel Eğitim Öğretmenliği','Okul Öncesi Öğretmenliği','Türkçe Öğretmenliği', 'Tarih','Türk Dili ve Edebiyatı','İngilizce Öğretmenliği', 'İngiliz Dili ve Edebiyatı','İlahiyat','Sosyal Hizmet') GROUP BY p.tur, p.isim ORDER BY p.tur, s25 ASC; ``` Çıktı: ``` tur isim n trk tmat amat tde sos1 ydt s25 DİL İngilizce Öğretmenliği 66 29.3 8.2 - - - 64.5 20078 DİL İngiliz Dili ve Edebiyatı 60 28.0 4.8 - - - 56.7 32283 EA Hukuk 51 30.1 19.4 21.9 17.6 11.5 - 22999 EA Sınıf Öğretmenliği 75 28.0 13.8 12.8 16.3 9.1 - 94565 EA Psikoloji 72 28.8 12.8 12.0 16.7 9.0 - 126270 EA Rehberlik ve Psikolojik Danışmanlık 72 27.4 12.1 10.0 15.8 8.8 - 133579 EA Uluslararası İlişkiler 61 23.9 7.6 7.1 11.8 6.8 - 425022 EA İşletme 146 24.0 8.4 7.5 11.6 6.4 - 441022 EA Sosyal Hizmet 61 24.4 4.3 3.0 12.9 5.9 - 449096 EA İktisat 120 23.2 6.6 6.3 10.5 5.3 - 549489 SÖZ Özel Eğitim Öğretmenliği 54 29.4 5.3 - 18.4 12.4 - 9538 SÖZ Okul Öncesi Öğretmenliği 69 26.6 5.2 - 16.5 11.4 - 18849 SÖZ Türkçe Öğretmenliği 71 25.3 4.6 - 13.4 9.0 - 73366 SÖZ Türk Dili ve Edebiyatı 100 21.0 2.3 - 9.8 5.0 - 330169 SÖZ Tarih 107 20.1 2.6 - 8.2 6.4 - 365385 SÖZ İlahiyat 164 18.1 1.8 - 6.9 4.2 - 478545 ``` ### 2.4 Tablo 4 — aynı bölüm içinde bant dağılımı ```sql SELECT CASE WHEN p.sira2025<=10000 THEN 'ilk 10 bin' WHEN p.sira2025<=50000 THEN '10-50 bin' WHEN p.sira2025<=150000 THEN '50-150 bin' ELSE '150 bin ustu' END bant, COUNT(*) n, ROUND(AVG(x.tytTrkNet),1), ROUND(AVG(x.tytMatNet),1), ROUND(AVG(x.aytMatNet),1), ROUND(AVG(x.aytFizNet),1), ROUND(AVG(x.aytKimNet),1), ROUND(AVG(x.aytBioNet),1) FROM netler x JOIN programs p ON p.id=x.program_id WHERE x.yil=2025 AND p.isim='Bilgisayar Mühendisliği' AND p.unitur='DEVLET' AND p.onlisans=0 AND p.sira2025 IS NOT NULL GROUP BY bant; -- ilk 10 bin | 5 | 33.3 | 31.8 | 39.5 | 12.5 | 12.0 | 12.0 -- 10-50 bin | 18 | 31.9 | 25.4 | 31.1 | 10.6 | 11.3 | 10.0 -- 50-150 bin | 52 | 28.2 | 20.2 | 21.3 | 8.3 | 8.3 | 7.6 -- 150 bin ustu | 39 | 25.0 | 13.9 | 12.8 | 6.1 | 4.4 | 5.5 ``` ### 2.5 Tablo 5 — üç yıl eşleşmeli karşılaştırma ```sql WITH uc AS ( SELECT program_id FROM netler WHERE yil IN (2023,2024,2025) GROUP BY program_id HAVING COUNT(DISTINCT yil)=3 ) SELECT p.isim, COUNT(DISTINCT p.id) n, ROUND(AVG(CASE WHEN x.yil=2023 THEN x.tytMatNet END),1) tm23, ROUND(AVG(CASE WHEN x.yil=2024 THEN x.tytMatNet END),1) tm24, ROUND(AVG(CASE WHEN x.yil=2025 THEN x.tytMatNet END),1) tm25, ROUND(AVG(CASE WHEN x.yil=2023 THEN x.aytMatNet END),1) am23, ROUND(AVG(CASE WHEN x.yil=2024 THEN x.aytMatNet END),1) am24, ROUND(AVG(CASE WHEN x.yil=2025 THEN x.aytMatNet END),1) am25 FROM netler x JOIN programs p ON p.id=x.program_id JOIN uc ON uc.program_id=x.program_id WHERE p.onlisans=0 AND p.unitur='DEVLET' AND p.isim IN ('Tıp','Hukuk','Bilgisayar Mühendisliği','Psikoloji','Hemşirelik') GROUP BY p.isim; -- Tıp 102 | 34.6 34.9 28.4 | 35.1 29.6 33.8 -- Bilgisayar Mühendisliği 111 | 27.1 24.2 19.3 | 26.4 17.9 20.6 -- Hukuk 50 | 24.8 23.4 19.3 | 23.8 17.4 21.9 -- Hemşirelik 110 | 19.2 19.5 16.2 | 18.5 12.4 17.3 -- Psikoloji 62 | 17.8 15.7 12.5 | 15.7 9.9 12.0 ``` Aynı CTE ile tüm devlet lisans kesiti (yazının en güçlü tek bulgusu): ```sql -- ... aynı uc CTE ... SELECT COUNT(DISTINCT p.id) n, ROUND(AVG(CASE WHEN x.yil=2023 THEN x.tytMatNet END),1), ROUND(AVG(CASE WHEN x.yil=2024 THEN x.tytMatNet END),1), ROUND(AVG(CASE WHEN x.yil=2025 THEN x.tytMatNet END),1), ROUND(AVG(CASE WHEN x.yil=2023 THEN x.tytTrkNet END),1), ROUND(AVG(CASE WHEN x.yil=2024 THEN x.tytTrkNet END),1), ROUND(AVG(CASE WHEN x.yil=2025 THEN x.tytTrkNet END),1) FROM netler x JOIN programs p ON p.id=x.program_id JOIN uc ON uc.program_id=x.program_id WHERE p.onlisans=0 AND p.unitur='DEVLET'; -- n=5213 | TYT Mat 13.6 → 12.5 → 9.9 | TYT Türkçe 24.0 → 24.3 → 24.6 ``` ### 2.6 OBP rakamları ```sql SELECT COUNT(*), ROUND(AVG(x.obp),0) FROM netler x JOIN programs p ON p.id=x.program_id WHERE x.yil=2025 AND p.onlisans=0 AND p.unitur='DEVLET' AND p.sira2025 IS NOT NULL; -- 5801 | 411 -- aynı filtreyle: Tıp (n=106) 478 · Psikoloji (n=72) 433 ``` ### 2.7 Adlandırma kontrolü (tabloya girmeyen varyantlar) ```sql SELECT isim, COUNT(*) FROM programs WHERE unitur='DEVLET' AND onlisans=0 AND isim LIKE 'Bilgisayar Mühendisliği%' GROUP BY isim; -- Bilgisayar Mühendisliği 125 -- Bilgisayar Mühendisliği (KKTC Uyruklu) 2 -- Bilgisayar Mühendisliği (İngilizce) 5 -- (İngilizce) (%50 İndirimli) 1 -- (İngilizce) (KKTC Uyruklu) 1 -- (İngilizce) (UOLP-Saraybosna) (%25 İndirimli) 3 ``` `programs.isim` 2026 kılavuzundaki adı taşıyor (2.537 programın adında parantez var). ODTÜ ve Boğaziçi Bilgisayar Mühendisliği 2026'da düz adla geçiyor, bu yüzden tabloya giriyorlar. Bu kısıt yazının "nasıl hesaplandı" kutusunda açıkça yazılı. --- ## 3. YÖK Atlas gözle doğrulaması YÖK Atlas 2026'da SPA'ya geçtiği için eski `lisans-panel.php` / `content/lisans-dynamic/*.php` panelleri artık HTML dönmüyor (hepsi boş React kabuğu; `scripts/detay.ts:27` bunu zaten not etmiş). `netler-tablo.php` ve `net-sihirbazi` sayfaları da SPA. Bu yüzden doğrulama **sitenin kendi canlı servisinden** (`POST /api/netler/search`, tarayıcıdaki Net Sihirbazı'nın çağırdığı uç) program program yapıldı. Değerler bugün (22 Eyl 2026) canlıdan çekildi ve `data/yokatlas.db` ile alan alan karşılaştırıldı. | # | Program (kılavuz kodu) | Alan | Canlı YÖK Atlas (2025) | Bizim DB | Sonuç | |---|---|---|---|---|---| | 1 | Hacettepe Ü. Tıp (104810617) | tabanPuan / obp / TYT Trk / TYT Mat / AYT Mat / Fiz / Kim / Biyo | 530.58733 / 483.88 / 35,25 / 36,25 / 37,5 / 14,0 / 13,0 / 11,75 | aynı | ✅ birebir | | 2 | ODTÜ Bilgisayar Müh. (İng.) (108410336) | tabanPuan / TYT Trk / TYT Mat / AYT Mat | 534.56656 / 32,25 / 32,25 / 40,0 | aynı | ✅ birebir | | 3 | Boğaziçi Bilgisayar Müh. (İng.) (102210277) | tabanPuan / obp / TYT Trk / TYT Mat / AYT Mat / Fiz / Kim / Biyo | 533.05003 / 473.958 / 33,75 / 38,75 / 38,75 / 12,75 / 11,75 / 13,0 | aynı | ✅ birebir | | 4 | Ankara Ü. Hukuk (101110518) | tabanPuan / obp / TYT Trk / TYT Mat / AYT Mat / TDE / Trh1 / Coğ1 | 461.84071 / 459.008 / 34,25 / 26,75 / 27,25 / 19,0 / 10,0 / 4,75 | aynı | ✅ birebir | | 5 | İstanbul Ü. Psikoloji (105610255) | tabanPuan / obp / TYT Trk / TYT Mat / AYT Mat / TDE / Trh1 / Coğ1 | 417.22453 / 433.971 / 28,25 / 9,25 / 27,0 / 19,0 / 8,75 / 2,25 | aynı | ✅ birebir | | 6 | Ege Ü. Hemşirelik (103410793) | tabanPuan / obp / TYT Trk / TYT Mat / AYT Mat / Fiz / Kim / Biyo | 400.41912 / 398.02 / 17,5 / 16,5 / 24,25 / 10,25 / 10,5 / 11,75 | aynı | ✅ birebir | Ek olarak filtresiz ilk sayfadaki 4 kayıt (Medipol Tıp İng. Burslu 203110477, Koç Tıp İng. Burslu 203910699, Koç Tarih 203910187, Koç Ekonomi 203910275) da alan alan tuttu — **10/10**. **2026 verisinin yokluğu doğrudan teyit edildi:** ``` POST /api/netler/search {"filters":{},"page":0,"size":3,"sortBy":"yil","direction":"DESC"} → totalElements: 63063 ; ilk 3 kaydın hepsi yil=2025 ``` Yani canlı serviste en yeni net yılı 2025. (Bizde 62.975 satır var; canlıda 63.063 → %99,86 kapsama. Fark küçük, yazının hiçbir iddiasını etkilemiyor, ama veri mühendisine not.) **Hüküm: YAYIMLANABİLİR.** Veri doğrulandı, editör notuna gerek yok. --- ## 4. Çıkarılan / yazılmayan iddialar | İddia | Neden yazılmadı | |---|---| | "Şu kadar net yaparsan X bölümüne girersin" | Veri tek kişilik gözlem; ÖSYM net barajı yayımlamıyor. Yazı bunun yerine "en son yerleşenin profili" dilini kullanıyor. | | "Yerleşenlerin ortalama neti" | Veri ortalama değil (bkz. §1). Yazıda bilerek **yanlış okuma** olarak işaretlendi. | | 2026 net rakamı | YÖK Atlas yayımlamamış (canlı API ile teyit). "Açıklanmadı" diye yazıldı. | | Vakıf üniversitesi net tablosu | Burslu/İndirimli/Ücretli varyantları bölüm adında ayrışıyor ve karşılaştırma yanıltıcı olurdu; SEO planı §1 bu kesiti zaten ayrı yazıya bırakmış. Kapsam DEVLET ile sınırlandı. | | Önlisans (TYT) net tablosu | Kapsam dışı bırakıldı (yazı lisans odaklı); ayrı yazı konusu. | | n < 10 olan bölümler | Tabloya alınmadı. Brief "5'ten az" diyordu, eşik 10'a çekildi (daha muhafazakâr). Tek istisna görünürdeki bant tablosunun "ilk 10 bin" satırı: n=5, satırın yanında açıkça yazıyor. | | "Net → sıralama" dönüşüm tablosu | Resmî bir dönüşüm tablosu yok; kurumların tahmini tabloları kaynak gösterilemezdi. Yazı yalnızca "denemeni sıralamaya çevir" diyor, rakam vermiyor. | --- ## 5. Engeller ve veri kalitesi notları (editör / veri mühendisi için) 1. **SEO planı §2 #2'deki tanım hatalı** (bkz. §1). `02-seo-konu-plani.md` düzeltilmeli; aynı hatayı devralabilecek konu: §2 #15 (veli yazısı, "net tablosu tekrarlamaz ama tek örnek verir"). 2. **Brief'in "netler tablosu sitede hiçbir yerde kullanılmadı" varsayımı yanlış.** Tablo zaten katalogda ve liste ekranında kullanılıyor: `src/app/api/netler/route.ts`, `src/features/katalog/components/program-netleri.tsx` (program satırındaki "netler" butonu → modal), `universite-program-tablosu.tsx:114`, `bolum-program-listesi.tsx:262`, `liste/components/program-tablosu.tsx:387`. **Yazıda kullanılmamıştı**, doğrusu bu. Fark önemli, çünkü modal zaten "son yerleşen kişi" dilini kullanıyor; yazı onunla tutarlı. 3. **Şüpheli program kayıtları (veri kalitesi).** Bölüm içi uç değer taramasında `fakulte` alanı bölümle uyuşmayan kayıtlar çıktı — ör. `108411025` ORTA DOĞU TEKNİK ÜNİVERSİTESİ / isim "Psikoloji" / fakülte **"Mühendislik Fakültesi"** / `sira2025 = 750343`; benzer şekilde `108410857` ODTÜ "Bilgisayar Mühendisliği" / Mühendislik Fakültesi / `sira2025 = 252139`. Bunlar büyük olasılıkla KKTC uyruklu / özel kontenjan satırları ama adlarında ek taşımıyor. **Yazıda hiçbiri tek tek anılmadı**; yalnızca 72 ve 114 programlık ortalamaların içinde kaldılar (etkileri ihmal edilebilir). `veri-muhendisi`'ne bakması için not. 4. **Kapsama farkı:** canlı API 63.063 satır, bizde 62.975 (88 satır eksik, %0,14). Sebebi incelenmedi. 5. **Disk:** vardiya sırasında makinenin kök diski doldu (`/` %100, ~117 MB boş); iki komut `ENOSPC` ile düştü ve tekrar denenerek aşıldı. Orkestratöre not. --- ## Bilal'den istenen (yayın öncesi kontrol) 1. **Terminoloji onayı:** Yazı, YÖK Atlas net verisini "yerleşenlerin ortalaması" değil **"o programa en son yerleşen kişinin neti"** diye anlatıyor (kanıtlar raporda). Bu dil ürünün her yerinde aynı kalmalı — onaylıyor musun? (~5 dk) 2. **Tablo genişliği:** Sayısal tablosu 7, EA/SÖZ/DİL tablosu 10 kolon. Mobilde yatay kayan `rehber-tablo` sarmalayıcısına giriyor ama bir göz atman iyi olur. (~3 dk) 3. **Güncelleme tetiği:** YÖK Atlas 2026 netlerini yayımladığında bu yazı ve tabloları yenilenmeli; backlog'a "2026 netleri gelince `kac-net-ile-hangi-bolum` güncelle" kalemi açılsın mı? (~2 dk)