---
name: fikoyt-web
description: FikoYT web tarafını (fikoyt-zorro.com / fikoyt-sistem Angular 20 + fikoyt-ui Three.js 3D motoru + WASM/Rust + Go/Fiber backend) Fikri'nin tarzında geliştirme iş akışı. OnPush+signal perf kuralları, WASM→GPU→CPU fallback zinciri, sıfır-tahsis sıcak yol, merkezi utility haritası, Ng-Zorro tema/animasyon, MongoDB, Socket.IO. Bu skill "angular", "zorro", "component", "signal", "OnPush", "three.js", "fikoyt-ui", "FikoSecililer", "FikoWasmBridge", "wasm", "rust", "go backend", "fiber", "mongodb", "socket.io", "ng-zorro", "tema", "virtual scroll", "web 3d", "stp-processor", "worker", "ssl", "port 444", "port 9000" anahtar kelimeleriyle tetiklenir.
---

# fikoyt-web — Fikri tarzında web geliştirme

Kök: `D:\__sistem__\Masaustu\FikoYT.Yeni.Cag`. Ana projeler: `fikoyt-zorro.com` (Angular 20, dev https://0.0.0.0:444),
`src/service/fikoyt-ui` (paylaşılan UI + Three.js CAD motoru), `docker/fikoyt-sunucu/merkez.go-server.com` (Go 1.23 / Fiber v3, port 9000).
Kök `CLAUDE.md` ve MEMORY.md fihristindeki `projeler/zorro`, `projeler/fikoyt-ui`, `projeler/go-backend` indekslerini gerektiğinde oku.

## Fikri'nin çalışma tarzı (skill'in ruhu)
- **Küçük iş → direkt uygula; büyük iş (3+ dosya) → 2-3 maddelik kısa plan.** Kısa yanıt, özet tekrarı yok, commit yalnız istenince.
- **HER kod yazmadan önce:** (1) aynı işi yapan mevcut kod/utility var mı grep'le, (2) global stil tanımlı mı bak, (3) varsa genişlet — yoksa yaz, (4) çok yerde lazımsa merkezî utility yap. Dosyaları kodla doldurma; OOP + minimal.
- **Türkçe isimlendirme** (teknik terim hariç); kullanıcıya görünen tüm mesajlar Türkçe. Gereksiz yorum yok. Debug console.log → kullanıcı onayı sonrası hemen temizle.
- Test yalnız kritik iş mantığına (kesim motoru, geometri hesabı — ör. `test:cam`). 3. parti kütüphane gerekiyorsa serbestçe ekle. Over-engineering yok.

## Performans kuralları (KESİN)
- Angular: her component `OnPush` + `signal()` + `trackBy`; büyük liste → virtual scroll; ağır hesap → `computed()` veya WebWorker; route bazlı `loadComponent` lazy; CSS animasyonu yalnız `transform`/`opacity`.
- 3D motor sıcak yolları (FikoSecililer, FikoGPU*, FikoRaycastBVH, FikoImporter.STP): **döngüde tahsis yok** (ön-ayrılmış Vector3 buffer, inline matris), kare başına <10 tahsis, 60 FPS bütçesi.
- **Fallback zinciri sırası değişmez: WASM → GPU → CPU.** WASM çağrısı hep `this.wasmModule?.fn` kontrolü + try-catch (zarif düşüş). BVH raycast `three-mesh-bvh`.
- 3D sahnede sis (fog) YASAK.
- Go: gereksiz middleware zinciri ekleme; MongoDB sorgularında index; mevcut sistem modüllerini kullan (`sistem/kok`, `sistem/kokDB`, `sistem/fikoyt_ctx`) — YENİ sistem modülü açma, yetmiyorsa kullanıcıya sor.

## Kalıplar (yeniden yazma, KULLAN)
- Component'ler `FikoYTKokBilesenComponent`'i extend eder (CD/router/nzMessage/bPnt/subsList hazır gelir).
- Servisler: FikoYTRequestService (Mongo CRUD/aggregate), UnifiedCacheService (SWR), AvatarService. Utility: ListeBase<T>, bbox.utils, gradient-tokens, regex.utils (Mongo regex güvenliği). Bileşen: UniversalAvatar, FikoFormDrawer, FikoEmptyState, AdminPageHeader/StatCard. Dekoratör: @debounce/@throttle/@memoize. Pipe: toDosyaBoyutu/sanitize/yuvarla. Tam harita kök CLAUDE.md'de.
- UI: Ng-Zorro + Fomantic, merkezi global stil, dark+light tema (CSS custom properties, toggle), bol animasyon/micro-interaction, tam responsive (mobil dahil), oyun-tarzı kart estetiği.

## Derleme / çalıştırma
- Angular: `cd fikoyt-zorro.com && npm start` (SSL sertifikaları docker/fikoyt-sunucu/.../cert). Build: `ng build --configuration production`. Test: `ng test`.
- WASM: `cd fikoyt-zorro.com/fikoyt-wasm && bash build.sh` (prod: `build-production-wasm.sh`; çıktı ~120-150 KB `public/assets/fikoyt-wasm/` — 8 baytlık placeholder kaldıysa build BAŞARISIZ demektir).
- Go: `cd docker/fikoyt-sunucu/merkez.go-server.com && go build -o server .` (fikoyt.env.json gerekir; prod `-ldflags="-s -w"`). Test: `go test ./...`.
- Port haritası: 443/444 zorro-sistem, 446/447 post-compiler, 448/449 modelhane/soyağacı, 455 paylaşım, 9000/9010 Go.

## STEP/3D akışı (dokunmadan önce anla)
Upload → FikoImporter.STP (occt-import-js) → opsiyonel WASM (FikoWasmBridge.parseStepTopology) → stp-processor.worker → FikoInstancedEdgeRenderer (kenar) → FikoSecililer çok-katmanlı seçim (WASM batch → FikoGPUSelection → BVH CPU). Pick offset'leri vertex yerleşimine bağlı — Vertex yapısını değiştiren her şey pick'i kaydırır, kontrol et.
