Files
kolaytercih/docs/gece-vardiyasi/2026-09-22/00-orkestrator-gunlugu.md
bilalgursen a42a1a9920
All checks were successful
Deploy / deploy (push) Successful in 17s
docs(ekip): 22-23 Eylül vardiya raporları, BACKLOG/KARARLAR/PROTOKOL güncellemeleri
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 11:43:11 +03:00

108 lines
13 KiB
Markdown
Raw Permalink 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.
# Orkestratör günlüğü — 2026-09-22 gecesi
## Tur 1 (23:47 – 00:00) — beş bulgu ajanı paralel
| Ajan | Rapor | Durum |
|---|---|---|
| analitik | `01-analitik.md` | ✔ 801 temiz TR oturumu |
| tasarimci | `02-tasarim.md` | ✔ 5 kesim + URAP yerleşimi |
| marka | `03-acilar-ve-rakipler.md` | ✔ forum/şikâyet acıları |
| yapay-zeka-muhendisi | `04-liste-maliyet-ve-oneriler.md` | ✔ maliyet ölçüldü |
| veri-muhendisi | `05-urap.md` | ✔ URAP 198/198 eşleşti |
### Gecenin yakınsaması (orkestratör notu)
`analitik` ve `marka` birbirinden HABERSİZ aynı noktaya çıktı:
- **analitik:** net detayını açan oturumun sıra girme oranı %9,4; açmayanın %3,2. Ama oturumların %85,5'i hiç açmıyor. "Sorun fazla bilgi değil, işe yarayan tek bilginin bir tıklamanın arkasında olması."
- **marka:** YÖK Atlas 2026'da net/OBP verisini KALDIRDI, adaylar şikâyet ediyor. O veri bizde duruyor (`netler` tablosu, 2023-2025, ~21bin kayıt/yıl) ama yalnız bir modalın arkasında ve pazarlamada tek cümle yok.
İkisi birleşince: elimizde rakipte olmayan bir veri var, üstelik ölçülmüş dönüşüm etkisi var, ve bir tıklamanın arkasında saklı. Tur 2'de CEO'nun önündeki ana karar bu.
`tasarimci` ve `marka` URAP'ta da bağımsız olarak aynı sonuca vardı: tablo değil, üniversite sayfasında tek satır + atıf.
## Tur 2 (00:00 –) — CEO karar turu
`ceo` → `06-ceo-kararlari.md`. Üç rapor iddiası koddan ÇÜRÜTÜLDÜ (`/bolum`'de form yok iddiası, `/paket`'te iade görünmüyor iddiası, sezon bandı kesimi — bandın metnini Bilal 18 saat önce bizzat seçmiş). 4 iş onaylandı, gerisi gerekçeli reddedildi. `KARARLAR.md`'ye 11 kayıt eklendi.
**Bilal 00:05'te yazdı:** "uyuyorum benden onay bekleme bundan sonra" + "çalışsın ekip".
Orkestratör yorumu: bu, işin durmaması içindir; geri dönüşü olmayan yetki DEĞİLDİR. Push, deploy, `main`'e commit ve fiyat/paketleme değişikliği yine yapılmaz — `[BİLAL]` işler dalda hazır bekler.
## Tur 3 (00:10 –) — dört paket paralel, ayrı worktree + dal
| Paket | Dal | Ajan |
|---|---|---|
| P1 risk etiketi | `gece/0922-risk-etiketi` | yazilimci |
| P2 unitur sızıntısı | `gece/0922-unitur-kacagi` | veri-muhendisi |
| P3 URAP | `gece/0922-urap` | yazilimci |
| P4 ölçüm | `gece/0922-olcum` | yazilimci |
Bilinen çakışma: P2 ve P3 ikisi de `scripts/veri-kalite.ts` sonuna ekleme yapıyor. İkisine de "dosyanın en sonuna ekle, mevcut satırları düzenleme" denildi; merge'ü orkestratör çözecek.
### P1 ✔ (00:18) — `gece/0922-risk-etiketi` @ 2dbc8b5
tsc + lint temiz. Sapma (kabul): `/sonuc` tablosunun boş ilk sütun başlığına "Risk" yazıldı — sütun artık metin taşıyor, `/listem`'deki eşdeğer sütunla hizalandı.
Bedel: risk sütunu ~86px aldı, program adı sütunu ~150px→~85px kısalıyor (kesilme değil, truncate). Bilal telefondan bakacak.
Kapsam dışı iki bulgu (backlog adayı, dokunulmadı): `rapor-listesi.tsx:264` kilitli satırdaki "Pakette" etiketi hâlâ mobilde `sr-only`; `liste-cekmecesi.tsx:426` çekmecede risk yalnız renkli nokta.
### P4 ✔ (00:24) — `gece/0922-olcum` @ 26893ce
tsc + lint temiz. 14/14 `/paket` linkinde artık `?kaynak=` var; `sihirbaz_adim{1}` modal açılışında `olayBirKez` ile bir kez atılıyor.
**Şartname sapması (orkestratör onayı: kabul).** `paket-gorunum-olayi.tsx` dosya listesinde yoktu ama `?kaynak=` değerlerini `["kilit","kredi_bitti","nav"]` allowlist'inden süzüp gerisini `"diger"`e düşürüyormuş. Genişletilmeseydi 10 yeni kaynak panelde tek kovada toplanacak, iş görünüşte bitip ölçüm deliği kapanmayacaktı — AGENTS.md'nin "kısmi commit'te bağımlılık kapanışını kontrol et" kuralının tam örneği. Aynı commit'e alındı, P1/P2/P3 kapsamıyla çakışmıyor.
Yan not (ayrı iş): `listem-govde.tsx:288` ve `:369` iki ayrı kilit yüzeyi ama ikisi de `kaynak=kilit`.
### P3 ✔ (00:34) — `gece/0922-urap` @ 68cb69e, 4932671, b63c7e8
typegen + tsc + lint + **build temiz** (229 üniversite sayfası prerender). Kabul kriterleri 6/6.
**Orkestratörün bağımsız veri doğrulaması (yapıldı, kritik).** URAP verisini dışarıya atıf vererek yayımlayacağımız için ajanın verisine güvenmeyip kendim denetledim. Şüphem şuydu: URAP akademik yayın/atıf ağırlıklı bir sıralama, Koç'un 1. olması beklenmedik göründü.
- Tarayıcı bu oturumda açılmadı (erişim reddedildi) → URAP'ın kendi basın açıklaması PDF'i indirildi ve akış çözülerek okundu (`newtr.urapcenter.org/cdn/storage/PDFs/mezDn2uAd4mx2mZzW`, 28 Ekim 2025).
- PDF'te üniversite adları gömülü fontta olduğu için çıkmadı, **puanlar çıktı**. Puanlar üç tabloya bölünmüştü ve ilk bakışta devlet/vakıf ayrımı sandım — tutarsızlık şüphesi buradan doğdu.
- Anadolu Ajansı haberiyle çözüldü: tablolar devlet/vakıf değil, **tıp fakültesi olan / olmayan** ayrımı. Genel sıralama: 1 Koç, 2 Hacettepe, 3 ODTÜ.
- **Beş nokta karşılaştırması PDF'teki puanlarla birebir tuttu:** 1 Koç 1152,91 · 2 Hacettepe 1096,48 · 3 ODTÜ 1082,81 · 4 İTÜ 1067,01 · 18 Boğaziçi 881,20. Dosyada 198 satır.
- **Hüküm: veri doğru.** Şüphe yersiz çıktı ama denetim gerekliydi; yanlış olsaydı hem öğrenciyi yanıltırdık hem URAP iznini riske atardık.
Sapmalar (kabul): kaynak satırı yalnız 1. sayfada (derin sayfalarda URAP sayısı da yok) · boş durum varyantı `unitur`'a bakıyor, P2 merge'ünden sonra üç kurum ek kod olmadan doğru cümleye geçiyor · 5. veri-kalite kontrolü "önceki dönem" sabiti olmadığı için "URAP dışında kalan 150+ programlı TR üniversitesi" kontrolüne çevrildi.
**P2 ile tek çakışma yüzeyi:** `scripts/veri-kalite.ts` import bloğunun sonu.
### P2 ✔ (00:42) — `gece/0922-unitur-kacagi` @ iki commit (kod+rapor, veri)
Devlet filtresi 27→0, vakıf 0→27. 126 satır düzeldi; 45 kolon kıyaslandı, değişen yalnız `unitur` ve `il`; 2021–2026 puan/sıra/kontenjan kolonlarında **0 satır** değişti.
**Şartname genişletmesi (kabul, iyi yakalama):** CEO'nun yazdığı "baz ad başına tek `unitur`" kontrolü Kıbrıs Amerikan'ı yakalayamıyor — kurumun İKİ yazımı da yanlış etiketli olduğu için ortada çelişki yok, kontrol 100 satırın yalnız 58'ini koruyor. Ajan 6 satırlık ikinci kontrol ekledi: *DEVLET etiketli kurumun en az bir programı Türkiye ilinde olmalı*. Dördünü de sıfır yanlış pozitifle yakalıyor.
Yeni bulgular (bu geceye alınmadı): `programs_arsiv`'de aynı yanlış etiket sürüyor (kullanıcıya yansımıyor, `src/` tarafında arşivi okuyan SQL yok) · `data/yokatlas.db-shm`/`-wal` git'te izleniyor, `git status`'ü kendiliğinden kirletiyor.
Düzeltme: CEO dosyasında geri dönüş etiketi `veri-2026-son` yazıyor ama git'te yok — **doğrusu `veri-2025-son`**.
## Tur 4 (00:45) — entegrasyon
`gece/0922-entegrasyon` = main(9bd448b) + P1 + P4 + P2 + P3. Tek çakışma öngörüldüğü yerdeydi (`scripts/veri-kalite.ts`, iki saf ekleme aynı noktada) → ikisi de tutuldu, merge commit 9e1506d.
**Birleşik doğrulama (temiz worktree'de, AGENTS.md gereği):**
- `next typegen` + `tsc --noEmit` + `eslint` → **temiz**
- `pnpm veri-kalite --yil 2026` → **0 ZORUNLU kaldı, 3 uyarı** (üçü de önceden vardı). P2'nin iki kontrolü ve URAP'ın beş kontrolü birlikte geçiyor.
- `pnpm build` → **başarılı** (229 üniversite + 490+ sayfalama yolu prerender)
- Üretilen HTML denetimi (orkestratör): Boğaziçi → kart `18 / 198` + `2025-2026`, atıf linki `rel="noopener"`, **`nofollow` yok** (izin şartı karşılanıyor). Doğu Akdeniz (URAP dışı) → "Tür" kartı yerinde, açıklama cümlesi var, link yok (sayı yoksa atıf da gerekmiyor — doğru).
**P3'ün yan etkisi (Bilal'e soruldu, düzeltilmedi):** "Tür" kartı artık yalnız URAP dışındaki 31 kurumda göründüğü için `trBaslikDuzeni`'nin "Kktc" / "Yurtdisi Kamu" yazımı çok daha görünür hâle geldi. Önceden de böyleydi ama çoğunlukta "Devlet"/"Vakıf" yazdığı için göze batmıyordu. Tek satırlık etiket düzeltmesi; CEO'nun onay listesinde olmadığı için **bilerek yapılmadı**.
## Tur 5 (00:50) — bağımsız denetimler
### `guvenlik-uyum` ✔ → `11-guvenlik-denetimi.md`
Bu geceki değişikliklerde **kritik/yüksek bulgu yok.**
- `?kaynak=` allowlist kapalı (`KAYNAKLAR.find(k => k === ham) ?? "diger"`), serbest metin sızamıyor; ham değer sessionStorage anahtarına bile girmiyor; `kaynak` ödeme akışına/siparişe/iyzico'ya taşınmıyor.
- Kredi, sipariş, yetki kodunda **sıfır** değişiklik (diff boş).
- URAP: sayı ve atıf linki aynı `ilkSayfa` koşuluna bağlı → "sayı var, link yok" sayfası üretilemiyor. OG/metadata/JSON-LD URAP'a dokunmuyor.
**Geceden bağımsız, önceden var olan bulgu (orta) — Bilal'e sorulacak:** `src/lib/analitik.ts:10-12` yorumu "ham başarı sıralaması analitiğe gönderilmez" diyor ama Rybbit'in otomatik sayfa görüntülemesi ham query string'i saklıyor: panelde `?sira=14000&tur=say`, `?sira=581000&tur=ea&sihirbaz=1` satırları duruyor (doğrulandı). Kullanıcı özelliklerinde ad/e-posta olduğu için tekil öğrenciye bağlanabilir. Dün `gece/p2-olcum` dalının tepesindeki `[Bilal]` commit'i (Rybbit'e e-posta/isim gönderimini kaldırır) bu riskin diğer yarısına dokunuyordu — ikisi birlikte değerlendirilmeli.
### `urun-yoneticisi` ✔ — `docs/ekip/BACKLOG.md` güncellendi
14 yeni madde, 4 madde durum değişikliği, 3 madde kapandı. #8 (üniversite zenginleştirme) bölündü: URAP parçası #8a `dalda`, kalan 7 gösterge L→~18 saat. #10 `kategoriBul` ile birleştirildi. Bilal kararı bekleyen iki iş kabul kriteriyle hazır: #26 Öncelikler'in kalkması (kabul kriterine `/meraklisina` şema senkronu eklendi — AGENTS.md), #27 listenin paketsize ücretsiz olması. Reddedilenler §4'te kalıcı listelendi ki sonraki tur geri sokmasın.
Güvenlik bulgusunu havale edilmediği için backlog'a yazmadı (doğru davranış) — orkestratör sabah özetine doğrudan Bilal'in sorusu olarak koyuyor.
### `cto` (bağımsız kod denetimi) ✔ → `12-kod-denetimi.md`
**Hüküm: incelemeye çıkabilir — iki tek satırlık düzeltmeyle.** Kritik yok.
- **Y1 (yüksek):** P4'ün tek amacı olan ölçüm yanlış kurulmuş. `adim:1` oturum başına bir kez (`olayBirKez`), `adim:2` her ileri geçişte → payda ile pay farklı birimde, panelde %200 geçiş oranı çıkabilir. Kodun kendi yazılı kuralı bunu yasaklıyor (`analitik.ts:23`). **CEO'nun P4 kabul kriteri yanlıştı** — kriter düzeltildi.
- **O3 (orta):** P2+P3 birleşince `trBaslikDuzeni` tr-TR küçültmesiyle "YURTDISI KAMU" → **"Yurtdısı Kamu"**. Dün "Devlet" yazan 6 sayfa bugün bozuk kelime gösteriyor. Tek başına ne P2 ne P3 üretirdi.
- **O1:** P2'nin commit mesajındaki "170 → 166" yanlış; doğrusu **132 → 129** (170/166 ham ad sayısı, slug değil). Davranış doğru, kanıt rakamı yanlış.
- **O4:** URAP takası 198 sayfadan devlet/vakıf bilgisini tamamen sildi. Tasarımcının "zaten özet paragrafta var" gerekçesi **yanlış** — orkestratör doğruladı: Boğaziçi sayfasında "Devlet" 0 kez, Koç'ta "Vakıf" 0 kez (her yazımda). Bilal'e 1 numaralı soru olarak gitti.
- Temiz çıkanlar: veri farkı bağımsız doğrulandı (45 kolon ATTACH ile kıyaslandı, değişen yalnız `unitur` 100 + `il` 26) · P2+P3 birleşik boş durum doğru · `olayBirKez` SSR/gizli sekme/storage kapalıda patlamıyor · P1 mobil iddiası doğru · atıf şartı 229 sayfada delik yok.
## Tur 6 (01:05) — denetim düzeltmeleri ✔ → `13-denetim-duzeltmeleri.md`
Y1 `gece/0922-olcum` @ 58f4dc2'de (`olayBirKez` → `olay`, O2 seri kırılması notu eklendi), O3 `gece/0922-urap` @ 0e689e6'da (`UNITUR_ETIKET` haritası; `slug.ts`'e DOKUNULMADI — il adlarında da kullanılıyor).
Entegrasyon tazelendi → `gece/0922-entegrasyon` @ 74f7aa1. **typegen + tsc + lint + build dördü de temiz.** HTML: "Kktc" 0 sayfa, "Yurtdısı" 0 sayfa; `>Tür</dt>` 31 + `>URAP Türkiye</dt>` 198 = 229, delik yok.
Dürüstlük notu (ajanın kendisi bildirdi): `/bolum/*` rozetlerinde aynı bozuk etiketler duruyor — **gerileme değil**, `main`'de de vardı; şartname o dosyayı vermedi, backlog'a gitti.
## Tur 7 (01:20) — manşet bulgunun testi ✔ → `14-analitik-ters-nedensellik.md`
`analitik` **kendi §1 bulgusunu çürüttü.** Net detayını açanların %60'ı siteye yeni girmiş ve bu grup %1,43 ile sıra giriyor (taban %3,21'in ALTINDA); %9,4'ün tamamı derin gezinen 46 oturumdan geliyor. Ayrıca hem açıp hem sıra giren 14 oturumun **9'unda sıra girişi detaydan ÖNCE**. İki bağımsız test aynı yönde → **korelasyon**. CEO'nun reddi doğruydu; "net verisini öne çekersek dönüşüm 3 katına" gerekçesi düştü ve bir daha kullanılmayacak. P1 ayakta kalır (nedensellik iddiasına dayanmıyor).
## Kapanış (01:25)
`SABAH-OZETI.md` + `sabah-ozeti-sesli.m4a` (6 dk 37 sn, Türkçe) yazıldı. `main` 9bd448b'de, dokunulmadı. Bilal'in commit'lenmemiş dosyaları yerinde. Nöbetçi zamanlayıcı silindi, `caffeinate` kapatıldı.