# Claude Code Plan Mode: AI ile Yazilim Mimarisi Planlama
"Once plan, sonra kod" — yazilim gelistirmenin en eski kurallarindan biri. Claude Code'un Plan Mode'u bu prensibi AI ile birlestiriyor: codebase'ini analiz eder, degisiklik haritasi cikarir, onayini alir ve tek seferde uygular. Bu yazida Plan Mode'un nasil calistigindan, CLAUDE.md yapilandirmasina, exploration stratejisinden approval workflow'a kadar her seyi ogrenecegiz.
Not: Bu rehber Claude Code resmi dokumantasyonu, Anthropic haberleri ve 100+ Plan Mode session deneyimine dayanmaktadir.
Icindekiler
- Plan Mode Nedir?
- Normal Mode vs Plan Mode
- Plan Mode Calisma Akisi
- CLAUDE.md ile Proje Hafizasi
- Codebase Exploration Stratejisi
- Degisiklik Haritasi Olusturma
- Approval Workflow
- Boris Cherny EPCT+ Entegrasyonu
- Gercek Proje Ornekleri
- Sonuc ve Oneriler
1. Plan Mode Nedir?
Plan Mode, Claude Code'un once dusunup sonra hareket etmesini saglayan bir calisma modudur. Normal modda Claude hemen kod yazmaya baslar; Plan Mode'da ise once analiz yapar, plan cikarir, onayini alir ve sonra uygular.
Temel Farklar
Ozellik | Normal Mode | Plan Mode |
|---|---|---|
Baslangic | Hemen kodlama | Once analiz |
Dosya degisikligi | Aninda | Onay sonrasi |
Risk | Yanlis degisiklik | Dusuk (onay var) |
Hiz | Hizli | Daha yavas ama guvenlir |
Buyuk degisiklik | Riskli | Ideal |
Karmasik mimari | Eksik analiz | Kapsamli |
Pro Tip: Plan Mode'u 3+ dosya degisecek her durumda kullan. 1-2 dosyalik degisiklikler icin normal mode yeterli.
2. Normal Mode vs Plan Mode
Normal Mode
swift
1Kullanici: "Header'a dark mode toggle ekle"2Claude: [Hemen header.tsx'i acar, kodu degistirir]3 [Belki context'i kacirir, eksik kalir]Plan Mode
swift
1Kullanici: "Header'a dark mode toggle ekle"2Claude: [once header.tsx, theme-provider, layout.tsx okur]3 [Bagimliliklari analiz eder]4 [Plan cikarir: 4 dosya, 3 adim]5 [Onay bekler]6 [Tek seferde uygular]3. Plan Mode Calisma Akisi
Plan Mode su adimlardan olusur:
Adim 1: Exploration (Kesfetme)
Claude Code codebase'i tarar:
swift
11. Glob ile dosya yapisi kesfet22. Grep ile pattern'leri bul33. Read ile kritik dosyalari oku44. Import/export zincirlerini takip et55. Bagimliliklari haritalaAdim 2: Analysis (Analiz)
Toplanan bilgilerle degisiklik planini olusturur:
swift
1Degisiklik Haritasi:2├── src/components/header.tsx(DUZENLEME)3│ ├── DarkModeToggle component import4│ └── Toggle buton ekleme5├── src/providers/theme-provider.tsx(YENI DOSYA)6│ ├── ThemeContext olusturma7│ └── useTheme hook export8├── src/app/layout.tsx(DUZENLEME)9│ └── ThemeProvider wrapper ekleme10└── src/styles/globals.css(DUZENLEME)11 └── Dark mode CSS degiskenleriAdim 3: Approval (Onay)
Kullanici plani inceler:
- Onaylarsa: Claude tek seferde uygular
- Degistirirse: Claude plani gunceller
- Reddederse: Hicbir dosya degismez
Adim 4: Execution (Uygulama)
Onaylanan plan tek seferde, tutarli sekilde uygulanir.
4. CLAUDE.md ile Proje Hafizasi
CLAUDE.md dosyasi, Claude Code'un proje hakkindaki "hafizasi"dir. Plan Mode'da bu dosya kritik oneme sahiptir:
markdown
1# Proje Adi2 3## Tech Stack4- Next.js 15, React 19, TypeScript, Tailwind CSS5- Static export (middleware/server actions KULLANILAMAZ)6 7## Golden Rules81. Build sadece sunucuda — local build YASAK92. LazyMotion zorunlu (motion degil, m component kullan)103. use client + generateStaticParams ayni dosyada OLMAZ11 12## Code Rules13 14### TypeScript15- Strict mode, any YASAK16- Interface for objects, type for unions17 18### React19- Hooks sirasi: useState > useRef > custom > useEffect > handlers > return20 21### Tailwind22- Mobile-first: base > sm > md > lg > xl23 24## Commands25- /deploy: rsync + build + copy + verify26- /audit: Sayfa bazli site denetimiCLAUDE.md Yerlesim Hiyerarsisi
swift
1~/.claude/CLAUDE.md # Global(tum projeler)2~/proje/.claude/CLAUDE.md # Proje spesifik3~/proje/CLAUDE.md # Proje root(version controlled)4~/proje/.claude/rules/*.md # Ek kurallarClaude Code bu dosyalari su oncelik sirasinda okur:
- Global CLAUDE.md
- Proje CLAUDE.md
- Rules dizinindeki .md dosyalari
Pro Tip: CLAUDE.md'ye "Golden Rules" bolumu ekle — Claude'un ASLA yapmamasi gereken seyler. Bu, Plan Mode'da ozellikle onemli cunku Claude kurallari planlama asamasinda kontrol eder.
5. Codebase Exploration Stratejisi
Plan Mode'un en kritik asamasi dogru exploration'dir:
Strateji 1: Top-Down
swift
11. Proje root'u incele(package.json, tsconfig, next.config)22. src/ dizin yapisini tara33. Hedef dosyalari oku44. Import zincirlerini takip etStrateji 2: Bottom-Up
swift
11. Degisecek dosyayi oku22. Bu dosyayi import eden dosyalari bul33. Bagimliliklari haritalat44. Etki alanini belirleStrateji 3: Grep-First
swift
11. Anahtar kelimeyi tum codebase'de ara22. Tum kullanim noktalarini belirle33. Propagasyon haritasi cikar44. Degisiklik planini olusturtypescript
1// Ornek: "stats" degerini degistirmek istiyorsun2// Grep-first strateji:3 4// 1. Tum kaynaklari tara5Grep({ pattern: "60\+", path: "src/" })6// Sonuc: 8 dosyada 12 kullanim7 8// 2. Her kullanimi incele9Read({ file_path: "src/lib/constants.ts" }) // Ana kaynak10Read({ file_path: "src/components/about.tsx" }) // UI11Read({ file_path: "src/app/layout.tsx" }) // SEO12 13// 3. Degisiklik haritasi:14// constants.ts → about.tsx → layout.tsx → seo-config.ts15// 4 dosya, 12 yer, tek tutarli degisiklikBu yaklasim SwiftUI Performance yazimizda anlattigimiz "once olc sonra optimize et" prensibiyle birebir oturuyor.
6. Degisiklik Haritasi Olusturma
Iyi bir degisiklik haritasi su unsurlari icerir:
markdown
1## Degisiklik Haritasi2 3### Etkilenen Dosyalar (5 dosya)4 5| Dosya | Islem | Satir | Risk |6|-------|-------|-------|------|7| src/lib/constants.ts | DUZENLE | ~20 | Dusuk |8| src/components/header.tsx | DUZENLE | ~50 | Orta |9| src/providers/theme.tsx | YENI | ~80 | Dusuk |10| src/app/layout.tsx | DUZENLE | ~10 | Yuksek |11| src/styles/globals.css | DUZENLE | ~30 | Dusuk |12 13### Bagimllik Zinciri14constants.ts → header.tsx → layout.tsx15 → theme.tsx (yeni)16 17### Riskler18- layout.tsx degisikligi tum sayfalari etkiler19- Theme provider SSR/hydration uyumlulugu kontrol edilmeli20- globals.css degisikligi cascade etkisi yaratabilir21 22### Test Plani231. Build basarili mi?242. Homepage dogru render mi?253. Dark/light toggle calisiyor mu?264. Hydration hatasi var mi?7. Approval Workflow
Plan Mode'da onay sureci su sekilde isler:
Interaktif Onay
swift
1Claude: Degisiklik plani hazir. 5 dosya, 3 yeni fonksiyon.2 3[Plan detaylari...]4 5Onayliyor musunuz? (Evet / Degistir / Iptal)6 7Kullanici: "Layout.tsx degisikligini biraz daha detaylandir"8 9Claude: [Plani gunceller, tekrar sunar]10 11Kullanici: "Tamam, uygula"12 13Claude: [5 dosyayi tek seferde degistirir]Otomatik Plan Mode
settings.json ile varsayilan mod olarak ayarlayabilirsin:
json
1{2 "permissions": {3 "defaultMode": "plan"4 }5}Plan Mode Kisayollari
Kisayol | Aciklama |
|---|---|
Shift+Tab | Normal ve Plan Mode arasinda gecis |
/plan | Plan Mode'a gec (CLI) |
Tab Tab | VS Code'da mod degistirme |
8. Boris Cherny EPCT+ Entegrasyonu
Plan Mode, Boris Cherny'nin EPCT+ workflow'u ile mukemmel uyum saglar:
swift
1EPCT+ Fazlari:21. Explore — CLAUDE.md + MEMORY.md oku, codebase tara32. Plan — Plan Mode'da degisiklik haritasi cikar, onay al43. Code — Onaylanan plani tek seferde uygula54. Test — Lint/analyze/build calistir65. Verify — Canli dogrulama(Playwright, curl)76. Document — MEMORY.md + lessons.md guncelleKarmasiklik Kademesi
Karmasiklik | Yontem | Plan Mode? |
|---|---|---|
Trivial (1-2 satir) | Read-Edit-Verify | Hayir |
Normal (3-10 satir) | Explore-Code-Test | Opsiyonel |
Karmasik (3+ dosya) | Full EPCT+ Sprint | ZORUNLU |
typescript
1// Ornek: Karmasik is - Plan Mode zorunlu2// "19 yeni proje ekle" gorevi3 4// Explore: Mevcut proje yapisi, interface, standards5// Plan: 19 proje x 11K karakter = ~200K icerik, 5 paralel agent6// Code: Her agent 3-4 proje yazar (paralel)7// Test: TypeScript strict, lint, build8// Verify: Playwright canli test (82 assertion)9// Document: MEMORY.md + worklog guncelleiOS Design Patterns yazimizda anlattigimiz SOLID prensipleri gibi — Plan Mode da Single Responsibility prensibini uygular: once planla, sonra kodla.
9. Gercek Proje Ornekleri
Ornek 1: Blog Sistemi Genisletme
markdown
1Gorev: 94 blog'a 7 yeni blog ekle (part15)2 3Plan:41. Mevcut blog yapisini incele (blog-data.ts, interface)52. Slug benzersizligini kontrol et (94 mevcut slug)63. blog-posts-part15.ts olustur (7 blog, 10K+ karakter)74. blog-data.ts'e import ekle85. RSS guncelle (94 > 101)9 10Etkilenen Dosyalar:11- blog-posts-part15.ts (YENI)12- blog-data.ts (IMPORT)13- public/rss.xml (GUNCELLE)Ornek 2: Admin Panel Overhaul
markdown
1Gorev: Admin panele analytics dashboard ekle2 3Plan:41. Recharts kutuphane kurulumu52. page-tracking.ts servis olustur63. analytics/page.tsx dashboard sayfasi74. Sidebar link ekleme85. Firestore rules guncelleme9 10Etkilenen Dosyalar: 6 dosya (2 yeni + 4 guncelleme)11Sprint: 4 faz, multi-agent ile 2. ve 3. paralelOrnek 3: SEO Audit Fix
markdown
1Gorev: 11 sayfa SEO metadata zenginlestirme2 3Plan:41. Tum layout.tsx dosyalarini tara52. Eksik Schema.org, OG, Twitter Card belirle63. Her sayfanin meta description uzunlugu kontrol74. Toplu guncelleme (Grep-first strateji)8 9Etkilenen Dosyalar: 12 layout.tsx + sitemap.tsFirebase Advanced Patterns yazimizda anlatilanlar gibi — buyuk degisiklikler oncesinde tum bagimlilik zincirini gormek kritik.
10. Sonuc ve Oneriler
Plan Mode, buyuk degisikliklerde hata riskini minimize eden en etkili yaklasimdir. "Once dusun, sonra kodla" prensibi AI ile birlestigi zaman muhtesem sonuclar ortaya cikiyor. Plan sonrasi hook'larla kalite kontrolu ekleyerek sureci daha da saglam hale getirebilirsin. MCP entegrasyonu hakkinda detaylar icin MCP rehberimize goz atabilirsin.
Oneriler:
- 3+ dosya kurali — 3 dosya degisecekse Plan Mode zorunlu
- CLAUDE.md zenginlestir — Ne kadar bilgi verirsen o kadar iyi plan cikar
- Exploration atla — Plan Mode'un gucunu exploration yapar
- Onay ver — Plani incele, gerekirse revize et
- EPCT+ kullan — Plan Mode, EPCT+ workflow'unun 2. fazidir
ALTIN İPUCU
Bu yazının en değerli bilgisi
Bu ipucu, yazının en önemli çıkarımını içeriyor.
Easter Egg
Gizli bir bilgi buldun!
Bu bölümde gizli bir bilgi var. Keşfetmek ister misin?
Okuyucu Ödülü
🎉 **Sonuna Kadar Okuyan Kahraman!** Tebrikler! Iste sana ozel bir CLAUDE.md template'i: [Claude Code CLAUDE.md ornekleri](https://github.com/anthropics/claude-code) reposundaki docs/ dizininde duzinelerce gercek dunya CLAUDE.md ornegi var. Kendi projenize uyarlayarak baslayabilirsiniz.

