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>
270 lines
35 KiB
Markdown
270 lines
35 KiB
Markdown
# 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ı `aday`a ç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]:
|
||
|
||
```sql
|
||
-- 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]:
|
||
|
||
```tsx
|
||
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):**
|
||
|
||
```sh
|
||
# 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
|
||
|
||
```md
|
||
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).
|