# Yazılımcı raporu — UI düzeltmeleri (tasarımcı B1/B3/B4/B5/B6 + QA B3) Dal `v2`, ana checkout, başlangıç HEAD `129c839` → bitiş `f955a76`. Push yok. Tarayıcı açılmadı; görsel etkiler **koddan çıkarım**. ## Özet 1. **B1 — önbellekli açılışta sahne atlanıyor.** `AcilisSahnesi` artık `hazir` verilmişse sahneyi yalnız `false → true` geçişinde oynatıyor; `hazir={true}` ile monte olursa (çekmece yeniden açıldı, veri önbellekte) logo kabı gizlenir, içerik 0,25 s solmayla gelir. `hazir` verilmeyen akademik göstergeler çekmecesi (kartlı mod) eskisi gibi her açılışta oynar. 2. **B3 — kartsız sahne ≈2 s → ≈1,2 s.** Kare ve blok aralığı 0,05 s, netleşme 0,35 s, logo belir/dur/sön 0,28/0,16/0,3 s. Hesap: son kare 0,2 s'de başlar, sönme 0,94 s'de biter, ilk blok 0,95 s'de net, 8 blokla sonuncusu 1,30 s'de. DESIGN.md §4.19 gerçek değerlerle güncellendi. Kartlı mod sabitleri (`ICERIK_BASI`, `SLOT_ADIMI`, 0,5 s netleşme) dokunulmadı. 3. **B4 — gövde üst kenar maskesi.** `AltSayfaGovde`'ye `[mask-image:linear-gradient(to_bottom,transparent,black_1.25rem)]`; tek kaynak, tüm çekmeceler. Tutamaç şeridine `bg-card` vermedim: şerit `rounded-t-3xl` kabın içinde kırpılmadan durduğu için köşeleri perdenin üstüne taşardı (koddan çıkarım); kap zaten `bg-card`. 4. **B5, B6 — trivial.** İstihdam paragrafı `toLocaleUpperCase("tr-TR")` ile büyük harfle başlıyor (hangi parçanın başa geldiği veriye bağlı, o yüzden sabit metin değil). `QuestionnaireProgress` render'ında spread'den sonra `aria-label="Soru ilerlemesi"`. 5. **QA B3 — iç içe bağlantı.** `baglanti-denetimi.ts`'e `icIceBaglantiyiDuzlestir` (`[[x](y)](y)` → `[x](y)`, her adres, derin sarmada yinelenir) rehber eşlemesinden önce; tampon `)`'den sonra `](` gelip gelmediğine bakıyor (bir karakterlik ek bekleme). Farklı adresli `[[a](/x)](/y)` bilerek dokunulmuyor. Eval 56/56. ## Commit'ler | Hash | Mesaj | Dosyalar | |---|---|---| | `fce7ab8` | fix(ui): alt sayfa gövdesi üst kenarda maskeli | `src/components/ui/alt-sayfa.tsx` | | `2ec9ecd` | fix(ui): program ayrıntı çekmecesi — önbellekli açılışta sahne atlanır, sahne ≈1,2 s, istihdam cümlesi büyük harfle | `src/components/ui/acilis-sahnesi.tsx`, `src/features/katalog/components/program-ayrinti.tsx`, `docs/tasarim/DESIGN.md` | | `00e0a8a` | fix(sohbet): soru formu ilerleme göstergesi Türkçe aria-label | `src/features/rapor/components/sohbet-anketi.tsx` | | `f955a76` | fix(sohbet): iç içe markdown bağlantısı düzleştiriliyor | `src/lib/ai/baglanti-denetimi.ts`, `scripts/eval/baglanti-denetim.ts` | Sürüm artırılmadı: `v2` dalındaki önceki `fix` commit'leri (`129c839`, `91e2859`) de artırmıyor; dal `main`'e girince 2.0.0 olacak (AGENTS.md sürümleme). ## Kabul kriterleri | Kriter | Sonuç | Nasıl | |---|---|---| | `pnpm tsx --conditions=react-server scripts/eval/baglanti-denetim.ts` çıkış 0 | ✔ | Çalıştırıldı: 56/56 (eski 44 + 2 senaryo × 6) | | `pnpm exec next typegen && pnpm exec tsc --noEmit` | ✔ | Çalıştırıldı, çıkış 0 | | `pnpm lint` (tasarım denetimi 0 hata) | ✔ | Çalıştırıldı, çıkış 0; 0 hata, 12 uyarı (hepsi önceden var: `secimlerim-paneli.tsx`, `meraklisina-demo.tsx`) | | B1: önbellekli açılışta boş beyaz gövde yok | ✔ koddan çıkarım | Önbellekli yol = hareketi-azalt yolu: `kap` 0→1 opaklık 0,25 s, logo `display:none`; iskelet `hazir=false`yken zaten görünür | | B1: sahne yalnız false→true'da | ✔ koddan çıkarım | `onbellekli = useRef(hazir === true)`; effect bağımlılığı `oynat` | | B3: ≈1,2 s | ✔ hesapla | Sabitlerden; 7 blokta 1,25 s, 8 blokta 1,30 s | | B4: içerik tutamaç/çarpının altından maskesiz geçmiyor | ✔ koddan çıkarım | Maske 20 px + 24 px şerit = sayfa üstünden 44 px; çarpı 12–48 px, zemini `bg-popover` opak | | B5, B6 | ✔ koddan | `grep` ile tek yer | | QA B3 | ✔ | Eval senaryosu QA'nın ham çıktısıyla (`[[/paket](/paket)](/paket)`) | ## Sapmalar - Tutamaç şeridine `bg-card` zemin verilmedi (yukarıda gerekçe); yalnız maske. - Süre hedefi "≈1,2 s" sahneyi ilk blok için tutuyor, son blok 1,3 s. Logo duruşunu daha kısaltmadım; belgeye gerçek sayıları yazdım. - `icIceBaglantiyiDuzlestir` düzeltmeyi `duzeltmeler` listesine yazmıyor (tip `slug`/`sonuc` rehber odaklı); loga düşmesi istenirse ayrı iş. ## Merge sonrası doğrulanması gerekenler (tarayıcıda, Bilal ya da tasarımcı) 1. `/bolum/tip` → Başkent satırı → ayrıntı, kapat, **tekrar aç**: ikinci açılışta kare yok, içerik hemen solarak geliyor mu; ilk açılışta sahne ≈1,2 s'de bitiyor mu (375 ve 1280). 2. Çekmece gövdesini kaydır: üst satır tutamaç altında sönüyor mu; en üstteyken başlığın üst kenarı soluk görünüyor mu (maske 20 px, başlık `pt-3`'ten sonra — görünmemeli). Liste çekmecesinde (`py-2`) ilk satır. 3. Akademik göstergeler çekmecesi değişmemiş olmalı (kartlı mod). 4. Safari'de `mask-image` (prefixsiz) — iOS 15.4+ destekliyor; eski cihazda maske yoksa yalnız eski davranış kalır, kırılma yok. ## Bilal'den istenen 1. Yukarıdaki 1–2'yi gözle kontrol (≈2 dk). 2. Yok.