Files
kolaytercih/docs/gece-vardiyasi/2026-09-22/33-backlog-senkron.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

35 KiB
Raw Blame History

33 — Backlog senkronu (ürün yöneticisi, 22 Eylül 2026 gece vardiyası)

Rol: urun-yoneticisi · CEO ajan sırasında 13. (son) madde — 24-ceo-kapanis.md §D/13. docs/ekip/BACKLOG.md'ye dokunulmadı (Bilal'in commit'lenmemiş dosyası). Aşağıdaki §5 kopyala-yapıştır hazır. Yazılan tek dosya: bu rapor. src/ yalnız okundu (funnel/sonuc-ilk-ekran dalında kod ajanı çalışıyor). KARARLAR.md, content/rehber/, data/ değiştirilmedi. pnpm install/build koşulmadı (disk). İşaret: [D] bu gece kendim koştum (sorgu/komut) · [K] koddan çıkarım (dosya:satır) · [R] başka ajanın raporundan devralındı.


1. Özet (5 madde)

  1. Backlog'un omurgası değişti. CEO'nun 9 KAPANIR / 5 KALICI RET / 13 TETİK tablosu (24-ceo-kapanis.md §A) tek listeye indirildi: aktif 26 satır + tetikli 15 satır. Yeni süreç icat edilmedi — mevcut Durum sütununa tek bir değer eklendi: tetikli — <tetik>; izleyen: <rol>.
  2. Mevcut 13 maddenin 3'ü kapandı (#2 KYK yazısı yazıldı ve canlıda; #3'ün "bu hafta" üç yazısı dosyada, kalanı T10 dalga takvimine taşındı; #4 mobil alt çubuk kalıcı ret R3), 4'ünün kapsamı büyüdü/karara bağlandı (#6 P0, #7 G2, #9 üç katına çıktı, #13 A2 ile birleşti), 6'sı olduğu gibi duruyor.
  3. Yeni ve en öncelikli bulgu: ödenmiş ekranda iki farklı nüfus yan yana yazılıyor. /listem tablosunun tooltip'i "X kontenjan, Y yerleşen" diyor; kontenjan yalnız genel kontenjan, yerlesen dört kotanın toplamı. Liste havuzuna benzeyen kümede 18.602 satırın 11.964'ünde (%64,3) bu cümle Y > X çıkıyor — matematiksel olarak imkânsız bir ifade (ör. "14500 kontenjan, 15226 yerleşen") [D].
  4. "boş kaldı" rozeti kalır, tooltip düzelir. Rozetin yanlış pozitifi yapı gereği imkânsız, yanlış negatifi 2025 verisinde 0 satır [D]. Yani en küçük doğru çözüm tek ternary: tooltip'ten "yerleşen" çıkar. Doğru payda 2025 için kurulabiliyor (denedim: aşan satır 14.025 → 0), 2026 için kurulamaz — kolon eksikliği değil, API artık kırılımı yayımlamıyor (scripts/detay.ts:22) [K]. Veri hattı seçeneği bu yüzden eleniyor, yerine tek satır tetik kondu.
  5. Bilal'e yeni madde eklenmedi. CEO'nun 1 maddelik [BİLAL] listesi (satıcı kimliği) aynen duruyor; bu gecenin marka/veri/editör raporlarının Bilal'e sorduğu 6 soruyu CEO karar masasına taşıdım (§7), Bilal'in sabah kuyruğuna değil.

2. Görev 1a — Mevcut 13 maddenin durum güncellemesi

# Eski durum Bu gece ne oldu Yeni durum
1 dalda CTO şartnamesi G3'e kısıt yazdı: spendCredits kaldırılmaz, tutarı koşullanır; yoksa uniqueIndex("ledger_reason_ref") (src/lib/appdb/schema.ts:133) çapası düşer ve #1 yeniden açılır [R: 28-cto-sartname.md:198] dalda (değişmedi) — G3'ün kabul kriterine "aynı requestId ile ikinci üretim DUPLICATE" maddesi eklendi
2 aday Yazı yazıldı ve canlıda: content/rehber/kyk-burs-mu-kredi-mi.md [D: ls content/rehber], Search Console kuyruğunda [R: YAYIN-KUYRUGU.md] KAPANDI — satır silinir
3 aday Üç "bu hafta" yazısının üçü de dosyada: bos-kontenjanlar-ne-anlatiyor, en-cok-ogrenci-alan-devlet-universiteleri, en-secici-devlet-universiteleri [D]. Kalan konular T10 dalga takvimine girdi (24 Eyl / 1 Eki / 8 Eki / 15 Eki, 14 konu) [R: 25-seo-duzeltme.md §3] KAPANDI — yerine tek satır: "İçerik dalga takvimi" (#20)
4 aday Kalıcı ret R3: 95 ziyaret/hafta, mevcut CTA'lar zaten ekranda, kalıcı çubuk ekran alanı yiyor [R: §A/R3] reddedildi — §6'daki "bir daha açılmaz" listesine
5 aday Bu gece dokunulmadı aday (değişmedi)
6 aday SEO P1 → P0: kuyruk günlük kotayı aşıyor (11 bekleyen adres, kota ~10-13) ve dalga takvimi haftada 4 yazı üretecek [R: 25-seo-duzeltme.md §4/T39] hazır — CEO onayı bekliyor
7 aday G2 kapsıyor; CTO kapsamı büyüttü: sunucu bugün yalnız serbest metin error dönüyor, odeme-actions.ts'e kod alanı gerekiyor [R: 28-cto-sartname.md İtiraz 1] onaylı — dal odeme/kasa-ve-metin; yayın koşulu: Bilal'in test ödemesiyle aynı yayın
8 aday Değişmedi (Bilal'in YÖK Excel + URAP ön koşulu duruyor) aday (değişmedi)
9 aday Kapsam üç katına çıktı: 100 satır yanlış unitur + 1.291 TR dışı il + 110 boş il + 26 yanlış şehir; kök neden bulundu (refresh.ts:665-690 UPDATE yolunda il/fakulte/isim tazelenmiyor). Ters yönde yeni sızıntı: sihirbazın "Vakıf" kovasına 1.256 KKTC/yurt dışı satırı giriyor (src/lib/db.ts:77-83) [R: 26-veri-kalitesi.md §1, K2–K6] hazır — kabul kriteri komutla ölçülebilir; düzeltme betiği onayı §7'de
10 aday CEO yapay-zeka-muhendisi'ne "kaçak oranı sayıyla" diye sordu, cevap gelmedi (rapor yok). G1 tadımlığı ilk ekrana taşıdığı için madde kritikleşti aday → sıradaki 5'te 2. sıra (gerekçe §8)
11 aday Bu gece dokunulmadı aday (değişmedi)
12 aday (Bilal'e bağlı) Bilal'in test ödemesi CEO §E/2'de duruyor; QA senaryoları o oturuma bağlı tetikli — Bilal'in test ödemesi oturumu; izleyen: qa-muhendisi
13 aday (Bilal kararı) Paket adı işi A2 ile birleşti; marka raporu 3 metin düzeltmesi daha çıkardı (page.tsx:136 SSS süre iddiası, site-footer.tsx:49 "YKS Tercih Robotu 2026", odeme-actions.ts:74 marka öneki) [R: 27-marka-tescil-ve-paket-adi.md CEO karar listesi] birleşti → #16 (A2) + kalan metin düzeltmeleri #17

3. Görev 1b — TETİK maddelerinin backlog'a taşıma biçimi (basit tut)

Tek değişiklik: Durum sütununun değer kümesine tetikli eklendi.

aday → hazır → onaylı → dalda → merge / reddedildi
                └── tetikli — <ölçülebilir tetik>; izleyen: <rol>

Kurallar (üç satır, yeni süreç yok):

  1. tetikli satır aday değildir: sıralamaya girmez, haftalık seçimde okunmaz, tetik gerçekleşene kadar kimsenin kuyruğunda yer tutmaz.
  2. Tetik ölçülebilir olay ya da tarih olmak zorunda ("hacim artınca" geçersiz). İzleyen rol satırda yazılı; tetik gerçekleştiğinde o rol satırı adaya çevirir ve gerekçesini raporuna yazar.
  3. Tetikli satır hiçbir zaman sessizce ölmez: tetiği gerçekleşmeyen satır, sezon kapanışında CEO tarafından ya yeni tetiğe bağlanır ya da "bir daha açılmaz" listesine geçer.

4. Görev 2 — Doluluk göstergesi üründe yanlış (yeni madde, en öncelikli)

4.1 Kanıt zinciri (hepsi bu gece koşuldu/okundu)

Şema tarafı [R: 26-veri-kalitesi.md K13/K14, benim doğrulamamla]:

-- Payda yalnız genel kontenjan
SELECT COUNT(*), SUM(kontenjan2025 <> gk2025) FROM programs
WHERE kontenjan2025 IS NOT NULL AND gk2025 IS NOT NULL;   -- 19857 | 0   [D]

-- Pay dört kotanın toplamı (scripts/refresh.ts:211-217), sapan satır yok
SELECT COUNT(*) FROM programs WHERE yerlesen2025 IS NOT NULL AND gkY2025 IS NOT NULL
 AND yerlesen2025 <> (COALESCE(gkY2025,0)+COALESCE(obkY2025,0)+COALESCE(sgyY2025,0)+COALESCE(dprmY2025,0));  -- 0  [D]

Ürün tarafı — src/features/liste/components/program-tablosu.tsx:358-373 [K]:

title={
  p.kontenjanSon != null && p.yerlesenSon != null
    ? `${p.kontenjanSon} kontenjan, ${p.yerlesenSon} yerleşen`   // ← iki farklı nüfus
    : undefined
}
…
{p.yerlesenSon != null && p.yerlesenSon < p.kontenjanSon ? (
  <span …>boş kaldı</span>
) : null}

Kaç kullanıcıyı etkiliyor — liste havuzunun filtresine (EFEKTIF_SIRA IS NOT NULL, src/lib/db.ts:145) benzeyen küme [D]:

Ölçü Sayı
Havuz benzeri küme (kontenjan+yerleşen dolu) 18.602
Tooltip'in yerleşen > kontenjan dediği satır 11.964 (%64,3)
"boş kaldı" rozeti çizilen satır 351 (%1,9)

Örnek satır [D]: ANADOLU ÜNİVERSİTESİ · İlahiyat · kontenjan=14500 yerlesen=15226 → tooltip: "14500 kontenjan, 15226 yerleşen".

Rozet aslında yanlış değil — bu düzeltilmiş bir tespittir. Görev metnindeki "boş kalan program dolu görünüyor" hipotezini test ettim, veri desteklemiyor:

  • Yanlış pozitif imkânsız (ispat): rozet yerleşen < kontenjan iken çizilir; gkY ≤ yerleşen < gk demektir, yani genel kontenjan gerçekten boş kalmıştır.
  • Yanlış negatif (2025'te ölçülebiliyor): yerlesen2025 >= kontenjan2025 AND gkY2025 < gk2025 → 0 satır [D]. Yani "genel kontenjanı dolmadığı hâlde rozeti alamayan" tek bir program bile çıkmadı.

Geriye tek gerçek hata kalıyor: tooltip. Ödenmiş ekranda, ürünün vizyonda verdiği sözün ("Her tercih için gerekçe: … kontenjan değişimi, doluluk", docs/urun/vizyon.md:24) tam ortasında duran, kendi içinde çelişen bir cümle.

4.2 Doğru payda yeniden kurulabilir mi?

Yıl Kurulabilir mi Kanıt
2025 Evet, denedim ve çalışıyor. gk+obk+sgy+dprm paydasıyla aşan satır 14.025 → 0; devlet lisans doluluğu %98,9 (bugünkü hatalı paydayla %100'ün üstü) [D] SELECT COUNT(*) … WHERE yerlesen2025 > (gk2025+obk2025+sgy2025+dprm2025) → 0
2026 Hayır — ve bu bir şema eksiği değil, kaynak eksiği scripts/refresh.ts:100-122 API tipinde yalnız kontenjan (genel) + yerleşen kırılımı (gkY/sgyY/dprmY/obkY) var; kota kontenjan alanları yok. scripts/detay.ts:22 bunu açıkça yazıyor: "Eylül 2026: API gkY1/obk1/… alanlarını yayımlamıyor → bu adım durur" [K]

Sonuç: "veri hattına kolon ekle" seçeneği bugün eleniyor. Kolonu eklesek de dolduracak veri yok; 2025 kırılımı DB'de Ağustos 2026 çekiminden kalma. Bu yüzden düzeltme ürün dili tarafında yapılır, veri tarafına tek satır tetik konur.

4.3 Üç seçenek ve önerim

Seçenek Maliyet Hüküm
(a) Rozeti kaldır XS Hayır. Rozet ispatlı doğru (§4.1) ve 351 satırda gerçek bilgi veriyor — doğru bilgiyi silmek kullanıcı lehine değil
(b) Tooltip'i tek nüfusa indir XS — tek ternary Önerim. Yanlış cümlenin tamamını kaldırır, doğru bilgiyi korur, kurucunun "sade" talimatına uyar
(c) Veri hattına kolon ekle M+ Bugün imkânsız (§4.2). Tetiğe bağlanır

Yetki: [KARAR]. Fiyat, paket içeriği, marka terimi ya da hukuki metin değil — yanlış bilginin kaldırılması. [BİLAL] değil; CEO onayıyla uygulanır.

Kabul kriteri (tarayıcı gerektirmez, komutla doğrulanır):

# 1) Tooltip'te iki nüfus yan yana kalmamış
grep -n "yerleşen" src/features/liste/components/program-tablosu.tsx        # → 0 satır
# 2) Rozet duruyor ve koşulu değişmemiş
grep -n "boş kaldı" src/features/liste/components/program-tablosu.tsx       # → 1 satır
grep -n "yerlesenSon < p.kontenjanSon" src/features/liste/components/program-tablosu.tsx  # → 1 satır
# 3) Veri değişmedi (dil değişti) — regresyon kontrolü
sqlite3 -readonly data/yokatlas.db "SELECT COUNT(*) FROM programs WHERE yerlesen2026>kontenjan2026"  # → 11964

Ek kabul maddesi: tooltip tek nüfus söyler (ör. "2026 genel kontenjanı: 14.500 kişi"); /meraklisina şeması aynı commit'te güncellenir — bu iş sihirbaz/listeleme davranışını değiştirmiyor, dolayısıyla beklenen sonuç "şemada değişiklik gerekmedi" ve bu commit mesajına yazılır.

Kapsam dışı (bilerek): prompt havuzundaki yerlesen<yıl> alanı (src/lib/rapor-havuzu.ts:184-185) ve src/lib/ai/rapor.ts:77'deki "kontenjan/yerleşen hareketini gözet" cümlesi — model bugün bu iki uyumsuz nüfusu birlikte görüyor. Dokunmak prompt değişikliğidir, T12 (eval seti) tetiğini açar; ayrı satır olarak tetikliye yazıldı (#T15).


5. Kopyala-yapıştır hazır backlog (Bilal sabah kendi işler)

Aşağıdaki blok docs/ekip/BACKLOG.md'nin tablo gövdesinin tamamının yerine geçer. Başlık/açıklama satırları aynı kalır, yalnız Durum akışına tetikli eklenir.

5.1 Durum satırının yeni hâli

Durum: `aday` → `hazır` (kabul kriteri yazıldı) → `onaylı` (CEO/Bilal) → `dalda` (`gece/<konu>`) → `merge` / `reddedildi`.
Ayrıca `tetikli — <ölçülebilir tetik>; izleyen: <rol>`: sırada yer tutmaz, tetik gerçekleşince izleyen rol `aday`a çevirir.

5.2 Aktif satırlar

# İş Neden (kanıt) Kabul kriteri Büyüklük Durum Kaynak
1 Liste üretiminde çifte kredi harcama açıklarını kapat listeOlustur'da "üretim sürüyor" kilidi yok; tekrar HATA koduyla dönüyor, istemci requestId'yi sıfırlıyor Eşzamanlı ikinci üretim kredi düşmez; tekrar cevabı SURUYOR koduyla döner; G3 sonrası da aynı requestId ile ikinci üretim DUPLICATE döner (schema.ts:133 çapası korunur); guvenlik-uyum denetimi temiz S dalda yazılımcı raporu (ea3310a) · 28-cto-sartname.md:198
5 Bilinmeyen/yanlış slug'larda gerçek 404 notFound() Suspense içinde; cacheComponents altında kabuk 200 gidiyor, Next yalnız noindex ekliyor /bolum/olmayan-slug ve /universite/olmayan-slug HTTP 404; varlık denetimi her istekte SQLite sorgusu yapmaz M aday 05-seo-plan.md T1
6 IndexNow anahtarı + git diff ile otomatik bildirim + doğrulama meta etiketleri Kuyruk günlük kotayı aşıyor: 11 bekleyen adres, kota ~10-13, dalga takvimi haftada 4 yazı üretiyor → elle bildirim darboğaz Anahtar dosyası yayında; git diff --name-only'dan slug türeten tek komut Bing/Yandex/Naver/Seznam'a gönderir; metadata.verification dolu S hazır (SEO P0 önerdi, CEO onayı bekliyor) 25-seo-duzeltme.md §4/T39
7 odeme_hata {kod} olayı + sunucu tarafı hata kodu ~100 siparişin hiçbiri iyzico token'ı alamadı, hiçbir ölçüm göstermedi; sunucu bugün yalnız serbest metin error dönüyor → hata sınıflandırılamıyor grep -n "odeme_hata" src/features/odeme/components/satin-al-form.tsx ≥1 ve ad analitik.ts'te tanımlı; odeme-actions.ts kod alanı döner; odeme_baslatildi davranışı değişmez S onaylı — dal odeme/kasa-ve-metin; yayın Bilal'in test ödemesiyle aynı yayında 05-ceo-kararlari.md G2 · 28-cto-sartname.md İtiraz 1
8 Üniversite sayfalarını zenginleştirme — ilk sürüm 8 alan Sayfa yalnız programlardan türeyen 6 sayıyı gösteriyor; OpenAlex prototipi 201/229 eşledi uni_kimlik + uni_gosterge tabloları; her kutuda kaynak/dönem dipnotu; eksik değer "—" L (~22 saat) aday (Bilal'in Excel/URAP ön koşulu) 06-uni-veri.md §4
9 Veri kalitesi: unitur + il temizliği (kapsam 3× büyüdü) 100 satır yanlış DEVLET; 1.291 TR dışı il; 110 boş il; 26 yanlış şehir. Kök neden: refresh.ts:665-690 UPDATE yolunda il/fakulte/isim tazelenmiyor. Sihirbazın devlet/vakıf filtresi (db.ts:77-83) bundan etkileniyor SELECT COUNT(DISTINCT il) FROM programs WHERE unitur IN ('DEVLET','VAKIF','VAKIF MYO') = 81 ve COUNT(*) WHERE il IS NULL = 15; unitur='DEVLET' KKTC/yurt dışı satırı = 0; geri alma tek cp S hazır (betik onayı CEO'da) 26-veri-kalitesi.md §3.6
10 Tadımlıkta kategori kaçağı: kategoriBul ham isme regex uyguluyor Sanat/medya seçen öğrenciye "Makine Resim ve Konstrüksiyonu" gösteriliyor; G1 tadımlığı ilk ekrana taşıyor, kaçak artık ilk izlenim kategoriBul/kategoriEslesir baz ada bakar; etkilenen tadımlık satırları elle yeniden seçilir; refresh --isim-esitle; kaçak satır sayısı raporda S aday (CEO'nun yapay-zeka-muhendisi'ne sorduğu oran cevabı gelmedi) 21 Eyl gece gözlemi · 05-ceo-kararlari.md §6
11 Navbar 5 dk "girişli" gösterirken sunucu oturumu yok cookieCache (src/lib/auth.ts, maxAge 5 dk): oturum düşünce korumalı sayfa giriş ekranına atıyor Oturum düştüğünde navbar en geç bir gezinmede "Giriş yap"a döner ya da korumalı sayfa dönüşünde tutarlı mesaj S aday 01-e2e-test.md H3
14 /listem tablosunda doluluk dili: tooltip iki farklı nüfusu yan yana koyuyor program-tablosu.tsx:358-364 → "${kontenjanSon} kontenjan, ${yerlesenSon} yerleşen". kontenjan = yalnız genel kontenjan (kontenjan2025<>gk2025 → 0/19.857), yerlesen = 4 kotanın toplamı (refresh.ts:211-217). Havuz benzeri kümede 11.964/18.602 satırda (%64,3) cümle "yerleşen > kontenjan" diyor; ödenmiş ekran grep -n "yerleşen" src/features/liste/components/program-tablosu.tsx → 0; grep -n "boş kaldı" … → 1 (rozet ve koşulu korunur, ispatlı doğru); tooltip tek nüfus söyler; sqlite3 … "SELECT COUNT(*) … yerlesen2026>kontenjan2026" → 11964 (veri değişmedi); /meraklisina şeması aynı commit'te gözden geçirilir (davranış değişmiyor → "değişiklik gerekmedi" commit mesajında) XS hazır — [KARAR], sıradaki işlerin 1.'si bu rapor §4 · 26-veri-kalitesi.md K13/K14 · 20-editor-denetimi.md EK
15 /rehber index'i küme başlıklarıyla gruplanır (A1 = G4'ün genişletilmiş yarısı) 42 yazı (yakında 52) tek duvar hâlinde; SEO dalga 2 (1 Eki) öncesi merge edilmezse dizin kullanılamaz hâle gelir 42 yazı en çok 6 küme başlığı altında; kümesiz yazı "Genel"e düşer ve build kırılmaz; /rehber başlığında yıl/sezon iddiası yok S onaylı — dal icerik/rehber-kumeleri 24-ceo-kapanis.md A1 · 25-seo-duzeltme.md §3
16 Paket adı sezon-bağımsız olur + sepet metnindeki marka tekrarı credits.ts:7 "Tercih Dönemi Paketi" sezon kokuyor; odeme-actions.ts:74 etikete KolayTercih — öneki ekliyor → "KolayTercih — KolayTercih Paketi" çıkar; "Tercih Dönemi" ibaresi ayrıca başkasının başvurusuna konu (2020/119085) grep -rn "Tercih Dönemi Paketi" src/ = 0; iyzico sepet adında marka iki kez geçmez; merge Bilal'in test ödemesinden sonra S onaylı — dal odeme/paket-adi; ad seçimi CEO'da (§7/1) 24-ceo-kapanis.md A2 · 27-marka-tescil-ve-paket-adi.md §2.4 (eski #13)
17 Kalan marka metin düzeltmeleri (SSS süre iddiası + footer kategori iddiası) page.tsx:136 "Tercih dönemi boyunca geçerli" — /kosullar'da böyle bir süre sınırı yok; site-footer.tsx:49 "YKS Tercih Robotu 2026" vizyon.md:22'nin reddettiği kategori, ayrıca "tercih robotu" ES EĞİTİM adına 2000/08210 ile tescilli grep -rn "Tercih dönemi boyunca" src/ = 0; footer kategori iddiası yerine ne yaptığımızı söyleyen ifade; garanti/olasılık dili yok XS hazır (CEO tek satır onayı) 27-marka-tescil-ve-paket-adi.md CEO listesi #5–#6
18 /sonuc sayfasına <h1> Sayfada hiç <h1> yok — erişilebilirlik ve SEO borcu /sonuc sunucu HTML'inde tam 1 adet <h1> XS onaylı — dal a11y/sonuc-h1 24-ceo-kapanis.md A3
19 Satıcı kimliği sayfası — placeholder'lı taslak Para alan sitede satıcının kim olduğunu söyleyen tek satır yok (grep = 0); "fatura/makbuz" kelimesi hiç geçmiyor Sayfa var, footer'dan linki var, 5 alan TODO-BILAL işaretli; Bilal bilgileri yazınca tek commit'le yayına hazır S onaylı — guvenlik-uyum, dal uyum/satici-kimligi 24-ceo-kapanis.md A8
20 İçerik dalga takvimi: 14 konu, 4 dalga (24 Eyl / 1 Eki / 8 Eki / 15 Eki) Haftada 4 yazı hızı; #7 çıkmadan #8 yazılamaz, #18 A4 merge edilmeden hiç yazılamaz Bir dalga, editörün o dalganın tüm yazılarını onayladığı gün kapanır; kapanmadan sonraki dalga başlamaz; dalga başına en çok 4 yazar M (süren) onaylı 25-seo-duzeltme.md §3 (eski #3'ün yerine)
21 Güncellenen her yazıya guncelleme: <ISO tarih> frontmatter kuralı sitemap.ts:47 lastModified değerini y.guncelleme ?? y.tarih'ten alıyor → alan yoksa Google güncellemeyi görmez; veliler-icin-tercih-rehberi bu gece değişti, alan kontrol edilmedi Değişen her yazıda alan var; kural AGENTS.md'nin içerik bölümünde; grep -L "guncelleme:" ile değişen dosya listesi boş XS hazır 25-seo-duzeltme.md §4/T40
22 Mevcut 28 yazıdaki /tercih-robotu linki (301'e giden ölü CTA) 42 yazıda 682 link tarandı, 0 kırık hedef; tek sorun /tercih-robotu 301 — 32 geçişin 4'ü düzeltildi, 28'i duruyor grep -rn "/tercih-robotu" content/rehber/ = 0; yalnız href değişir, içerik değişmez; tek commit XS hazır ([KARAR] — yalnız href; metindeki "tercih robotu" ifadesi [BİLAL], §7/6) 20-editor-denetimi.md §5
23 veri-kalite.ts'e 2 ZORUNLU + 1 BİLGİ kontrolü Üç kir bu gece elle bulundu; bugün scripts/veri-kalite.ts:145-150 yalnız bilgi satırı basıyor, çıkış kodunu etkilemiyor. Not: veri mühendisinin "yerlesen>kontenjan ZORUNLU olsun" önerisini değiştirdim — bugün satırların %55'i bu koşulu ihlal ediyor, zorunlu yapılırsa her koşu kırılır ZORUNLU: (a) aynı baz kurum adında iki unitur, (b) TR dışı il × TR unitur çelişkisi → çıkış kodu ≠ 0; BİLGİ: yerlesen>kontenjan oranı basılır ve 0'a düştüğü gün T14 tetiği açılır S hazır 26-veri-kalitesi.md §5–§6 (ürün düzeltmesiyle)
24 refresh.ts --yer-esitle: il/fakulte UPDATE yolunda da tazelensin Kök neden #9'un tekrarını üretiyor: bu alanlar yalnız INSERT'te yazılıyor, aynı kir 2027'de yeniden birikir Bayrak önce listeler, sonra yazar; koşudan sonra #9'un iki kabul sorgusu hâlâ tutar; --yil/--db kilidi korunur M aday 26-veri-kalitesi.md §6
25 refresh --isim-esitle koşusu (vakıf burs etiketi) A5 cevabı: kırılım var, etiket birimAdi içinde geliyor (refresh.ts:37-39). 2026'da yeni açılan vakıf satırlarının %93,7'si etiketli, eskilerin yalnız %14,2'si — fark bayrağın varsayılan kapalı olmasından Koşu sonrası vakıf lisansta etiketsiz satır oranı düşer ve sayı raporlanır; #10'un kategori eşlemesi aynı koşuda yeniden sayılır M hazır (T11 kararı §7/4) 26-veri-kalitesi.md §4
26 CTO artıkları: tadımlık ölçüm notu + eşiği (B1+B5) G1 tadimlik_goruntulendi serisini kırıyor (olay ~2.200 px aşağıdaydı, ilk ekrana çıkıyor); not bu gece tadimlik-satiri.tsx yorumunda kaldı çünkü G2 analitik.ts'te bitişik satıra dokunuyor. Ayrıca "görüntülendi" artık ziyaretle eşitleneceği için huni değeri düşecek Not analitik.ts'in OlayAdi yorumunda (program_eklendi geleneği); anlamlı ölçüt "tadımlık CTA tıklaması / görüntülenmesi" oranı olarak tanımlı XS aday 28-cto-sartname.md B1, B5
27 Kredi-bitti hatırlatma e-postası paketliyi de tarıyor kredi-hatirlatma.ts:29-38 hasPaket ayırmıyor; metin "listenin tamamını açmak istersen" diyor (eposta.ts:188) — paketliye yanlış. G3 öncesinde de var olan hata Sorguda hasPaket = false koşulu ya da ayrı metin dalı; paketliye giden e-postada "listenin tamamını açmak" ifadesi geçmez S aday 28-cto-sartname.md B3
28 ACIK_SATIR sabiti client-safe modüle ayrılsın rapor-maske.ts server-only; istemci metinleri sayıyı tek kaynaktan okuyamıyor, liste-uretici.tsx:274 "3 kredi"yi elle yazıyor → maske değişirse metin sessizce yanlışlanır Sabit tek modülden okunur; grep -rn "3 kredi" src/ elle yazılmış sayı döndürmez; maske sayısı değişince tüm metinler değişir S aday 28-cto-sartname.md B4
29 liste-uretici.tsx:263-285 ölü hasPaket dalı G3 sonrası paketli hiç KREDI kodu almayacağı için "+30 kredi yükle" dalı ölü koda dönüşür; zararsız ama tutarsız. Bilal'in dosyası olduğu için bu gece dokunulmadı Dal kaldırılır ya da yorumla "erişilemez" işaretlenir; paketsiz akış bit-bit aynı XS aday (Bilal'in dosyası — kendi commit'inden sonra) 28-cto-sartname.md B2

5.3 Tetikli satırlar (sırada yer tutmaz)

# İş Tetik İzleyen Kaynak
12 QA'nın koşamadığı girişli senaryolar (liste üretimi ×2, 5 soru, ödeme, 390 px) Bilal'in canlı test ödemesi oturumu (CEO §E/2) qa-muhendisi 01-e2e-test.md
T1 İkinci alan (DGS/KPSS) 2027 YKS sezonunda 100 tamamlanmış ödeme ceo §A/T1
T2 Sosyal kanıt şeridinin /paket'e taşınması Üretilen toplam liste sayısı 25 urun-yoneticisi §A/T2
T3 Taksit (3 ve 6, tek seferde) 10 tamamlanmış ödeme guvenlik-uyum + yazilimci §A/T3
T4 Fiyat / maske / /paket CTA metninin yeniden değerlendirilmesi /odeme sayfasını 30 kişi görür veya 10 tamamlanmış ödeme ceo §A/T4, R5
T5 Makbuz / "ödeme alındı" e-postası Bilal'in test ödemesi başarıyla tamamlandığı gün (satıcı kimliği satırlarıyla tek commit) yazilimci §A/T5
T6 "Listeyi veline gönder" + veli e-postası (KVKK onay metniyle) 1 Nisan 2027 veya 10 tamamlanmış ödeme urun-yoneticisi (PRD) §A/T6 · bu rapor §6
T7 Ana sayfa kıyas ekseninin MEB'in ücretsiz danışmanlığına çevrilmesi 29 Eylül 2026 marka §A/T7
T8 /il/[slug] bağımlı yazı (#18) ve il kırılımlı içerikler #9'un temizliği merge edildiği gün seo-geo §A/T8
T9 Öğretmenlik branş yazısı 24 Eylül dalgası; atama/istihdam iddiası yok, ikinci okuma editörde rehber-yazari §A/T9
T11 Vakıf burs kırılımlı yazı A5 cevabı geldi ve "kırılım var" → CEO tek satırıyla 24 Eyl dalgasına girer (§7/4) ceo §A/T11 · 26-veri-kalitesi.md §4
T12 LLM eval seti Prompt ya da model değişikliği yapılacak ilk gün yapay-zeka-muhendisi §A/T12
T13 Satıcı kimliği bilgilerinin yayına girmesi Bilal 5 alanı doldurduğu gün (#19 taslağı hazır bekler) guvenlik-uyum §A/T13
T14 Doğru doluluk paydasının kurulması (kontenjanToplam<yıl> kolonu + gerçek doluluk göstergesi) YÖK Atlas API'si kota kontenjan kırılımını (obk/sgy/dprm) yeniden yayımladığı gün — göstergesi: #23'ün BİLGİ kontrolünde yerlesen>kontenjan oranının 0'a düşmesi veri-muhendisi bu rapor §4.2 · detay.ts:22
T15 Prompt havuzundan yerlesen<yıl> alanının çıkarılması / yeniden tanımlanması T12 ile aynı gün (ilk prompt değişikliği) — model bugün rapor-havuzu.ts:184-185 ile iki uyumsuz nüfusu birlikte görüyor, ai/rapor.ts:77 "kontenjan/yerleşen hareketini gözet" diyor yapay-zeka-muhendisi bu rapor §4.3
T16 Marka tescil başvurusu + kolaytercih.com.tr alınması Satıcı kimliği maddesi (CEO §E/3) kapandığı gün — [BİLAL], sırası ondan sonra; engel kontrolü bitti: görünür engel yok marka 27-marka-tescil-ve-paket-adi.md §1

6. Bir daha açılmaz (backlog'a konmaz)

Bu liste kanıt gelmeden yeniden önerilemez. Yeniden açılması için gereken şey tartışma değil, satırda yazan veridir.

Ne Neden kapalı Yeniden açılma yolu
LGS alanı MEB'in ücretsiz, resmî, yapay zekâ destekli LGS robotu var; ücretli ürünün rekabet edeceği yer değil Yok — kalıcı
Ayrı /veli sayfası Tek veli okuru yokken ikinci giriş yüzeyi bakımı; kanonik veli yüzeyi veliler-icin-tercih-rehberi.md + küme CTA'sı Yok — kalıcı. Veliye dokunma işi T6'da (düğme + e-posta), sayfa olarak değil
Mobil yapışkan alt çubuk 95 ziyaret/hafta; mevcut CTA'lar zaten ekranda; ekran alanı yiyen over-engineering Yok — kalıcı (eski backlog #4)
/paket girişsiz birincil CTA'sının fiyat + satın alma fiiline çevrilmesi 21 Eyl'de Bilal onayladı; kanıt olarak gösterilen kullanıcı karardan önceki sürümü gördü T4 tetiği (payda oluşunca)
Deneme maskesinin 3'ten büyütülmesi / 299 TL'nin indirilmesi Fiyatı gören hiç kimse ödeme ekranına varamadı; bilinmeyen sayının yerine başka bilinmeyen sayı koymak veri üretmez T4 tetiği
(Bu gece kapananlar — yeniden yazma) KYK burs/kredi yazısı (yayında) · SEO'nun "bu hafta" üç yazısı (dosyada) · netler çerçevesi düzeltmesi (A6, plan 9 yerde düzeltildi) · TÜRKPATENT engel kontrolü (A9: engel yok) · Search Console kök nedeni (C4 kuralları yazıldı) —

7. Karar bekleyenler (hepsi CEO masasında — Bilal'in kuyruğuna eklenmedi)

# Karar Kimin Tavsiyem
1 Paket adı: "KolayTercih Paketi" (CEO A2) mı, "Tercih Listesi Paketi" (marka önerisi) mi; odeme-actions.ts:74 öneki kalsın mı ceo "Tercih Listesi Paketi" — sezondan bağımsız ve ne alındığını söylüyor; önek kalır, marka tekrarı olmaz
2 Tooltip düzeltmesi (#14) onayı ve sıraya alınması ceo [KARAR] Evet, ilk sıraya — ödenmiş ekranda kendi içinde çelişen cümle; XS
3 Veri düzeltme betiği (§3.6) onayı: 100 unitur + 320 il satırı ceo Evet — sıralama/kontenjan verisine dokunmuyor, geri alma tek cp; T8 ve #18 buna bağlı. (Veri mühendisi Bilal'e sormuştu; geri alınabilir olduğu için CEO'da)
4 T11: A5 cevabı "kırılım var" çıktı → vakıf burs kırılımlı yazı 24 Eyl dalgasına girsin mi ceo (tek satır) Girsin, ama önce #25 (--isim-esitle) koşulsun; etiketsiz %80 satırla yazı yanlış tablo üretir
5 Sihirbazın "Vakıf (burslu olursa)" kovası KKTC/yurt dışı 1.256 satırı (havuzun %13,4'ü) kapsasın mı — bugün kapsıyor ve kullanıcıya söylenmiyor ceo (ürün davranışı) Kapsamasın ya da açıkça yazılsın. Bu iş sihirbaz davranışını değiştirir → kabul kriterine "/meraklisina şeması aynı commit'te güncellenir" maddesi zorunlu
6 "Tercih robotu" ifadesi 42 yazıda topluca değişsin mi (href düzeltmesi #22 zaten [KARAR]) [BİLAL] — marka terimi Sırası satıcı kimliğinden sonra; bu hafta sorulmuyor
7 Devlet doluluk rakamı bu sezon yayımlanmasın kuralı kayda geçsin mi (editör iki yazıda zaten uyguladı) ceo Geçsin — kural: doluluk oranı yalnız KKTC/vakıf için; devlet satırlarında "kontenjanı dolan program payı" kullanılır

8. Sıradaki 5 iş (23–29 Eylül penceresi) ve gerekçesi

Ölçüt sırası: (1) sözü bozan yanlış bilgi → (2) sezon takvimi → (3) ölçülebilir huni etkisi → (4) kurucu zamanı. Bu gecenin kod sırası (G1 → G3 → G4 → G2+G5 → A2) değişmiyor; aşağıdaki liste onun ardından gelen penceredir.

Sıra İş Gerekçe Ölçüt
1 #14 doluluk tooltip'i Ödenmiş ekranda, %64,3 satırda kendi içinde çelişen cümle. XS, tek ternary, geri dönüşü sıfır (1) yanlış bilgi
2 #10 tadımlık kategori kaçağı G1 tadımlığı /sonuc'un ilk ekranına taşıyor; sanat/medya seçen öğrenciye makine programı göstermek artık ilk izlenim. Ödeme öncesi tek gerçek önizlemenin doğruluğu (1) yanlış bilgi + (3) huni
3 #15 /rehber küme başlıkları (A1) SEO dalga 2 1 Ekim'de 4 yazı daha ekliyor; A1 merge edilmezse dizin duvara dönüyor. Takvim penceresi sabit (2) sezon/takvim
4 #6 IndexNow (T39) Kuyruk günlük kotayı aşıyor (11 bekleyen, kota ~10-13) ve haftada 4 yazı geliyor; elle bildirim kurucu zamanı yakan darboğaz (2) takvim + (4) kurucu zamanı
5 #9 il/unitur temizliği T7 tetiği 29 Eylül; #18 yazısı bu temizliğe kilitli; ayrıca sihirbazın devlet/vakıf filtresi bugün 100 satırı yanlış tarafa koyuyor (2) takvim + (1) yanlış bilgi

Listeye girmeyenler ve nedeni: #5 (gerçek 404) — M boy, takvim baskısı yok; #8 (üniversite zenginleştirme) — Bilal'in ön koşulu; #27/#28/#29 — XS/S ama kullanıcıya bugün görünmüyor; T-satırları — tetikleri açılmadı.


9. Görev 3 — Kullanıcı yolculuğu notu: ödeyici veli (tek paragraf)

Ödeyen kişi veliyse, 2027 tercih dönemine kadar ürünün veliye üç anda dokunması gerekir ve bugün üçünün de karşılığı eksik: (a) Kilit anı — öğrenci maskeli listeyi gördüğü ekranda (listem-govde.tsx:288,369) veliye gidecek tek bir yol olmalı ("listeyi veline gönder"); bugün yok, o ekrandaki tek çıkış /paket?kaynak=kilit ve orada duran kişi kartı olmayan 18 yaşındaki öğrenci. (b) Ödeme anı — veli ödeyebilmek için bugün öğrencinin hesabına giriyor (odeme-actions.ts:37-40, oturum öğrenciye bağlı), ve karşısında satıcının kim olduğunu söyleyen tek satır, makbuz ya da fatura kelimesi yok; bu anın parçaları hazırlanıyor ama eksik (#19 satıcı kimliği taslağı onaylı, T5 makbuz e-postası tetikli, T3 taksit tetikli). (c) Teslim anı — velinin listeyi okuyabilmesi; burada vaat ("Veliyle paylaşılabilir PDF rapor", page.tsx:197) teknik olarak karşılanıyor (yazdir-butonu.tsx tarayıcı yazdırması) ama veliye hitap eden tek cümle içermiyor, yani en ucuz iyileştirme burada: rapor çıktısının başına veliye yazılmış iki satırlık özet. Üçünün de kalıcı çözümü T6'ya (1 Nisan 2027 ya da 10 ödeme) bağlı; ayrı /veli sayfası kalıcı olarak reddedildi (R2) ve bu notun hiçbir maddesi onu geri getirmiyor — istenen üç an, bir sayfa değil.


10. Backlog'da ne değişti (sayıyla)

  • Kapanan: 3 satır (#2, #3, #4 — biri kalıcı ret).
  • Birleşen: 2 satır (#13 → #16; eski #7 → G2 kapsamıyla güncellendi).
  • Kapsamı büyüyen: 2 satır (#9 üç kat, #6 P1→P0).
  • Eklenen: 16 aktif satır (#14–#29) + 16 tetikli satır (12, T1–T16).
  • Backlog dışına çıkan: 5 kalıcı ret + bu gece kapanan 5 iş (§6).
  • Toplam: 10 → 26 aktif, 0 → 16 tetikli. Aktif sayı arttı ama "aday" sayısı azaldı: satırların 11'i onaylı/hazır/dalda, yani kabul kriteri yazılı.

Bilal'den istenen

Yok — yeni madde eklemedim. CEO'nun 24-ceo-kapanis.md §E'deki 3 maddesi (disk + içerik yayını · canlı uçtan uca ödeme · satıcı kimliği 5 satır + Search Console erişimi) aynen geçerli, tek [BİLAL] karar maddesi hâlâ satıcı kimliği bilgileri. Bu gecenin marka/veri/editör raporlarının Bilal'e sorduğu 6 soruyu §7'de CEO masasına taşıdım; ikisi (marka başvurusu, "tercih robotu" ifadesi) [BİLAL] olarak T16'da sıraya alındı, bu hafta sorulmuyor.

Tek istisna — sıfır iş yükü: sabah BACKLOG.md'yi işlerken §5'teki blok doğrudan yapıştırılabilir; başlık ve açıklama satırlarından yalnız "Durum:" satırı değişiyor (§5.1).