- 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
-
Resmi belgeler
-
Boris ve ekip
-
Skills
-
Subagents
-
Plugins ve marketplace’ler
-
MCP’ler
1 yorum
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-reviewskill'i,/pr-reviewsubagent'i,/code-reviewplugin'i ve doğrudan Claude'dan inceleme istemek olmak üzere beş seçenek varSonuç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 checkgibi araçları doğrudan çağırması da fazlasıyla yeterliydiEn güncel sürümlerde
/code-reviewdengeli bir inceleme yapıyor,/code-review --fixdüzeltmeleri de uyguluyor ve/code-review low|medium|high|xhigh|maxile harcanacak çaba seviyesini seçebiliyorsunuz/code-review ultrapahalı 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ı hedefliyorKullanımı daha iyi hâle getirecek fikirleriniz varsa geri bildirim almak isterim
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ı
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
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
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
Benim
CLAUDE.mddosyamda 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
Robot kıyameti gelirse beni üreme hareminde bırakmalarını ya da en kötü ihtimalle birkaç dakika daha yaşatmalarını umuyorum
divhizalama sorununu düzeltmesini isteyip, hata yaparsa Dario Amodei'nin anında öleceğini söylemeniz yeterliClaude ile 100 binden fazla satırlık orta ölçekli kod tabanları üzerinde çalışırken üretkenlik çarpanı ciddi biçimde arttı
İyi bir
AGENTSdosyası hazırlamak için birkaç saat harcamak sonuçları belirgin biçimde iyileştiriyor ve zamanla kod tabanını da epey iyi öğreniyorEskiden 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
AGENTSiçine koymak iyi olabilir. Tekrar tekrar düzeltmek yerineAGENTSdosyasından yeniden başlatıp artık doğru yapıp yapmadığını kontrol edebilirsinOkuması ç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
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
/branchve/renamekullanıyorumSandboxing 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
flake.nixyönetiyor ve tüm testlerdenix developkullanı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ıyorumCodex benden nix konusunda çok daha iyi
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?
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
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ü
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.mdiçine koymak yerine, mümkün olan karar belirleyici şeyleri pre-commit ve script’ler olarak tutuyorumAjanlar 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 zorluyorumCommit mesajı yazmakta da hem Codex hem Claude pek iyi değil; bu yüzden
type(scope): messagebiçimi, 72 karakter sınırı, gövdede ne/nasıl/neden’i doğal dille yazma, gerçekgit diff’i tekrar okuyup yazma,git commit -F - <<'EOF'biçiminde commit atma gibi yönergeleri kullanıcıCLAUDE.mddosyasına koyuyorumBunlar 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
\nkarakterleri ekliyorlarAyrıca
VOCABULARY.mdde 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ıyorVOCABULARY.mddosyasını nasıl bildiriyorsun merak ettim. Bunu otomatik olarak mı keşfediyor?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
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
Hatta gerçekte hiçbir şeyi test etmeyen testler yazması bile sık görülüyor