--- name: continuous-learning-v2 description: Hook'lar aracılığıyla oturumları gözlemleyen, güven skorlaması ile atomik instinct'ler oluşturan ve bunları skill/command/agent'lara evriltiren instinct tabanlı öğrenme sistemi. v2.1 çapraz proje kontaminasyonunu önlemek için proje kapsamlı instinct'ler ekler. origin: ECC version: 2.1.0 --- # Sürekli Öğrenme v2.1 - Instinct Tabanlı Mimari Claude Code oturumlarınızı güven skorlaması ile atomik "instinct'ler" - küçük öğrenilmiş davranışlar - aracılığıyla yeniden kullanılabilir bilgiye dönüştüren gelişmiş bir öğrenme sistemi. **v2.1** **proje kapsamlı instinct'ler** ekler — React kalıpları React projenizde kalır, Python kuralları Python projenizde kalır ve evrensel kalıplar (örneğin "her zaman input'u doğrula") global olarak paylaşılır. ## Ne Zaman Aktifleştirmelisiniz - Claude Code oturumlarından otomatik öğrenme ayarlarken - Hook'lar aracılığıyla instinct tabanlı davranış çıkarmayı yapılandırırken - Öğrenilmiş davranışlar için güven eşiklerini ayarlarken - Instinct kütüphanelerini incelerken, dışa veya içe aktarırken - Instinct'leri tam skill'lere, command'lara veya agent'lara evriltirken - Proje kapsamlı vs global instinct'leri yönetirken - Instinct'leri projeden global kapsamına yükseltirken ## v2.1'deki Yenilikler | Özellik | v2.0 | v2.1 | |---------|------|------| | Depolama | Global (~/.claude/homunculus/) | Proje kapsamlı (projects//) | | Kapsam | Tüm instinct'ler her yerde geçerli | Proje kapsamlı + global | | Tespit | Yok | git remote URL / repo path | | Yükseltme | Yok | Proje → 2+ projede görülünce global | | Komutlar | 4 (status/evolve/export/import) | 6 (+promote/projects) | | Çapraz proje | Kontaminasyon riski | Varsayılan olarak izole | ## v2'deki Yenilikler (vs v1) | Özellik | v1 | v2 | |---------|----|----| | Gözlem | Stop hook (oturum sonu) | PreToolUse/PostToolUse (%100 güvenilir) | | Analiz | Ana bağlam | Arka plan agent'ı (Haiku) | | Granülerlik | Tam skill'ler | Atomik "instinct'ler" | | Güven | Yok | 0.3-0.9 ağırlıklı | | Evrim | Doğrudan skill'e | Instinct'ler -> kümeleme -> skill/command/agent | | Paylaşım | Yok | Instinct'leri dışa/içe aktar | ## Instinct Modeli Instinct küçük öğrenilmiş bir davranıştır: ```yaml --- id: prefer-functional-style trigger: "yeni fonksiyonlar yazarken" confidence: 0.7 domain: "code-style" source: "session-observation" scope: project project_id: "a1b2c3d4e5f6" project_name: "my-react-app" --- # Fonksiyonel Stili Tercih Et ## Aksiyon Uygun olduğunda sınıflar yerine fonksiyonel kalıpları kullan. ## Kanıt - 5 fonksiyonel kalıp tercihinin gözlemlenmesi - Kullanıcı 2025-01-15'te sınıf tabanlı yaklaşımı fonksiyonele düzeltti ``` **Özellikler:** - **Atomik** -- bir tetikleyici, bir aksiyon - **Güven ağırlıklı** -- 0.3 = geçici, 0.9 = neredeyse kesin - **Alan etiketli** -- code-style, testing, git, debugging, workflow, vb. - **Kanıt destekli** -- hangi gözlemlerin oluşturduğunu takip eder - **Kapsam farkında** -- `project` (varsayılan) veya `global` ## Nasıl Çalışır ``` Oturum Aktivitesi (bir git repo'sunda) | | Hook'lar prompt'ları + tool kullanımını yakalar (%100 güvenilir) | + proje bağlamını tespit eder (git remote / repo path) v +---------------------------------------------+ | projects//observations.jsonl | | (prompt'lar, tool çağrıları, sonuçlar, proje) | +---------------------------------------------+ | | Gözlemci agent okur (arka plan, Haiku) v +---------------------------------------------+ | KALIP TESPİTİ | | * Kullanıcı düzeltmeleri -> instinct | | * Hata çözümleri -> instinct | | * Tekrarlanan iş akışları -> instinct | | * Kapsam kararı: project mi global mi? | +---------------------------------------------+ | | Oluşturur/günceller v +---------------------------------------------+ | projects//instincts/personal/ | | * prefer-functional.yaml (0.7) [project] | | * use-react-hooks.yaml (0.9) [project] | +---------------------------------------------+ | instincts/personal/ (GLOBAL) | | * always-validate-input.yaml (0.85) [global]| | * grep-before-edit.yaml (0.6) [global] | +---------------------------------------------+ | | /evolve kümeleme + /promote v +---------------------------------------------+ | projects//evolved/ (proje kapsamlı) | | evolved/ (global) | | * commands/new-feature.md | | * skills/testing-workflow.md | | * agents/refactor-specialist.md | +---------------------------------------------+ ``` ## Proje Tespiti Sistem mevcut projenizi otomatik olarak tespit eder: 1. **`CLAUDE_PROJECT_DIR` env var** (en yüksek öncelik) 2. **`git remote get-url origin`** -- taşınabilir proje ID'si oluşturmak için hash'lenir (farklı makinelerde aynı repo aynı ID'yi alır) 3. **`git rev-parse --show-toplevel`** -- repo path kullanan yedek (makineye özgü) 4. **Global yedek** -- proje tespit edilemezse, instinct'ler global kapsamına gider Her proje 12 karakterlik bir hash ID alır (örn. `a1b2c3d4e5f6`). `~/.claude/homunculus/projects.json` dosyasındaki kayıt dosyası ID'leri insanların okuyabileceği isimlerle eşler. ## Hızlı Başlangıç ### 1. Gözlem Hook'larını Aktifleştirin `~/.claude/settings.json` dosyanıza ekleyin. **Plugin olarak kuruluysa** (önerilen): ```json { "hooks": { "PreToolUse": [{ "matcher": "*", "hooks": [{ "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh" }] }], "PostToolUse": [{ "matcher": "*", "hooks": [{ "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh" }] }] } } ``` **`~/.claude/skills` dizinine manuel kuruluysa**: ```json { "hooks": { "PreToolUse": [{ "matcher": "*", "hooks": [{ "type": "command", "command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh" }] }], "PostToolUse": [{ "matcher": "*", "hooks": [{ "type": "command", "command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh" }] }] } } ``` ### 2. Dizin Yapısını Başlatın Sistem ilk kullanımda dizinleri otomatik oluşturur, ancak manuel olarak da oluşturabilirsiniz: ```bash # Global dizinler mkdir -p ~/.claude/homunculus/{instincts/{personal,inherited},evolved/{agents,skills,commands},projects} # Proje dizinleri hook bir git repo'sunda ilk çalıştığında otomatik oluşturulur ``` ### 3. Instinct Komutlarını Kullanın ```bash /instinct-status # Öğrenilmiş instinct'leri göster (proje + global) /evolve # İlgili instinct'leri skill/command'lara kümele /instinct-export # Instinct'leri dosyaya aktar /instinct-import # Başkalarından instinct'leri içe aktar /promote # Proje instinct'lerini global kapsamına yükselt /projects # Tüm bilinen projeleri ve instinct sayılarını listele ``` ## Komutlar | Komut | Açıklama | |---------|-------------| | `/instinct-status` | Tüm instinct'leri göster (proje kapsamlı + global) güvenle | | `/evolve` | İlgili instinct'leri skill/command'lara kümele, yükseltme öner | | `/instinct-export` | Instinct'leri dışa aktar (kapsam/alana göre filtrelenebilir) | | `/instinct-import ` | Kapsam kontrolü ile instinct'leri içe aktar | | `/promote [id]` | Proje instinct'lerini global kapsamına yükselt | | `/projects` | Tüm bilinen projeleri ve instinct sayılarını listele | ## Konfigürasyon Arka plan gözlemcisini kontrol etmek için `config.json` dosyasını düzenleyin: ```json { "version": "2.1", "observer": { "enabled": false, "run_interval_minutes": 5, "min_observations_to_analyze": 20 } } ``` | Anahtar | Varsayılan | Açıklama | |-----|---------|-------------| | `observer.enabled` | `false` | Arka plan gözlemci agent'ını aktifleştir | | `observer.run_interval_minutes` | `5` | Gözlemcinin gözlemleri ne sıklıkla analiz ettiği | | `observer.min_observations_to_analyze` | `20` | Analiz çalışmadan önce minimum gözlem | Diğer davranışlar (gözlem yakalama, instinct eşikleri, proje kapsamı, yükseltme kriterleri) `instinct-cli.py` ve `observe.sh` içindeki kod varsayılanları aracılığıyla yapılandırılır. ## Dosya Yapısı ``` ~/.claude/homunculus/ +-- identity.json # Profiliniz, teknik seviye +-- projects.json # Kayıt: proje hash -> isim/path/remote +-- observations.jsonl # Global gözlemler (yedek) +-- instincts/ | +-- personal/ # Global otomatik öğrenilmiş instinct'ler | +-- inherited/ # Global içe aktarılan instinct'ler +-- evolved/ | +-- agents/ # Global oluşturulan agent'lar | +-- skills/ # Global oluşturulan skill'ler | +-- commands/ # Global oluşturulan komutlar +-- projects/ +-- a1b2c3d4e5f6/ # Proje hash (git remote URL'den) | +-- project.json # Proje başına metadata yansıması (id/name/root/remote) | +-- observations.jsonl | +-- observations.archive/ | +-- instincts/ | | +-- personal/ # Projeye özgü otomatik öğrenilmiş | | +-- inherited/ # Projeye özgü içe aktarılan | +-- evolved/ | +-- skills/ | +-- commands/ | +-- agents/ +-- f6e5d4c3b2a1/ # Başka bir proje +-- ... ``` ## Kapsam Karar Kılavuzu | Kalıp Tipi | Kapsam | Örnekler | |-------------|-------|---------| | Dil/framework kuralları | **project** | "React hook'ları kullan", "Django REST kalıplarını takip et" | | Dosya yapısı tercihleri | **project** | "Testler `__tests__`/ içinde", "Bileşenler src/components/ içinde" | | Kod stili | **project** | "Fonksiyonel stil kullan", "Dataclass'ları tercih et" | | Hata işleme stratejileri | **project** | "Hatalar için Result tipi kullan" | | Güvenlik uygulamaları | **global** | "Kullanıcı input'unu doğrula", "SQL'i sanitize et" | | Genel en iyi uygulamalar | **global** | "Önce testleri yaz", "Her zaman hataları işle" | | Tool iş akışı tercihleri | **global** | "Edit'ten önce Grep", "Write'tan önce Read" | | Git uygulamaları | **global** | "Conventional commit'ler", "Küçük odaklı commit'ler" | ## Instinct Yükseltme (Project -> Global) Aynı instinct birden fazla projede yüksek güvenle göründüğünde, global kapsamına yükseltme adayıdır. **Otomatik yükseltme kriterleri:** - 2+ projede aynı instinct ID - Ortalama güven >= 0.8 **Nasıl yükseltilir:** ```bash # Belirli bir instinct'i yükselt python3 instinct-cli.py promote prefer-explicit-errors # Tüm uygun instinct'leri otomatik yükselt python3 instinct-cli.py promote # Değişiklik yapmadan önizle python3 instinct-cli.py promote --dry-run ``` `/evolve` komutu ayrıca yükseltme adaylarını önerir. ## Güven Skorlaması Güven zamanla evrimleşir: | Skor | Anlamı | Davranış | |-------|---------|----------| | 0.3 | Geçici | Önerilir ama zorunlu değil | | 0.5 | Orta | İlgili olduğunda uygulanır | | 0.7 | Güçlü | Uygulama için otomatik onaylanır | | 0.9 | Neredeyse kesin | Temel davranış | **Güven artar** şu durumlarda: - Kalıp tekrar tekrar gözlemlenir - Kullanıcı önerilen davranışı düzeltmez - Diğer kaynaklardan benzer instinct'ler hemfikirdir **Güven azalır** şu durumlarda: - Kullanıcı davranışı açıkça düzeltir - Kalıp uzun süre gözlemlenmez - Çelişkili kanıt ortaya çıkar ## Neden Gözlem için Skill'ler Yerine Hook'lar? > "v1 gözlem için skill'lere güveniyordu. Skill'ler olasılıksaldır -- Claude'un yargısına göre zamanın ~%50-80'inde tetiklenirler." Hook'lar **%100** deterministik olarak tetiklenir. Bu şu anlama gelir: - Her tool çağrısı gözlemlenir - Hiçbir kalıp kaçırılmaz - Öğrenme kapsamlıdır ## Geriye Dönük Uyumluluk v2.1, v2.0 ve v1 ile tamamen uyumludur: - `~/.claude/homunculus/instincts/` içindeki mevcut global instinct'ler hala global instinct olarak çalışır - v1'den `~/.claude/skills/learned/` skill'leri hala çalışır - Stop hook hala çalışır (ama şimdi v2'ye de beslenir) - Kademeli geçiş: her ikisini de paralel çalıştırın ## Gizlilik - Gözlemler makinenizde **yerel** kalır - Proje kapsamlı instinct'ler proje başına izoledir - Sadece **instinct'ler** (kalıplar) dışa aktarılabilir — ham gözlemler değil - Gerçek kod veya konuşma içeriği paylaşılmaz - Neyin dışa aktarılacağını ve yükseltileceğini siz kontrol edersiniz ## İlgili - [ECC-Tools GitHub App](https://github.com/apps/ecc-tools) - Repo geçmişinden instinct'ler oluştur - Homunculus - v2 instinct tabanlı mimariye ilham veren topluluk projesi (atomik gözlemler, güven skorlaması, instinct evrim hattı) - [The Longform Guide](https://x.com/affaanmustafa/status/2014040193557471352) - Sürekli öğrenme bölümü --- *Instinct tabanlı öğrenme: Claude'a kalıplarınızı öğretmek, her seferinde bir proje.*