Files
kolaytercih/docs/gece-vardiyasi/2026-09-22/20-editor-denetimi.md
bilalgursen 2b350d0c5d content(rehber): gece vardiyasının 14 yeni yazısı + 2 düzeltme, ekip raporları ve kurallar
14 yeni rehber yazısı (hepsi editör denetiminden geçti, 46 yazıda 829 iç link
tarandı, 0 kırık hedef; 180+ DB rakamı yazıların kendi filtreleriyle yeniden
koşuldu):

  taban-siralamalari-alti-yilda-nasil-degisti · kac-net-ile-hangi-bolum ·
  siralama-bandlari-hangi-kapilar-acilir · ayni-bolum-farkli-universite-siralama-farki ·
  hangi-bolumlerin-kontenjani-azaldi · yeni-acilan-bolumler-nasil-degerlendirilir ·
  bilgisayar-mi-yazilim-muhendisligi-mi · kktc-universiteleri-okunur-mu ·
  yapay-zekaya-tercih-sordum-guvenilir-mi · ek-madde-1-puanim-yetiyor-mu ·
  universitede-ilk-hafta-ders-kaydi-muafiyet-kayit-dondurma · yks-2027-takvimi ·
  rehber-ogretmenler-icin-veri-kaynaklari · bolumumu-sevmedim-hangi-kapilar-var

İki canlı yazı düzeltildi:
- veliler-icin-tercih-rehberi: veli diliyle kapanış; altındaki "sıralamanı gir"
  kutusu artık veliye ölü uç değil
- bos-kontenjanlar-ne-anlatiyor: "birkaç yüz kişilik fark" aslında ~9 bin
  (ÖSYM 265.356 ↔ bizim 256.532); payda açıklaması tersti — ek kontenjan
  paydaya girseydi oran düşerdi. guncelleme alanı eklendi (sitemap lastmod).

Kurallar (AGENTS.md):
- Yayın sonrası arama motoru bildirimi: URL denetimi yalnız canlıda 200 dönen
  adrese; kota sayacı; mülk/hesap notu; sitemap grep kuralı
- Yıkıcı git komutları yasak: reset/checkout --/restore/clean/stash
- Tarayıcı açma: tasarımcı ve UX gerekli gördüğünde açabilir (yetenek için
  .claude/agents/tasarimci.md'ye tarayıcı araçları eklendi)

docs/gece-vardiyasi/2026-09-22/ — 34 rapor: CEO kararları ve kapanış turu,
marka/ödeme analizi, sıfır ödeme teşhisi, SEO konu planı, veri kalitesi,
editör denetimi, CTO şartnamesi, yazılımcı ve güvenlik raporları, SABAH-OZETI.

docs/ekip/YAYIN-KUYRUGU.md — Search Console bildirim kuyruğu.

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

54 KiB
Raw Blame History

20 — Rehber editör denetimi: 10 yeni yazı (gece vardiyası, 22 Eylül 2026)

Rol: rehber-editoru · Kapsam: content/rehber/ altındaki 10 yeni yazı. src/ altına, veliler-icin-tercih-rehberi.md'ye ve Bilal'in commit'lenmemiş dosyalarına dokunulmadı. Commit atılmadı, git add yapılmadı. Ölçü: 05-ceo-kararlari.md §C(d) — altı maddelik "yayımlanmaz" eşiği. İşaret: [D] bu gece kendim koştum · [A] yalnız ikincil kaynak/arama özeti · [K] kaynak açılamadı.


Özet (5 madde)

  1. CEO'nun dört "tutmuyor" bulgusunun üçü aslında yazarın haklı olduğu, ama yöntem cümlesinin rakamı üretmeye yetmediği durumlardı. bilgisayar… 56/54 ✔ (ODTÜ hariç sayım — yazı bunu rakamın yanında söylemiyordu), siralama-bandlari… 9.304/271/81 ✔ (kirli il filtresi yazılı değildi), kac-net… Hukuk 30,1 (51) ve Psikoloji 28,8 (72) ✔ (CEO sira2025 IS NOT NULL koşulunu uygulamamış — koşul yazının yöntem kutusunda zaten yazılıydı). Üçünde de rakam değil yöntem cümlesi düzeltildi, farkın kaynağı ve alternatif sayım yazıya kondu.
  2. kktc… gerçek bir düzeltme aldı: "toplamlarımız ÖSYM ile birebir aynı" iddiası çıkarıldı (ÖSYM'nin sayısal bilgiler PDF'ini açamadım, dosya indirme yasak — doğrulayamadığım iddia daha iddialı hâlde bırakılamaz), yerine KKTC havuzunun tam tanımı ve CEO'nun gördüğü 12.912/7.849 · 4.637/3.537 farkının kaynağı (Kıbrıs Amerikan Ü.'nün unitur='DEVLET' etiketli 42 satırı) yazıldı. 16 ↔ 25 ayrı universite değeri ayrımı da kutuya girdi.
  3. Kimsenin yakalamadığı iki hata bulundu ve düzeltildi: (a) kktc…'de çeyreklik yönü ters yazılmıştı ("dörtte biri 143.099'un üstünde" → doğrusu "143.099'dan daha sıkı"); (b) aynı yazıda bölüm medyanı tablosunun altyazısı havuzu yanlış tarif ediyordu ("kontenjanı dolan programlar" → gerçek filtre "2026 tabanı oluşan programlar"; doluluk koşulu uygulansa Psikoloji devlet medyanı 97.977 değil 102.614 çıkıyordu).
  4. Kalan altı yazıda örnekleme değil, bulabildiğim her DB rakamını yeniden koştum: 60'tan fazla rakamın tamamı tuttu. taban-siralamalari-alti-yilda ve siralama-bandlari'nın iki tam tablosu hücre hücre birebir çıktı. Tek düzeltme yöntem kutularına eklenen filtre netliği (unitur değerleri, onlisans=0).
  5. Ölü link taraması: 42 yazının tamamında 682 iç link tarandı, 0 kırık hedef. Tek sorun /tercih-robotu (301 kalıcı yönlendirme) — 32 geçişin 4'ü benim 10 yazımdaydı, düzeltildi; kalan 28'i mevcut yazılarda ve kapsamım dışında (aşağıda Bilal'e istenen). Ayrıca 10 yazı arasında sıfır çapraz link vardı; 13 doğal çapraz link eklendi.

(a) Düzeltilen / doğrulanan rakamlar

Tüm sorgular sqlite3 -readonly data/yokatlas.db ile bu gece koşuldu (veri_meta.refresh_2026_tarih = 2026-09-21T17:21:23Z).

A1. Rakamı doğru çıkan ama yöntemi rakamı üretmeyen üç satır (CEO'nun listesi)

Yazı Yazıdaki değer Benim koşum Hüküm Yapılan
bilgisayar-mi-yazilim…:7,14,20,66,120 56 üniversitenin 54'ü 56/54 (ODTÜ hariç) · 57/55 (ODTÜ dahil) Yazı doğru, filtre eksik yazılmış Rakamın geçtiği 4 yere ODTÜ istisnası kondu + yöntem kutusu eklendi
siralama-bandlari…:7,66 9.304 program / 271 üni / 81 il 9.304 / 271 / 81 (kirli il hariç) · 9.408 / 276 / 84 (il filtresi yok) Yazı doğru, il temizliği yazılı değildi "Dışarıda" listesine 104 satırlık fark satır satır yazıldı
kac-net…:7 Hukuk 30,1 / 19,4 / 21,9 (51) 30,1 / 19,4 / 21,9 (51) Yazı doğru Yöntem kutusuna "bu koşulu atlarsan 52 program ve 29,9 çıkar" notu
kac-net…:7 Psikoloji 28,8 / 12,8 / 12,0 (72) 28,8 / 12,8 / 12,0 (72) Yazı doğru (aynı kutu)

bilgisayar… sorgusu (ODTÜ satırı çıkarılınca 56, çıkarılmayınca 57):

WITH t AS (SELECT universite, unitur,
  CASE WHEN isim LIKE 'Bilgisayar Mühendisliği%' THEN 'bm' ELSE 'ym' END b, sira2026
 FROM programs
 WHERE (isim LIKE 'Bilgisayar Mühendisliği%' OR isim LIKE 'Yazılım Mühendisliği%')
   AND onlisans=0 AND unitur IN ('DEVLET','VAKIF')
   AND isim NOT LIKE '%KKTC Uyruklu%' AND sira2026 IS NOT NULL
   AND universite <> 'ORTA DOĞU TEKNİK ÜNİVERSİTESİ'),           -- bu satır 57→56 yapıyor
u AS (SELECT universite, unitur, MIN(CASE WHEN b='bm' THEN sira2026 END) bm,
             MIN(CASE WHEN b='ym' THEN sira2026 END) ym FROM t GROUP BY universite, unitur)
SELECT unitur, COUNT(*), SUM(bm<ym), SUM(ym<bm) FROM u WHERE bm IS NOT NULL AND ym IS NOT NULL GROUP BY unitur;
-- ODTÜ hariç: DEVLET 23/21/2 · VAKIF 33/33/0 → 56/54 ✔  (ortanca fark 19.550 ✔)
-- ODTÜ dahil: DEVLET 24/22/2 · VAKIF 33/33/0 → 57/55

ODTÜ'nün neden sayılamadığı doğrulandı: aynı universite adı altında BM (2.989) + BM (96.050) + YM (299.241/293.024) duruyor, yani Ankara ve Kuzey Kıbrıs kampüsleri ayrışmıyor. [D]

siralama-bandlari sorgusu (fark 104 satır = 61 açıköğretim + 9 boş il + 34 KKTC/Bosna il):

WITH baz AS (SELECT *, lower(COALESCE(fakulte,'')) fk, lower(isim) ik FROM programs
 WHERE onlisans=0 AND unitur IN ('DEVLET','VAKIF') AND sira2026 IS NOT NULL
   AND isim NOT LIKE '%KKTC Uyruklu%'
   AND il IS NOT NULL AND il <> ''
   AND il NOT IN ('KIBRIS','LEFKOŞA','GİRNE','GAZİMAĞUSA','LEFKE','GÜZELYURT','İSKELE','SARAYBOSNA - BOSNA - HERSEK')),
p AS (SELECT * FROM baz WHERE NOT (fk LIKE '%açık%' OR fk LIKE '%uzaktan%' OR ik LIKE '%açıköğretim%' OR ik LIKE '%uzaktan%'))
SELECT COUNT(*), COUNT(DISTINCT universite), COUNT(DISTINCT il), SUM(unitur='DEVLET'), SUM(unitur='VAKIF'), SUM(COALESCE(kontenjan2026,0)) FROM p;
-- 9304 | 271 | 81 | 5865 | 3439 | 312283  ✔ (yazının toplam satırıyla birebir)

Sekiz bandın her hücresi ayrıca yeniden koşuldu (program/üni/il/devlet/vakıf/kontenjan + 3 büyük şehir yüzdesi): 8×7 = 56 hücre, tamamı tuttu. Kapı sayıları da: sira2026>=100000 → 6.076 ✔, >=500000 → 1.489 ✔. Açıköğretim satırı: 61 program / 5 üniversite / 22.484–1.202.899 ✔. "81 ilin tamamı" iddiası da doğrulandı — havuzdaki 81 il değeri Türkiye'nin 81 ilinin tamamı. [D]

kac-net sorgusu (CEO'nun sapmasının tek kaynağı sira2025 IS NOT NULL):

SELECT p.isim, COUNT(*) n, ROUND(AVG(n2.tytTrkNet),1), ROUND(AVG(n2.tytMatNet),1), ROUND(AVG(n2.aytMatNet),1)
FROM programs p JOIN netler n2 ON n2.program_id=p.id AND n2.yil=2025
WHERE p.unitur='DEVLET' AND p.onlisans=0 AND p.sira2025 IS NOT NULL
  AND p.isim IN ('Tıp','Diş Hekimliği','Hukuk','Bilgisayar Mühendisliği','Hemşirelik','Psikoloji') GROUP BY 1;
-- Tıp 106|31,5|28,2|33,8 ✔ · Diş 75|30,2|25,5|30,9 ✔ · Hukuk 51|30,1|19,4|21,9 ✔
-- Bilg.Müh. 114|27,9|19,4|20,7 ✔ · Hemşirelik 116|26,6|16,1|17,2 ✔ · Psikoloji 72|28,8|12,8|12,0 ✔
-- sira2025 koşulu kaldırılırsa: Hukuk 52|29,9|19,2|21,8 · Psikoloji 75|28,0|12,2|11,5  ← CEO'nun koşumu

Ayrıca doğrulandı: 3 yıllık kohort 5.213 program, TYT Mat 13,6→12,5→9,9, TYT Türkçe 24,0→24,3→24,6 ✔; 2025 netler 20.821 satırın 20.820'si çeyrek katı ✔; OBP 411 / Tıp 478 / Psikoloji 433 ✔; kesit 5.801 program, 409 bölüm adı ✔. [D] Not: 3 yıllık tabloda sira2025 koşulu aranmıyor (5.213 ≠ 5.068). Yöntem kutusu bunu artık açıkça söylüyor.

A2. Gerçekten düzeltilen rakamlar ve iddialar

Yazı:satır Eski Yeni Sorgu / gerekçe
kktc… Kaynaklar "Lisans ve önlisans toplamlarımız ÖSYM'nin kurum grubu rakamlarıyla birebir aynı" İddia çıkarıldı; yerine havuz tanımı ÖSYM'nin sayısal bilgiler dosyası PDF; sayfada rakam yok, indirme yasak → teyit edilemedi [K]
kktc… taban bandı "Dörtte biri 143.099'un üstünde, dörtte biri 774.369'un altında" "143.099'dan daha sıkı, 774.369'dan daha geniş" Q1=143.099, Q3=774.369 (n=395, medyan 339.153) — cümle çeyrekleri ters okuyordu [D]
kktc… medyan tablosu altyazısı "(2026, kontenjanı dolan programlar)" "(2026'da taban sıralaması oluşan lisans programları; burs/dil varyantları aynı ad altında)" Doluluk koşulu eklenince Psikoloji devlet 97.977 → 102.614 çıkıyor; yazının rakamı doluluk koşulsuz sorgudan geliyor [D]
kktc…:75 "katalog verimizde de 2026'da kontenjan açan üniversite sayısı 16" "…ad temizliğinden sonra 16" + kutuda ham 25 / normalize 16 ayrımı SELECT COUNT(DISTINCT universite) … → ham 25; (KKTC-ŞEHİR) ekleri atılınca 16 [D]
kktc…:7 "aynı ekranda yerleşirsin" "aynı ekranda yerleştirme yapılır" CEO eşiği md. 4 — vaat dili tek geçişte bile çıkar
yeni-acilan… yöntem "devlet ve vakıf üniversitelerinin programları" unitur değerleri açık: DEVLET, VAKIF, VAKIF MYO Yalnız ilk ikisiyle yeni program 930 değil 895, tabanlı 697 değil 673 çıkıyor [D]

A3. Örnekleme ile doğrulanan, düzeltme gerektirmeyen rakamlar

Yazı Yeniden koşulan Sonuç
taban-siralamalari-alti-yilda 12.239 lisans / 5.461 eşleşen / 4.461 / 398; 3.774 küçüldü, 1.687 büyüdü; ort. 167.067→145.356; kontenjan 255.090→204.714 ve 376.842→393.294; Tarih 64 (276.363→120.510), İktisat 51, İşletme 126, İlk.Mat.Öğrt. 76, Psikoloji 184, Yazılım Müh. 51 + "aynı yöne giden program" kolonları hepsi birebir [D]
yeni-acilan-bolumler yeni 930 / mevcut 19.099; kontenjan 26.837/702.576; doluluk %88,2 / %98,5; tam dolan %74,9 / %88,2; tabanı oluşan 697; Psikoloji yerleşik 72 medyan 101.050 hepsi birebir [D]
yapay-zekaya-tercih-sordum 9.160 program, medyan oynama %14,9, >%20: 2.877, >%50: 297; ilk 100 bin 3.034 / 4.014 / 686; 21.493 = 12.239+9.254; arşiv 572 program / 11.587 yerleşen; kod değişen 466; kontenjan 11.540 / 5.192 / 3.907; Psikoloji 355 program 155 üni, toplam 322 üni; Boğaziçi BM 775/1.006/1.448/4.560 + puan 526,75435 hepsi birebir (hepsi onlisans=0 havuzunda; yazının yöntem kutusu bunu zaten söylüyor) [D]
bilgisayar-mi-yazilim 303/133, 134/169 ve 44/89, 173/74 üni, 12.993/4.274 kontenjan, 11.285/2.894 yerleşen, %86,9/%67,7, ilk 50k 33/1, ilk 100k 98/24, iki yıllık 202/185 ve 81/79 hepsi birebir [D]
kktc… lisans 873 prg / 13.162 / 7.923 / %60,2; önlisans 314 / 4.851 / 3.632; taban bandı 395 / 339.153 / 9.061 / 1.420.970; 5 bölüm × 3 evren = 15 medyan hücresinin 15'i birebir (havuz = unitur='KKTC' + Kıbrıs Amerikan) [D]
ek-madde-1 Marmara BM 521,30/499,01/486,37/483,05 · Ankara Hukuk 471,29/456,38/461,84/475,14 · Hacettepe Psikoloji 461,76/444,25/441,11/449,13 · Ege Makine 460,94/437,19/453,61/471,97 + "38/13/11 puan" farkları birebir [D]
siralama-bandlari 2 tam tablo (8 band × 7 kolon) + kapı sayıları + açıköğretim satırı birebir [D]

(b) Çıkarılan / zayıflatılan cümleler ve gerekçeleri

  1. kktc-universiteleri-okunur-mu.md — "Lisans ve önlisans toplamlarımız ÖSYM'nin kurum grubu rakamlarıyla birebir aynı (13.162 / 7.923 ve 4.851 / 3.632)." → çıkarıldı. Gerekçe: ÖSYM'nin 2026-YKS Yerleştirme Sonuçlarına İlişkin Sayısal Bilgiler sayfasını açtım; rakamlar sayfada değil, yalnızca indirilebilir PDF/Excel'de ve dosya indirmek yasak. Kendi toplamımızı doğrulayabildim, ÖSYM'nin satırını doğrulayamadım — "birebir aynı" doğrulanamayan bir eşitlik iddiası. Yerine kendi havuzumuzun tam tanımı kondu. (CEO eşiği md. 3)
  2. kktc… — Devlet/vakıf/KKTC tablosunun giriş cümlesine, KKTC satırının bizim sayımımız olduğu eklendi. Tablo kaynak karıştırıyordu: devlet (265.356/263.101) ve vakıf (99.638/77.827) satırları ÖSYM yayınından, KKTC satırı DB'den. Bizim DB'mizde devlet 280.131/286.150 ve vakıf yerleşen 78.475 çıkıyor — yani ilk iki satır DB ile üretilemez, ÖSYM'den gelmek zorunda. Satırın kaynağı artık yazıda.
  3. kktc…:7 — "yerleşirsin" → "yerleştirme yapılır". Tek geçişti; CEO eşiği md. 4 istisnasız.
  4. Hiçbir yazıdan başka cümle çıkarılmadı. "garanti" kelimesinin 10 yazıdaki bütün düz metin geçişleri olumsuzlama ("garanti demek değil", "garantisi yok", "garanti bir sonuç anlamına gelmez") — bunlar kalıyor, doğru kullanım. Mermaid classDef garanti iç anahtarı AGENTS.md gereği aynen korundu; görünen dilim adı olarak hiçbir yazıda "garanti" geçmiyor (10 dosyada grep = 0).

(c) Yayımlanabilir / yayımlanmaz hükmü — yazı yazı

CEO'nun altı maddesi: 1 rakam yeniden üretilebilir · 2 yöntem kutusu · 3 açılamayan kaynak yok · 4 vaat dili yok · 5 ayrım cümlesi ilk 200 kelimede · 6 teknik (3 frontmatter alanı, 1 mermaid + %% aria:, ≥1 tablo, ölü link yok).

# Yazı 1 2 3 4 5 6 Hüküm
1 taban-siralamalari-alti-yilda-nasil-degisti ✔ ✔ ✔ ✔ ✔ ✔ Yayımlanabilir
2 kac-net-ile-hangi-bolum ✔ ✔ ✔ ✔ ✔ ✔ Yayımlanabilir
3 siralama-bandlari-hangi-kapilar-acilir ✔ (düzeltildi) ✔ ✔ ✔ ✔ ✔ Yayımlanabilir
4 yeni-acilan-bolumler-nasil-degerlendirilir ✔ (düzeltildi) ✔ ✔ ✔ ✔ ✔ Yayımlanabilir
5 bilgisayar-mi-yazilim-muhendisligi-mi ✔ (düzeltildi) ✔ (eklendi) ✔ ✔ ✔ ✔ Yayımlanabilir
6 kktc-universiteleri-okunur-mu ✔ (düzeltildi) ✔ (eklendi) ✔ (iddia çıkarıldı) ✔ (düzeltildi) ✔ ✔ Yayımlanabilir
7 yapay-zekaya-tercih-sordum-guvenilir-mi ✔ ✔ ✔ ✔ ✔ ✔ Yayımlanabilir
8 ek-madde-1-puanim-yetiyor-mu ✔ — DB tablosu yok, puan örnekleri tek tek doğrulandı kısmi (aşağı bak) ✔ ✔ ✔ Yayımlanabilir
9 universitede-ilk-hafta-ders-kaydi-muafiyet-kayit-dondurma — DB rakamı yok — kısmi (aşağı bak) ✔ ✔ ✔ Yayımlanabilir
10 yks-2027-takvimi — DB rakamı yok — ✔ ✔ ✔ ✔ Yayımlanabilir

Onunun da hükmü: yayımlanabilir. Kesilmesi gereken bir yazı çıkmadı; kesilmesi gereken bir cümle çıktı (yukarıda b.1) ve kesildi.

8 ve 9'un "kısmi" işareti ne demek

İkisi de mevzuat yazısı ve ikisinin de birincil kaynağı bu ortamdan benim tarafımdan açılamadı:

  • mevzuat.gov.tr ve resmigazete.gov.tr WebFetch'te TLS hatası veriyor (unable to verify the first certificate); ÖSYM ve YÖK alan adları açılıyor. [K]
  • Resmî Gazete'nin 11625 sayılı Karar PDF'i taranmış görüntü (metin katmanı yok) ve dosya indirmek yasak.

Yazarların raporları her iki kaynağı da açtıklarını ve madde madde okuduklarını yazıyor (10-yazar-ilk-hafta.md:8,19,28,29, 12-yazar-ek-madde-1.md). Ben ne çürütebildim ne teyit edebildim; onun yerine çapraz kontrol yaptım:

  • 11625 sayılı Karar / 15.08.2026 / RG 33341 / "birinci öğretim katkı payı devletçe karşılanır" → bağımsız ikincil kaynaklarla doğrulandı [A].
  • Yatay geçiş yönetmeliğinin 28.02.2026 tarihli (RG 33182) değişikliği ve "alt sınıfa başvuru yapılamaz" hükmü → doğrulandı [A]; yazı zaten "okulunun duyurusunu teyit et" diye hedge ediyor.
  • ÖSYM'nin 2027 takvimini yayımlamadığı → doğrulandı [A]; yks-2027-takvimi'nin tezi ayakta, 2027 sütununda tek uydurma tarih yok. Yayımlanabilir diyorum, ama (II) sayılı cetvelin 8 rakamı sitede yayımlanmadan önce Bilal'in 2 satırlık göz teyidini istiyorum (aşağıda, yazarın kendi isteğiyle aynı).

Yöntem. content/rehber/*.md içindeki bütün ](/…) bağlantıları satır numarasıyla çıkarıldı ve dört kümeye karşı doğrulandı (betik: scratchpad, linkcheck.mjs):

  • /rehber/<slug> → content/rehber/ dosya listesi;
  • /bolum/<slug> → DB'deki tüm isim değerlerinden turkishSlugify(bolumBazAdi(isim)) (src/lib/slug.ts:29,41 kuralının birebir kopyası);
  • /universite/<slug> → DB'deki tüm universite değerlerinden uniSayfaSlug (sondaki (İL) eki atılarak);
  • statik yollar → src/app/ altındaki gerçek route klasörleri; ayrıca next.config.ts:75-80 redirect tablosu ayrı bir küme olarak işaretlendi (redirect'e düşen link "kırık değil ama kullanılmamalı" sayıldı).

Sonuç.

Kapsam İç link Kırık hedef Redirect'e düşen
42 yazının tamamı (ilk tarama) 682 0 32 (hepsi /tercih-robotu)
Benim 10 yazım (son tarama) 298 0 0
  • /il/* kullanımı yok (T7 tuzağına düşen yazı çıkmadı).
  • /bolum/* ve /universite/* slug'larının tamamı DB'den üretilebilen gerçek sayfalara çıkıyor — ODTÜ, Koç, Bahçeşehir gibi elle yazılmış onlarca üniversite linki dahil.
  • 10 yazıdaki 4 /tercih-robotu geçişi /#hero-form'a çevrildi (src/app/page.tsx:241'deki gerçek çapa). Bağlantı metni değiştirilmedi ("tercih robotuna" ifadesi marka terimi — [BİLAL]).
  • Kalan 28 geçiş mevcut 28 yazıda ve benim kapsamım dışında. Her biri 301 kalıcı yönlendirmeye gidiyor: gereksiz sıçrama, link eşitliği kaybı ve /meraklisina-öncesi eski akış izi. Mekanik bir sed işi.

Denetime başlarken 10 yeni yazının birbirine sıfır linki vardı (hepsi yalnız eski 32 yazıya bağlanıyordu). Bu, CEO'nun G4 paketinin çözmeye çalıştığı "iç link grafiği çöküyor" sorununu yeni yazılarda baştan üretiyordu. 13 çapraz link eklendi — hepsi mevcut bir cümlenin içine, konu gerçekten örtüştüğü yere:

Kaynak Hedef Bağlam
siralama-bandlari ↔ kac-net karşılıklı "elinde sıralama değil net varsa" / "netin sıralamaya dönüşür"
siralama-bandlari ↔ taban-siralamalari-alti-yilda karşılıklı envanter (2026 fotoğrafı) ↔ yön (altı yıl)
kac-net → taban-siralamalari-alti-yilda tek yön "tabanların yıllar içinde kayması"nın ölçümü
bilgisayar-mi-yazilim → taban-siralamalari-alti-yilda tek yön Yazılım Müh. altı yılda en çok gerileyen 3. bölüm — yazının kendi "tabanlar gevşedi" cümlesinin devamı
yapay-zekaya-tercih-sordum ↔ yeni-acilan-bolumler karşılıklı kılavuzdan düşen / kılavuza yeni giren satırlar; havuz kuralı
yapay-zekaya-tercih-sordum → kac-net tek yön "kaç netle girilir" veriye sorulacak sorular listesinde
ek-madde-1 ↔ universitede-ilk-hafta karşılıklı ilk haftada atılacak geri dönüşü olan adımlar
yks-2027-takvimi → taban-siralamalari-alti-yilda, kac-net tek yön 2027'ye hazırlananın "bugünden ne yaparım" listesi

Bağlam bulamadığım çiftlere (ör. kktc ↔ bilgisayar-mi-yazilim) link uydurmadım.


(f) Kanibalizasyon denetimi

Çift Ayrım cümlesi ilk 200 kelimede? Not
siralama-bandlari ↔ kac-siralama-ile-hangi-bolume-girebilirim ↔ hedef-siralama-nasil-belirlenir Evet — ikisine de link, 2. paragrafta "Bu yazı iki kardeş yazının arasını dolduruyor… Burada ise tek bir soruya sayım yaparak cevap veriyoruz." Yazı bölüm adı listesi vermiyor, 1,4 katı dilim kuralını tekrar etmiyor. SEO planı §1'deki kural karşılanıyor.
taban-siralamalari-alti-yilda ↔ taban-siralamalar-nasil-degisir Evet — 3. paragrafta "orada mekanizmalar var, burada altı yılda gerçekte ne olduğunun ölçümü."
kac-net ↔ siralama-bandlari Evet (yeni eklendi) Net cetveli ↔ sıralama cetveli ayrımı ikisinin de girişinde.
yeni-acilan-bolumler ↔ yapay-zekaya-tercih-sordum Evet (yeni eklendi) Biri havuzun içeriğini, diğeri havuzun kuralını anlatıyor.

(g) Tutarlılık denetimi

  • Kapanan / kod değişen program sayısı (yapay-zeka 572 + 466 ↔ yeni-acilan %8,0 ve 475/2.004): çelişki yok, üç farklı kesit. Doğrulandı: arşivde 2025 yerleşeni >0 ve kodu eşleşmeyen 572 lisans programı, 11.587 yerleşen; eski_kod dolu 466 satır; 2025'te kontenjanı olan satırların 1.745/21.986 = %7,9 düşmüş. [D] İki yazı da sayıyı "kapanan program sayısı" diye satmıyor — yapay-zeka:158 bunu açıkça uyarıyor.
  • Psikoloji trendi (17-yazar-alti-yil-trend.md'deki ⚠ üç satır): taban-siralamalari-alti-yilda zaten ⚠ uyarısına uymuş — ortalamanın yanına "184 programın 78'inde sıralama küçüldü" kolonu, ardından ayrı bir devlet kırılımı tablosu (devlet 51 program 108.722→105.556, "ters" etiketli) ve Hacettepe örneği koymuş. Başka hiçbir yeni yazı Psikoloji'yi "gerileyen bölüm" diye tek başına anmıyor. Düzeltme gerekmedi.
  • Devlet Psikoloji 2026 medyanı iki yazıda iki farklı sayı: kktc 97.977 (74 program, hepsi) ↔ yeni-acilan 101.050 (72 program, yalnız yerleşik). İkisi de kendi havuzunda doğru [D]. Okuyucu iki sayıyı yan yana görürse şaşırmasın diye kktc'nin yöntem kutusuna ikisi arasındaki farkı açıklayan satır eklendi.
  • Veri tarihi: 10 yazının hepsinde 21 Eylül 2026 ✔. Yıl etiketi: kac-net'in bütün net rakamları 2025 etiketli ✔ (CEO'nun §C koşulu). Çerçeve: "son yerleşen kişinin netleri" ✔, "yerleşenlerin ortalaması" ifadesi hiçbir yazıda yok ✔.
  • Frontmatter: 10 dosyanın hepsinde tam 3 alan (baslik, aciklama, tarih), düz anahtar: değer ✔. guncelleme alanı eklenmedi — hepsi bugün doğdu, içerik düzeltmesi yayın öncesi yapıldı.
  • Teknik: her dosyada tam 1 flowchart TD + %% aria: + ≥1 tablo ✔. Renk kutularının hepsinde metin etiketi var; renk tek başına anlam taşımıyor ✔.
  • Ürün davranışı ↔ kod: yeni-acilan:157 ("efektif taban sıralaması = 2026, yoksa 2025"), yapay-zeka:118 ve siralama-bandlari ("ürün yerleşme olasılığı hesaplamaz; yalnızca son tabanı senin sıranla kıyaslar") — src/lib/risk.ts:70-76 yorumu ve riskHesapla ile birebir uyumlu ✔. Görünen dilim adları "Hayal / Dengeli / Güvenli" ✔ (DILIM_ETIKET).

(h) Altyapı borcu (raporluk — src/ altına dokunulmadı)

  1. /tercih-robotu 28 mevcut yazıda. Hepsi 301'e gidiyor. sed -i 's#](/tercih-robotu)#](/#hero-form)#g' düzeyinde mekanik iş; bağlantı metni korunmalı.
  2. unitur veri kalitesi (KKTC). Kıbrıs Amerikan Üniversitesi'nin 42 satırı unitur='DEVLET' — bu yüzden sihirbazın "devlet" adımında KKTC programı çıkıyor ve /universite/kibris-amerikan-universitesi sayfasında stats.devletMi true dönüyor. Yazarın raporu (14-yazar-kktc.md:187) bunu src/lib/db.ts:79 ve src/lib/katalog.ts:402'ye kadar izlemiş. Veri işi, editör işi değil — bu yazı artık düzeltmeyi beklemeden doğru sayıyor, ama ürün hâlâ yanlış gruplandırıyor.
  3. il alanı kirli: 2026 lisans havuzunda 9 satırın il'i boş, 34 satırınki "KIBRIS"/"LEFKOŞA"/"SARAYBOSNA - BOSNA - HERSEK". SEO planının T34'ü; /il/[slug] sayfası açılmadan önce temizlenmeli.
  4. 10 KKTC üniversitesi katalogda iki adla duruyor (X ve X (KKTC-ŞEHİR)), bu yüzden /universiteler listesinde ikişer kez görünüyorlar.

Bilal'den istenen (3 madde)

  1. Harç cetvelinden 2 rakamı göz kararı teyit et. resmigazete.gov.tr/eskiler/2026/08/20260815-7.pdf sayfa 14–15, (II) sayılı cetvel (A): mühendislik-mimarlık 11.348 TL ve veteriner 15.844 TL. PDF taranmış görüntü olduğu için yazar rakamları görselden okudu, ben bu ortamdan açamadım (TLS + indirme yasağı). Tutuyorsa universitede-ilk-hafta bu haliyle çıkar — ~3 dk.
  2. "Tercih robotu" marka terimi. Yeni yazılardaki linkleri /#hero-form'a çevirdim ama metni değiştirmedim ("tercih robotuna sıralamanı gir"). Ürün içinde artık ayrı bir robot sayfası yok; bu ifade yazılarda kalsın mı, yoksa 42 yazıda topluca mı değişsin? Tek cümlelik karar — ~2 dk.
  3. Mevcut 28 yazıdaki /tercih-robotu linkini tek commit'te düzelteyim mi? Benim kapsamım bu gece 10 yazıydı; onay verirsen ayrı fix(rehber): ölü CTA linki commit'i olarak hazırlarım (içerik değişmez, yalnız href) — ~1 dk karar.

EK — Doluluk paydası sapması (veri mühendisi bulgusu, aynı gece)

Tetikleyen: 26-veri-kalitesi.md §1.5 / K13-K14. Bu benim denetimimin kaçırdığı bir yöntem hatası değil, şemadan gelen bir sapma: rakam yazının filtresiyle yeniden üretiliyor ama paydanın kendisi eksik tanımlı.

Bulguyu kendim doğruladım

-- Payda yalnız genel kontenjan
SELECT COUNT(*), SUM(kontenjan2025 <> gk2025) FROM programs
WHERE kontenjan2025 IS NOT NULL AND gk2025 IS NOT NULL;   -- 19.857 | 0   → kontenjan = gk, istisnasız

scripts/refresh.ts:211-217 — yerlesen() fonksiyonu gkY + sgyY + dprmY + obkY topluyor. Yani pay dört kota türü, payda tek kota türü. [D]

SELECT COUNT(*), SUM(onlisans=0 AND unitur='DEVLET'), SUM(unitur='VAKIF'), SUM(unitur='KKTC')
FROM programs WHERE yerlesen2026 > kontenjan2026;   -- 11.964 | 5.618 | 840 | 0

2026 için doğru payda yeniden kurulamıyor — gk/obk/sgy/dprm/y34k kolonları yalnız 2025 yılı için var. 2025 üzerinden etkiyi ölçtüm: devlet Bilgisayar Müh. %101,6 → %99,0, devlet Yazılım Müh. %103,2 → %102,0 — yani tam payda ile bile %100'ün üstünde kalıyor. Bu, "açıklayıp bırakmak" seçeneğini devlet tarafında savunulamaz kıldı. [D]

Ne değiştirdim

1. bilgisayar-mi-yazilim-muhendisligi-mi.md — devlet doluluk çıkarıldı

Eski Yeni
| Devlet programlarında doluluk | %99,8 | %102,1 | satır silindi
— | Kontenjanını doldurup taban sırası oluşan devlet programı | 120 / 134 (%89,6) | 40 / 44 (%90,9) |
— | … vakıf programı | 94 / 169 (%55,6) | 43 / 89 (%48,3) |
| Doluluk | … | Doluluk (yerleşen ÷ ilan edilen **genel** kontenjan) | …

Neden çıkardım, açıklamadım: %102,1'in yanına "payda eksik" notu düşmek, okuyucuya yeniden üretemeyeceği ve düzeltemeyeceği bir sayı bırakırdı (2026 için doğru payda elimizde yok). Onun yerine aynı şeyi söyleyen, üretilebilir bir ölçüye geçtim: ÖSYM en küçük puanı ve başarı sırasını yalnız kontenjanını tamamen dolduran programlar için yayımlar, dolayısıyla sira2026 IS NOT NULL "program doldu mu" sorusunun bozulmamış göstergesi.

SELECT CASE WHEN isim LIKE 'Bilgisayar Mühendisliği%' THEN 'BM' ELSE 'YM' END b, unitur,
       COUNT(*), SUM(sira2026 IS NOT NULL), ROUND(100.0*SUM(sira2026 IS NOT NULL)/COUNT(*),1)
FROM programs
WHERE (isim LIKE 'Bilgisayar Mühendisliği%' OR isim LIKE 'Yazılım Mühendisliği%')
  AND onlisans=0 AND unitur IN ('DEVLET','VAKIF') AND isim NOT LIKE '%KKTC Uyruklu%'
GROUP BY b, unitur;
-- BM DEVLET 134|120|89,6 · BM VAKIF 169|94|55,6 · YM DEVLET 44|40|90,9 · YM VAKIF 89|43|48,3  [D]

Yan fayda: tablodaki "medyan taban sırası 120 program / 40 program" hücreleri artık yeni satırlarla birebir eşleşiyor — yazı kendi içinde kapanıyor.

Ayrıca düzeltilen bir yanlış açıklama: okuma notu "%100'ü aşması hata değil: ek kontenjan ve benzeri düzeltmelerle yerleşen sayısı ilan edilen kontenjanı geçebilir" diyordu. Bu ters — ek kontenjan paydaya eklense oran düşerdi. Gerçek sebep (kota kontenjanlarının paydada olmaması) yazıldı.

Vakıf satırlarına dokunmadım, ama yöntem kutusuna şunu ekledim: vakıf oranları (%60,7 · %32,9) sapma nedeniyle üst sınırdır — gerçek doluluk bundan yüksek olamaz. Yazının argümanı ("vakıfta kontenjanın büyük kısmı boş kaldı") bu yönde zaten muhafazakâr, yani sapma argümanı güçlendiriyor, zayıflatmıyor.

2. yeni-acilan-bolumler-nasil-degerlendirilir.md — aynı sapmanın ikinci yeri

Tarama bu yazıda da iki yer buldu; ikisini de yazar zaten fark etmiş ama sebebi yanlış yazmıştı.

  • :74 — "Devlet önlisansta doluluğun %100'ü aşmasının sebebi, YÖK Atlas kontenjan sütununun yerleştirme sonrası eklenen kontenjanları da içermesi" → yanlış ve ters yönlü. Gerçek sebep yazıldı: kontenjan alanı yalnız genel kontenjanı tutuyor, yerleşen dört kotanın toplamı. Devlet satırlarının (%105,2, %96,5) kesin yüzde değil gösterge olarak okunması gerektiği, vakıf satırlarının etkilenmediği eklendi.
  • :139 — ikinci yıl tablosundaki %102,8 satırına aynı uyarı tek parantezle kondu; okunacak şeyin iki satır arasındaki uçurum (%102,8 ↔ %39,7) olduğu söylendi.
  • Yöntem kutusuna: doluluk paydasının eksikliği + yazının asıl argümanının "kontenjanı tam dolan program payı" ve "hiç yerleşen olmayan program payı" kolonlarına dayandığı, bu iki kolonun sapmadan çok daha az etkilendiği notu.

Rakamlar (%88,2 / %98,5 / %74,9 / %105,2 …) değiştirilmedi — hepsi yazının kendi filtresiyle yeniden üretiliyor, sorun üretilebilirlik değil paydanın tanımı.

Taranan ve temiz çıkanlar

yerlesen ÷ kontenjan oranı kullanan her yazı tarandı (grep -nE "[Dd]oluluk|yerleşen ÷|÷ kontenjan|%[0-9]+,[0-9]+ (doldu|dolarken)").

Yazı Doluluk oranı var mı Hüküm
bilgisayar-mi-yazilim-muhendisligi-mi Evet, devlet dahil Düzeltildi (yukarıda)
yeni-acilan-bolumler-nasil-degerlendirilir Evet, devlet dahil Düzeltildi (yukarıda)
kktc-universiteleri-okunur-mu Evet, ama yalnız KKTC Dokunulmadı. Veri mühendisinin "KKTC'de aşan satır 0" bulgusunu dört yıl için ayrı ayrı doğruladım: SUM(yerlesen20YY>kontenjan20YY) → 2023: 0 · 2024: 0 · 2025: 0 · 2026: 0 [D]. Yazıdaki devlet %99,2 ve vakıf %78,1 satırları bizim DB'mizden değil ÖSYM yayınından geliyor (DB'de devlet 280.131/286.150 çıkıyor) — sapma taşımıyorlar
siralama-bandlari-hangi-kapilar-acilir Hayır — yalnız kontenjan toplamı ve program sayısı temiz
taban-siralamalari-alti-yilda-nasil-degisti Hayır — kontenjan toplamı (255.090 → 204.714) temiz
kac-net-ile-hangi-bolum Hayır temiz
yapay-zekaya-tercih-sordum-guvenilir-mi Hayır — kontenjan değişimi (5.192 değişti / 3.907 azaldı), oran değil temiz
ek-madde-1-puanim-yetiyor-mu Hayır temiz
universitede-ilk-hafta-… Hayır (DB rakamı yok) temiz
yks-2027-takvimi Hayır (DB rakamı yok) temiz

Kapsamım dışındaki bu geceki iki yazıyı da taradım, ikisi de temiz: bolumumu-sevmedim-hangi-kapilar-var.md ve rehber-ogretmenler-icin-veri-kaynaklari.md doluluk oranı kullanmıyor (tek geçiş, YÖK Atlas'ın ne sunduğunu anlatan bir tablo hücresi). veliler-icin-tercih-rehberi.md başka ajanda — açılmadı, yalnız grep'lendi: temiz.

Hükümde değişiklik yok

İki yazı da hâlâ yayımlanabilir; düzeltmeler yayın öncesi yapıldı. Yeniden doğrulandı: bilgisayar-mi-yazilim 67 iç link · 0 kırık · 3 frontmatter alanı · 1 mermaid + %% aria: · tablolar sağlam; yeni-acilan aynı.

Bilal'den istenen — ek 1 madde (toplam 4)

  1. kontenjan kolonunun anlamı ürün genelinde bir borç. Rehber yazıları artık doğru; ama aynı payda /bolum ve /universite sayfalarında bir doluluk göstergesi olarak kullanılıyorsa aynı sapmayı taşır. Bunu veri-muhendisi/cto kuyruğuna bir satır olarak açmak yeterli (şema işi, editör işi değil) — ~1 dk karar.

EK 2 — Dalga 3 denetimi (4 yazı, aynı gece, ikinci editör kopyası)

Kapsam: rehber-ogretmenler-icin-veri-kaynaklari, bolumumu-sevmedim-hangi-kapilar-var, ayni-bolum-farkli-universite-siralama-farki, hangi-bolumlerin-kontenjani-azaldi. Artı, orkestratörün ÖNCELİKLİ KONTROL §4'ünde adıyla verdiği tek cümle için canlıdaki bos-kontenjanlar-ne-anlatiyor.md. src/ altına, Bilal'in commit'lenmemiş dosyalarına ve diğer 11 yeni yazıya dokunulmadı. Commit yok, git add yok, yıkıcı git komutu koşulmadı. İşaret: [D] bu sabah kendim koştum/açtım · [A] ikincil · [K] açılamadı.

Özet (5 madde)

  1. Dört yazının bulabildiğim her DB rakamını yeniden koştum: 120'den fazla hücrenin tamamı tuttu, tek bir rakam düzeltilmedi. ayni-bolum'un 8 tablosu (7 bölüm × 7 kolon, %10/medyan/%90 yayılımı, 73 bölümlük yayılım sıralaması, Psikoloji merdiveni, 6 devlet programı, devlet/vakıf medyanları, şehir kırılımı, program yaşı, 20 dil çifti) ve hangi-bolumlerin-kontenjani-azaldi'nın 7 tablosu (denge, kurum, 15 azalan, 4 artan, korelasyon bantları, bölüm medyanları, YÖK'ün beş programı) hücre hücre birebir çıktı [D].
  2. Havuz çapraz kontrolü temiz: ayni-bolum ile siralama-bandlari tek sayıda bile ayrışmıyor. 9.304 program / 271 üniversite / 81 il / 351 bölüm adı / 5.865 devlet / 3.439 vakıf / 312.283 kontenjan — yedisi de benim koşumumda aynı çıktı; ayni-bolum'un 7 adımlık eleme merdiveni (21.493 → 12.239 → 11.280 → 9.482 → 9.408 → 9.365 → 9.304) adım adım yeniden üretildi. İki yazının ortak altı bölümünde (İşletme, Psikoloji, BM, Hemşirelik, Hukuk, Tıp) program sayısı, en sıkı, medyan ve en geniş dört değerin dördü de aynı; Yeditepe Psikoloji üçlüsü (4.034 / 239.840 / 708.709) iki yazıda da aynı ve DB'de de aynı [D].
  3. Açıköğretim tuzağı doğrulandı ve manşet gerçekten değişiyor. Açık/uzaktan satırlar havuza katılırsa "en çok kısılan" listesinin 3. sırasına Görsel İletişim Tasarımı giriyor (90 program, 5.422 → 4.288, −1.134) ve bu düşüşün 1.000'i tek satır: Anadolu Ü. Açıköğretim Fakültesi 3.000 → 2.000. Örgün bakılınca 89 program, 2.422 → 2.288, −134 [D]. Yazının kararı doğru, rakamı da doğru. (Brief'teki −1.084 SEO planının farklı havuzundan; yazının kendi havuzunda karşılığı −1.134 ve yazı bu sayıyı tutarlı kullanıyor.)
  4. Tek gerçek düzeltme, önceki kopyanın bulduğu payda sapmasının üçüncü tekrarıydı — ve bu kez yanlış açıklamayla birlikte: hangi-bolumlerin…:20 "yerleşen kontenjandan büyük, çünkü yerleştirme sırasında eklenen kontenjanlar bu kolona yansıyor" diyordu. Ters ve yanlış. Gerçek sebep yazıldı, "boş kontenjan" sayıları alt sınır olarak etiketlendi. Aynı yanlış açıklama canlıdaki bos-kontenjanlar-ne-anlatiyor'un kaynak satırında da duruyordu; orası da düzeltildi (aynı satırdaki "birkaç yüz kişilik fark" ifadesi de devlet kontenjan toplamı için ~9 bin, düzeltildi).
  5. Ölü link: 46 yazının tamamında 829 iç link, 187 benzersiz hedef, 0 kırık. Dört yazının hiçbirinde /tercih-robotu ya da /il/* yok. Dörtten diğer 14 yeni yazıya sıfır çapraz link vardı; 10 doğal çapraz link eklendi. Dört yazının dördü de yayımlanabilir.

(a) Düzeltilen rakam ve ifadeler

Yazı:yer Eski Yeni Sorgu / gerekçe
hangi-bolumlerin… yöntem kutusu "yerlesen2026 bazı programlarda kontenjan2026'dan büyük (yerleştirme sırasında eklenen kontenjanlar bu kolona yansıyor)" Gerçek sebep: kontenjan = yalnız genel kontenjan, yerlesen = dört kotanın toplamı; doluluk oranı verilmiyor, yerleşen yalnız alt sınır göstergesi SELECT COUNT(*), SUM(kontenjan2025<>gk2025) FROM programs WHERE kontenjan2025 IS NOT NULL AND gk2025 IS NOT NULL; → 19.857 | 0 · scripts/refresh.ts yerlesen() = gkY+sgyY+dprmY+obkY · 2026'da aşan satır 11.964 [D]
hangi-bolumlerin… Diş Hekimliği (2 yer) "164 programın 28'inde kontenjan boş kaldı (410 kişilik boşluk)" "en az 28'inde (en az 410 kişilik; bu bir alt sınırdır)" Pay şişkin olduğu için yerlesen<kontenjan koşulunu sağlayan satır kesinlikle boş; sağlamayan satır boş olmayabilir de olabilir → sayım alt sınır [D]
hangi-bolumlerin… yöntem kutusu (bant sınırı yazılı değildi) Bant sınırları açık yazıldı: ≤−%25, −%25<x<−%10, −%10≤x<0, 0, 0<x≤%10, %10<x≤%25, >%25; medyan ROW_NUMBER(), çift gözlemde iki ortanın ortalaması Yazının verdiği filtreyle 7×3 = 21 hücrenin 21'i ancak bu sınırlarla birebir çıkıyor; başka bir okumayla 1.520/353/121/249/389 çıkıp tablo tutmuyor. CEO eşiği md. 1 ⇒ rakam değil yöntem cümlesi düzeltildi [D]
hangi-bolumlerin…:19 "425'i … gerçekten yeni programlar" + "[yeni açılan bölümler yazısındaki] 930 rakamı aynı tanımın önlisansı ve vakıf MYO'ları da kapsayan hâlidir, 425 onun örgün lisans alt kümesidir" İki yazı aynı tanımı iki farklı evrende sayıyor; ikisini de koştum: 930 (tüm düzey + VAKIF MYO) ve 425 (örgün lisans, DEVLET/VAKIF) [D]
hangi-bolumlerin…:192 [ana sayfadaki sıra formunu](/) (/#hero-form) Diğer 14 yeni yazının tamamı /#hero-form çapasını kullanıyor (src/app/page.tsx:241); tek başına / sayfanın tepesine düşüyordu
bos-kontenjanlar-ne-anlatiyor:131 (canlı) "devlet tarafında YÖK Atlas kontenjanları yerleştirme sonrası eklenen kontenjanları da içerdiği için birkaç yüz kişilik fark oluşuyor" Devlet lisans kontenjan toplamımız ÖSYM'ninkinden ~9 bin kişi düşük (265.356 ↔ 256,5 bin civarı); kurum grubu tablosunun tamamının ÖSYM'den alındığı ve kontenjan/yerleşen payda sapması yazıldı ÖSYM 265.356; SUM(kontenjan2026) örgün devlet lisans = 256.532 [D]. "Birkaç yüz" yalnız boş toplamı için doğru (29.985 ↔ 29.882), kontenjan toplamı için değil. Yazarın 30-yazar-kontenjan-azalan.md:265'te açtığı bulgu

Rakamı değiştirmedim, çünkü değiştirilecek rakam çıkmadı. Yeniden koşulup birebir tutanlar:

Yazı Yeniden koşulan Sonuç
ayni-bolum 7 adımlık eleme merdiveni (21.493→9.304); 9.304/271/81/351/5.865/3.439/312.283; 7 bölüm × (program, üniversite, min, medyan, max, devlet, vakıf) = 49 hücre; %10/medyan/%90 + kat oranı 7×4; 73 bölümlük yayılım listesi (Ekonomi 269,9 · Yeni Medya 219,4 · GİT 192,4 · İlk.Mat.Öğrt. 2,1 · Sınıf 2,2 · Eczacılık 2,3); Psikoloji merdiveni 5×4; 6 devlet programının adı-ili-sırası-kontenjanı; devlet/vakıf medyanı 7×2; şehir kırılımı 6×4; program yaşı 391/109.331 ↔ 170/246.689; 20 dil çifti 9/11; kontenjan bandı 315/146/100 ve 108.326/152.945/152.671; ikinci öğretim = 0; ODTÜ 65 satır + İşletme 6 satır (1.585…800.853) + Psikoloji 2 satır (2.443, 141.555); Bosna iki satırı (114.116, 795.314); vakıf burs etiketi 339/203/117 = 659 / 2.780; Psikoloji vakıf 32 etiketli / 138 etiketsiz; Mimarlık devlet en sıkı 39.128 = ODTÜ; 110 boş il (tablo geneli) ve havuzda 9 hepsi birebir [D]
hangi-bolumlerin… 10.534 eşleşen / 301 kod değişen / 505 yeni (14.244) / 425 gerçekten yeni; denge 3.698-1.056-5.780 ve 130.690→102.930, 25.332→32.058, 206.750, 362.772→341.738; devlet 6.107/1.738/266.665→252.916, vakıf 4.427/1.960/96.107→88.822; bölüm adı dengesi 354/235/27/92; arşiv 938 = 352 (5.824) + 586 (17.660); 15 azalan bölümün 9 kolonu = 135 hücre; 4 artan + Metalurji +35; Pearson 0,192, Spearman 0,153, n 8.681; bant tablosu 7×3; bölüm medyan tablosu 10×4; Hacettepe Diş 90→81 / 15.895→24.599 ve Sivas Cumhuriyet Hemşirelik 80→90 / 191.920→151.729; Diş Hek. 164/5.569/5.294/28/410; açık blok 61 prg / 5 üni / 24.525→23.349 hepsi birebir [D]
rehber-ogretmenler… Psikoloji 234 program, 329 – 1.402.765 (yazının verdiği SQL'le, kelimesi kelimesine) birebir [D]
bolumumu-sevmedim… DB rakamı yok —

(b) Çıkarılan / zayıflatılan cümleler

  1. hangi-bolumlerin…:20 — "yerleştirme sırasında eklenen kontenjanlar bu kolona yansıyor" çıkarıldı. Bu açıklama yalnız eksik değil, ters: ek kontenjan paydaya eklenseydi oran düşerdi. Yerine ölçülmüş sebep kondu ve yazıya "bu yazıda hiçbir yerde yerleşen ÷ kontenjan doluluk oranı vermiyoruz" kuralı yazıldı.
  2. hangi-bolumlerin… — "28 programda boş kaldı / 410 kişilik boşluk" kesin sayı olmaktan çıkarıldı, alt sınır olarak etiketlendi. Sayı değişmedi; iddia zayıflatıldı (CEO eşiği md. 1 — okuyucu yeniden üretebildiği şeyi görmeli).
  3. bos-kontenjanlar-ne-anlatiyor:131 (canlı) — "birkaç yüz kişilik fark" ifadesi devlet kontenjan toplamı için yanlıştı (gerçek fark ~9 bin), aynı cümledeki sebep de yanlıştı. İkisi de düzeltildi; doğrulanmış olan (vakıf 99.638 birebir, boş 29.985 ↔ 29.882) korundu.
  4. Başka cümle çıkarılmadı. Vaat dili taraması dört yazıda da temiz (yerleşirsin|kesinlikle girer|garanti bir|atanırsın|kazanırsın|girersin → 0 eşleşme). "garanti" kelimesi yalnız hangi-bolumlerin… mermaid'inde classDef garanti iç anahtarı olarak geçiyor; AGENTS.md gereği aynen korundu, görünen etiketler "Hayal / Dengeli / Güvenli" [src/lib/risk.ts:21-25].

(c) Tutarlılık: iki yazıdaki iki Psikoloji sayısı

rehber-ogretmenler… Psikoloji'yi 234 program diye sayıyor (isim = 'Psikoloji' tam eşleşme, son_kilavuz_yili = 2026), ayni-bolum 243 diyor (parantezli varyantlar aynı başlık altında, Türkiye kampüsleri). İkisi de kendi filtresiyle birebir üretiliyor [D] ve taban aralığı ikisinde de 329 – 1.402.765. Okuyucu iki sayıyı yan yana görürse çelişki sanmasın diye rehber-ogretmenler…'e farkı açıklayan ve ikinci havuza bağlanan iki cümle eklendi. ayni-bolum tarafına dokunulmadı — orada tanım zaten yazılı.

Diğer tutarlılık kontrolleri: veri tarihi dört yazıda da 21 Eylül 2026 ✔ · yıl etiketi her rakamda var ✔ · "son yerleşen kişinin sırası" çerçevesi ✔ ("yerleşenlerin ortalaması" hiçbirinde yok) · frontmatter dördünde de tam 3 alan, düz anahtar: değer ✔ · guncelleme eklenmedi (dördü de bugün doğdu; bos-kontenjanlar da bugün tarihli, aynı gün düzeltildi) · her dosyada tam 1 flowchart TD + %% aria: + %% altyazi: ✔ · tablo sayısı 3 / 1 / 8 / 7 ✔ · renk kutularının hepsinde metin etiketi var ✔.

Ürün davranışı ↔ kod: üç yazıdaki "ürün yerleşme olasılığı hesaplamaz; son taban sıralamasını (2026, yoksa 2025) senin sıranla kıyaslar ve satırı Hayal/Dengeli/Güvenli dilimine koyar" cümlesi src/lib/risk.ts:21-25 (DILIM_ETIKET) ve :73-79 (riskNotuMetni yorumu) ile birebir uyumlu ✔.

(d) Kanibalizasyon denetimi

Çift Ayrım cümlesi ilk 200 kelimede? Aynı kesit farklı rakamla anılıyor mu?
hangi-bolumlerin… ↔ bos-kontenjanlar… ↔ yeni-acilan… Evet — 114. kelimede, üç yazıyı da adıyla ayıran tek paragraf ("açılan ama dolmayan" / "ilk kez giren" / "kılavuzda duran ama küçülen") Hayır. hangi-bolumlerin… Türkiye geneli resmî toplam vermiyor, ÖSYM toplamları için bos-kontenjanlar'a gönderiyor; tek çakışma adayı olan "yeni program" sayısı (425 ↔ 930) artık yazıda açıkça uzlaştırılıyor
ayni-bolum ↔ siralama-bandlari ↔ kac-siralama-ile-hangi-bolume-girebilirim Evet — 102. kelimede, üçünü de ayırıyor (dağılım / envanter / kaba harita) Hayır. Ortak altı bölümün dört değeri de iki yazıda aynı; havuzun aynı olduğu iki yazıda da yazılı
rehber-ogretmenler… ↔ tercih-robotu-nedir-yok-atlas-nasil-kullanilir Evet — giriş paragrafında "bu yazı bir kaynak haritası", Atlas'ın adım adım kullanımı için diğerine bağlanıyor Hayır
bolumumu-sevmedim… ↔ 7 kapı yazısı Evet — 9. satır: "Bu yazı bir harita: her kapıyı tek cümleyle tanıtır, ayrıntıyı kendi yazısına bırakır" Hayır — hub hiçbir kapının rakamını tekrar etmiyor

(e) Eklenen çapraz linkler (10)

Denetime başlarken bu dört yazının diğer 14 yeni yazıya sıfır linki vardı (bolumumu-sevmedim'in universitede-ilk-hafta ve ek-madde-1 bağları ile hangi-bolumlerin…'in yeni-acilan/yks-2027/taban-…-alti-yilda bağları dışında) ve dördü birbirine hiç bağlı değildi. Hepsi mevcut bir cümlenin içine kondu:

Kaynak Hedef Bağlam
hangi-bolumlerin… ayni-bolum… "Bölüm adına değil, programa bak" maddesinin devamı
hangi-bolumlerin… yeni-acilan… (2. geçiş) 425 ↔ 930 uzlaştırması
ayni-bolum… hangi-bolumlerin… "Ölçemediğimiz iki şey → kontenjan büyüklüğü": aynı soru 2025→2026 değişimiyle ayrıca ölçüldü
ayni-bolum… bilgisayar-mi-yazilim… Aynı yayılım sorusu iki komşu bölüm adı arasında
ayni-bolum… kac-net-ile-hangi-bolum "Sıralaman 150.000 ise" merdiveninin girişi: elinde net varsa
rehber-ogretmenler… ayni-bolum… "Aynı bölüm adı" tuzağı paragrafı + 234/243 uzlaştırması
rehber-ogretmenler… hangi-bolumlerin… YÖK duyuruları bölümü: kontenjan politikasının veri karşılığı
rehber-ogretmenler… bolumumu-sevmedim… Kapanış: tercih haftasından sonra gelen soru
bolumumu-sevmedim… ayni-bolum… 2. kapı: yatay geçişte hedef programı seçerken
bolumumu-sevmedim… siralama-bandlari… 4. kapı: yeni bir sıralamanın kaç kapı açtığını önden görmek

Bağlam bulamadığım çiftlere (ör. bolumumu-sevmedim ↔ kktc…, rehber-ogretmenler ↔ yks-2027-takvimi) link uydurmadım. Dört yazıya diğer 11 yeni yazıdan gelen link hâlâ yok — o dosyalar kapsamım dışında (aşağıda, Bilal'den istenen md. 3).

Yöntem (önceki taramayla aynı, düzeltmelerden sonra yeniden koşuldu): content/rehber/*.md içindeki tüm ](/…) bağlantıları çıkarıldı, # çapası atıldı, dört kümeye karşı doğrulandı — (1) /rehber/<slug> ↔ content/rehber/ dosya listesi; (2) /bolum/<slug> ↔ DB'deki tüm isim değerlerinden turkishSlugify(bolumBazAdi(isim)) (src/lib/slug.ts:6,25,45 kuralının birebir kopyası, node ile); (3) /universite/<slug> ↔ DB'deki tüm universite değerlerinden uniSayfaSlug; (4) statik yollar ↔ src/app/ route klasörleri + next.config.ts:76-80 redirect tablosu (redirect'e düşen "kırık değil ama kullanılmamalı" sayıldı).

Kapsam İç link (geçiş) Benzersiz hedef Kırık Redirect'e düşen
46 yazının tamamı 829 187 0 27 yazıda /tercih-robotu
Denetlediğim 5 dosya 27 + 17 + 53 + 37 + (canlı yazı) — 0 0
  • /bolum/* (68 benzersiz) ve /universite/* (69 benzersiz) hedeflerinin tamamı DB'den üretilebilen gerçek sayfalara çıkıyor.
  • /il/* kullanımı yok (T7 tuzağı).
  • Dış kaynak adreslerinden dördü bu sabah tek tek açıldı (aşağıda) — hepsi 200.

(g) Teyitler (kaynak URL + ne doğrulandı)

İddia (yazı) Kaynak Sonuç
YÖK 17 Şub 2026: 2023–2025'te 1.090.014 → 843.547, −246.467 (−%23); "aşırı kalabalık sınıflar…" cümlesi; "2026 yılından itibaren vakıf üniversitelerimiz için de geçerli olacaktır"; "başta hukuk, psikoloji, eczacılık, diş hekimliği ve mimarlık…" (hangi-bolumlerin…) yok.gov.tr/tr/news/…-OlqxR Dördü de sayfada, birebir [D] — yazının omurgası ayakta
2547 s.k. md. 7: program açma / öğrenci alma / öğrenci alımını durdurma YÖK kararıdır; kontenjan değerlendirmesi Yükseköğretim Genel Kurulu'nda; lisansta ilgili alandan kadrolu en az 3 öğretim üyesi ve 1 araştırma görevlisi (vakıf için) (hangi-bolumlerin…) egitim.yok.gov.tr/tr/page/491 Üçü de sayfada, birebir [D]. Yazının parantezlemesi ("araştırma görevlisi şartı vakıflarda") kaynağın parantezine uyuyor
ÖSYM kılavuzu tercih süresi içinde yeniden yayımlanır, ilk hâli "ön bilgi" (rehber-ogretmenler…) osym.gov.tr/2026yks-…-kilavuzunun-yayimlanmasi Açıldı, 21 Temmuz 2026 tarihli, cümle yerinde [D]
2026-YKS yerleştirme sonuçları 18 Ağustos 2026 (iki yazı) osym.gov.tr/2026-yks-yerlestirme-sonuclari-aciklandi Açıldı, tarih teyit [D]
YÖK 1 Tem 2026: 2026-2027'de "7'si lisans, 9'u ön lisans olmak üzere toplam 16 yeni program" (rehber-ogretmenler…) yok.gov.tr/tr/news/…-ADkaS Açıldı, cümle birebir [D]
YÖK Atlas sunucudan 945 bayt boş iskelet döndürüyor (rehber-ogretmenler…) curl -s -o /dev/null -w "%{size_download}" https://yokatlas.yok.gov.tr/ 945 [D] — yazının ölçümü birebir doğru

Prompt injection kontrolü: açılan beş sayfanın hiçbirinde bana yönelik talimat yok; hepsi veri olarak kullanıldı.

(h) Teyit edilemeyen / genellenen / dokunulmayan

  1. Kılavuz PDF'lerinin sunucu damgaları (rehber-ogretmenler…:60: 4 Ağustos 2026 / ~10,2 MB ↔ 21 Temmuz 2026 / ~12,2 MB). Dosya indirmek yasak, bu ortamdan başlık bilgisini okuyamadım [K]. Dokunmadım — yazı zaten "22 Eylül 2026'da ölçtük" diyerek iddiayı kendi ölçümüne ve tarihe bağlıyor, daha iddialı hâle getirilmedi. Yazının tezi (kılavuz yeniden yayımlanır) ÖSYM duyurusuyla bağımsız olarak teyit edildi [D], yani tez damgalara bağlı değil.
  2. resmigazete.gov.tr ve mevzuat.gov.tr bu ortamdan yine açılamadı (TLS zinciri) [K]. rehber-ogretmenler… bu iki kaynağın içeriğine dayanan tek bir rakam ya da madde vermiyor ve bunu yazıda açıkça söylüyor — CEO eşiği md. 3 karşılanıyor, düzeltme gerekmedi.
  3. bolumumu-sevmedim…'in tek kaynağı (egitim.yok.gov.tr/tr/page/492) açılmadı denenmedi — yazı o sayfadan hiçbir madde ya da rakam alıntılamıyor, yalnız "hangi yönetmelikte aranacağını" söylüyor ve ayrıntıyı yedi kapı yazısına bırakıyor. Yönetmelik maddelerinin denetimi önceki kopyanın ek-madde-1 / universitede-ilk-hafta geçişinde yapıldı (EK'ten önceki (c) bölümü).
  4. ÖSYM'nin kurum grubu toplamları ile kendi havuzumuz arasındaki ~9 bin kişilik devlet lisans farkının sebebi çözülemedi [D: fark ölçüldü, sebep ölçülemedi]. Açıköğretim eklenince toplam 279.693 olup bu kez ÖSYM'yi aşıyor. Bu yüzden hangi-bolumlerin…'in "Türkiye geneli resmî toplamlar bu yazıda yok" kararı doğru karardır, dokunulmadı; bos-kontenjanlar'ın kaynak satırına ise farkın büyüklüğü yazıldı, sebebi yazılmadı.
  5. Diğer 11 yeni yazıya ve veliler-icin-tercih-rehberi'ye dokunulmadı (başka ajanın/Bilal'in kapsamı). AGENTS.md, docs/ekip/KARARLAR.md ve src/ yalnızca okundu.

(i) Yayımlanabilir / yayımlanmaz hükmü — yazı yazı

CEO'nun altı maddesi: 1 rakam yeniden üretilebilir · 2 yöntem kutusu (rakamdan önce) · 3 açılamayan kaynağa dayanan cümle yok · 4 vaat dili yok · 5 ayrım cümlesi ilk 200 kelimede · 6 teknik (3 frontmatter alanı, 1 mermaid + %% aria:, ≥1 tablo, ölü link yok).

# Yazı 1 2 3 4 5 6 Hüküm
12 ayni-bolum-farkli-universite-siralama-farki ✔ (120+ hücre birebir) ✔ (7 adımlık eleme tablosu + dört zayıf nokta, rakamdan önce) ✔ ✔ ✔ (102. kelime) ✔ (8 tablo, 53 link, 0 kırık) Yayımlanabilir
13 hangi-bolumlerin-kontenjani-azaldi ✔ (bant sınırı + payda cümlesi düzeltildi) ✔ (genişletildi) ✔ ✔ ✔ (114. kelime) ✔ (7 tablo, 37 link, 0 kırık) Yayımlanabilir
14 rehber-ogretmenler-icin-veri-kaynaklari ✔ (tek DB rakamı birebir; 234↔243 uzlaştırıldı) ✔ (ayrı "Bu yazıdaki rakam nasıl hesaplandı?" bölümü + tam SQL) kısmi — PDF damgaları doğrulanamadı ama iddia tarihli/ölçüme bağlı ve tez bağımsız teyitli ✔ ✔ ✔ (3 tablo + kaynak durumu tablosu, 27 link, 0 kırık) Yayımlanabilir
15 bolumumu-sevmedim-hangi-kapilar-var — DB rakamı yok — gerekmiyor ✔ (kaynaktan alıntı yok) ✔ ✔ (9. satır) ✔ (1 tablo, 17 link, 0 kırık) Yayımlanabilir

Dördünün de hükmü: yayımlanabilir. Kesilmesi gereken yazı çıkmadı; kesilmesi gereken bir açıklama cümlesi çıktı (b.1) ve kesildi. Ayrıca canlıdaki bos-kontenjanlar-ne-anlatiyor'da yayımlanmış bir yanlış açıklama bulundu ve düzeltildi (b.3).

Bilal'den istenen (3 madde)

  1. Canlı yazıya dokundum, gözden geçir. content/rehber/bos-kontenjanlar-ne-anlatiyor.md kaynak satırındaki yanlış açıklama ("YÖK Atlas kontenjanları yerleştirme sonrası eklenen kontenjanları da içerir") ve "birkaç yüz kişilik fark" ifadesi düzeltildi; değişiklik commit edilmedi, çalışma ağacında duruyor. Tek paragraf, tek okuma — ~2 dk.
  2. kontenjan kolonu artık üç yazıda üç kez düzeltildi; şema tarafında bir kez düzeltilsin. Payda (kontenjan = yalnız genel kontenjan) ile pay (yerlesen = dört kota) uyuşmuyor ve 2026 için doğru payda veride yok (gk/obk/sgy/dprm kolonları yalnız 2025). Rehber yazıları artık doğru anlatıyor; veri-muhendisi/cto kuyruğuna tek satır açman yeter — ~1 dk karar.
  3. Kalan çapraz link işine onay. Bu dört yazıya diğer 11 yeni yazıdan gelen link hâlâ yok (kapsam dışıydılar) ve 27 mevcut yazıda /tercih-robotu 301'e gidiyor. İkisi de tek geçişlik mekanik iş; onay verirsen tek fix(rehber): iç link örgüsü commit'i olarak hazırlarım (içerik değişmez) — ~1 dk karar.