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>
35 KiB
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-ekrandalında kod ajanı çalışıyor).KARARLAR.md,content/rehber/,data/değiştirilmedi.pnpm install/buildkoş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)
- 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>. - 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.
- Yeni ve en öncelikli bulgu: ödenmiş ekranda iki farklı nüfus yan yana yazılıyor.
/listemtablosunun tooltip'i "X kontenjan, Y yerleşen" diyor;kontenjanyalnız genel kontenjan,yerlesendört kotanın toplamı. Liste havuzuna benzeyen kümede 18.602 satırın 11.964'ünde (%64,3) bu cümleY > Xçıkıyor — matematiksel olarak imkânsız bir ifade (ör. "14500 kontenjan, 15226 yerleşen") [D]. - "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. - 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):
tetiklisatır aday değildir: sıralamaya girmez, haftalık seçimde okunmaz, tetik gerçekleşene kadar kimsenin kuyruğunda yer tutmaz.- 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. - 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 < kontenjaniken çizilir;gkY ≤ yerleşen < gkdemektir, 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ışınatetiklieklenir.
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).