Claude Code ile dokümantasyon sapmasını tespit etmeyi öğrenin: README'ler, API dokümanları ve runbook'ları koda uyumlu tutmak için diff'ler oluşturun ve çelişkileri işaretleyin.

\nCheck these docs for drift: README.md, docs/api.md, runbooks/deploy.md.\nCompare them to the current repo.\nOutput:\n1) Contradictions list (doc claim -\u003e repo evidence with file path and line range)\n2) Unified diffs for the smallest safe edits\nRules: do not rewrite sections that are still accurate.\n\n\nClaude "API v2 kullanıyor" diyorsa, bunu router, OpenAPI şeması veya bir entegrasyon testi ile desteklemesini isteyin. Eğer kanıt bulamazsa, bunu söylemeli.\n\n### Düzenlemeden önce kapsamı belirleyin\n\nSapma genellikle tek bir kod değişikliğiyle başlar ve bu sessizce birden çok dokümanı etkiler. Önce Claude'a etki alanını belirlemesini isteyin: ne değişti, nerede değişti, hangi dokümanları muhtemelen bozdu ve hangi kullanıcı eylemleri etkilendi.\n\nÖrnek: bir ortam değişkeni API_KEY'den SERVICE_TOKEN'a yeniden adlandırılır. Faydalı bir rapor, eski adın geçtiği her yeri bulur (README kurulum, API örnekleri, runbook secret bölümü) ve sadece o satırları ve şimdi başarısız olacak örnek komutları güncelleyen sıkı bir diff üretir.\n\n## Prompt atmadan önce basit bir iş akışı kurun\n\nModele "tüm dokümanları" kurallar olmadan gösterirseniz, genellikle yanlış gerçekleri içeren yeniden yazılmış metinler alırsınız. Basit bir iş akışı değişiklikleri küçük, tekrarlanabilir ve gözden geçirilebilir tutar.\n\nBir doküman setiyle başlayın: README, API referansı veya gerçekten kullanılan bir runbook. Bir alanı baştan sona düzeltmek, kullanacağınız güvenilir sinyallerin ne olduğunu öğretir ve sonra ölçeklendirmeyi kolaylaştırır.\n\n### Gerçek kaynak olarak sayılacakları kararlaştırın\n\nO doküman seti için gerçeklerin nereden gelmesi gerektiğini düz yazıyla belirtin.\n\n- README için: CLI yardım çıktısı ve çalışan bir örnek uygulama.\n- API dokümanları için: router tanımları ve entegrasyon testleri.\n- Runbook'lar için: dağıtım konfigürasyonu ve prosedürü tetikleyen alarmlar.\n\nKaynakları adlandırdıktan sonra prompt'lar daha net olur: "README'yi mevcut CLI çıktısı ve konfigürasyon varsayılanlarıyla karşılaştır, sonra bir yama oluştur."\n\n### İnceleyicilerin hızlıca doğrulayabileceği bir çıktı seçin\n\nİlk kontrolü çalıştırmadan önce çıktı formatında anlaşın. Karışık formatlar neyin değiştiğini ve nedenini görmekte zorlaştırır.\n\nBasit bir kural seti:\n\n- Her doküman değişikliği için bir diff ve bir cümlelik neden isteyin.\n- Araç güvenle öneremediğinde kısa bir çelişki listesine izin verin.\n- Mümkünse diffları dosya başına bir değişiklikle sınırlandırın.\n- Başarısız örnekleri (komutlar, istekler, kod parçacıkları) genel ifadelerden daha yüksek öncelik verin.\n\nPratik bir alışkanlık: her doküman PR'sine küçük bir not ekleyin: "Source of truth checked: routes + tests" böylece inceleyenler hangi karşılaştırmanın yapıldığını bilir. Bu, doküman güncellemelerini "tamam gibi" yerine "gerçek bir şeye karşı doğrulandı" haline getirir.\n\n## Adım adım: her değişiklikte dokümanları kodla uyumlu tutun\n\nHer kod değişikliğini küçük bir doküman soruşturması gibi ele alın. Amaç çelişkileri erken yakalamak ve inceleyicilerin güvenebileceği minimal bir yama üretmektir.\n\nBaşlangıç: hangi dosyaların kontrol edileceğini ve net bir sapma sorusunu seçin. Örneğin: "Herhangi bir ortam değişkeni, CLI bayrağı, HTTP rotası veya hata kodunda dokümanların hala bahsettiği bir değişiklik oldu mu?" Spesifik olmak, modelin bütün bölümleri yeniden yazmasını engeller.\n\nSonra Claude Code'dan önce koddan sert gerçekleri çıkarmasını isteyin. Sadece somut öğeleri listelemesini isteyin: kullanıcıların çalıştırdığı komutlar, endpoint'ler ve metodlar, istek ve yanıt alanları, konfigürasyon anahtarları, gerekli ortam değişkenleri ve script veya konfigürasyonlarla referans verilen işletme adımları. Eğer bir şey kodda bulunmuyorsa "bulunamadı" demelidir, tahminde bulunmamalıdır.\n\nArdından basit bir karşılaştırma tablosu isteyin: doküman iddiası, kodun gösterdiği ve bir durum (eşleşiyor, uyuşmuyor, eksik, belirsiz). Bu tartışmayı somut tutar.\n\nBundan sonra, minimal düzenlemelerle bir birleşik diff isteyin. Sadece uyumsuzlukları çözmek için gereken satırları değiştirmesini, dokümanın mevcut stilini korumasını ve kod tarafından desteklenmeyen vaatler eklemekten kaçınmasını söyleyin.\n\nSon olarak kısa bir inceleyici özetiyle bitirin: ne değişti, neden değişti ve iki kere kontrol edilmesi gerekenler (ör. yeniden adlandırılan bir ortam değişkeni veya yeni bir zorunlu header).\n\n## API dokümanları: endpointleri ve örnekleri doğrulamanın pratik yolu\n\nAPI dokümanları kod sessizce değiştiğinde sapar: bir rota yeniden adlandırılır, bir alan zorunlu olur veya bir hata şekli değişir. Sonuç kırık istemci entegrasyonları ve boşa geçen hata ayıklama süresi olur.\n\nClaude Code for documentation drift ile iş, repodan API'nin ne yaptığını kanıtlamak ve sonra dokümanlardaki uyumsuzluklara işaret etmektir. Router ve handler'lardan bir envanter çıkarmasını (yollar, metodlar, istek ve yanıt modelleri) ve bunu API referansının iddialarıyla karşılaştırmasını isteyin.\n\nİnsanların gerçekten kopyala-yapıştır yaptığı şeylere odaklanın: curl komutları, header'lar, örnek payload'lar, durum kodları ve alan adları. Tek bir prompt'ta şunları kontrol etmesini isteyin:\n\n- Kimlik doğrulama gereksinimleri (header'lar, token türü, public endpoint'ler)\n- Sayfalandırma parametreleri ve varsayılanlar\n- Hata durum kodları ve JSON formatı\n- Versiyonlama davranışı (v1 vs v2)\n- Örneklerin mevcut doğrulama kurallarıyla eşleşip eşleşmediği\n\nUyumsuzluk bulduğunda, yalnızca koddan kanıt (tam rota tanımı, handler davranışı veya şema) gösterebildiği diffları kabul edin. Bu yamaları küçük ve gözden geçirilebilir tutar.\n\nÖrnek: kod artık POST /widgets için 201 döndürüyor ve name alanını zorunlu kılıyor. Dokümanlar hala 200 gösteriyor ve name'i atlıyor. İyi bir çıktı hem çelişkileri bildirir hem de yalnızca o endpoint'in durum kodu ve örnek JSON'unu günceller, geri kalanını dokunmadan bırakır.\n\n## Runbook'lar: eskimiş prosedürlerin neden olduğu kesintileri azaltın\n\nRunbook'lar en pahalı şekilde başarısız olur: tamamlanmış gibi görünürler ama adımlar artık sistemin bugün yaptıklarıyla eşleşmez. Yeniden adlandırılmış bir ortam değişkeni veya yeni bir dağıtım komutu gibi küçük bir değişiklik, müdahale edenlerin talimatları uygularken başarısız olmasına neden olabilir.\n\nRunbook'u kod gibi ele alın: mevcut repoya karşı bir diff isteyin ve çelişki çağrılarını zorunlu kılın. Bunu sistemin şu an ne kullandığıyla karşılaştırın: script'ler, konfigürasyon varsayılanları ve mevcut araçlarınız.\n\nOlay sırasında en çok karışıklığa yol açan hata noktalarına odaklanın:\n\n- Listelenen komutlar mevcut script'lerle ve bayraklarla eşleşiyor mu?\n- "Varsayılan" konfigürasyon değerleri uygulamanın şu anlaştığı değerlerle uyuyor mu?\n- Gerekli ortam değişkenleri ve secret'lar kod ve deploy konfigürasyonunda referanslanıyor mu?\n- Dağıtım ve geri alma adımları mevcut sürüm aracınızın adlandırmasıyla eşleşiyor mu?\n- "İyi bilinen" değerler (portlar, bölgeler, zaman aşımı) hâlâ gerçeklikle uyuşuyor mu?\n\nAyrıca müdahalecilerin yolunda olup olmadığını hızlıca anlayabilmeleri için kısa ön kontroller ve beklenen çıktılar ekleyin. "Çalıştığını doğrula" yeterli değil; beklenen sinyali (bir durum satırı, bir versiyon stringi veya bir sağlık kontrol cevabı) belirtin.\n\nEğer Koder.ai gibi platformlarda uygulama oluşturup dağıtıyorsanız, bu daha da önem kazanır çünkü anlık görüntüler ve geri alma yalnızca runbook doğru eylemi adlandırdığında işe yarar.\n\n## Sapmayı daha kötü yapan yaygın hatalar\n\nDokümanları "güzel metin" olarak ele almak, sapma yaratmanın en hızlı yoludur; oysa dokümanlar kodla eşleşmesi gereken iddialar setidir.\n\n### Hizalamayı sessizce bozan hatalar\n\nYaygın bir hata önce yeniden yazma istemektir. Çelişki kontrolünü atlarsanız, hâlâ yanlış davranışı tanımlayan daha düzgün bir metinle sonuçlanabilirsiniz. Her zaman önce sor: doküman ne iddia ediyor, kod ne yapıyor ve nerede uyuşmuyorlar.\n\nBir diğer hata modelin tahmin etmesine izin vermektir. Eğer bir davranış kodda, testlerde veya konfigürasyonda görünmüyorsa, bilinmiyor sayın. "Muhtemelen" README vaatlerinin icadı ve runbook'ların kurguya dönüşmesinin yoludur.\n\nBu problemler günlük güncellemelerde sık görülür:\n\n- Bir bölümü güncellemek ama örnekleri, hata mesajlarını ve kenar durumları dokunmadan bırakmakDokümantasyon sapması, dokümanlarınızın zamanla kodun gerçekte ne yaptığını yansıtmayı bırakmasıdır. Genellikle küçük değişikliklerle başlar (yeniden adlandırılan bir ortam değişkeni, artık gerekli olan bir alan, farklı bir durum kodu) ve bunlar README, API örnekleri veya runbook'larda güncellenmez.
Çünkü kod baskı altında hızla değişir, dokümanlara aynı disiplin uygulanmaz.
Yaygın nedenler:
İnsanların gerçekten çalıştırdığı dokümanlarla başlayın, “iyi olması güzel” olanlarla değil. Pratik bir sıra:
Bunları ilk düzeltmek en yüksek maliyetli hataları ortadan kaldırır.
Çünkü düzgün yazılmış metin yine de yanlış olabilir. Sapma esasen yanlış iddialar ile ilgilidir.
Daha iyi yaklaşım: dokümanları test edilebilir ifadeler gibi ele almak: “bu komutu çalıştır”, “bu endpoint'i çağır”, “bu değişkeni ayarla” ve sonra bu iddiaları mevcut repo, konfigürasyonlar ve gerçek çıktılarla doğrulamak.
Ayrıca: eğer repoda kanıt bulunamazsa, tahmin yerine “bulunamadı” demesini isteyin.
Çünkü difflar inceleyicilerin hızlıca doğrulamasını sağlar. Diff tam olarak neyin değiştiğini gösterir ve yeni iddialar ekleyen “yararlı” yeniden yazmaları caydırır.
İyi bir varsayılan: mümkünse dosya başına bir diff ve her değişiklik için repo kanıtına bağlı bir cümlelik açıklama.
Kanıt göstermesini zorunlu kılın.
Pratik kurallar:
İnsanların kopyala-yapıştır yaptığı yerlere odaklanın:
Eğer endpoint listesi doğru ama örnekler yanlışsa kullanıcılar yine başarısız olur—bu yüzden örnekleri yüksek öncelik sayın.
Runbook'lar operasyonel gerçeklik değiştiğinde başarısız olur.
Yüksek etkili kontroller:
Eğer müdahale edenler ilerlemeyi doğrulayamazsa, olay sırasında zaman kaybederler.
Doküman türü başına basit bir “gerçek kaynağı” kuralı kullanın:
Sonra bunu iş akışınıza yerleştirin: etkilenebilecek dokümanlarda PR başına drift kontrolleri çalıştırın ve değişiklikleri küçük, gözden geçirilebilir tutun.
401 dönmekten 403 dönmeye değiştirir ve header adı X-Token'dan Authorization'a geçer. Sadece kimlik doğrulama bölümünü yeniden yazarsanız, API doküman örneğinin eski header'ı gösterdiğini ve runbook'un hâlâ on-call'e 401 artışlarına bakmasını söylediğini kaçırabilirsiniz.\n\nDiff oluştururken kısa bir karar satırı ekleyin: "Auth hataları artık geçersiz ile eksik kimlik bilgilerini ayırt etmek için 403 döndürüyor." Bu, bir sonraki kişinin dokümanı eski davranışa geri "düzeltmesini" engeller.\n\n## Birleştirmeden önce hızlı kontrol listesi\n\nHer doküman güncellemesini küçük bir denetim gibi ele alın. Amaç, birinin haftaya talimatları izlerken sürprizlerle karşılaşmamasıdır.\n\n### Çoğu sapmayı yakalayan beş kontrol\n\nMerge'e basmadan önce README, API dokümanları ve runbook'ta somut iddiaları tarayın ve tek tek doğrulayın:\n\n- Her komut, endpoint, konfigürasyon anahtarı, ortam değişkeni, port veya örnek yük iddiasını vurgulayın.\n- Her iddia için bunu kanıtlayan tam dosyayı not edin (kaynak, konfigürasyon, şema, migration, test veya CLI yardım çıktısı). Hızlıca kanıt bulamazsanız, tahmin etmek yerine bilinmiyor olarak işaretleyin.\n- Kanıtın olduğu yerlerde sadece minimal diff isteyin. Bir iddia bilinmiyorsa, değişiklik bir soru veya TODO olmalı, emin bir ifade değil.\n- Örnekleri mantık açısından kontrol edin: girdiler hâlâ kodun bugün kabul ettiğiyle eşleşiyor mu (parametre adları, zorunlu alanlar, header'lar, varsayılan değerler)? Uzun örnekler sapma mıknatısıdır.\n- Runbook'lar için adımların olası hataları, güvenli geri almayı ve kurtarmanın nasıl doğrulanacağını kapsadığını teyit edin.\n\n### Hızlı bir durdurma kuralı\n\nAynı dokümanda iki veya daha fazla bilinmeyen iddia bulursanız, merge'i durdurun. Ya kanıt ekleyin (dosya yolları ve fonksiyon isimleri) ya da dokümanı kesin olanlarla sınırlayın.\n\n## Örnek senaryo: bir özellik değişikliği, üç dokümanda sapma\n\nKüçük bir ekip kimlik doğrulama değiştirir: API anahtarı X-API-Key başlığında gönderilmek yerine kısa ömürlü token olarak Authorization: Bearer <token> gönderilecek hale gelir. Kod çıkar, testler geçer ve ekip devam eder.\n\nİki gün sonra yeni bir geliştirici README'yi izler. README hâlâ "X-API-Key'i ortam değişkeninize ayarlayın" diyor ve eski header ile bir curl örneği gösteriyor. Lokal çalıştırmayı başaramaz ve servisin kapalı olduğunu varsayar.\n\nAynı zamanda API dokümanları da eskidir. Eski header'ı tanımlar ve hâlâ user_id adlı bir alan gösterir, oysa API artık userId döndürüyor. Yazıda hiçbir problem yok ama kodla çelişiyor, bu yüzden okuyucular yanlış şeyi kopyalar.\n\nSonra bir olay olur. On-call runbook'taki "API anahtarını döndür ve worker'ları yeniden başlat" adımını uygular. Bu yardımcı olmaz çünkü gerçek sorun konfigürasyon değişikliğinden sonra token doğrulamanın başarısız olmasıdır. Runbook onları 20 dakika boyunca yanlış yöne gönderir.\n\nİşte Claude Code for documentation drift burada faydalıdır: diff'ler ve çelişki çağrıları üretmelidir, tam bir yeniden yazma değil. Onu auth middleware'ini ve route handler'ları README parçaları, API örnekleri ve runbook adımları ile karşılaştırmasını isteyip, sonra yalnızca depodan kanıtlananleri güncelleyen minimal yamalar önermesini isteyebilirsiniz:\n\ndiff\n- Header: X-API-Key: \u003ckey\u003e\n+ Header: Authorization: Bearer \u003ctoken\u003e\n\n- { \"user_id\": \"...\" }\n+ { \"userId\": \"...\" }\n\n\nÖnemli olan, uyumsuzlukları işaretlemesi, tam yerleri göstermesi ve yalnızca repoda kanıtlananların güncellenmesidir.\n\n## Sonraki adımlar: sapma kontrollerini rutin haline getirin\n\nDokümantasyon ancak kontrol etmek sıkıcı ve tekrarlanabilir olduğunda doğru kalır. Değişikliklerinizin riskine uygun bir ritim seçin. Hızlı değişen kod için her PR'de yapmak; stabil servisler için haftalık tarama artı sürüm öncesi kontrol genellikle yeterlidir.\n\nDoküman sapmasını bir yazma görevi değil, bir test başarısızlığı gibi ele alın. Claude Code for documentation drift'i küçük bir diff ve kısa bir çelişki listesi üretmek için kullanın, sonra dokümanları tekrar doğru yapan en küçük şeyi düzeltin.\n\nHafif tutan bir rutin:\n\n- PR başına: değişikliğin etkileyebileceği dosyalarda (README, API dokümanları, runbook'lar) bir sapma kontrolü çalıştırın.\n- Diff özetini PR açıklamasına veya inceleme notlarına kaydedin ki inceleyenler ne değiştiğini ve nedenini görsün.\n- Büyük yeniden yazmalar yerine kolayca geri alınabilir küçük düzenlemeleri tercih edin.\n- Sürümler öncesi: kullanıcıların kopyala-yapıştır yapacağı herhangi şeyi (curl örnekleri, ortam değişkenleri, dağıtım adımları) tekrar kontrol edin.\n- Haftalık: bir veya iki eski runbook'u örnekleyin ve bunların bugün kullanılan komutlar ve dashboard'larla uyumlu olduğunu doğrulayın.\n\nBu diff özetlerini daha sonra kolayca bulunacak şekilde saklayın. "Dokümanlar /v2 endpoint'ine uyarlandı, deprecated header kaldırıldı, örnek yanıt güncellendi" gibi kısa bir not, aylar sonra birisi neden bir dokümanın değiştiğini sorduğunda yardımcı olur.\n\nDokümanlara da "anlık görüntüler ve geri alma" mantığını uygulayın. Bir talimat belirsizse, önce bir yerde değiştirin, hızlıca doğrulayın, sonra onaylanmış versiyonu başka yerlere kopyalayın.\n\nHızla geliştiriyorsanız, uygulamayı ve ilk dokümanlarını birlikte Koder.ai (koder.ai) içinde oluşturmak yardımcı olabilir; sonra kaynak kodu dışa aktarın ve değişiklikleri normal repo iş akışınızda gözden geçirilebilir tutun. Amaç mükemmel yazı değil. Amaç insanların yaptığı (komutlar, endpoint'ler, adımlar) ile kodun gerçekte yaptığını eşleştirmektir.