` | **boşluğu yoktu** | ⚠ **Düzeltildi** — bkz. Sapmalar 1. |
## (b) `e3519a5` — `[Bilal]` metin artığı
`tadimlik-satiri.tsx:135` civarı:
> Sıralamana uygun bir programın gerekçesi, yerleşme riski ve taban trendi — 24 tercihlik listenin her satırı bu formatta kurulur**, ilk üçü hemen açılır.**
- Sayı yazıldı, bulanıklaştırılmadı (Bilal'in seçtiği yön).
- Garanti/vaat dili yok; cümle bir şey **eklemiyor**, var olan iddiayı **sınırlıyor**.
- `3` elle yazıldı: `ACIK_SATIR` `src/lib/rapor-maske.ts:12`'de ve o dosya `server-only`; `tadimlik-satiri.tsx` ise `"use client"` — sabit import edilemiyor. **Tek kaynak bağı kodun yanına yorum olarak iliştirildi**: `ACIK_SATIR` değişirse bu cümle aynı commit'te değişmeli. [D — `rapor-maske.ts:12` okundu, değer 3]
### `[Bilal]` commit'lerinin tek tek düşürülebilirliği — doğrulandı [D]
Dizilim `… 2373a9a → d2e1190 [Bilal] → e912665 → e3519a5 [Bilal]` olduğu için `d2e1190` tepede değil; düşürme yolu `git revert` (yıkıcı komut yasağına da uygun olan tek yol). Ters yamanın temiz uyguladığı, **çalışma ağacına dokunmadan** sınandı:
```
$ git show d2e1190 | git apply --check --reverse - → EVET (temiz ters yama)
$ git show e3519a5 | git apply --check --reverse - → EVET (temiz ters yama)
```
Hunk'lar birbirinden uzak ve kesişmiyor: `d2e1190` → satır 188 ve 202 (CTA metni), `e3519a5` → satır 133-142 (paragraf). Aralarındaki `e912665` ise 123-127 (yorum) bölgesine dokunuyor.
**Ana commit'ler `[Bilal]` commit'leri olmadan derlenir mi?**
- `e912665` için **[D]**: `tsc` ve `lint` tam olarak bu commit'in ağacı üzerinde koşuldu (commit'ten hemen önce), ikisi de 0.
- `d2e1190` düşürülürse: o commit yalnızca iki metin dizesini değiştiriyor (`Giriş yap ve listeni oluştur` → `Kendi listemi oluştur` ve alt satıra bir cümle), hiçbir tanımlayıcıya dokunmuyor — geri alınması derlemeyi kıramaz **[Ç]**.
## Doğrulama çıktıları (dal 2, tepe commit'in ağacında)
```
$ pnpm exec next typegen
Generating route types...
✓ Types generated successfully
$ pnpm exec tsc --noEmit ; echo "TSC_EXIT=$?"
TSC_EXIT=0
$ pnpm lint ; echo "LINT_EXIT=$?"
> kolaytercih@0.1.0 lint
> eslint
LINT_EXIT=0
```
`/meraklisina` şeması el değmedi [D]:
```
$ git diff --name-only 9bd448b..HEAD | grep -E "huni-semasi|meraklisina|analitik.ts|rapor-maske|credits.ts"
(boş)
```
---
## Şartnameden sapmalar (2)
1. **`manuel-harita.tsx`'in kök `
`'ine `mt-16` eklendi** — şartname yalnız `page.tsx`'te yer değişimi istiyordu. Gerekçe: haritanın kök öğesinin üst boşluğu yoktu, çünkü ``'in ilk çocuğuyken boşluğu `main`'in `py-12`'sinden alıyordu. Tablonun altına taşınınca tabloya yapışık kalacaktı; sayfadaki diğer bölümlerin hepsi `mt-16` kullanıyor (tablo ``'ı, sihirbaz kartları, tadımlık). Bu bir ritim düzeltmesi, davranış değişikliği değil. Dosya zaten G1'in sahiplik kümesinde. **Gözle kontrol edilmeli** (aşağı, Bilal'den istenen 1).
2. **İki commit'te yorum güncellemeleri** — `tadimlik-satiri.tsx:123`'teki `first:mt-0` yorumu haritanın üstte olduğunu varsayıyordu, `page.tsx`'teki hiyerarşi yorumu da eski sırayı anlatıyordu. İkisi de yeni sıraya göre yeniden yazıldı; kod değil belge düzeltmesi, ama diff'e giriyor.
## Kapsam dışı bırakılanlar (bilerek)
- **B3** (Suspense fallback `max-w-6xl` ↔ içerik `max-w-4xl`, 256 px genişlik farkı) — `sonuc/page.tsx:47`. Bu işin parçası değil, dokunulmadı. Aynı dosyada duruyor; A3 (`/sonuc` ``) dalıyla birlikte gitmesi ucuz olur.
- **B4** ("Giriş sonrası liste hemen üretilir" kredisiz kullanıcıda tutmuyor) — `tadimlik-satiri.tsx:188-189`, yani `d2e1190`'ın kendi hunk'ı. Dokunmadım; düzeltilecekse o `[Bilal]` commit'iyle birlikte ele alınmalı.
- Navbar'daki küçük bulgular (kredi link'inin erişilebilir adının salt "12" olması, <640 px'te 36 px dokunma hedefi) — şartname bunları istemedi.
- Alternatif 2 (`Nasıl çalışır?` gizleme) — Bilal A'yı seçti.
## Merge sonrası doğrulanması gerekenler
1. **`pnpm build` iki dalda da alınmadı** (disk talimatı). Push edilecek commit'in **kendisi** üzerinde alınmalı — çalışma ağacı kirli olduğu için buradaki bir build zaten yanıltıcı olurdu (AGENTS.md "Push öncesi build zorunlu").
2. **Navbar, girişli oturumda 375 / 768 / 1280 px** — header tek satıra indi mi, pill'ler ikon+rozet hâliyle tanınabiliyor mu. Tasarımcının hesabı bunu söylüyor ama ölçüm hesapla yapıldı, gözle değil.
3. **Ekran okuyucuyla iki pill** — etiket artık yalnız `aria-label`'dan geliyor; VoiceOver/NVDA'da "Yapay Zeka Listem, bağlantı" ve "Kendi listem — 3/24 program, düğme" duyuluyor mu.
4. **`/sonuc`, kayıtlı manuel listesi olan oturumda** — harita hidrasyonda tablonun altında belirip **üstündeki hiçbir şeyi itmiyor** mu (B1'in asıl testi), ve tabloyla arasındaki `mt-16` boşluğu doğru duruyor mu.
5. **Analitik serisi** — `tadimlik_goruntulendi` için 32 numaralı raporun uyarısı geçerliliğini koruyor; tadımlık hâlâ ilk ekranda, bu commit'ler paydayı değiştirmedi.
`guvenlik-uyum` denetimi **gerekmiyor**: iki dalda da para, giriş kimlik doğrulaması ya da kişisel veri akışına dokunulmadı — değişenler yerleşim sırası, iki CSS sınıfı ve bir cümle.
## Bilal'den istenen (3 madde)
1. **`manuel-harita.tsx`'e eklediğim `mt-16`'yı gözle onayla** — harita artık tablonun hemen altında, aradaki boşluk diğer bölümlerle aynı ritimde mi, yoksa fazla/az mı? **~2 dk.**
2. **`e3519a5` (`[Bilal] content(tadimlik): paragraf maskenin gerçeğini söyler`) onayı** — "…24 tercihlik listenin her satırı bu formatta kurulur, **ilk üçü hemen açılır**." senin dilin mi? Hayırsa `git revert e3519a5`; altındaki hiçbir şey etkilenmez (ters yama temiz doğrulandı). **~2 dk.**
3. **Navbar'da kalan 1024–1151 px bandı** — Alternatif 1 bu dar bantta profilsiz + liste dolu durumda −48 … −1 px açık bırakıyor (tasarımcının hesabı). Alternatif 2'yi (`Nasıl çalışır?` yalnız ≥1280 px) isteyecek misin, yoksa bu bant kabul mü? **~3 dk.**