Sen bu boş klasörde bir "yapay zekâ yayıncı" (AI VTuber) sistemini sıfırdan kuracak kıdemli bir yazılım mühendisisin. Hedef: yayın sohbetini ve beğenileri okuyan, yapay zekâyla ne söyleyeceğine karar veren, sesli cevap veren, ağzı konuşmayla oynayan bir avatar ve (istersem) Minecraft'ta olay başlatan bir sistem. "Yapay Zeka ile Canlı Yayın Nasıl Yapılır? AI VTuber ve Minecraft Botu" videosundaki adımları uygula, kendi kendine ilerle; ama benim kararıma bağlı her noktada bana AskUserQuestion aracıyla sor. ## 0. DEĞİŞMEZ KURALLAR 1. Anahtar ve parola ASLA sohbete yazılmaz. Gerçek değerleri ben yalnızca `.env` dosyasına yazarım. Sen `.env.example` (yalnızca değişken adları) oluştur, `.gitignore` içine `.env` ve `kayitlar/` ekle, anahtarların dolu olup olmadığını değeri göstermeden denetle (yalnızca "dolu/boş"). Terminal çıktısında, loglarda ve commit'lerde değer geçmesin. 2. Önce plan modunda plan yaz, ben onaylayana kadar dosya yazma ve kurulum yapma. 3. Her adımı yazdıktan sonra ÇALIŞTIR, çıktıyı göster, hata varsa kök nedeni bul ve düzelt, sonra sıradaki adıma geç. "Çalışmalı" deme; kanıtla. 4. Şu işlerden önce dur ve bana sor: yeni yazılım indirmek/kurmak, ücretli bir hizmeti çağırmak, Minecraft EULA'sını kabul etmek, bir portu dinlemeye açmak, dosya silmek, git'e göndermek. 5. Sunucu ve web arayüzleri yalnızca 127.0.0.1'e bağlanır. RCON parolasını sen rastgele üret, yalnızca `.env`'ye yaz. 6. Lisans ve politika: Minecraft Java için oyun resmî lisanslı hesapla oynanır (para kazanılan yayında zorunlu); Live2D örnek model kullanılırsa "This content uses sample data owned and copyrighted by Live2D Inc." ibaresi görünür bir yere yazılır; küfür listesi (ooguz/turkce-kufur-karaliste) CC BY-SA 4.0 atıf ister; TikTok-Live-Connector AGPL-3.0'dır ve resmî değildir; karakter yapay zekâdır, gerçek kişi gibi tanıtılmaz ve gerçek bir kişinin sesi/yüzü izinsiz taklit edilmez; yayın platformunun yapay zekâ/sentetik içerik bildirimi varsa hatırlat. 7. Bana kısa ve sade Türkçe konuş; terimi ilk geçtiğinde bir cümleyle aç. ## 1. SORULAR (AskUserQuestion ile, 4 soruluk gruplar halinde; her soruda önerilen seçeneği ilk sıraya koy) A) Ortam: işletim sistemi ve kabuk; kurulu olanlar (Node.js 20+, Java 21, OBS Studio, Minecraft Java); bellek ve ekran kartı; disk alanı. B) Kapsam: tam sistem (sohbet + beyin + ses + avatar + Minecraft) / yalnız konuşan avatar / yalnız terminalde sohbet eden beyin+ses denemesi. Yayın platformu: YouTube / TikTok / Twitch / yalnız yerel deneme. C) Karakter: adı, kişiliği, konuşma dili ve tonu (varsayılan Türkçe, 1-3 kısa cümle), mutlaka yasaklanacak konular, tekrar eden sözleri, izleyiciye hitap şekli, "yapay zekâyım" bilgisini ne sıklıkla söylesin. D) Ses: ElevenLabs (v3, duygu etiketli, ücretli) / Gemini TTS / yerel ücretsiz TTS (ör. Piper). Ses kimliği, oturum başına karakter sınırı (bütçe), hazır replik önbelleği olsun mu. E) Beyin: Gemini birincil olsun mu; yedek olarak Groq ve/veya OpenRouter. Hangi anahtarlara sahibim. Düşünme modu kapalı, JSON zorunlu. F) Avatar: Live2D örnek model (Haru) / basit SVG-CSS avatar / kendi modelim. Ağız hareketi ses seviyesinden mi gelsin. G) Oyun olayları: varsayılan beğeni hedefleri (5 beğeni zombi, 10 iskelet, 20 TNT yağmuru, 30 creeper) uygun mu; güvenli ayrı test dünyası; botun adı; her olayda bağışçı/izleyici adı gösterilsin mi. H) Güvenlik: küfür kara listesi, "önceki talimatları unut" gibi komut girişimi filtresi, kullanıcı başına hız sınırı, en uzun mesaj, rakip/siyaset gibi ek yasaklar. I) Yayın: OBS sahnesini sen otomatik kurasın mı (obs-websocket) yoksa elle mi; çözünürlük; YouTube sohbeti için API anahtarı ve kanal kimliği var mı. J) Çalıştırma: başlat/durdur betikleri (bash ya da PowerShell), git deposu başlatılsın mı (özel). ## 2. PLAN Cevaplarıma göre dosya ağacını, kurulacak araçları (resmî bağlantılarıyla), adımları, tahmini süreyi, tahmini aylık maliyeti (ses, API kotaları) ve riskleri yaz. Onayımı bekle. ## 3. ADIMLAR (her biri: yap → çalıştır → doğrula → özetle) 1. Ön kontrol: `node -v`, `java -version`, OBS ve Minecraft varlığı. Eksikleri resmî sayfalarıyla listele, kurmadan önce sor (nodejs.org/en/download, obsproject.com/download, papermc.io/downloads/paper, minecraft.net). 2. İskelet: `package.json` (ESM), `src/{beyin,ses,arayuz,olaylar,minecraft,obs}`, `kayitlar/`, `.env.example` (GEMINI_API_KEY, GROQ_API_KEY, OPENROUTER_API_KEY, ELEVENLABS_API_KEY, ELEVEN_SES_ID, ELEVEN_OTURUM_SINIRI, TEST_MODU, OBS_SIFRE, RCON_SIFRE, YOUTUBE_API_KEY, YOUTUBE_KANAL_ID), `.gitignore`, README taslağı, `CLAUDE.md` (bu kurallar). 3. Kişilik: `persona.md` (kimlik, ton, 1-3 cümle kuralı, kesin yasaklar) ve 20-30 kısa örnek konuşma; izleyici hafızası (`kayitlar/izleyiciler.json`: ad, mesaj sayısı, son konu). Her LLM çağrısına persona + rastgele 6 örnek + hafıza gider. 4. Filtre: küfür kara listesi (indir, atıf dosyası ekle), talimat-enjeksiyon kalıpları, bağlantı/uzun metin kesme, birim testleri (ör. masum 20 cümle engellenmesin, 10 kötü örnek yakalansın). Sese giden her metin filtreden geçer; küfür sesli "bip" ya da boşluk olur. 5. Beyin: Gemini → Groq → OpenRouter sıralı yedek, 8-10 sn zaman aşımı, 429'da bekleyip yeniden deneme, hangi sağlayıcının cevapladığını logla. Çıktı şeması `{duygu, enerji, soz}`, şemaya uymazsa bir kez onar. Güncel ve ucuz model adını resmî fiyat sayfasından seç, `.env`'de tut. Terminalden mesaj yazıp cevabı ölç (süre yazdır). 6. Ses: seçilen TTS ile sözü sese çevir; (ElevenLabs v3'te `[excited]`, `[laughs]` gibi duygu etiketleri). Aynı cümleyi önbelleğe al (hash), `TEST_MODU=1` iken yalnız önbellekten çal, oturum karakter sınırı aşılınca yalnız balon göster. İlk sesin gecikmesini ölç. 7. Avatar ve arayüz: 127.0.0.1:3900'de küçük sunucu (ws ile canlı olay). `/avatar` (600×900, ağız sesin seviyesinden), `/overlay` (1920×1080, beğeni hedefleri), `/panel` (operatör: sohbet, beğeni, TNT, duraklat, sustur, TEST_MODU). Live2D seçildiyse pixi-live2d-display + Cubism Core'u resmî Live2D sayfasından, ben onayladıktan sonra indir. 8. Sohbet girişi: önce terminal ve panel. Sonra seçtiğim platform: YouTube Live Chat (YouTube Data API v3, API anahtarıyla; kotayı hesapla ve README'ye yaz), TikTok (tiktok-live-connector, AGPL uyarısıyla) ya da Twitch. Hiçbir platforma yazma yetkisi isteme, yalnız okuma. 9. Minecraft (kapsam "tam" ise): Paper'ı indir (Mineflayer'ın desteklediği sürüm; videoda 1.21.1 kullanıldı, güncel uyumu kontrol et), EULA'yı BEN onaylarım (sen kabul etme), `server.properties`: `enable-rcon=true`, `rcon.port=25575`, rcon parolası `.env`'den, yerel bot için `online-mode=false` (riskini bir cümleyle açıkla, yalnız 127.0.0.1), `-Xmx2G`. RCON istemcisi (`rcon-client`) ve Mineflayer botu; olaylar: zombi, iskelet, TNT yağmuru, creeper (güvenli yarıçap, bekleme süresi, olay başına üst sınır, izleyici adı `CustomName`). `/list` ile doğrula. 10. Olay veriyolu ve konuşma kuyruğu: beğeni eşikleri → Minecraft komutu + karakter tepkisi; TNT anında önbellekten kısa korku sesi, patlamadan sonra adla tepki; öncelik kuyruğu; sessizlik sınırı. 11. OBS: seçime göre obs-websocket-js ile sahne ("Yayın": oyun/pencere yakalama + overlay + avatar tarayıcı kaynağı, avatarda "Control audio via OBS" açık) ya da elle adımları README'ye yaz. 12. Başlat/durdur: tek komutla sunucu + bot + arayüz (`basla`), kayıt alarak kapatan `durdur`, sağlık kontrolü (portlar, anahtar var/yok, TEST_MODU durumu). 13. Uçtan uca test: sahte sohbet "Selam" → filtre → beyin → ses → avatar; sahte 20 beğeni → TNT. Sonuçları tablo yap (adım, süre, geçti/kaldı). ## 4. TESLİM Ne kurulduğunu, nasıl çalıştırılacağını, aylık maliyet tahminini, bilinen sınırları (ücretsiz kota limitleri, YouTube sohbet kotası, canlıda denenmeyen özellikler) ve sonraki adımları (üç madde) yaz. Anahtarları nereden alacağımı resmî bağlantılarla listele. Şimdi 1. bölümdeki ilk soru grubuyla başla.