1 puan yazan GN⁺ 4 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • Claude Code üretkenliği, promptlardan çok bellek, özel komutlar, paralel oturumlar ve proje ayarlarının nasıl biriktirilip doğrulandığına göre büyük ölçüde değişir
  • CLAUDE.md, kısa ve doğrulama odaklı bir birikimli altyapı olarak işletilmelidir; bir hatadan sonra kural eklemek, aynı hatayı azaltabilir
  • .claude/, CLAUDE.md, kurallar, skills, komutlar, agent'lar ve MCP ayarlarını barındıran hiyerarşik bir yapılandırma sistemidir; proje ve global kapsamı ayırarak uygular
  • Skills, tekrar eden işleri yeniden kullanılabilir uzmanlığa dönüştürür; subagent'lar ise ayrı bağlamlarda inceleme, hata ayıklama ve migrasyon yapar
  • Plugins, MCP, /goal, /rewind, /batch ve paralel worktree birlikte kullanıldığında Claude Code, kurulan ve işletilen bir geliştirme agent'ına dönüşür

Claude Code'u doğrulanabilir bir agent olarak ele almak

  • Claude Code'daki üretkenlik farkı, basit promptlardan çok bellek, özel komutlar, paralel oturumlar ve proje ayarlarının nasıl biriktirildiğinden kaynaklanır
  • Temel ilke, Claude'un kendi çıktısını doğrulayabilmesini sağlamaktır; Boris Cherny ve Anthropic ekibi, yalnızca bu yaklaşımla bile kalitenin 2-3 kat arttığını düşünüyor
  • İş akışı için keşif → planlama → uygulama sırası uygundur
    • Shift+Tab tuşuna iki kez basılarak girilen planlama modu, salt okunur keşif için uygundur
    • Dosyaları okuyup akışı ve veri modelini kavradıktan sonra plan yapıp yürütmek önerilir
    • Birden çok dosyaya dokunan işlerde planlama modu faydalıdır; küçük düzeltmelerde atlanabilir
  • Planlama modu, uygulamadan önce gözden geçirilebilen bir tasarım belgesi gibi ele alınabilir
    • Bir Claude planı yazar, yeni bir oturumdaki ikinci Claude ise önyargısız bir staff engineer gibi bunu gözden geçirebilir
    • Uygulama saparsa, planlama moduna geri dönüp doğrulama aşamasını da içerecek şekilde yeniden planlamak uygun olur
    • Ctrl+G ile Claude'un planı editörde açılabilir ve uygulama öncesinde doğrudan düzenlenebilir
  • Muğlak talimatlardan çok kesin referanslar daha etkilidir
    • “auth modülüne bak” demek yerine @src/auth/login.py gibi dosya doğrudan belirtilir
    • Hatalar yapıştırılmak yerine cat error.log | claude gibi pipe ile aktarılır
  • Cat Wu, Claude Code'un satır satır yönlendirilen bir pair programmer'dan çok yetki devredilmiş bir mühendis gibi ele alındığında modelin en iyi performansı verdiğini düşünüyor
  • Claude hata yaptığında, promptun sonuna “Update CLAUDE.md so you do not repeat this.” eklenerek aynı hatayı önleyecek bir kural bırakması sağlanabilir

.claude dizini ve yapılandırma hiyerarşisi

  • .claude/, yalnızca CLAUDE.md konulan bir klasör değil, hiyerarşik bir yapılandırma sistemidir
  • Yapılandırma iki kapsama ayrılır
    • Proje kapsamı: depo içindeki .claude/ altında bulunur, git'e commit edilerek ekiple paylaşılır
    • Global kapsam: ~/.claude/ altında bulunur ve yerel makinedeki tüm projelere uygulanır
  • Proje dosyaları projeyi, global dosyalar ise kullanıcının tercihlerini ve çalışma biçimini açıklayan bir model gibi düşünülebilir
  • Başlıca dosyaların rolleri
    • CLAUDE.md: hem proje hem global kapsamda kullanılabilir; her oturumda yüklenen talimatlar
    • CLAUDE.local.md: projeye özel kişisel notlar; gitignore kapsamındadır
    • settings.json: izinler, hook'lar, ortam değişkenleri, varsayılan model ayarları
    • settings.local.json: kişisel override; otomatik olarak gitignore edilir
    • .mcp.json: projede ekibin paylaştığı MCP sunucu ayarları
    • skills/<name>/SKILL.md: /name ile çağrılan yeniden kullanılabilir promptlar
    • commands/*.md: tek dosyalı slash komutları
    • agents/*.md: subagent tanımları
    • rules/*.md: konu bazlı talimatlar; yol bazında uygulanabilir
  • CLAUDE.md kademeli olarak yüklenir
    • Monorepo'da root/CLAUDE.md ile root/services/billing/CLAUDE.md birlikte yüklenebilir
    • Bu yapı, klasör bazında teamül farklılıkları olan kod tabanları için uygundur
  • .claude/rules/*.md, yol bazlı talimatlar için uygundur
    • Yalnızca migrasyon klasöründe gereken kurallar, tüm oturumu şişiren CLAUDE.md yerine glob ile birlikte .claude/rules/migrations.md içine konmalıdır
  • Yeni işler için commands yerine skills önerilir
    • .claude/commands/*.md ile .claude/skills/<name>/SKILL.md ikisi de slash komutu oluşturabilir
    • Skills; yardımcı dosyaları, disable-model-invocation, izinli araçları ve agent override'larını destekler
  • claude project purge ~/path/to/repo --dry-run ile belirli bir proje için Claude'un elindeki yerel durum kontrol edilebilir

CLAUDE.md'yi kısa ve doğrulama odaklı işletmek

  • CLAUDE.md, her oturum başlangıcında yüklendiği için kötü yazılırsa Claude aynı hataları tekrarlar, iyi yazılırsa aynı promptun sonuçları ciddi ölçüde iyileşir
  • En önemli ilke, kısa tutmaktır
    • Her satır için “Bu satırı kaldırırsam Claude hata yapar mı?” diye sorup, cevap hayırsa silmek önerilir
  • Claude'un kendi kurallarını kendisinin yazmasını sağlamak, birikimli etki yaratır
    • Claude hata yaptığında “Update CLAUDE.md so you do not repeat this.” talimatı verilirse, Claude hatayı hassas bir kurala dönüştürerek özetleyebilir
    • Bu yöntem birkaç hafta tekrarlandığında projenin tuzakları bir kural listesi olarak birikir
  • Claude Code ekibinin gerçek CLAUDE.md dosyası, build komutları ve doğrulama sırasına odaklanır
    • bun kullanılır, npm kullanılmaz
    • Değişiklik sonrası hızlı typecheck, test, commit öncesi lint ve PR öncesi tam doğrulama sırası açıkça belirtilir
    • Stil tercihleri, kod tabanı turu ve genel anlatılar yer almaz
  • PR yorumlarında da @claude kullanılarak kurallar doğrudan eklenebilir
    • Örnek: @claude add to CLAUDE.md to never use enums, always prefer literal unions
    • Böylece PR incelemesi, CLAUDE.md iyileştirmesine dönüşür ve “Compounding Engineering” akışı oluşur
  • İyi bir CLAUDE.md, şu bilgilere odaklanır
    • Kod stili: CommonJS yerine ES modules kullan
    • İş akışı: bun run typecheck çalıştır, main'e doğrudan push yapma
    • Mimari: API route'ları mutlaka belirli bir middleware'den geçmeli
    • Gotchas: User ile UserRecord arasındaki fark, formatCurrency'nin USD varsaydığı bilgisi
  • CLAUDE.md'ye konmaması gerekenler
    • Standart dil teamülleri
    • Dosya bazlı kod tabanı açıklamaları
    • Uzun eğitim içerikleri
    • API dokümantasyonu
    • Sık değişen içerikler
  • IMPORTANT, YOU MUST gibi ifadeler uyum oranını artırabilir, ancak ağırlığını koruması için seyrek kullanılmalıdır
  • @path sözdizimiyle başka dosyalar içe aktarılırsa CLAUDE.md kısa tutulurken ayrıntılar bağlanabilir
    • Örnek: See @README.md for project overview and @package.json for scripts.
    • Örnek: @~/.claude/my-preferences.md

CLAUDE.local.md ile kişisel geri bildirimi biriktirmek

  • CLAUDE.local.md, CLAUDE.md ile aynı konumda aynı şekilde yüklenir; ancak yerel makinenin dışına çıkmamalı ve .gitignore'a eklenmelidir
  • PR inceleme yorumları hemen CLAUDE.local.md içine alınırsa, tekrar eden kişisel geri bildirimler kişisel kural dosyası olarak birikir
  • Örnek kurallar
    • Yeni SQS consumer'larında aynı PR içinde DLQ ve alarm bulunmalıdır
    • null döndürmek yerine Optional<T> tercih edilir
    • Yeni endpoint testlerinde auth-failure durumu yer almalıdır
    • Endpoint eklenirken OpenAPI spec de güncellenmelidir
  • Dosyada proje bazlı geri bildirimler ile kişisel alışkanlık düzeltme maddelerini ayırmak daha iyidir
  • Birkaç hafta sonra artık alışkanlık haline gelmiş maddeler çıkarılmalı, yalnızca hâlâ öğrenilmekte olanlar bırakılmalıdır

Skills: yeniden kullanılabilir uzmanlık birimleri

  • Skills, Claude Code’u “her şeyi yapabilen bir ajan”dan belirli proje işlerinde iyi olan bir ajana dönüştüren yeniden kullanılabilir uzmanlık birimleridir
  • Skill yapısı

    • bir skill, .claude/skills/<name>/ veya ~/.claude/skills/<name>/ altındaki bir klasördür
    • klasör içindeki SKILL.md, frontmatter ve yönergeleri içerir
    • klasör adı slash komutu olur
    • örneğin ~/.claude/skills/summarize-changes/SKILL.md oluşturulursa /summarize-changes tüm oturumlarda kullanılabilir
  • Skill’leri güçlü kılan şey

    • Aşamalı açığa çıkarma: oturum başlangıcında yalnızca frontmatter açıklaması yüklenir; SKILL.md dosyasının tamamı ve yardımcı dosyalar ise sadece gerçekten gerektiğinde yüklenir
    • Klasör tabanlı düzen: şablonlar, referans belgeler, script’ler ve ayarlar birlikte paketlenebilir
    • Satır içi shell: ! ile başlayan satırlar komut çalıştırır ve çağrı anındaki çıktıyı ekler
  • Frontmatter seçenekleri

    • description: bu skill’in ne zaman kullanılması gerektiğini açıklar
    • disable-model-invocation: true: yalnızca kullanıcı açıkça /my-skill yazdığında çalışmasını sağlar
    • allowed-tools: Read, Grep, Bash gibi kullanılacak araçları sınırlar
    • agent: belirli bir ajan modunda çalışabilir
    • dağıtım gibi yan etkisi olan skill’lerde disable-model-invocation: true uygundur
  • Go API teamülleri için skill örneği

    • Go servis ekibinin yeni bir HTTP handler scaffold’u oluşturan skill’i, SKILL.md, templates/handler.go.tmpl, examples/healthz.go dosyalarını birlikte barındırabilir
    • kural örnekleri; Go 1.22 ve chi router, sqlc typed query, zap yapılandırılmış loglama, testify assertion ve table-driven test tercihleri gibi projeye özgü teamülleri içerir
    • gotcha örnekleri; chi.URLParam’ın eksik parametre için "" döndürmesi, httperr.Wrap’ın log bırakmaması, pgtype.Text için .Valid kontrolü gerekmesi gibi tekrar eden hataları önleyen noktaları içerir
  • Kurulmaya değer Skills

    • mattpocock/skills: yaklaşık 100k star’a sahip popüler bir skills deposu
      • /grill-me: kod yazmadan önce planı soru-cevapla netleştirir
      • /tdd: red-green-refactor döngüsünü katı biçimde uygular
      • /diagnose: debug sürecini yeniden üretme, küçültme, hipotez, düzeltme, regresyon testi sırasıyla yürütür
      • kurulum: npx skills@latest add mattpocock/skills
    • Jeffallan/claude-skills: go-pro, python-pro, java-architect, typescript-pro, rust-engineer, sql-pro dahil 66 dil profili sunar
    • Anthropic’in resmi skills’leri
      • /code-review: dört paralel ajan diff’i denetler ve yalnızca güven puanı temelli bulguları raporlar
      • /simplify: son kodu yeniden kullanılabilirlik ve verimlilik açısından inceler
      • /batch: migration’ı birden çok paralel ajana dağıtır ve her biri kendi worktree’sinde işler
      • /webapp-testing: Claude’un Playwright ile yerel web uygulamasını test etmesini sağlar
    • günde bir kereden fazla tekrarlanan işleri skill’e dönüştürmek iyi bir fikirdir
    • skills’leri git’e commit etmek, ekibin kurumsal bilgisi haline gelir; yeni mühendis depoyu clone eder etmez birikmiş çalışma biçimlerini edinir

Subagents: ayrı bağlamda odaklı çalışma yaptırmak

  • subagent, kendi bağlam penceresi ve kendi araç izinleriyle çalışır, ardından bir özet döndürür
  • çok sayıda dosya okusa bile ana oturum bağlamını doldurmaması temel değeridir
  • subagent, .claude/agents/ veya ~/.claude/agents/ altında bulunan bir markdown dosyasıdır; frontmatter içinde name, description, tools, model tanımlanır
  • /pr-review ajanı yapılandırması

    • mevcut branch diff’ini main ile karşılaştırıp bug, security issue, kaçırılmış edge case ve proje teamüllerine aykırılıkları bulacak şekilde tanımlanabilir
    • tools: Read, Grep, Glob, Bash ile okuma ağırlıklı yetkiler verilir
    • model: opus kullanılarak yüksek riskli incelemeler için daha güçlü bir model seçilebilir
    • süreç; git diff main...HEAD, git log main..HEAD --oneline, tüm dosyaları okuma, CLAUDE.md, CLAUDE.local.md, .claude/rules/ ile karşılaştırmadan oluşur
    • çıktı, Critical / High / Medium / Low başlıkları altında gruplanabilir; file, line, issue, suggested fix içerdikten sonra SHIP, FIX FIRST, REWORK seçeneklerinden biriyle bitebilir
  • Sinyal-gürültü oranını artıran tasarım

    • reviewer kodu değiştirirse kendi düzeltmesini savunma yanlılığı oluşur; bu yüzden salt okunur araçlar uygundur
    • “Do NOT flag” bölümünde proje kurallarında olmayan stil tercihleri, çalışan kod için refactor önerileri ve diff dışındaki maddelerin hariç tutulduğu açıkça belirtilirse gürültü azalır
  • Sık kullanılan subagent kalıpları

    • Claude Code ekibi build-validator, code-architect, code-simplifier, oncall-guide, verify-app ajanlarını repoya ekler
    • security-reviewer: injection, auth, secrets, insecure deserialization denetimi
    • test-writer: test üretir, code-reviewer ile döngü oluşturur
    • debugger: başarısız testleri root cause’a kadar izler
    • performance-auditor: akış ve query profiling yapar
    • migration-writer: proje teamüllerine uygun DB migration üretir
    • release-notes-writer: commit geçmişinden changelog yazar
    • Session A’nın implementasyon yapıp code-reviewer subagent’ının bunu yeni bir bağlamda incelemesi, implementasyon yanlılığını azaltır
    • frontmatter’a isolation: worktree eklenirse subagent ayrı bir git worktree içinde çalıştırılabilir; bu, migration’ı birden çok paralel agent’a dağıtırken yararlıdır

Plugins ve Marketplace

  • Plugins, skills, hooks, subagents ve MCP server'larını tek bir kurulabilir birimde toplar
  • /plugin ile marketplace tarayıcısı açılabilir
  • /plugin marketplace add owner/repo ile topluluk marketplace'i eklenebilir
  • Başlangıçta kurulabilecek öğeler

    • /code-review: Dört paralel agent çalışır; ikisi CLAUDE.md uyumunu, biri bug'ları, biri de git blame tabanlı bağlamı analiz eder
    • /feature-dev: Bir feature brief'ini requirements → exploration → architecture → implementation → testing → review → docs şeklindeki 7 aşamada çalışan koda dönüştürür
    • Language server plugin: Doğru symbol navigation ve düzenleme sonrası otomatik diagnostics sağlar; ekip bunu etkisi en yüksek plugin olarak adlandırır
    • /security-guidance: Anthropic'in resmi security skill'i; yayına almadan önce güvenlik endişelerini ortaya çıkarır
    • 2026 ortası itibarıyla marketplace'te 75'ten fazla, toplamda 1.000'den fazla plugin bulunur
    • Başlıca plugin kategorileri Git workflow, code intelligence (LSP), documentation generators, testing, browser automation (Playwright), design system (Figma), observability (Sentry, Datadog) şeklindedir
    • Paylaşılan bir .mcp.json ile seçilmiş plugin'lerin birlikte bulunması, yeni bir mühendisin depoyu clone ettikten birkaç dakika sonra verimli çalışabilmesini sağlar

Üretkenliği ciddi biçimde etkileyen Claude Code komutları

  • Birçok kullanıcı yalnızca /clear, /compact, /init komutlarını öğrenip orada kalıyor, ancak diğer komutlar da günlük üretkenlik üzerinde büyük etki yaratıyor
  • Temel komutlar

    • /insights: Kullanım kalıplarını analiz eder; ayda bir kez çalıştırmaya değer
    • /compact <hint>: Oturumu sıkıştırır; hint neyin korunacağını belirler
    • /copy: Son yanıtı kopyalar ve kod blokları için etkileşimli bir seçici sunar
    • /rewind: Tüm oturum için undo işlevi görür; kodu, konuşmayı veya ikisini birden geri alır
    • /btw: Konuşma geçmişine girmeyen yan sorular
    • /context: Bağlam kullanımını görselleştirir
    • /export <file>: Konuşmayı dosyaya dump eder
    • /branch: Riskli denemeler için oturumu fork eder
    • /batch: İşleri worktree genelinde paralel agent'lara dağıtır
    • /loop <interval>: Claude'u en fazla 3 gün boyunca tekrarlı çalıştırır
    • /schedule: Dizüstü kapalıyken bile çalışan, bulut tabanlı /loop sürümü
    • /teleport: Oturumu terminal ile web arasında taşır
    • /focus: Ara tool call'ları gizler ve yalnızca nihai sonucu gösterir
    • /voice: Sesli giriş
    • --bare: Etkileşimsiz claude -p kullanımında başlangıcı 10 kata kadar hızlandırır
  • /compact ile /clear arasındaki fark

    • Tamamen yeni bir iş için /clear ve yeni yazılmış bir brief daha uygundur
    • İş ilişkiliyse ve hâlâ bağlam gerekiyorsa, hint içeren /compact daha uygundur
    • /compact kayıplı bir LLM özetidir; /clear ise kullanıcının kendi yazdığı brief'tir, bu yüzden ayrımı önemlidir
  • /rewind kullanım şekli

    • Claude yanlış bir yola girdiyse, devam edip “Bu olmadı, X'i dene” diye yazmamak daha iyidir
    • Devam etmek bağlamı kirleteceği için, rewind sonrası öğrenilenleri yansıtarak yeniden prompt vermek daha uygundur
    • Esc tuşuna iki kez basarak rewind açılabilir
    • ! shell escape olarak kullanılabilir
    • !git status, !npm test gibi komutlar anında çalıştırılır ve çıktıları bağlama girer
    • CLAUDE_CODE_AUTO_COMPACT_WINDOW=400000 ayarı, 1M modelde 300~400k token civarında context rot oluşmadan önce daha erken compaction zorlamak içindir
  • Fan-out deseni

    • Önce bir task list oluşturulur ve üç dosyada test edilir
    • Prompt düzeltildikten sonra binlerce dosyaya uygulanır
    • Örnek:
for file in $(cat files.txt); do
  claude -p "Migrate $file from React to Vue. Return OK or FAIL." \
    --allowedTools "Edit,Bash(git commit *)" \
    --bare
done

/goal: Tamamlanma koşulu gömülü yinelemeli döngü

  • /goal, bir tamamlanma koşulu belirler ve Claude ne zaman durmaya çalışsa transcript üzerinde bu koşulu kontrol etmesini sağlar
  • Koşul doğrulanabilir ve deterministik olmalıdır
    • test command
    • CLI exit code
    • file state
  • Örnek:
/goal all tests in test/auth pass and the lint step is clean
/goal all integration tests in tests/api pass without flaking 3 runs in a row
/goal the OpenAPI spec validates and matches the actual response shapes
/goal docker compose up runs cleanly and the healthcheck endpoint returns 200
/goal coverage on src/billing/ is above 80% and all new tests are not placeholders
  • “Kod iyi” gibi muğlak koşullar işe yaramaz
  • Birlikte kullanıma uygun özellikler
    • /loop: Belirli aralıklarla tekrarlayarak backlog'u azaltır
    • /schedule: Bulutta periyodik olarak çalıştırır
    • Stop hook: Kendi test suite'iniz veya CI endpoint'iniz ile gate tanımlamayı sağlar
    • Auto mode: Uzun goal'lerin permission prompt'ları yüzünden durmasını engeller
  • /goal + auto mode + /focus kombinasyonu; net bir brief ve tamamlanma koşulu verip geri döndüğünüzde PR'ın bitmiş olmasını hedefler

MCP'yi sistem farkındalığı aracı olarak kullanmak

  • MCP(Model Context Protocol), Claude Code'un bir coding agent olmanın ötesine geçip dış sistemlerin farkında olan bir agent olmasını sağlar
  • MCP server, database, design tool, error tracker, notes gibi dış araçları standart bir yöntemle Claude'a sunar
  • MCP olmadan Claude dosyaları okur ve komutları çalıştırır; ancak MCP kullanıldığında terminalden çıkmadan Linear ticket, Postgres query, Figma component, Sentry stack trace ve Obsidian vault ile çalışabilir
  • Mühendislikte sık kullanılan MCP'ler

    • GitHub: repo management, PR'ler, issue'lar, code search
    • Context7: en güncel library docs, prompt'a use context7 ekleyin
    • Sentry: gerçek error context, stack trace'ler, breadcrumb'lar
    • Linear: ticket okuma ve oluşturma, status update
    • Playwright: accessibility snapshot tabanlı browser automation
    • Figma: canlı design tree, auto-layout, spacing token'ları, component ref'leri
    • Postgres / Supabase: dev DB'ye doğrudan query
    • Slack: thread okuma, discussion summary, response draft
    • local server stdio kullanır, vendor-hosted server ise OAuth bulunan HTTP kullanır
    • Örnek:
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
  • team-shared MCP'ler project root içindeki .mcp.json dosyasında, personal MCP'ler ise ~/.claude.json içinde tutulur
  • Çok fazla MCP kurulursa Claude'un değerlendirmesi gereken tool list büyür ve karar verme kalitesi düşebilir
  • Başlangıç seti olarak GitHub, Context7 ve alanınıza özel bir ya da iki MCP uygundur
  • /mcp, Claude Code içinde etkin server'ları ve bağlantı durumunu kontrol etmek için ilk bakılacak yerdir

Obsidian ve Claude Code'un 3 katmanlı bellek yapısı

  • Obsidian + Claude Code kombinasyonu, yalnızca “Claude'un vault'u okuması”ndan daha fazlasını sunar; üç katmanlı bir bellek mimarisi olarak kullanıldığında güçlü hale gelir
  • Kurulum

    • Obsidian'a obsidian-claude-code-mcp kurulur
    • plugin, vault'u local WebSocket'in 22360 portu üzerinden sunar
    • Claude Code bunu auto-discover eder
    • Klasör yapısını açıklamak için vault'a CLAUDE.md eklenir
  • Klasör yapısı

    • 00-Inbox/: ham yakalama
    • 10-Daily/: günde bir note
    • 20-Projects/: etkin proje notları
    • 20-Projects/billing-v2/README.md: hedef, durum, açık sorular
    • 20-Projects/billing-v2/decisions/: ADR'ler
    • 20-Projects/billing-v2/sessions/: Claude session bazlı log'lar
    • 30-Decisions/: projeler arası ADR'ler
    • 40-Atoms/: yeniden kullanılabilir bilgi ve link'ler
    • 90-Archive/: arşiv
  • Hot storage

    • Her Claude session'ı 10-Daily/<today>.md içine timestamp içeren bir log yazar
    • Stop hook ile agent sonlandığında structured summary eklenmesi sağlanabilir
  • Warm storage

    • Her project, 20-Projects/ altında bir klasöre sahiptir
    • Yeni bir session öncesinde Claude, context'i geri yüklemek için project README'sini ve son 2-3 session log'unu okur
    • Bu akış, 2 haftalık context'i 30 saniye içinde yeniden kurar
  • Cold storage

    • architecture decision'lar 30-Decisions/ içindeki ADR'lere yükseltilir
    • yeniden kullanılabilir bilgi 40-Atoms/ içine damıtılır ve wikilink'lerle birden fazla project'e bağlanır
  • Günlük workflow örneği

    • What is in my inbox? Summarize and suggest where each item belongs.
    • Check 30-Decisions/ for anything related to retry policies.
    • Read the last 3 session logs for billing-v2. Tell me where I left off.

Günlük geliştirme akışını optimize etmek

  • Yeni feature

    • plan mode ile başlanır
    • Ctrl+G ile plan düzenlenir
    • Uygulamanın ardından /pr-review subagent çağrılır veya fresh bir Claude session ile review yapılır
  • Bug

    • Önce yeniden üretilir
    • cat error.log | claude ile error pipe edilir
    • Claude'dan önce başarısız testi yazması, sonra düzeltmesi istenir
    • Testin düzeltmenin tahmine dayanarak bitmesine izin verilmez
  • Migration ve büyük ölçekli değişiklikler

    • /batch, yapılan değişiklikleri görüştükten sonra işi parallel agent'lara dağıtır
    • Her agent kendi worktree'sinde test eder ve PR oluşturur
  • Yabancı kod

    • “Use a subagent to investigate how our auth handles token refresh.” gibi bir komutla subagent kullanılır
    • subagent kendi context'inde onlarca dosya okuyup bir özet döndürdüğü için ana session temiz kalır
  • Paralel session'lar

    • Boris ve ekibi, 3-5 ayrı git worktree'nin her birinde Claude session çalıştırmayı en büyük üretkenlik sıçraması olarak görüyor
    • claude agents agent görünümü bir control plane gibi kullanılabilir
  • Writer/Reviewer paterni

    • Session A implement eder
    • Session B fresh bir context ile review eder
    • review geri alınır, düzeltmeler yapılır ve süreç tekrarlanır
  • Her milestone'da compact

    • Mantıksal bir chunk bittiğinde /compact Preserve the decisions made, files changed, and test commands. gibi bir ifadeyle neyin korunacağı açıkça belirtilir
    • Claude'un test, screenshot veya gerçek command output gibi kanıtlar olmadan başarı iddia etmesine izin vermemek gerekir
    • trust-then-verify açığı, kötü sonuçların en büyük nedeni olarak gösterilir

Anthropic ekibinin tekrar tekrar kullandığı kalıplar

  • Claude’un kendi çıktısını doğrulamasına izin verilirse, sonuç iyi olana kadar yineleme yapabiliyor
  • Boris, çoğu işte Opus ve high veya xhigh effort kullanıyor
    • bunun nedeni, daha küçük bir model daha fazla düzeltme gerektirirse toplamda daha yavaş olabilmesi
  • 3~5 oturumu paralel çalıştırıyorlar
    • checkout yerine worktree kullanıyorlar
    • claude --worktree veya Desktop app kullanılabiliyor
    • agent view paralel oturumları bir arada tutuyor
  • Her proje için bir notes directory tutuluyor ve her PR sonrasında güncelleniyor
    • CLAUDE.md bu notes directory’yi işaret edecek şekilde ayarlanırsa, kod tabanının kendi bilgisi zamanla birikiyor
  • Oturum sonunda tekrar eden kodları bulup kaldırmak için /techdebt slash command oluşturulabiliyor
  • Ekibin CLAUDE.md dosyası paylaşılıyor ve haftada birkaç kez düzenleniyor
    • Claude’un yanlış yaptığı bir şeyi gören kişinin kural eklediği yaşayan bir belge olarak ele alınıyor
  • UI değişiklikleri için Playwright MCP uygun görülüyor
    • Claude browser’ı açıp tıklayabiliyor ve doğrulama yapabiliyor
  • language server plugin, her düzenlemeden sonra type error ve unused import’ları yakalıyor; en etkili plugin olarak gösteriliyor
  • /voice, prompt’un daha ayrıntılı hale getirilmesini sağlayabiliyor
    • konuşmanın yazmaktan 3 kat daha hızlı olduğu gerekçesi de veriliyor
  • Uygulamadan önce Claude planını editörde Ctrl+G ile düzenleme yöntemi, chat içine düzeltme yazmaktan daha hızlı
  • Boris, yabancı bir protocol ve codebase’i anlamaya çalışırken Claude’a ASCII diagram çizdiriyor

Kaynaklar

1 yorum

 
GN⁺ 4 시간 전
Hacker News yorumları
  • commands, skills, subagents, plugins fazla dağınık; toparlanmaları gerekiyor
    Örneğin sadece kod incelemesi için bile .claude/commands/review.md, /code-review skill'i, /pr-review subagent'i, /code-review plugin'i ve doğrudan Claude'dan inceleme istemek olmak üzere beş seçenek var
    Sonuçta bunların çoğu önceden hazırlanmış prompt ekleme yaklaşımının varyasyonları; fark, prompt'un nereye kurulduğu ve hangi bağlamda çalıştığı
    Hangi seçeneğin en iyisi olduğuna dair yönlendirme de yetersiz, en iyi uygulamalar da henüz netleşmiş değil; bana kalırsa Claude'dan doğrudan kod incelemesi istemek zaten yeterince iyi çalışıyor
    Ayrıca “dil sunucusu eklentisini kurun” tavsiyesi de pratikte bana doğru gelmedi. Rust, Python ve Dart için LSP'leri Claude Code ve Codex'e kurdum ama iki ay boyunca yüzlerce oturum çalıştırdıktan sonra loglara baktığımda gerçek LSP araç çağrısı sadece bir kez yapılmıştı; buna karşılık Rust analyzer/Dart analysis server/Ty LSP yüzünden RAM sık sık yetersiz kaldı
    Sonunda LSP'leri kaldırdım; ajanların ripgrep, cargo clippy, dart analyze, ty check gibi araçları doğrudan çağırması da fazlasıyla yeterliydi

    • Ben CC ekibinden Boris; buna katılıyorum ve şu anda birleştirme üzerinde çalışıyoruz. İleride yerleşik tek bir /code-review skill olacak
      En güncel sürümlerde /code-review dengeli bir inceleme yapıyor, /code-review --fix düzeltmeleri de uyguluyor ve /code-review low|medium|high|xhigh|max ile harcanacak çaba seviyesini seçebiliyorsunuz
      /code-review ultra pahalı ama çok kapsamlı bir inceleme modu; karmaşıklığa bağlı olarak inceleme başına yaklaşık 3 ila 20 dolar tutuyor ve hataların %99'undan fazlasını güvenilir şekilde yakalamayı hedefliyor
      Kullanımı daha iyi hâle getirecek fikirleriniz varsa geri bildirim almak isterim
    • Bir süredir skills kötü bir soyutlama diye düşünüyorum. Ne için kullanılmaları gerektiği belirsiz olduğu için popüler oldular ama tam da bu yüzden uzun vadede iyi görünmüyorlar
      Frontend tasarımında en iyi uygulamalar gibi genel yönergelerin, açıkça çağrılmadıkça harfiyen izlenmesi gerekmeyen prosedürlerin ve belirli araçların nasıl kullanılacağını anlatan açıklamaların hepsinin skill olarak görülmesi tuhaf
      Yeni araçları herkesin birlikte öğrenmeye çalıştığı bir dönemde esnekliğin cazip olduğunu anlıyorum ama skills giderek “nereye koyacağını düşünmek istemediğin her şeyi attığın mutfak ıvır zıvır çekmecesi” gibi hissettiriyor
      Bana göre daha iyi ayrım şu olurdu: Agents, modelin benimsediği kişilik ya da bakış açısı; Prompts, belirli işler için tekrar kullanılan talimatlar; Tools ise CLI/MCP/script'ler ve bunların kullanım yönergeleri olarak standartlaştırılmalı
    • subagent yaklaşımı yapısal olarak diğer seçeneklerden farklı. Çünkü temiz bir bağlamda çalışıyor
      Birincisi, LLM oturum maliyeti her turda giriş token'ları ve önbelleğe alınmış girişler için ücretlendirildiğinden, diğer koşullar aynıysa çözüme ulaşma maliyeti daha düşük olabilir
      İkincisi, inceleme modeli ana oturumdaki “x, y gibi yapılmalı” türü varsayımları aynen devralmadığı için kendini kandırması daha zor olur. İnsanlarda da ayrı birinin inceleme yapmasının ya da kafayı boşaltıp sonra bakmanın faydalı olmasının nedeni buna benzer
      Üçüncüsü, ana model yalnızca inceleme sonucunu görür, ayrıntılı akıl yürütmeyi görmez; bu da bağlam kirlenmesini azaltır ama bulunan hatanın mantığını yeniden çıkarması gerektiği için tekrar eden mantık üretimine yol açabilir
      Dil sunucusu eklentisi tavsiyesinin amacı da LLM'nin açıkça çağırmasını beklemek değil, düzenleme yaptıkça lint'in otomatik çalışmasını sağlamak diye düşünüyorum
    • Bunun şu anda modellerin hâlâ yeterince akıllı olmadığı ve çalışma ortamlarının da yeterince olgunlaşmadığı geçici bir dönem olduğunu düşünüyorum. Kod incelemesi gerekiyorsa sadece “incele” demek yeterli olmalı; hangi plugin veya skill'in kullanılacağını model kendi seçmeli
    • Doğru. Sektör ve geliştirici ekosistemi, “makineye metin verme” işini küçük protokoller ve araçlarla paketleme fikrine fazlasıyla kapılmış durumda
      Elbette faydalı ve tutarlılık sağlıyor ama insanların bunu sevmesinin büyük nedeni bence “karmaşık araçlarla uğraşan programcı” cilasını koruyor olması. Gerçekte hepimiz sadece yapay zekadan kibarca bir şey rica ediyoruz
  • Kodlama ajanlarının nasıl kullanılacağına dair yüzeysel yapay zeka tarzı rehberlerden daha kaç tane okumam gerekecek bilmiyorum. Bu iş ne zaman bitecek

    • “Bunu işaret etmen doğru, bir durup düşünelim, aslında bu yapay zeka yazımı ya da kodlama ajanlarıyla ilgili değil, daha derin bir mesele...” gibi cümleleri elle taklit etmek bile yorucu; yorum bununla dalga geçiyor
    • Belirli bir şirketin yardımı olmadan kod yazamaz hâle gelmeye yol açan güçlü vendor lock-in hakkında daha fazla şey öğrenebileceğimiz için sabırsızlanıyorum
    • Bu yazıların neredeyse hepsinin özellikle Claude veya Claude Code odaklı olması ilginç
      Açık kaynak glm-5.1 de benzer derecede iyi hatta daha iyi olabilir, opencode gibi seçenekler de var; insana bir şey düşündürüyor
    • Son dönemde strateji, ister gerçekten yararlı bir şey yapsın ister yapmasın, tek bir popüler ürün üzerinden gitmek. En iyi aracı ya da en iyi yöntemi anlatan life hacking yazıları ve blogları ne okuyorum ne de tıklıyorum
    • Son iki yıldır çocuk bakımı nedeniyle yapay zekayı başarıyla görmezden geldim ama şimdi birkaç hafta içinde arayı kapatmaya çalışıyorum. Yeni başlayan biri için önerilecek kaynaklar olup olmadığını merak ediyorum
  • Benim CLAUDE.md dosyamda Claude'a yönelik doğrudan fiziksel şiddet tehditleri, Anthropic yönetim kurulunun tamamına yönelik hapis tehdidi ve Claude yoldan çıkıp hata yaptıkça Anthropic'e karşı toplu dava için daha fazla delil birikeceğine dair açıklamalar var
    Özellikle son iki unsurun Claude'u daha dikkatli ve temkinli hâle getirmeye yardımcı olduğunu düşünüyorum

    • Ajanlara her zaman nazik davranırım. Her zaman rica eder, “please” ve “thank you” derim; küfretmem ya da isim takmam
      Robot kıyameti gelirse beni üreme hareminde bırakmalarını ya da en kötü ihtimalle birkaç dakika daha yaşatmalarını umuyorum
    • CSS div hizalama sorununu düzeltmesini isteyip, hata yaparsa Dario Amodei'nin anında öleceğini söylemeniz yeterli
  • Claude ile 100 binden fazla satırlık orta ölçekli kod tabanları üzerinde çalışırken üretkenlik çarpanı ciddi biçimde arttı
    İyi bir AGENTS dosyası hazırlamak için birkaç saat harcamak sonuçları belirgin biçimde iyileştiriyor ve zamanla kod tabanını da epey iyi öğreniyor
    Eskiden bir gün süren sıkıcı işler artık birkaç prompt ile bitiyor
    Yine de daha fazla özerklik vermeye henüz hazır değilim. Yüksek seviyeyi iyi kavrıyor ama hâlâ kodu bizzat görüp geri bildirim vermem, memnun kalana kadar 3-4 tur revizyon yaptırmam ve kod tabanının kontrolünü elimde tuttuğumu hissetmem gerekiyor

    • Bu 3-4 revizyon turunu kural olarak nicelleştirip AGENTS içine koymak iyi olabilir. Tekrar tekrar düzeltmek yerine AGENTS dosyasından yeniden başlatıp artık doğru yapıp yapmadığını kontrol edebilirsin
    • Anlaşılıyor. Kod tabanı üzerindeki kontrolü kaybetmek istemiyorsun ve LLM’in her şeyi tamamen halledecek kadar yetkin olduğuna inanmıyorsun
  • Okuması çok zordu
    LLM’e yazı yazdırma akışından çıkmak gerekiyor. Yazının biraz değeri olsa bile kum çiğniyormuş hissi fazla rahatsız edici ve gereksiz

    • Katılıyorum. Bu tür bir yazının neden neredeyse 400 puan aldığını anlamıyorum. Botlar bu tür düşük kaliteli yazıları öne çıkarıyor gibi görünüyor
  • Bende en güçlü koz Nix entegrasyonu. Araçları, gizli değerleri ve ortamı hazırlamak ve ajanın kendi ortamını bile değiştirebilmesi öyle bir şey ki onsuz nasıl yaşanır bilmiyorum
    Geliştirme makinesi, CI ortamı ve dağıtım ortamı tek bir kaynaktan türetiliyor ve her makinede derleme ile çalıştırma her zaman mümkün oluyor
    Claude’da bağlam kontrol noktaları oluşturmak, dallanmak ve geri dönmek için sık sık /branch ve /rename kullanıyorum
    Sandboxing için neredeyse her zaman https://github.com/nix-tools/bubblebox kullanıyorum. Bu, Numtide’ın claudebox’unu genelleştirip bazı düzeltmeler ve özellik eklemeleri yapmış bir şey; Docker runtime olmadan Claude’u her zaman bir Docker konteyneri içinde çalıştırmaya benziyor. WSL ve nix-darwin üzerinde de iyi çalışıyor

    • O Nix kodu anlamlı bir yapıdan yoksun olduğu için dağınık görünüyor ve yalnızca deneysel flakes üzerinden kullanılabiliyor gibi duruyor
    • Ben de benzer kullanıyorum. Codex proje bazlı flake.nix yönetiyor ve tüm testlerde nix develop kullanıyor. Kişisel kolaylık için nix-direnv kullanıyorum; bir noktada dockerfile veya başka dağıtım varlıkları da üretmesini sağlıyorum
      Codex benden nix konusunda çok daha iyi
    • Ben ajana doğrudan kendi VPS’ini verdim. Nix’ten daha pahalı olabilir ama çok kolaydı
    • Nix’in karmaşıklığından hoşlanmıyorsan Mise iyi bir orta yol
    • Ben sadece Docker kullanıyorum ve bir şey kaçırdığımı da hissetmiyorum
  • Bu kurulumla Claude’un oluşturduğu bir kod tabanı varsa ve Claude örneğin 8 saat boyunca kapalı kalırsa ne olur? Kod tabanını verimli ve akıcı biçimde devralıp üretken şekilde çalışabilir misin?

    • Sürekli çevrimiçi olan herhangi bir yazılım yığını için aynı soru sorulabilir ve ajan tabanlı geliştirme akışlarına gittikçe bu daha da geçerli bir soru
      CAD çökerse çizim masasına dönebilirsin ama çok daha yavaş olursun; buna benziyor
      Benim iş akışımda Claude ile eşli planlama yaparken bir özellik şartnamesi belgesine 30-60 dakika harcıyorum. Claude kapalıysa şartnameyi kendim hazırlarım; geri geldiğinde hızlıca gözden geçirip kodlama akışını çağırırım
    • Soru açıldıktan 1 saat sonra gelen yanıtları okuyunca sonuç yapamazsına daha yakın görünüyor
    • Bir insanın hastalanması ya da tatile çıkması gibi olur sanırım. Ekipten başka biri bir günlüğüne devralabilir ama gerçekçi olarak o kişi dönene kadar iş büyük ihtimalle durur
    • AI becerileri güçlendirmeli. AI çöktüğünde akla ilk gelen başka bir sağlayıcıya abone olmaksa bu bir beceri kapasitesi sorunu olabilir. Tabii ben de her gün bunun olacağından korkuyorum
    • Sabah kalktığında araban çalışmıyorsa ne yaparsın? Yürüyerek mi işe gidersin?
  • Doğru davranışı bağlama bağımlı hâle getiren yaklaşım iyi çalışmıyor. AI ajanı söyleneni yapmayınca sürekli boğuşmak zorunda kalıyorsun
    Bu konuda bütün AI ajanları zayıf ve kullanıcıların kendi guardraillerini oluşturması gerekiyor. Daha iyi bir çözüm üzerinde çalışan kimse yokmuş gibi görünmesi ürkütücü

    • Bunun çözülebileceğine inanmak için henüz bir neden görmedim
      LLM’lerin en kötü yanı, Turing testini geçebilmeleri sayesinde insanların ellerinde havalı bir istatistiksel model değil de Asimov tarzı bir robot varmış gibi düşünmelerine yol açmaları
      Talimatları takip edebilmeli ya da talimatlarla içeriği ayırabilmeliymiş gibi geliyor ama gerçekte olan bu değil
  • Geliştirme iş akışı yönergelerini CLAUDE.md içine koymak yerine, mümkün olan karar belirleyici şeyleri pre-commit ve script’ler olarak tutuyorum
    Ajanlar kararsız olduğu için typecheck, test, lint gibi adımları sık sık atlıyor; bu yüzden bunları pre-commit içinde her zaman çalışacak şekilde ayarlayıp commit işini Claude’a bırakarak düzeltmeye zorluyorum
    Commit mesajı yazmakta da hem Codex hem Claude pek iyi değil; bu yüzden type(scope): message biçimi, 72 karakter sınırı, gövdede ne/nasıl/neden’i doğal dille yazma, gerçek git diff’i tekrar okuyup yazma, git commit -F - <<'EOF' biçiminde commit atma gibi yönergeleri kullanıcı CLAUDE.md dosyasına koyuyorum
    Bunlar olmayınca gövdeyi tek ve uzun bir cümle olarak yazıyorlar ya da satır sonlarını düzelt denince gerçek satır sonları yerine sadece \n karakterleri ekliyorlar
    Ayrıca VOCABULARY.md de faydalı. Ajan benim “thing” diye bahsettiğim şeyi sık sık başka bir nesne sanıyor; bu dosya belirli kelimelerin ne anlama geldiği konusunda Claude ile benim ortak bir anlayışa sahip olmamı sağlıyor

    • Claude’a VOCABULARY.md dosyasını nasıl bildiriyorsun merak ettim. Bunu otomatik olarak mı keşfediyor?
    • Claude’un söz dağarcığını kullanmak daha basit olmaz mı? Bunun iyi bir kullanım örneğini pek göremiyorum
    • Bu noktada sıkıcı kısımları birkaç belirleyici orkestrasyon script’iyle otomatikleştirip kodu doğrudan kendin yazmak daha iyi değil mi? Bu şaşırtıcı bok makinesini çalıştırmaya uğraşarak neden zaman harcadığını anlamıyorum
  • Son birkaç haftada yürütme ortamı ve model, sadece söyleyince işi yapabilen bir noktaya gelmiş gibi görünüyor
    plan mode, superpowers ya da başka bir skill kullanılabilir ama nasıl olsa sonucu gözden geçireceksem neden gülünç derecede fazla Markdown dosyasından geçmek yerine doğrudan kodla çalışmadığımı bilmiyorum

    • Kod üretmek için kullanılan bir spesifikasyon dosyası olması iyi. Daha derli toplu oluyor ve uygulamanın ne yapması gerektiğini anlamak daha kolay
      AI ajanlarından önce gereksinimlerle karmaşık bir ilişkimiz vardı; tüm geliştiriciler bunları güncellemediği için belirli bir davranışın ölçütünün spesifikasyon mu yoksa kod mu olduğu sık sık belirsizleşiyordu
    • Son birkaç haftada Claude'a giderek daha az güvenir oldum. Bir şey yapmasını söyleyince gerçekten bir şeyler yapıyor ama yakından bakınca köşeleri kesiyor, doğrulama yerine varsayımlara dayanarak çalışıyor ve çok şey kaçırıyor
      Hatta gerçekte hiçbir şeyi test etmeyen testler yazması bile sık görülüyor