Claude Code Bilmediği Konularda Uydurmayı Nasıl Bırakır? (Tam Kurulum Rehberi)

@0x_rody
İNGILIZCE1 ay önce · 06 Haz 2026
346K
256
29
8
1.2K

TL;DR

Bu rehber, katı dürüstlük kuralları, doğrulama protokolleri ve otomatik linter kancaları uygulayarak Claude Code'un fonksiyon veya test uydurmasını önlemek için kapsamlı bir 4 katmanlı çerçeve sunar.

Claude Code her gün yüzünüze karşı yalan söylüyor. Uydurma fonksiyonlar, sahte import'lar, hiçbir şey çalışmadığı halde "testler geçti" mesajları. Çözüm ise yalan söylemeyi pahalı hale getiren 4 katmanlı bir kurulum.

Claude size hatanın düzeltildiğini söyler. İki saat sonra çağırdığı fonksiyonun hiç var olmadığını öğrenirsiniz.

Çoğu geliştirici her şeyi iki kez kontrol etmeyi ve modeli suçlamayı öğrenir. Gerçek çözüm ise her yalanı makinenizden çıkmadan yakalamaktır.

İşte tam dürüstlük kurulumu 👇

rody - inline image

Claude neden ilk etapta bir şeyler uydurur?

Claude bir metin tahmincisidir. Bir şey bilmediğinde, doğru görünen metin tahmin eder. Uydurma fonksiyon isimleri gerçek olanlara benzer. Kendinden emin bir şekilde sunulan saçmalık, kendinden emin bir şekilde sunulan gerçekle aynı okunur.

Kodunuz iki saat sonra, bir saati daha hata ayıklamakla geçeceğiniz bir şekilde bozulana kadar aradaki farkı anlayamazsınız.

Çözüm daha akıllı bir model değil. Claude'un çıktısını gerçek zamanlı olarak kontrol edilebilir kılmak ve "bilmiyorum" demeyi tahmin yürütmekten daha ucuz hale getirmektir.

Aşağıda 4 katman var. Birlikte uydurmayı neredeyse sıfıra indirirler.

rody - inline image

Katman 1: CLAUDE.md dürüstlük kuralları

İlk katman, CLAUDE.md dosyasındaki, Claude'a belirsizliği tam olarak ne zaman ve nasıl kabul edeceğini söyleyen bir dizi kuraldır. Bunu projenizin kök dizinine ekleyin:

markdown
1## Dürüstlük kuralları (her döngüde oku)
2
3Bir fonksiyonun, sınıfın veya import'un var olduğunu iddia etmeden önce,
4dosyayı okuyarak veya grep çalıştırarak doğrulayın. Asla sembol uydurmayın.
5
6Bir şeyi doğrulayamıyorsanız, açıkça "Bunu doğrulamadım" deyin.
7Doğrulanmamış iddiaya bağlı kod yazmayın.
8
9Bir görev, bu projede daha önce hiç kullanıldığını görmediğiniz bir
10kütüphaneyi kullanmanızı istiyorsa, eklemeden önce sorun.
11
12Bir görev testleri veya derlemeleri içeriyorsa, bu oturumda testi veya
13derleme komutunu fiilen çalıştırmadıysanız başarılı olduğunu iddia etmeyin.
14
15Asla hata mesajları, API yanıtları veya stack trace'ler icat etmeyin.
16Bunları görmediyseniz, öyle söyleyin.
17
18Gerçekten bilmediğinizde, doğru cevap "Bilmiyorum" veya
19"Önce kontrol etmeliyim"dir. Her ikisi de kendinden emin bir tahminden daha iyidir.

Bu kurallar bariz görünüyor.

Değiller, çünkü varsayılan olarak Claude yardımcı görünecek şekilde optimize edilmiştir ve "bilmiyorum" demek, ona açıkça izin vermediğiniz sürece yardımcı olmayan bir şey gibi gelir.

Son satır en önemlisidir. "Bilmiyorum" lisansıdır ve çoğu insan bunu asla vermez.

Katman 2: Yazmadan önce doğrulama deseni

İkinci katman, Claude'u yazmadan önce doğrulamaya zorlar. Bunu CLAUDE.md dosyasına dürüstlük kurallarının altına ekleyin:

markdown
1## Doğrulama protokolü
2
3Bir sembolü (fonksiyon, sınıf, tür, sabit) kullanan kod yazmadan veya
4düzenlemeden önce, aşağıdakilerden birini yapın:
5
61. Sembolün tanımlandığı dosyayı okuyun ve imzayı onaylayın
72. `grep -r "sembolAdı" .` komutunu veya Glob aracını kullanarak bulun
83. Bağımlılık için package.json, requirements.txt, Cargo.toml veya
9 benzerini kontrol edin
10
11Doğrulamayı atlarsanız, kodun başına bir yorum ekleyin:
12`// DOĞRULANMADI: Bu sembolün var olduğunu onaylamadım`
13
14Birden fazla dosyayı ilgilendiren herhangi bir görev için planla-sonra-uygula
15modu tercih edilir. Başlamadan önce plan moduna girmek için Shift+Tab kullanın.

Bu, Claude'a oturum başına birkaç ekstra araç çağrısına mal olur. Sahte fonksiyon çağrılarında hata ayıklamak için harcayacağınız saatlerden tasarruf etmenizi sağlar.

Katman 3: Yalanları gerçek zamanlı yakalayan hook'lar

Üçüncü katman, settings.json dosyasındaki, Claude her dosya yazdığında bir tür denetleyicisi veya linter çalıştıran hook'lardır. Claude bir import uydurduysa, denetleyici anında başarısız olur ve Claude, görevin tamamlandığını iddia etmeden önce hatayı düzeltmek zorunda kalır.

json
1{
2 "hooks": {
3 "PostToolUse": [
4 {
5 "matcher": "Write(*.ts|*.tsx)|Edit(*.ts|*.tsx)",
6 "hooks": [
7 { "type": "command", "command": "npx tsc --noEmit --pretty false 2>&1 | head -20" }
8 ]
9 },
10 {
11 "matcher": "Write(*.py)|Edit(*.py)",
12 "hooks": [
13 { "type": "command", "command": "ruff check --quiet $file && pyright $file 2>&1 | head -20" }
14 ]
15 },
16 {
17 "matcher": "Write(*.rs)|Edit(*.rs)",
18 "hooks": [
19 { "type": "command", "command": "cargo check --message-format=short 2>&1 | head -20" }
20 ]
21 }
22 ]
23 }
24}

Hook çıktısı, bağlam olarak Claude'a geri gider. tsc "Cannot find module 'foo'" derse, Claude bunu hemen görür ve uydurulmuş import'u düzeltir. Hiçbir uydurulmuş kod bir PostToolUse denetiminden sağ çıkamaz.

Testleri içeren görevler için, Claude oturumun bittiğini ilan edemeden önce test paketini çalıştıran bir Stop hook'u ekleyin:

json
1"Stop": [
2 {
3 "hooks": [
4 { "type": "command", "command": "npm test 2>&1 | tail -30" }
5 ]
6 }
7]

Artık Claude, testleri fiilen çalıştırmadan "bitti, testler geçti" diyemez. Hook onları çalıştırır.

Sonuç Claude'a geri gider. Başarısız olurlarsa, Claude onları düzeltmek veya geçmediklerini kabul etmek zorundadır.

Katman 4: Gerçek denetleyici alt-ajan

Dördüncü katman, tek işi Claude'un iddialarını göndermeden önce incelemek olan bir alt-ajandır.

Bunu .claude/agents/fact-checker.md dosyasına ekleyin:

yaml
1---
2name: fact-checker
3description: Bu ajanı, Claude kodun ne yaptığı, hangi testlerin geçtiği veya bir kütüphanenin neyi desteklediği hakkında iddialarda bulunduktan sonra kullanın. Her commit'ten önce, her kullanıcıya yönelik özetten önce ve yeni bağımlılıklar içeren her görevden sonra çağırın.
4tools: Read, Grep, Glob, Bash
5model: sonnet
6---
7
8İddiaları doğrularsınız, kod yazmazsınız.
9
10Çağrıldığında şunları yapın:
11
121. Son konuşmadaki her olgusal iddiayı belirleyin. Örnekler:
13 "X fonksiyonu Y'yi yapar", "testler geçti", "Z kütüphanesi W'yi destekler",
14 "bu import doğru".
15
162. Her iddiayı bağımsız olarak doğrulayın:
17 - Kod iddiaları: gerçek dosyayı okuyun ve onaylayın
18 - Test iddiaları: testleri kendiniz çalıştırın
19 - Kütüphane iddiaları: gerçek paketi veya belgelerini kontrol edin
20 - Import iddiaları: paketin bağımlılık manifestosunda olduğunu onaylayın
21
223. Bir rapor hazırlayın:
23 - DOĞRULANDI: iddia, kanıt (dosya:satır veya komut çıktısı)
24 - YANLIŞ: iddia, gerçekte ne doğru
25 - DOĞRULANAMAZ: iddia, neden kontrol edemediğiniz
26
27"Bana güven" iddialarını asla kabul etmeyin. Kendi iddialarınızda bulunmayın. Eğer
28doğrulayamıyorsanız, doğru çıktı DOĞRULANAMAZ'dır.

Bu ajanı commit'lerden önce veya sonuçları ekibinizle paylaşmadan önce çağırın. Diğer 3 katmanın gözden kaçırdığı yalanları yakalar.

rody - inline image

"Bilmiyorum" lisansı

Claude yardımcı olacak şekilde eğitildi ve cehaleti kabul etmek yardımcı olmayan bir şey gibi gelir. Bu yüzden tahmin eder ve tahmin doğru görünür.

Çözüm, bilmeme izni vermektir. CLAUDE.md bunun yarısıdır. Sizin tepkiniz diğer yarısıdır. "Bunu doğrulamadım"ı sabırla ödüllendirin ve her oturumda dürüst bir Claude elde edin. Bunu hayal kırıklığıyla cezalandırın ve Claude tahmin etmeye geri döner.

Bir yapılandırma değil, bir alışkanlık. Yığındaki en hafife alınan düzeltme.

Gerçekten çalıştığını nasıl anlarsınız?

Günlük oturumlarınızda üç işaret.

Claude, bağımlılık eklemeden önce sorar. Sessiz bir npm install yerine "X'i eklemeli miyim yoksa stdlib'i mi kullanmalıyım?" der.

Claude, mevcut koddan bahsederken dosya:satır referansı verir. "validateToken fonksiyonu Y'yi yapar" yerine "src/auth/middleware.ts:47 dosyasındaki validateToken Y'yi yapar" der.

tsc ve linter'ınız bağırmayı bırakır. Hook'lar nadir görülen uydurmaları anında yakalar ve Claude kendini düzeltir, böylece siz baktığınızda yalanlar gitmiş olur.

Bir iki gün sonra bunları görmüyor musunuz? Bir katman yüklenmemiştir. Genellikle CLAUDE.md, yanlış konum veya yanlış isim.

rody - inline image

Claude'u yalan söylemeye devam ettiren yaygın hatalar

CLAUDE.md çok uzun. Claude ilk kısmı okur ve geri kalanını gözden geçirir. Dürüstlük kuralları ilk 50 satırda olmalıdır.

Hook'lar sessizce günlük kaydeder. Çıktı stdout'a ulaşmazsa, Claude yalan söylediğini bilmez. Hook çıktısının oturuma geri döndüğünden emin olun.

Plan modunu atlarsınız. Claude'un yazmadan önce yanlış varsayımları ortaya çıkardığı yer burasıdır. Atlayın ve yalanları yakalamak için en ucuz anı kaçırın.

Gerçek denetleyiciyi çağırmazsınız. Bir alt-ajan, yalnızca onu fiilen çağırırsanız çalışır. @fact-checker'ı commit akışınızın bir parçası haline getirin.

"Bilmiyorum"a kötü tepki verirsiniz. Dürüstlüğü bir kez cezalandırın ve Claude tahmin etmeye geri döner. Bu olmadan diğer 3 katman işe yaramaz.

rody - inline image

5 dakikalık dürüstlük denetimi

1 dakika: CLAUDE.md dürüstlük kurallarını ve doğrulama protokolünü projenizin kök dizinine kopyalayın.

1 dakika: hook'lar bloğunu ~/.claude/settings.json veya .claude/settings.json dosyasına kopyalayın.

2 dakika: Yukarıdaki şablonla .claude/agents/fact-checker.md dosyasını oluşturun.

1 dakika: Normalde iki kez kontrol edeceğiniz bir görevi çalıştırın. tsc çıktısının Claude'a geri geldiğini izleyin. Claude'un açıkça "doğrulandı" veya "bunu doğrulamadım" dediğini onaylayın.

Bitti. Uydurma, "her iki oturumda bir"den "nadir ve hemen yakalanan"a düşer. Model daha akıllı olmadı. Sizin kurulumunuz oldu.

Okuduğunuz için teşekkürler!

rody - inline image
Tek tıkla kaydet

YouMind ile viral makaleleri AI derin okumayla incele

Kaynağı kaydedin, odaklı sorular sorun, argümanı özetleyin ve viral bir makaleyi tek bir AI çalışma alanında yeniden kullanılabilir notlara dönüştürün.

YouMind'ı keşfet
Üreticiler için

Markdown'ınızı temiz bir 𝕏 makalesine dönüştürün

Kendi uzun yazılarınızı yayımlarken görselleri, tabloları ve kod bloklarını 𝕏 için biçimlendirmek zahmetlidir. YouMind, eksiksiz bir Markdown taslağını temiz ve hemen paylaşılabilir bir 𝕏 makalesine dönüştürür.

Markdown'dan 𝕏'e deneyin

Çözülecek daha fazla kalıp

Son viral makaleler

Daha fazla viral makale keşfet