Files
kolaytercih/docs/gece-vardiyasi/2026-10-05/06-yazilimci-havuz-duzeltmeleri.md
2026-10-05 01:21:14 +03:00

190 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Yazılımcı · aday havuzu düzeltmeleri (B1, B2, B3, B4, B5, B8)
5 Ekim 2026 · yazılımcı · dal `gece/eval-jev` · kaynak: `02-profil-matrisi.md` §4
## Özet (5 madde)
1. **Altı bulgu kapandı, altı ayrı commit.** B3, B1, B5, B8, B2 davranışı düzeltti; B4'te davranış değişmedi, anlatım koda eşitlendi (KARARLAR.md'de gevşetme sırası için karar yok).
2. **40 profilde hiçbir liste kısalmadı.** 24'ün altında kalan liste 6 → 0; alanı gevşeyen profil 11 → 4 (kalan dördünde alan gerçekten dar); havuzlardaki baraj dışı program 12 → 0, özel kontenjan satırı 30 → 0.
3. **B3 taraması (tek alan, il yok, fark etmez; sihirbazın 24+ gösterdiği her alan):** alan gevşeyen deneme 203/308 → 1/308. Kalan tek deneme meşru: SAY 400.000 + Eğitim, alandaki programların hepsi 300.000 barajlı.
4. **Baraj için tablo uydurulmadı.** Kaynak `program_ozellik.min_basari_sirasi` (YÖK Atlas API, 2026 kılavuzu; katalogdaki "baraj … sıra" satırı aynı kolonu okuyor). Kolon bazı barajlı bölümlerde boş: bu satırlar süzülmüyor, veri işi olarak aşağıda.
5. **22 profilin `beklenen` değeri değişti** (tablo §3). `scripts/eval/profiller.ts`'e dokunulmadı; eval mühendisi işleyecek.
## 1. Commit listesi
| sha | B | Mesaj |
|---|---|---|
| `ef68f93` | B3 | fix(havuz): alan süzgeci kırpmadan önce uygulansın [KARAR] |
| `c1d81cd` | B1 | fix(havuz): tek dilime yığılan havuz 24'ün altına kırpılmasın [KARAR] |
| `497b024` | B5 | fix(havuz): gevşeyen filtreye uyan programlar havuzda kalsın [KARAR] |
| `22ac604` | B8 | fix(havuz): KKTC uyruklu ve M.T.O.K. kontenjan satırları havuza girmesin [KARAR] |
| `0a11b15` | B2 | fix(havuz): başarı sırası barajını geçemeyen adaya o bölüm önerilmesin [KARAR] |
| `1d970ec` | B4 | docs(havuz): gevşetme sırası anlatımı koda eşitlendi (profil → alan → il) [KARAR] |
Dokunulan dosyalar: `src/lib/rapor-havuzu.ts`, `src/lib/db.ts`, `src/features/pazarlama/components/huni-semasi.tsx`, `src/features/pazarlama/components/meraklisina-icerik.tsx`. `src/lib/risk.ts` değişmedi. `data/app.db` commit'lenmedi.
## 2. Bulgu bulgu: kök neden, değişiklik, kanıt
Kanıtların hepsi `havuzOlustur()` gerçek `data/yokatlas.db` üzerinde koşturularak alındı (betikler worktree dışında, scratchpad `havuz/`: `matris.ts` 40 profil, `degismez.ts` değişmez denetimi, `tarama.ts` B3 taraması; "önce" değerleri `ef68f93^` sürümünün kopyasıyla aynı betikten).
### B3 — alan süzgeci limitten sonra uygulanıyordu
- **Kök neden:** `searchByRank(... limitPerBucket: 60)` her dilimden sıraya en yakın 60 programı alıyor, `kategoriFiltre` ondan sonra çalışıyordu. 24 eşiği gerçek program sayısına değil, o 180 satırın içindeki eşleşmeye bakıyordu.
- **Değişiklik:** `db.ts` → yeni `havuzAdaylari()` dilimin tamamını (limitsiz, yakından uzağa) döndürür. `havuzOlustur` il + alan süzgecini bu tam listeye uygular, 24 eşiğini ona göre sayar, kırpmayı en sonda yapar. `searchByRank` ve `/sonuc` tablosu değişmedi.
- **Kanıt (havuzda seçili alanla eşleşen):** a16 EA 200.000 Turizm 1/60 → 33/33; p03 8/60 → 60/60; a08 5/60 → 60/60; p09 4/60 → 57/57; a01 11/21 → 24/24. Hiçbiri artık alan gevşetmiyor. İl seçili profiller de kazandı (p08 48 → 60: aynı kök neden).
- **Şema:** kullanıcıya anlatılan kural değişmedi ("elde kalan gerçek programlar" zaten bunu söylüyordu); şemaya dokunulmadı.
- **Maliyet:** havuz kurulumu 1–114 ms'den 6–130 ms'ye çıktı (40 profil, en büyük puan türü ~9 bin satır). LLM çağrısının yanında ihmal edilebilir.
### B1 — 24 eşiği kırpmadan önce sayılıyordu
- **Kök neden:** `length >= 24` denetiminden sonra `dilimBasinaKirp(…, 20)`; havuz tek dilime yığılınca 20–22 satır kalıyordu.
- **Değişiklik:** kırpma dilim başına 20'yi korur; toplam 24'ün altına düşecekse eksiği, adayı kalan dilimlerden tamamlar. Dağıtım `dilimHedefiHesapla` ile aynı öncelikte (dengeli → güvenli → hayal) ve tek yardımcıda (`eksigiDagit`). 5/13/6 iskeleti ve hedef hesabı aynı.
- **Kanıt (liste satırı):** a02 SAY 800 devlet sağlık 22 → 24 (1/1/22); a01 21 → 24; a11, a12, a17, b05 20 → 24.
- **Not:** a11/a12/a17/b05 listesi hâlâ tamamı hayal (24/0/0). Bu B6'nın (dolmayan programlar) konusu; dokunulmadı.
### B5 — gevşeyen filtreye uyan programlar korunmuyordu
- **Kök neden:** il gevşeyince havuz ilsiz, baştan kuruluyordu; seçili ildeki programlar sıraya en yakın 20'ye giremezse düşüyordu.
- **Değişiklik:** `oncelikliBirlestir()` — gevşetmenin her basamağında seçime uyanlar önce alınır, boşluk sıraya en yakın diğer programlarla dolar. Kırpmadan sonra havuz yine dilim sırasında ve dilim içinde yakından uzağa dizilir (eski düzen).
- **Kanıt (havuzda seçili ildeki program):** p12 Kayseri 1 → 9 (ilde alanla eşleşen 9'un 9'u), p13 Trabzon 0 → 4 (4'ün 4'ü), b06 Düzce 2 → 10 (10'un 10'u), a09 Konya 1 → 3, a05/b07 Kayseri 1 → 3. `degismez.ts`: gevşeyen 10 profilin hepsinde tam eşleşenlerin tamamı havuzda, tekrar yok, sıra bozulmamış.
- **Şema:** gevşetme düğümü, 4. bölüm anlatımı ve aria-label'a "seçimine uyan programlar havuzda kalır, boşluk sıralamana en yakın diğer programlarla dolar" eklendi.
- **Sınır (koddan çıkarım):** dilim başına 20 sınırı öncelikli katmana da uygulanır; seçime uyan programların 20'den fazlası aynı dilimdeyse fazlası kırpılır. Uyanlar zaten 24'ten az olduğu için ancak 21–23'ü tek dilimdeyse olur; 40 profilde görülmedi.
### B8 — özel kontenjan satırları herkesin havuzundaydı
- **Kök neden:** isim süzgeci yoktu. Veride 236 satır var (208 "(KKTC Uyruklu)", 28 "(M.T.O.K.)"), 118'inin taban sırası var.
- **Değişiklik:** `rapor-havuzu.ts` → export'lu `ozelKontenjanSatiriMi(isim)`; havuz girdisinin tamamına uygulanır.
- **Kanıt (havuzdaki özel satır):** p02 7 → 0, p14 6 → 0, p05 4 → 0, p09 5 → 0, a07 3 → 0; 40 profilde toplam 30 → 0.
- **Şema:** aday havuzu düğümü, anlatım, aria-label ve figcaption'a "yalnızca KKTC uyruklulara ya da meslek lisesi mezunlarına ayrılmış kontenjanlar havuza girmez" eklendi.
### B2 — başarı sırası barajı denetlenmiyordu
- **Baraj bilgisi nerede:** `program_ozellik.min_basari_sirasi` (`scripts/program-ozellik.ts` YÖK Atlas API'sinden yazar; 21.493 satırın hepsi `yil = 2026`). Okuyanlar: `src/lib/program-ozellik.ts:133` (katalogdaki "baraj … sıra") ve `src/lib/ai/araclar.ts:536` (`tercihBaraji`). Dağılım: 50.000 (226, SAY) · 80.000 (182, SAY) · 100.000 (161 EA + 101 SAY) · 250.000 (176, SAY) · 300.000 (2.143 SAY, 214 EA, 382 SÖZ, 156 DİL).
- **Değişiklik:** `db.ts` → `dilimAra`'ya `barajDisiHaric` seçeneği (varsayılan kapalı; öteki çağıranlar etkilenmez), `havuzAdaylari` bunu hep açar: `min_basari_sirasi < adayın sırası` olan program çıkar. Barajı boş program süzülmez. Sınır: baraj 50.000 ise 50.000. sıradaki aday içeride, 50.001 dışarıda.
- **Kanıt (havuzdaki baraj dışı program):** a04 (52.000, tıp) 3 → 0; a06 (310.000, mühendislik) 5 → 0; p03, a05, a08, b07 1 → 0. B3'ten sonra bu sayılar büyümüştü (a06 11, p03 17, a07 24/24); B2 ile hepsi 0.
- **a07 (SÖZ 310.000, devlet, Eğitim):** alandaki programların biri hariç hepsi 300.000 barajlı; alan artık gerçekten gevşiyor, liste 5/13/6. Kullanıcıya giden "seçtiğin alanlarda yeterli program yoktu" cümlesi doğru ama sebebi (baraj) söylemiyor; `rapor.ts` benim dosyam değil, öneri §5.
- **Şema:** aday havuzu düğümü, anlatım, aria-label ve figcaption'a "sıralaman bir bölümün başarı sırası barajının gerisindeyse o bölüm havuza girmez" eklendi; rakam yazılmadı (yıldan yıla değişebilir).
- **DOĞRULANMALI / veri işi:** kolon bazı barajlı bölümlerde boş. Tıp: 16 satır (ör. Dokuz Eylül Tıp (İngilizce), Bitlis Eren Tıp, Ankara Medipol Tıp); Hukuk: 11 satır (ör. Ankara Medipol, İbn Haldun %50). Bu satırlar baraj dışı adaya hâlâ çıkabilir. Mühendislikte 349 barajsız satırın bir kısmı meşru muafiyet olabilir (ziraat/orman/su ürünleri) — ayrım veriden yapılamadı. Baraj değerlerinin kendisi ÖSYM kılavuzuyla tek tek karşılaştırılmadı; kaynak YÖK Atlas API'sidir.
### B4 — gevşetme sırası belgede ve kodda farklıydı
- **Karar var mı:** `docs/ekip/KARARLAR.md`'de "gevşet" geçen karar yok. Bu yüzden kod davranışı değiştirilmedi.
- **Değişiklik:** fonksiyon yorumu, şema düğümü, 4. bölüm anlatımı ve aria-label "önce danışmana söylediklerin, sonra alan, sonra il" oldu (kodun yaptığı).
- **Kanıt:** p01 (Eskişehir), p06 (İzmir), a15 (Kilis): il korunur, alan gevşer. Bu commit öncesi/sonrası 40 profilin havuzu birebir aynı.
## 3. 40 profil: önce → sonra
"Önce" = `72b673b` (düzeltmeler öncesi), "sonra" = `1d970ec`. Değişmeyen hücre tek değer.
| id | gevşetilen | havuz (H/D/G) | hedef | liste | alan içi | il içi | baraj dışı | özel kont. |
|---|---|---|---|---|---|---|---|---|
| p01 | kategori | 40 (13/7/20) | 8/7/9 | 24 | 7 → **8** | 40 | 0 | 0 |
| p02 | - | 54 (20/14/20) → **53 (20/13/20)** | 5/13/6 | 24 | 54 → **53** | 54 → **53** | 0 | 7 → **0** |
| p03 | kategori → **-** | 60 (20/20/20) | 5/13/6 | 24 | 8 → **60** | – | 1 → **0** | 0 |
| p04 | - | 60 (20/20/20) | 5/13/6 | 24 | 60 | – | 0 | 1 → **0** |
| p05 | - | 60 (20/20/20) | 5/13/6 | 24 | 60 | – | 0 | 4 → **0** |
| p06 | kategori | 46 (20/6/20) | 8/6/10 | 24 | 8 | 46 | 0 | 0 |
| p07 | - | 29 (12/12/5) | 7/12/5 | 24 | 29 | – | 0 | 0 |
| p08 | - | 48 (17/12/19) → **60 (20/20/20)** | 5/12/7 → **5/13/6** | 24 | 48 → **60** | 48 → **60** | 0 | 0 |
| p09 | kategori → **-** | 60 (20/20/20) → **57 (20/20/17)** | 5/13/6 | 24 | 4 → **57** | – | 0 | 5 → **0** |
| p10 | - | 43 (16/20/7) → **51 (20/20/11)** | 5/13/6 | 24 | 43 → **51** | – | 0 | 0 |
| p11 | - | 59 (20/20/19) → **60 (20/20/20)** | 5/13/6 | 24 | 59 → **60** | – | 0 | 0 |
| p12 | il | 60 (20/20/20) | 5/13/6 | 24 | 60 | 1 → **9** | 0 | 0 |
| p13 | il | 25 (18/7/0) → **27 (20/7/0)** | 17/7/0 | 24 | 25 → **27** | 0 → **4** | 0 | 0 |
| p14 | - | 60 (20/20/20) | 5/13/6 | 24 | 60 | 60 | 0 | 6 → **0** |
| p15 | - | 28 (20/7/1) | 16/7/1 | 24 | 28 | 28 | 0 | 0 |
| a01 | kategori → **-** | 21 (0/1/20) → **24 (0/1/23)** | 0/1/20 → **0/1/23** | 21 → **24** | 11 → **24** | – | 0 | 0 |
| a02 | - | 22 (1/1/20) → **24 (1/1/22)** | 1/1/20 → **1/1/22** | 22 → **24** | 22 → **24** | – | 0 | 0 |
| a03 | - | 34 (9/5/20) | 9/5/10 | 24 | 34 | 34 | 0 | 0 |
| a04 | - | 44 (16/14/14) → **60 (20/20/20)** | 5/13/6 | 24 | 44 → **60** | – | 3 → **0** | 0 |
| a05 | il>kategori → **il** | 60 (20/20/20) → **52 (20/12/20)** | 5/13/6 → **5/12/7** | 24 | 5 → **52** | 1 → **3** | 1 → **0** | 0 |
| a06 | - | 29 (14/7/8) → **60 (20/20/20)** | 9/7/8 → **5/13/6** | 24 | 29 → **60** | – | 5 → **0** | 0 |
| a07 | kategori | 60 (20/20/20) | 5/13/6 | 24 | 0 → **1** | – | 0 | 3 → **0** |
| a08 | kategori → **-** | 60 (20/20/20) | 5/13/6 | 24 | 5 → **60** | – | 1 → **0** | 1 → **0** |
| a09 | il | 27 (14/5/8) → **41 (20/8/13)** | 11/5/8 → **7/8/9** | 24 | 27 → **41** | 1 → **3** | 0 | 0 |
| a10 | - | 56 (20/16/20) → **55 (20/15/20)** | 5/13/6 | 24 | 56 → **55** | 56 → **55** | 0 | 2 → **0** |
| a11 | - | 20 (20/0/0) → **24 (24/0/0)** | 20/0/0 → **24/0/0** | 20 → **24** | 20 → **24** | – | 0 | 0 |
| a12 | - | 20 (20/0/0) → **24 (24/0/0)** | 20/0/0 → **24/0/0** | 20 → **24** | 20 → **24** | – | 0 | 0 |
| a13 | - | 57 (19/18/20) → **60 (20/20/20)** | 5/13/6 | 24 | 57 → **60** | – | 0 | 0 |
| a14 | - | 60 (20/20/20) | 5/13/6 | 24 | 60 | 60 | 0 | 0 |
| a15 | kategori | 24 (4/5/15) | 4/5/15 | 24 | 5 | 24 | 0 | 0 |
| a16 | kategori → **-** | 60 (20/20/20) → **33 (8/5/20)** | 5/13/6 → **8/5/11** | 24 | 1 → **33** | – | 0 | 0 |
| a17 | - | 20 (20/0/0) → **24 (24/0/0)** | 20/0/0 → **24/0/0** | 20 → **24** | 20 → **24** | 20 → **24** | 0 | 1 → **0** |
| b01 | - | 60 (20/20/20) | 5/13/6 | 24 | 60 | – | 0 | 0 |
| b02 | - | 60 (20/20/20) | 5/13/6 | 24 | 60 | 60 | 0 | 0 |
| b03 | profil | 60 (20/20/20) | 5/13/6 | 24 | 60 | – | 0 | 0 |
| b04 | - | 25 (20/2/3) | 19/2/3 | 24 | 25 | 25 | 0 | 0 |
| b05 | - | 20 (20/0/0) → **24 (24/0/0)** | 20/0/0 → **24/0/0** | 20 → **24** | 20 → **24** | 20 → **24** | 0 | 0 |
| b06 | profil>il | 60 (20/20/20) | 5/13/6 | 24 | 60 | 2 → **10** | 0 | 0 |
| b07 | profil>il>kategori → **profil>il** | 60 (20/20/20) → **52 (20/12/20)** | 5/13/6 → **5/12/7** | 24 | 5 → **52** | 1 → **3** | 1 → **0** | 0 |
| b08 | - | 60 (20/20/20) | 5/13/6 | 24 | 60 | 60 | 0 | 0 |
**Gerileme denetimi.** Listesi kısalan profil yok. Havuzu küçülen altı profil ve nedeni:
- p02 (54 → 53), a10 (56 → 55): özel kontenjan satırları çıktı (B8); kalanların hepsi seçime uyuyor.
- p09 (60 → 57): eskiden alan gevşemiş 60 programın 4'ü mühendislikti; şimdi 57'nin 57'si mühendislik.
- a16 (60 → 33): eskiden 60'ın 1'i turizmdi; şimdi 33'ün 33'ü turizm. Dengeli dilimde 5 turizm programı olduğu için hedef 5/13/6 yerine 8/5/11.
- a05, b07 (60 → 52): alan artık gevşemiyor; 52'nin 52'si hukuk/siyasal. Dengeli dilimde 12 program olduğu için hedef 5/12/7.
### `beklenen` değeri değişen profiller (eval mühendisine)
`havuzGevsetmeBasamagi` · `minAday` · `hedef`; yalnız değişen alanlar.
| id | havuzGevsetmeBasamagi | minAday | hedef |
|---|---|---|---|
| p02 | – | 54 → 53 | – |
| p03 | ["kategori"] → [] | – | – |
| p08 | – | 48 → 60 | 5/12/7 → 5/13/6 |
| p09 | ["kategori"] → [] | 60 → 57 | – |
| p10 | – | 43 → 51 | – |
| p11 | – | 59 → 60 | – |
| p13 | – | 25 → 27 | – |
| a01 | ["kategori"] → [] | 21 → 24 | 0/1/20 → 0/1/23 |
| a02 | – | 22 → 24 | 1/1/20 → 1/1/22 |
| a04 | – | 44 → 60 | – |
| a05 | ["il","kategori"] → ["il"] | 60 → 52 | 5/13/6 → 5/12/7 |
| a06 | – | 29 → 60 | 9/7/8 → 5/13/6 |
| a08 | ["kategori"] → [] | – | – |
| a09 | – | 27 → 41 | 11/5/8 → 7/8/9 |
| a10 | – | 56 → 55 | – |
| a11 | – | 20 → 24 | 20/0/0 → 24/0/0 |
| a12 | – | 20 → 24 | 20/0/0 → 24/0/0 |
| a13 | – | 57 → 60 | – |
| a16 | ["kategori"] → [] | 60 → 33 | 5/13/6 → 8/5/11 |
| a17 | – | 20 → 24 | 20/0/0 → 24/0/0 |
| b05 | – | 20 → 24 | 20/0/0 → 24/0/0 |
| b07 | ["profil","il","kategori"] → ["profil","il"] | 60 → 52 | 5/13/6 → 5/12/7 |
Ayrıca `senaryoEtiketleri` ve `supheli` alanları eskidi: "liste-24-alti" artık hiçbir profilde yok; "gevsetme-kategori" p03, p09, a01, a08, a16'da, "gevsetme-il-kategori" a05'te, "gevsetme-profil-il-kategori" b07'de geçersiz; "ozel-kontenjan-satiri" ve "baraj-disi" profillerinde havuzda artık o satırlar yok. a07'de etiket aynı ("gevsetme-kategori") ama sebep değişti (baraj). `minAday` yorumundaki "dilim başına 20'ye kırpılmış" ifadesi de artık tam doğru değil (tek dilime yığılan havuz 24'e tamamlanır).
## 4. Doğrulama
- `pnpm exec next typegen` ✔ · `pnpm lint` ✔ (eslint temiz; tasarım denetimi 0 hata, 12 uyarı — hepsi `meraklisina-demo.tsx`'te, bu işten önce de vardı).
- `pnpm exec tsc --noEmit`: 3 hata, hepsi `scripts/eval/sohbet.ts` (eval mühendisinin commit'lenmemiş dosyası; satır 320, 329). Benim dosyalarımda hata yok.
- `pnpm build` alınmadı (görev gereği).
- `/meraklisina` şeması tarayıcıda açılmadı. **Koddan çıkarım:** değişiklik yalnız düğüm metinleri; yeni düğüm, kenar ya da sınıf yok, metinlerde noktalı virgül/çift tırnak yok. Aday havuzu düğümü dört satıra çıktı; 375 px'te okunurluğu gözle bakılmalı.
## 5. Şartnameden sapmalar ve başkasının dosyası için öneriler
Sapmalar:
- B5 yalnız il için istendi; aynı yardımcı alan ve danışman profili gevşediğinde de uyanları öne alıyor (aynı kök neden, tek kod yolu).
- `dilimAra`'ya `barajDisiHaric` seçeneği eklendi (havuz sorgusunun parçası; varsayılan kapalı).
Dokunmadığım dosyalar için öneriler:
- `src/lib/ai/araclar.ts` (`program_ara`): `ozelKontenjanSatiriMi` ve baraj süzgeci burada da uygulanmalı; bugün danışman, listenin önermediği baraj dışı/özel kontenjan satırını "Dengeli" diye sayabiliyor.
- `src/lib/ai/rapor.ts:268-272`: alan baraj yüzünden gevşediyse (a07) not bunu söylemeli.
- `rankWindowFacets` (sihirbaz sayıları) ve `/sonuc` ücretsiz tablosu (`siraylaProgramAra`) baraj dışı ve özel kontenjan satırlarını hâlâ sayıyor/gösteriyor. Sihirbaz "24+" deyip havuzun gevşediği durum bu yüzden hâlâ mümkün (taramada 1/308).
- B12 (`route.ts` "kalan 21 tercih"): liste artık 40 profilin hepsinde 24, sabit büyük ölçüde doğru çıkıyor; yine de gerçek uzunluktan türetilmeli.
- Dokunulmayanlar (görev gereği): B6, B7, B9, B10–B16.
## 6. Merge sonrası doğrulanması gerekenler
- `/meraklisina` şemasının çizimi (375 / 1280 px): aday havuzu ve gevşetme düğümleri uzadı.
- Gerçek modelle bir liste üretimi: 24/0/0 (tamamı hayal) havuzda ve il gevşemiş havuzda (p12) modelin hedefi tutturduğu.
- Eval `beklenen` güncellemesi sonrası 40/40 eşleşme.
## Bilal'den istenen
1. **[BİLAL] Gevşetme sırası hangisi olmalı: önce alan mı (bugünkü kod), önce il mi (eski anlatım)?** Örnek p01: Eskişehir + tıp isteyen adaya bugün Eskişehir korunup 8 sağlık + 32 başka alan veriliyor; Türkiye genelinde aynı alanda 615 program var. Tek cümlelik karar (5 dk).
2. **[BİLAL] M.T.O.K. kontenjanları herkesten gizlendi; meslek lisesi mezunu aday (p15 Deniz) bunları yazabilir.** Sihirbaza "meslek lisesi mezunuyum" sorusu eklensin mi, yoksa böyle kalsın mı (3 dk).
3. **[BİLAL]/veri işi: baraj kolonundaki boşluklar** (16 tıp, 11 hukuk satırı; mühendislikte muafiyet/eksik ayrımı) veri mühendisine verilsin mi; baraj değerleri 2027 kılavuzu çıkınca yeniden çekilmeli (2 dk).