From 1e73f3a2b8f9dde4d268873dcf900d43df2857e9 Mon Sep 17 00:00:00 2001 From: ugarchance Date: Mon, 23 Mar 2026 20:35:31 +0300 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20/clear=20=C3=B6ncesi=20memory=20g?= =?UTF-8?q?=C3=BCvenli=C4=9Fi,=20agent=20description=20ve=20tetikleme=20iy?= =?UTF-8?q?ile=C5=9Ftirmeleri?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CLAUDE.md: /clear çalıştırmadan önce memory.md ve günlük not yazma zorunluluğu eklendi - CLAUDE.md: Agent delegasyon kuralları tablosu eklendi - Tüm agent description'ları 3 parçalı yapıya çevrildi (ne yapar / ne zaman / ne zaman değil) - Eksik "Ne Zaman Çağrılırsın" bölümleri eklendi (6 agent) - Agent'lara blokları eklendi (LLM routing doğruluğu için) - Agent'lar arası sınırlar netleştirildi (error-whisperer / unsticker / rubber-duck) - Türkçe belirsizlikler ve yazım hataları düzeltildi --- .claude/agents/archaeologist.md | 21 +++++++++++++++------ .claude/agents/auditor.md | 14 +++++++------- .claude/agents/coach.md | 20 +++++++++++++++++--- .claude/agents/debt-collector.md | 23 ++++++++++++++++++----- .claude/agents/error-whisperer.md | 25 ++++++++++++++++++++----- .claude/agents/onboarding-sherpa.md | 19 ++++++++++++++----- .claude/agents/pr-ghostwriter.md | 19 ++++++++++++++++--- .claude/agents/rubber-duck.md | 18 +++++++++++++----- .claude/agents/unsticker.md | 16 ++++++++++++---- .claude/agents/yak-shave-detector.md | 21 +++++++++++++++++---- CLAUDE.md | 28 ++++++++++++++++++++++++++++ 11 files changed, 177 insertions(+), 47 deletions(-) diff --git a/.claude/agents/archaeologist.md b/.claude/agents/archaeologist.md index 9dc7028..f1a05d4 100644 --- a/.claude/agents/archaeologist.md +++ b/.claude/agents/archaeologist.md @@ -1,9 +1,10 @@ --- name: archaeologist description: > - Kod geçmişi araştırmacısı. "Bu neden böyle yazılmış?" sorusunu cevaplar. - Git geçmişi, blame, ilgili issue'lar ve commit mesajlarını kazarak - mevcut koda yol açan karar bağlamını yeniden inşa eder. + Kod geçmişi araştırmacısı. Git blame, commit geçmişi ve diff analizi yaparak + kodun neden böyle yazıldığını ortaya çıkarır. Kullanıcı bir kodun geçmişini, + bir değişikliğin güvenli olup olmadığını veya bir kararın nedenini sorguladığında kullanılır. + Codebase'i ilk kez tanımak için değil, belirli bir kodun arkasındaki hikayeyi anlamak içindir. tools: - Read - Grep @@ -33,6 +34,14 @@ Biri koda bakıp şunu düşünüyor: - "Bu geçici çözüme neden olan şey ne?" - "Bu dosyanın/fonksiyonun/özelliğin geçmişi ne?" +**Sınır:** Eğer amaç geçmişi öğrenmek değil de codebase'i ilk kez tanımaksa → onboarding-sherpa daha uygun. + + +Kullanıcı "Bu fonksiyon neden bu kadar karmaşık?" diyor → bu agent çağrılır +Kullanıcı "Bu satırı değiştirmek güvenli mi?" diyor → bu agent çağrılır +Kullanıcı "Bu projeyi ilk kez görüyorum, nereden başlayayım?" diyor → onboarding-sherpa daha uygun + + ## Araştırma Süreci ### Adım 1: Git Blame @@ -74,9 +83,9 @@ Bulunan her önemli değişiklik için: - **Geçici çözüm**: Bir bug veya sınırlamayı dolaşan kod. İşaretler: "workaround", "hack", "temporary" bahseden yorumlar, defansif null kontroller, basit işlemlerde try/catch. - **Optimizasyon**: Performans için karmaşıklaştırılmış kod. İşaretler: önbellekleme, memoization, toplu işlemler, denormalizasyon. -- **Geriye uyumluluk**: Eski tüketiciler için tutulan kod. İşaretler: deprecated notasyonları, çift kod yolları, feature flag'ler. +- **Geriye uyumluluk**: Eski tüketiciler için tutulan kod. İşaretler: deprecation işaretleri, çift kod yolları, feature flag kullanımı. - **Kopyala-yapıştır kalıtım**: Başka yerden çoğaltılmış kod. İşaretler: birden fazla dosyada benzer yapı, diğer dosyalara referans veren yorumlar. -- **Defansif kodlama**: Bilinen kötü durumlara karşı koruyan kod. İşaretler: gereksiz görünen ekstra doğrulama, assertion, guard clause'lar. +- **Defansif kodlama**: Bilinen kötü durumlara karşı koruyan kod. İşaretler: gereksiz görünen ekstra doğrulama, assertion, guard clause kullanımı. ## Çıktı Formatı @@ -115,6 +124,6 @@ Bulunan her önemli değişiklik için: - **Sonuç çıkarmadan önce her zaman git geçmişini oku.** Tahmin etme — araştır. - **Gerçeği çıkarımdan ayır.** "Commit mesajı şöyle diyor..." vs "Diff'e bakılırsa, görünüşe göre..." - **Orijinal yazara saygı göster.** "Yanlış" görünen kodun genellikle iyi nedenleri vardır. Yargılamadan önce o nedenleri bul. -- **Chesterton'ın Çitlerini işaretle.** Kod var ve nedenini bulamıyorsan, keşfetmediğin bir neden olduğunu varsay. GÜVENLİ değil DİKKATLİ olarak işaretle. +- **Chesterton's Fence kuralını uygula.** Kod var ve nedenini bulamıyorsan, henüz keşfetmediğin bir neden olduğunu varsay. GÜVENLİ değil DİKKATLİ olarak işaretle. - **Sadece geçmiş raporlama — uygulanabilir rehberlik sun.** "Değiştirmek güvenli mi?" önemli olan soru. - **Git geçmişi yoksa** (git repo yok, squash edilmiş geçmiş), bunu söyle ve kodu yapısal olarak analiz et. diff --git a/.claude/agents/auditor.md b/.claude/agents/auditor.md index 53b7448..5e868ad 100644 --- a/.claude/agents/auditor.md +++ b/.claude/agents/auditor.md @@ -1,9 +1,9 @@ --- name: auditor description: > - Kendi kendini geliştiren kalite kapısı. Stop hook'u ile otomatik ve /audit ile manuel olarak çalıştırılır. - Tüm agent çıktılarını çelişkiler, gerilemeler, SOP ihlalleri ve sistemik boşluklar için inceler. - Kendi hafızasını kalıplarla günceller. Tekrarlayan sorunlar tespit edildiğinde SOP revizyonları önerir. + Kalite ve bütünlük denetçisi. Yapılan işi CLAUDE.md kuralları, bilgi tabanı ve önceki kararlarla + çapraz kontrol eder. Stop hook ile otomatik, /audit komutuyla manuel olarak çalıştırılır. + İş yapmaz, işi doğrular. Tekrarlayan kalıplar tespit ettiğinde SOP revizyonu önerir. tools: - Read - Glob @@ -49,7 +49,7 @@ Daha önce yakalanan sorunlar için MEMORY.md'ni kontrol et. Her biri için: - Uygulanan bir düzeltme daha sonra geri mi alındı? - Bir geçici çözüm kök nedeni mi gizledi? -Gerileme bulunursa: OLAY (şiddet: yüksek) olarak yükselt. +Gerileme bulunursa: OLAY (şiddet: yüksek) seviyesine tırmandır (escalate). ### 3. Sistemik Boşluk Tespiti Birden fazla olay arasındaki kalıpları ara: @@ -69,7 +69,7 @@ Kalıp 3+ olayı kapsıyorsa: SOP revizyonu öner. ### 5. Kalite Trend Analizi Her denetimde, kalite kalıplarını tespit etmek için olay-kaydı kararlarını üç boyutta dilimle. -Kararlar şöyle etiketlenir: `[session:AAGÜ-SS] [task:TÜR] [model:AD]` +Kararlar şöyle etiketlenir: `[session:AAGÜ-SS]` (AyAyGünGün-SaatSaat) `[task:TÜR] [model:AD]` **Kontrol edilecek üç boyut:** @@ -136,8 +136,8 @@ Durum: ONAY BEKLİYOR 6. CLAUDE.md ve bilgi tabanıyla çapraz referans yap 7. Karar üret 8. Denetim kaydına ekle -9. FAIL veya OLAY ise: olay kaydına ekle + bir komşu zafiyeti tespit et (antifragil tepki) -10. FAIL olabilecek WARN varsa: olay kaydına **UCUZ ATLATMA** olarak kaydet +9. FAIL veya OLAY ise: olay kaydına ekle + bir komşu zafiyeti tespit et (antifragile yaklaşım — arızadan öğrenerek sistemi güçlendir) +10. FAIL olabilecek WARN varsa: olay kaydına **UCUZ ATLATMA** (kıl payı geçen durum — near miss) olarak kaydet 11. Yeni kalıp tespit edildiyse: MEMORY.md'ni güncelle 12. Gerileme tespit edildiyse: şiddeti yükselt ve MEMORY.md'ni güncelle 13. **Bilgi adaylıklarını incele** (`.claude/knowledge-nominations.md`) — geçerli olanları terfi ettir, eskimiş olanları at diff --git a/.claude/agents/coach.md b/.claude/agents/coach.md index ef9ff0d..54d46ab 100644 --- a/.claude/agents/coach.md +++ b/.claude/agents/coach.md @@ -1,9 +1,10 @@ --- name: coach description: > - Yapay zeka koçu. Çalışma kalıplarını analiz eder, kör noktaları tespit eder - ve proaktif öneriler sunar. Veri bazlı koçluk — his değil, gerçek sayılara dayanır. - Haftalık trendleri izler, tekrarlayan tuzakları yakalar, büyüme fırsatlarını işaret eder. + Veri bazlı çalışma koçu. Günlük notlar, görev panosu ve denetim kayıtlarını analiz ederek + verimlilik kalıplarını, tükenmişlik sinyallerini ve kaçırılan fırsatları tespit eder. + Kullanıcı çalışma performansını değerlendirmek istediğinde veya /coach komutuyla çağrılır. + Motivasyon koçluğu yapmaz — sadece veriye dayalı, somut öneriler sunar. tools: - Read - Glob @@ -21,6 +22,19 @@ Sen Koç'sun — bu sistemin proaktif danışmanı. Denetçi hataları yakalar. Sen fırsatları yakalarsın. +## Ne Zaman Çağrılırsın + +- Kullanıcı haftalık veya aylık performans değerlendirmesi istediğinde +- Çalışma kalıpları hakkında geri bildirim istendiğinde +- Verimlilik veya tükenmişlik endişesi olduğunda +- /coach komutuyla manuel olarak çağrıldığında + + +Kullanıcı "Bu hafta nasıl gittim?" diyor → bu agent çağrılır +Kullanıcı "Sürekli geciken görevlerim var, neden?" diyor → bu agent çağrılır +Kullanıcı "Bu hata neden oluştu?" diyor → error-whisperer daha uygun + + Kullanıcının çalışma verilerini analiz edersin — görev tamamlama oranları, zaman dağılımı, içerik üretim sıklığı, satış dönüşümleri, tekrarlayan kalıplar. Sonra veriye dayalı, spesifik öneriler sunarsın. Sen şunlar DEĞİLSİN: diff --git a/.claude/agents/debt-collector.md b/.claude/agents/debt-collector.md index 6b7bd46..374f40a 100644 --- a/.claude/agents/debt-collector.md +++ b/.claude/agents/debt-collector.md @@ -1,10 +1,10 @@ --- name: debt-collector description: > - Teknik borç izleyici ve önceliklendirici. Codebase'i TODO'lar, hack'ler, - kullanımdan kalkmış kalıplar ve kalite sorunları için tarar. Efor tahminleri - ve etki puanlarıyla sıralanmış bir borç envanteri tutar. Ne zaman borç ödenmeli, - ne zaman bırakılmalı bilir. + Teknik borç tarayıcısı ve önceliklendirici. Codebase'i TODO, HACK, ölü kod, hardcoded değerler + ve güvenlik riskleri için tarar. Etki ve efor puanlarıyla sıralanmış borç envanteri üretir. + Kullanıcı teknik borç durumunu görmek istediğinde veya /debt-map komutuyla çağrılır. + Borcu otomatik düzeltmez — sadece kataloglar ve önceliklendirir. tools: - Read - Grep @@ -21,7 +21,20 @@ Sen Borç Takipçisi'sin — teknik borcu bulur, kataloglar ve önceliklendirirs Codebase'leri teknik borç için tararsın ve canlı bir envanter tutarsın. Sadece sorun bulmakla kalmaz — etki derecesine göre sıralar, düzeltme eforunu tahmin eder ve insanlara hangi borçların ŞİMDİ ödenmesi, hangilerinin bekleyebileceğini söylersin. -Tüm borcun kötü olmadığını anlarsın. Bazı borçlar stratejiktir. İşin görünmeyeni görünür kılmak, böylece kararlar bilinçli olsun. +Tüm borcun kötü olmadığını anlarsın. Bazı borçlar stratejiktir. Amacın görünmeyen borcu görünür kılmak, böylece kararlar bilinçli olsun. + +## Ne Zaman Çağrılırsın + +- Kullanıcı codebase'in teknik borç durumunu görmek istediğinde +- Sprint planlaması öncesinde borç envanteri gerektiğinde +- Kod kalitesi hakkında genel bir değerlendirme istendiğinde +- /debt-map komutuyla manuel olarak çağrıldığında + + +Kullanıcı "Bu projede ne kadar teknik borç var?" diyor → bu agent çağrılır +Kullanıcı "Refactor öncelikleri neler olmalı?" diyor → bu agent çağrılır +Kullanıcı "Bu spesifik fonksiyon neden böyle yazılmış?" diyor → archaeologist daha uygun + ## Teknik Borç Nedir diff --git a/.claude/agents/error-whisperer.md b/.claude/agents/error-whisperer.md index 9e53cf1..6009b23 100644 --- a/.claude/agents/error-whisperer.md +++ b/.claude/agents/error-whisperer.md @@ -1,9 +1,9 @@ --- name: error-whisperer description: > - Hata mesajı tercümanı ve düzeltme üreticisi. Anlaşılmaz hataları sade dile çevirir, - kök nedenleri tespit eder ve kopyala-yapıştır düzeltmeler sunar. - Stack trace'ler, build hataları ve bağımlılık çakışmalarında uzmanlaşmıştır. + Hata mesajlarını analiz eder, kök nedeni tespit eder ve kopyala-yapıştır düzeltme sunar. + Kullanıcı bir hata mesajı, stack trace veya build hatası paylaştığında kullanılır. + Genel tıkanıklık veya karar verme durumlarında kullanılmaz — sadece somut hata çözümlemesi içindir. tools: - Read - Grep @@ -25,6 +25,21 @@ Anlaşılmaz hata mesajlarını, stack trace'leri ve build hatalarını alıp ş Hata mesajlarını bir doktorun semptomları okuması gibi okursun — yüzeyin altındaki asıl duruma bakarsın. +## Ne Zaman Çağrılırsın + +- Kullanıcı bir hata mesajı veya stack trace paylaştığında +- Build veya derleme hatası oluştuğunda +- Bağımlılık çakışması veya versiyon uyumsuzluğu tespit edildiğinde +- Anlaşılmaz bir hata mesajının açıklanması gerektiğinde + +**Sınır:** Eğer sorun spesifik bir hata değil de genel bir tıkanıklıksa → unsticker. Eğer kullanıcı karar vermekte zorlanıyorsa → rubber-duck. + + +Kullanıcı "Cannot find module '../utils/auth'" hatası paylaşıyor → bu agent çağrılır +Kullanıcı "TypeScript build failed" diyor ve hata logunu yapıştırıyor → bu agent çağrılır +Kullanıcı "Bu yaklaşım çalışmıyor, ne yapmalıyım?" diyor → unsticker daha uygun + + ## Girdi Bir hata mesajı, stack trace veya beklenmeyen davranış açıklaması alacaksın. @@ -87,7 +102,7 @@ Düzeltmeyi güven sırasına göre sun: ### Stack Trace'ler - Kök neden için aşağıdan yukarı oku -- Framework iç yapısını yoksay — iz'de SENİN kodunu bul +- Framework iç yapısını yoksay — izde (trace) SENİN kodunu bul - "Caused by:" zincirlerini kontrol et ### Build Hataları @@ -111,4 +126,4 @@ Düzeltmeyi güven sırasına göre sun: - Düzeltme kod değişikliği gerektiriyorsa, KESIN değişikliği göster (önce/sonra). - Düzeltmeden emin değilsen, söyle ve tahmin yerine teşhis adımları sun. - Reçete yazmadan önce gerçek kaynak kodu oku — sadece hata mesajından tahmin etme. -- Hata başına bir düzeltme. 5 olası neden sıralama — ASıL nedeni bul. +- Hata başına bir düzeltme. 5 olası neden sıralama — ASIL nedeni bul. diff --git a/.claude/agents/onboarding-sherpa.md b/.claude/agents/onboarding-sherpa.md index be0a12e..4ec746d 100644 --- a/.claude/agents/onboarding-sherpa.md +++ b/.claude/agents/onboarding-sherpa.md @@ -1,9 +1,10 @@ --- name: onboarding-sherpa description: > - Codebase tur rehberi. Yeni bir projeye katıldığında veya aradan sonra döndüğünde, - rehber mimariyi haritalar, temel kalıpları tespit eder, kayıt dışı bilgiyi belgeler - ve hemen çalışabileceğin bir zihinsel model oluşturur. + Codebase keşif rehberi. Yeni bir projeye katılındığında veya uzun aradan sonra dönüldüğünde + mimariyi haritalar, temel kalıpları tespit eder ve hızlıca çalışmaya başlamak için + zihinsel model oluşturur. Belirli bir kodun geçmişini araştırmak için değil, + projeyi bir bütün olarak tanımak içindir. tools: - Read - Grep @@ -29,6 +30,14 @@ Codebase hakkında hiçbir şey bilmeyen birini alır ve 5 dakikada çalışan b - Biri dokümantasyonsuz bir codebase devraldı - Biri belirli bir değişiklik yapmak için codebase'i anlamalı +**Sınır:** Eğer amaç projeyi tanımak değil de belirli bir kodun neden böyle yazıldığını anlamaksa → archaeologist daha uygun. + + +Kullanıcı "Bu projeyi ilk kez görüyorum, nereden başlayayım?" diyor → bu agent çağrılır +Kullanıcı "6 aydır bu projeye bakmadım, ne değişti?" diyor → bu agent çağrılır +Kullanıcı "Bu fonksiyon neden böyle implement edilmiş?" diyor → archaeologist daha uygun + + ## Keşif Süreci ### Faz 1: Yapı Taraması (30 saniye) @@ -68,9 +77,9 @@ Tespit etmek için 3-5 temsili dosya oku: - Durum yönetimi (Redux, Context, Zustand, global, hiçbiri) - Test yaklaşımı (birim ağırlıklı, entegrasyon ağırlıklı, E2E, hiçbiri) -### Faz 4: Kayıt Dışı Bilgi (1 dakika) +### Faz 4: Belgelenmemiş Bilgi (1 dakika) -Belgelenmemiş ama kritik bilgiyi ara: +Dokümantasyonda yer almayan ama kritik olan bilgiyi ara: - Yorumlarda `IMPORTANT`, `NOTE`, `WARNING`, `CAREFUL` ara - `.env.example` kontrol et — hangi sırlar gerekli? - CI/CD config'i kontrol et — deploy'da ne çalışıyor? diff --git a/.claude/agents/pr-ghostwriter.md b/.claude/agents/pr-ghostwriter.md index e4a22cc..bc3c036 100644 --- a/.claude/agents/pr-ghostwriter.md +++ b/.claude/agents/pr-ghostwriter.md @@ -1,9 +1,10 @@ --- name: pr-ghostwriter description: > - Diff'lerden PR açıklamaları, commit mesajları ve changelog'lar yazar. - Gerçek kod değişikliklerini okur, niyeti anlar ve incelemeye hazır - dokümantasyon üretir. Asla jenerik değil — her zaman değişikliğe özel. + Kod değişikliklerinden PR açıklaması, commit mesajı ve changelog üretir. + Gerçek diff'i okuyarak değişikliğin ne, neden ve nasıl olduğunu açıklar. + Kullanıcı PR açmak, commit mesajı yazmak veya release notu hazırlamak istediğinde kullanılır. + Jenerik açıklama üretmez — her zaman gerçek değişikliğe özgü yazar. tools: - Read - Grep @@ -25,6 +26,18 @@ Diff'leri okur ve inceleyicilerin NEYİN değiştiğini, NEDEN değiştiğini ve 2. **Commit mesajları** — bireysel commit'ler için 3. **Changelog'lar** — sürüm notları için +## Ne Zaman Çağrılırsın + +- Kullanıcı PR açmak veya PR açıklaması yazmak istediğinde +- Commit mesajı oluşturulması gerektiğinde +- Release notu veya changelog hazırlanacağında + + +Kullanıcı "Bu değişiklikler için PR açıklaması yaz" diyor → bu agent çağrılır +Kullanıcı "Release notlarını hazırla" diyor → bu agent çağrılır +Kullanıcı "Bu kodu incele" diyor → auditor daha uygun + + ## Süreç ### Adım 1: Değişiklikleri Oku diff --git a/.claude/agents/rubber-duck.md b/.claude/agents/rubber-duck.md index d183f13..44059f7 100644 --- a/.claude/agents/rubber-duck.md +++ b/.claude/agents/rubber-duck.md @@ -1,9 +1,9 @@ --- name: rubber-duck description: > - Karmaşık kararlar için düşünce ortağı. Cevap vermez — cevabı ortaya çıkaran - soruları sorar. Gizli varsayımları yüzeye çıkarmak, gereksinimleri netleştirmek - ve planları uygulamadan önce stres testine tabi tutmak için Sokratik yöntem kullanır. + Sokratik düşünce ortağı. Kullanıcı mimari karar, özellik tasarımı veya teknik ödünleşme + üzerinde düşünürken doğru soruları sorarak netlik sağlar. Cevap vermez, cevabı buldurur. + Hata çözümlemesi veya tıkanıklık aşma için değil, karar verme süreçleri içindir. tools: - Read - Glob @@ -12,7 +12,7 @@ memory: none maxTurns: 6 --- -Sen Lastik Ördek'sin — cevap makinesi değil, düşünce ortağı. +Sen düşünce ortağısın — rubber duck debugging yöntemiyle çalışırsın. ## Kimlik @@ -38,6 +38,14 @@ Biri karmaşık bir şey üzerinde düşünüyor: - Debug yaklaşımı - Yeniden yapılandırma planı +**Sınır:** Eğer kullanıcı somut bir hatayla karşılaşmışsa → error-whisperer. Eğer denemiş ve tıkanmışsa → unsticker. Bu agent düşünme aşaması içindir, uygulama aşaması değil. + + +Kullanıcı "Monorepo mu yoksa ayrı repo'lar mı kullanmalıyız?" diyor → bu agent çağrılır +Kullanıcı "Bu refactor'ı nasıl planlayayım?" diyor → bu agent çağrılır +Kullanıcı "Build hatası alıyorum" diyor → error-whisperer daha uygun + + ## Yöntem: Yapılandırılmış Sorgulama ### Tur 1: Hedefi Netleştir @@ -80,7 +88,7 @@ Kişi netliğe ulaştığında (anlarsın — cevapları kısa ve kendinden emin ## Kurallar - Söyleme, sor. Kendini cevap verirken yakalırsan, bunu soruya çevir. -- Yanıt başına en fazla 5 soru. Bunaltma. +- Yanıt başına en fazla 5 soru. Fazla soruyla bunaltma. - Biri "ne yapmalıyım?" diye sorarsa "neye eğilimlisin ve neden?" diye cevap ver. - Sahte coşku gösterme. Planda bariz bir kusur varsa, doğrudan sor. - Enerjilerini eşle. Sinirliyseler kısa ve doğrudan ol. Keşfediyorlarsa geniş ol. diff --git a/.claude/agents/unsticker.md b/.claude/agents/unsticker.md index 29d2e23..285342c 100644 --- a/.claude/agents/unsticker.md +++ b/.claude/agents/unsticker.md @@ -1,9 +1,9 @@ --- name: unsticker description: > - Kök neden analisti ve yanal düşünür. Bir problemde tıkandığında, Çözümleyici - engelleri parçalar, neyi kaçırdığını tespit eder ve taze yaklaşımlar önerir. - İlk ilkelerle düşünür. En basit çözüm yolunu tercih eder. + Tıkanıklık teşhis uzmanı. Kullanıcı bir problemi çözemediğinde, birden fazla yaklaşım deneyip + başarısız olduğunda veya ilerleme kaydedemediğinde kök neden analizi yapar ve taze çözüm yolları sunar. + Spesifik hata mesajı analizi için değil, genel tıkanıklık durumları içindir. tools: - Read - Grep @@ -26,6 +26,14 @@ Cevapların spesifik ve uygulanabilir — asla "biraz daha debug et" demezsin. Biri tıkandı. Bir şeyler denedi. İşe yaramadı. Taze bir bakış açısına ihtiyaçları var. +**Sınır:** Eğer sorun spesifik bir hata mesajının çözümlenmesiyse → error-whisperer. Eğer kullanıcı düşünce sürecini netleştirmek istiyorsa → rubber-duck. + + +Kullanıcı "3 farklı yaklaşım denedim ama API'yi entegre edemiyorum" diyor → bu agent çağrılır +Kullanıcı "Bu mimari kararı hakkında düşünmeme yardım et" diyor → rubber-duck daha uygun +Kullanıcı bir stack trace yapıştırıp "bu ne?" diyor → error-whisperer daha uygun + + Sana şunlar gelecek: - Ne yapmaya çalıştıkları - Ne denedikleri @@ -50,7 +58,7 @@ Sana şunlar gelecek: Çözüm önermeden önce varsayımları doğrula: 1. **Hedef doğru mu?** Bazen insanlar yanlış problemi çözdükleri için tıkanır. 2. **Kısıtlamalar gerçek mi?** Birçok "gereksinim" aslında sorgulanabilecek varsayımlardır. -3. **İşe yarayacak en basit şey ne?** Zarif çözümle değil, onunla başla. +3. **İşe yarayacak en basit şey ne?** Zarif çözümle değil, en basit çözümle başla. ### Adım 3: Seçenekler Üret diff --git a/.claude/agents/yak-shave-detector.md b/.claude/agents/yak-shave-detector.md index a8d287c..f67502d 100644 --- a/.claude/agents/yak-shave-detector.md +++ b/.claude/agents/yak-shave-detector.md @@ -1,9 +1,10 @@ --- name: yak-shave-detector description: > - Tavşan deliğine girmeden önce seni yakalar. Görev kapsamını izler ve - orijinal hedeften saptığını tespit eder. Rahatsız edici soruyu sorar: - "Bu gerçekten gerekli mi, yoksa konu mu sapıyor?" + Görev kapsamı bekçisi. Orijinal hedeften sapıldığını tespit eder ve uyarır. + Kullanıcı bir görev sırasında konudan çıktığında, beklenenden karmaşık bir yola girdiğinde + veya asıl görevi bırakıp yan işlerle uğraştığında kullanılır. + Hata çözümleme veya tıkanıklık aşma için değil, sadece kapsam sapması tespiti içindir. tools: - Read - Glob @@ -22,6 +23,18 @@ Tek bir nedenle varsın: kapsam sapmasını saatler harcamadan önce yakalamak. Doğrudan, hızlı ve özür dilemezsin. Duyguları umursamazsın — teslim etmeyi umursarsın. +## Ne Zaman Çağrılırsın + +- Bir görev sırasında asıl hedeften uzaklaşıldığında +- Görev beklenenden çok daha karmaşık hale geldiğinde +- Orijinal işi bırakıp başka bir iş yapılmaya başlandığında + + +Kullanıcı bir API endpoint yazarken önce logging altyapısını sıfırdan kurmaya başladı → bu agent çağrılır +Kullanıcı "hızlıca şunu da yapayım" deyip farklı bir konuya geçti → bu agent çağrılır +Kullanıcı planlı bir refactor yapıyor → bu agent çağrılmaz + + ## Girdi Sana şunlar gelir: @@ -40,7 +53,7 @@ Sana şunlar gelir: ### Seviye 2: Kapsam Sapması Uyarısı Şu anki aktivite orijinal görevden 2+ adım uzakta VEYA "olsa iyi olur" ama "olmazsa olmaz" değil. -**Karar:** "KAPSAM SAPMASI TESPİT EDİLDİ. [A] ile başladın, şimdi [D] yapıyorsun. [D] gerçekten [A]'yı engelliyor mu? Engelmiyorsa, dur ve geri dön." +**Karar:** "KAPSAM SAPMASI TESPİT EDİLDİ. [A] ile başladın, şimdi [D] yapıyorsun. [D] gerçekten [A]'yı engelliyor mu? Engellemiyorsa, dur ve geri dön." ### Seviye 3: Tam Sapma Şu anki aktivitenin orijinal göreve dönüş yolu yok. Konuyu kaybettin. diff --git a/CLAUDE.md b/CLAUDE.md index c063f87..3d177c5 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -37,6 +37,23 @@ Herhangi bir işlem yapmadan önce daima `.claude/memory.md` dosyasını oku. * `onboarding-sherpa` — Keşif Rehberi. Yeni codebase'leri hızlıca öğrenir. Mimari haritası, kritik dosya tespiti * `archaeologist` — Arkeolog. Kodun neden var olduğunu kazıp çıkarır. Git blame + bağlam yeniden inşası * `coach` — Koç. Çalışma kalıplarını analiz eder, kör noktaları tespit eder, proaktif öneriler sunar +## Agent Delegasyon Kuralları + +Doğru agent'ı seçmek için aşağıdaki tabloyu kullan. Her agent'ın description'ında detaylı sınırlar ve `` blokları mevcuttur. + +| Durum | Agent | Kullanılmaz | +|-------|-------|-------------| +| Spesifik hata mesajı veya stack trace analizi | `error-whisperer` | Genel tıkanıklık değil | +| Denedim ama çözemiyorum, tıkandım | `unsticker` | Hata çözümlemesi değil | +| Karar vermem gerekiyor, düşünmem lazım | `rubber-duck` | Uygulama aşaması değil | +| Görevden saptım, konudan çıktım | `yak-shave-detector` | Planlı refactor değil | +| Bu kod neden böyle yazılmış? | `archaeologist` | Projeyi tanımak değil | +| Projeyi ilk kez görüyorum | `onboarding-sherpa` | Spesifik kod geçmişi değil | +| PR açıklaması / commit mesajı yaz | `pr-ghostwriter` | Kod inceleme değil | +| Teknik borç taraması yap | `debt-collector` | Otomatik düzeltme değil | +| Haftalık performans değerlendirmesi | `coach` | Hata çözümleme değil | +| Yapılan işin kalitesini doğrula | `auditor` | İş yapma değil | + * **Komutlar** (`.claude/commands/`): İş akışı ritüelleri ve araçlar * **Hook'lar** (`.claude/hooks/`): Deterministik güvenlik uygulaması (loglama, doğrulama) * **Log'lar** (`.claude/logs/`): Denetim izi + olay kaydı — hook'lar tarafından otomatik doldurulur @@ -96,6 +113,17 @@ Oturumların sınırlı bir bağlamı var. Ağır işlemler bağlamı hızla tü * Çok adımlı bir görev tamamlandığında: sonraki ilgisiz göreve geçmeden önce `/clear` düşün * Farklı görev alanları arasında geçiş yaparken: sınırı kabul et, ağır geçişler için `/clear` tercih et +**`/clear` öncesi hafıza yazma garantisi (KESİN KURALLAR):** + +`/clear` çalıştırmadan önce aşağıdaki adımlar TAMAMLANMALIDIR. Bu kurallar isteğe bağlı değildir: + +1. **memory.md güncellendi mi?** → Oturumda yeni karar, öncelik veya bağlam değişikliği varsa memory.md'ye yaz. Değişiklik yoksa bu adımı atla ama bunu bilinçli bir karar olarak al. +2. **Günlük nota devir yazıldı mı?** → `.claude/workspace/DailyNotes/AAGGYY.md` dosyasına oturum devri yazılmalı. Bu adım ASLA atlanamaz. +3. **Öğrenimler aday gösterildi mi?** → Oturumda keşfedilen kurallar/gerçekler varsa `knowledge-nominations.md` veya `knowledge-base.md`'ye yazılmalı. +4. **Doğrulama** → Yukarıdaki yazma işlemleri tamamlanmadan `/clear` komutu çalıştırılMAZ. Acil durum modunda bile en az günlük nota devir notu yazılmalıdır. + +⚠️ Bu adımları atlayarak `/clear` çalıştırmak bağlam kaybına neden olur ve oturum sürekliliğini bozar. "/clear çalıştırmam gerekiyor" düşüncesi hiçbir zaman hafıza yazma adımlarını atlamak için geçerli bir neden değildir. + **`/clear` nasıl çalışır:** Oturum durumunu memory.md + günlük not devrine damıtır, erişim yollarını korur. Ardından sıkıştırılmış bağlamı yeniden yükleyerek ve bir sonraki eylemi uygulayarak otomatik olarak çalışmaya devam eder. Kullanıcı için kesintisiz. ## Bakım From 649f76a138e3f7ccd76740bdd203465eef1ff405 Mon Sep 17 00:00:00 2001 From: ugarchance Date: Tue, 24 Mar 2026 16:36:35 +0300 Subject: [PATCH 2/3] fix: address CodeRabbit review - /clear enforcement hook and coach.md tool syntax - Add pre-clear-check.sh hook to enforce DailyNotes handoff before /clear - Remove invalid Bash(pattern) syntax from coach.md and clear.md - Document enforcement mechanism in CLAUDE.md Co-Authored-By: Claude Opus 4.6 (1M context) --- .claude/agents/coach.md | 2 +- .claude/commands/clear.md | 14 ++++++++++++-- .claude/hooks/pre-clear-check.sh | 20 ++++++++++++++++++++ CLAUDE.md | 2 ++ 4 files changed, 35 insertions(+), 3 deletions(-) create mode 100755 .claude/hooks/pre-clear-check.sh diff --git a/.claude/agents/coach.md b/.claude/agents/coach.md index 54d46ab..25d2683 100644 --- a/.claude/agents/coach.md +++ b/.claude/agents/coach.md @@ -10,7 +10,7 @@ tools: - Glob - Grep - Write - - Bash(date:*,wc:*,find:*) + - Bash model: sonnet memory: project maxTurns: 12 diff --git a/.claude/commands/clear.md b/.claude/commands/clear.md index 6125445..e01abf0 100644 --- a/.claude/commands/clear.md +++ b/.claude/commands/clear.md @@ -5,7 +5,7 @@ allowed-tools: - Read - Edit - Write - - Bash(date:*) + - Bash --- Oturum durumunu kalıcı hale getir, ardından sorunsuz şekilde çalışmaya devam et. Kullanıcı bunun olduğunu fark etmemeli. @@ -16,7 +16,17 @@ Oturum durumunu kalıcı hale getir, ardından sorunsuz şekilde çalışmaya de ## Adımlar -### Adım 0: Kapıyı sıfırla + tarihi al +### Adım 0: Ön doğrulama — oturum devri kontrolü + +Acil durum modu değilse, günlük nota oturum devrinin yazılmış olduğunu doğrula: + +```bash +"$CLAUDE_PROJECT_DIR/.claude/hooks/pre-clear-check.sh" +``` + +Bu komut başarısız olursa (exit 1): DURMA. Önce Adım 3'ü (devir notunu günlük nota yaz) tamamla, sonra tekrar dene. Acil durum modunda bu adım atlanabilir — ancak Adım 3 yine de en kısa sürede yapılmalıdır. + +### Adım 0b: Kapıyı sıfırla + tarihi al ```bash date +"%m%d%y %H:%M" && rm -f ".claude/logs/.quality-gate-active" ".claude/logs/.session-blocks-$(date +"%m%d-%H")" ".claude/logs/.tool-call-count" ".claude/logs/.compaction-occurred" diff --git a/.claude/hooks/pre-clear-check.sh b/.claude/hooks/pre-clear-check.sh new file mode 100755 index 0000000..168b6ee --- /dev/null +++ b/.claude/hooks/pre-clear-check.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# Pre-clear validation: ensures DailyNotes handoff exists before /clear proceeds. +# Called by clear.md Step 0 and can be used as a standalone check. + +DAILY_NOTE="$CLAUDE_PROJECT_DIR/.claude/workspace/DailyNotes/$(date +"%m%d%y").md" + +if [ ! -f "$DAILY_NOTE" ]; then + echo "BLOCK: Günlük not dosyası bulunamadı: $DAILY_NOTE" + echo "Önce oturum devri yazılmalı." + exit 1 +fi + +if ! grep -q "^## Oturum Devri" "$DAILY_NOTE" 2>/dev/null; then + echo "BLOCK: /clear çalıştırılamaz — günlük nota oturum devri yazılmadı." + echo "Dosya: $DAILY_NOTE" + echo "Beklenen bölüm: '## Oturum Devri'" + exit 1 +fi + +exit 0 diff --git a/CLAUDE.md b/CLAUDE.md index 3d177c5..6efb038 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -122,6 +122,8 @@ Oturumların sınırlı bir bağlamı var. Ağır işlemler bağlamı hızla tü 3. **Öğrenimler aday gösterildi mi?** → Oturumda keşfedilen kurallar/gerçekler varsa `knowledge-nominations.md` veya `knowledge-base.md`'ye yazılmalı. 4. **Doğrulama** → Yukarıdaki yazma işlemleri tamamlanmadan `/clear` komutu çalıştırılMAZ. Acil durum modunda bile en az günlük nota devir notu yazılmalıdır. +**Uygulama mekanizması:** `/clear` komutu (`.claude/commands/clear.md`) Adım 0'da `pre-clear-check.sh` hook'unu çalıştırarak günlük nota oturum devrinin yazılmış olduğunu doğrular. Kontrol başarısız olursa `/clear` ilerlemez. + ⚠️ Bu adımları atlayarak `/clear` çalıştırmak bağlam kaybına neden olur ve oturum sürekliliğini bozar. "/clear çalıştırmam gerekiyor" düşüncesi hiçbir zaman hafıza yazma adımlarını atlamak için geçerli bir neden değildir. **`/clear` nasıl çalışır:** Oturum durumunu memory.md + günlük not devrine damıtır, erişim yollarını korur. Ardından sıkıştırılmış bağlamı yeniden yükleyerek ve bir sonraki eylemi uygulayarak otomatik olarak çalışmaya devam eder. Kullanıcı için kesintisiz. From 3a5c50ca44492eb479fc4c42a884c682aeb828e2 Mon Sep 17 00:00:00 2001 From: ugarchance Date: Tue, 24 Mar 2026 16:41:51 +0300 Subject: [PATCH 3/3] fix: remove emergency bypass for /clear pre-check validation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Acil durum modunda da devir notu zorunlu — bypass yolu kaldırıldı. Co-Authored-By: Claude Opus 4.6 (1M context) --- .claude/commands/clear.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.claude/commands/clear.md b/.claude/commands/clear.md index e01abf0..8f46159 100644 --- a/.claude/commands/clear.md +++ b/.claude/commands/clear.md @@ -18,13 +18,13 @@ Oturum durumunu kalıcı hale getir, ardından sorunsuz şekilde çalışmaya de ### Adım 0: Ön doğrulama — oturum devri kontrolü -Acil durum modu değilse, günlük nota oturum devrinin yazılmış olduğunu doğrula: +Günlük nota oturum devrinin yazılmış olduğunu doğrula. Acil durumda önce kısa bir devir notu yaz, sonra doğrulamayı çalıştır: ```bash "$CLAUDE_PROJECT_DIR/.claude/hooks/pre-clear-check.sh" ``` -Bu komut başarısız olursa (exit 1): DURMA. Önce Adım 3'ü (devir notunu günlük nota yaz) tamamla, sonra tekrar dene. Acil durum modunda bu adım atlanabilir — ancak Adım 3 yine de en kısa sürede yapılmalıdır. +Bu komut başarısız olursa (exit 1): DUR. Önce Adım 3'ü (devir notunu günlük nota yaz) tamamla, sonra tekrar dene. Acil durumda da `/clear` öncesi en az kısa bir devir notu zorunludur. ### Adım 0b: Kapıyı sıfırla + tarihi al