---
title: İstem mühendisliği
description: Etkili istemler yazmak için en iyi uygulamalar
---

---

Etkili istemler, başarılı yapay zeka destekli geliştirmenin temelidir. Uygun bağlamla desteklenen açık ve net istekler, Verdent'in doğru ve ilgili sonuçlar sunmasını sağlar.

### Neler öğreneceksiniz

- Etkili istemler yazmak için en iyi uygulamalar
- Bağlam sağlama ve yaygın hatalardan kaçınma yöntemleri
- @-bahsetmeleri ve alt aracı yetkilendirmesi gibi gelişmiş teknikler
- İyi yapılandırılmış istem örnekleri
- Yinelemeli iyileştirme stratejileri

---

## Etkili bir istemi ne yapar

Etkili istemler açık ve nettir; Verdent'in amacınızı anlaması ve doğru sonuçlar üretmesi için gerekli bağlamı sağlar.

**Temel ilkeler:**
- **Net olun** - Belirsiz istekler yerine tam olarak neye ihtiyacınız olduğunu belirtin
- **Ayrıntı verin** - Tercihleriniz varsa teknik özellikleri belirtin
- **Kapsamı belirtin** - Hangi dosyaların/bileşenlerin dahil olduğunu netleştirin
- **Bağlam sağlayın** - Verdent'in mimarinizi anlamasına yardımcı olun
- **Sonuçları belirtin** - Başarının nasıl göründüğünü açıklayın
- **Doğal dil kullanın** - Özel söz dizimi gerekmez

**Örnek dönüşümler:**

**Kötü:**
```
Fix the code
```

**İyi:**
```
Add input validation to the email field in ContactForm.js to reject invalid email formats
```

**Kötü:**
```
Add authentication
```

**İyi:**
```
Add JWT authentication using the same middleware pattern as auth.js, store tokens in httpOnly cookies
```

---

## Yaygın istem hataları

<Tabs>
  <Tab title="Fazla belirsiz olmak">
    **Örnek istemler:**
    ```
    Make the app better
    ```
    ```
    Fix the bugs
    ```

    | Sorun | Çözüm |
    |---------|----------|
    | Verdent hangi iyileştirmeleri istediğinizi veya hangi hataları ele alacağını bilmez | Tam olarak neyin iyileştirilmesi veya hangi hatanın düzeltilmesi gerektiğini belirtin |
  </Tab>

  <Tab title="Bağlamı atlamak">
    **Örnek istemler:**
    ```
    Add authentication
    ```

    | Sorun | Çözüm |
    |---------|----------|
    | OAuth kullandığınızda Verdent JWT uygulayabilir veya tam tersi olabilir | Uygulama yaklaşımını, mevcut kalıpları ve teknik gereksinimleri belirtin |
  </Tab>

  <Tab title="Tek seferde çok fazlası">
    **Örnek istemler:**
    ```
    Build the entire user management system with authentication, authorization, profiles, settings, and admin dashboard
    ```

    | Sorun | Çözüm |
    |---------|----------|
    | Karmaşık, çok sistemli istekleri tek seferde doğru yürütmek daha zordur | Daha küçük görevlere bölün - önce kimlik doğrulama, sonra yetkilendirme, ardından profiller |
  </Tab>

  <Tab title="Eksik kapsam">
    **Örnek istemler:**
    ```
    Update the validation logic
    ```

    | Sorun | Çözüm |
    |---------|----------|
    | Hangi dosyaların veya doğrulamanın değiştirileceği belirsiz | Kapsamı belirtin: "UserController.js dosyasındaki doğrulamayı güçlü parola gerektirecek şekilde güncelle" |
  </Tab>

  <Tab title="Belirtilmemiş gereksinimler">
    **Örnek istemler:**
    ```
    Expecting Verdent to know your specific business rules or constraints
    ```

    | Sorun | Çözüm |
    |---------|----------|
    | Verdent sizin özel gereksinimleriniz olmadan genel çözümler uygular | Tüm kısıtlamaları, iş kurallarını ve gereksinimleri açıkça belirtin |
  </Tab>

  <Tab title="Eksik @-bahsetmeleri">
    **Örnek istemler:**
    ```
    Referencing files without including them in context
    ```

    | Sorun | Çözüm |
    |---------|----------|
    | Verdent bahsettiğiniz dosyalara erişimi olmayabilir | İlgili dosyaları açıkça dahil etmek için @filename.js kullanın |
  </Tab>

  <Tab title="Hataları görmezden gelmek">
    **Örnek istemler:**
    ```
    Repeatedly asking for the same thing when Verdent encounters errors
    ```

    | Sorun | Çözüm |
    |---------|----------|
    | Aynı yaklaşım aynı hataları verir | Hata mesajlarını okuyun, başarısız olana göre istemi ayarlayın |
  </Tab>

  <Tab title="Plan Mode atlamak">
    **Örnek istemler:**
    ```
    Requesting large refactorings or multi-file changes without using Plan Mode first
    ```

    | Sorun | Çözüm |
    |---------|----------|
    | Dosyalar zaten değiştirilene kadar tüm kapsamı göremezsiniz | Karmaşık görevlerde, yürütmeden önce yaklaşımı incelemek için Plan Mode'a geçin |

    <Tip>
    Karmaşık değişikliklerde, yürütmeden önce yaklaşımı incelemek için Plan Mode'ı etkinleştirin; bu, yanlış anlamaları erkenden yakalar.
    </Tip>
  </Tab>

  <Tab title="Sürüm kontrolü yok">
    **Örnek istemler:**
    ```
    Using Auto-Run or Skip Permission Mode without Git initialized
    ```

    | Sorun | Çözüm |
    |---------|----------|
    | Verdent istenmeyen değişiklikler yaparsa güvenlik ağı olmaz | İzin verici modları kullanmadan önce daima Git'in başlatılmış ve commit edilmiş olmasına dikkat edin |
  </Tab>

  <Tab title="Görüşme isteği yok">
    **Örnek istemler:**
    ```
    Providing incomplete requirements and expecting Verdent to guess correctly
    ```

    | Sorun | Çözüm |
    |---------|----------|
    | Verdent ihtiyaçlarınızla eşleşmeyebilecek varsayımlara dayanarak uygular | Verdent'tan sizinle görüşmesini isteyin: "Planı oluşturmadan önce gereksinimler hakkında bana açıklayıcı sorular sor" |
  </Tab>
</Tabs>

---

## İyi yapılandırılmış istem örnekleri

<Tabs>
  <Tab title="Özellik uygulaması">
    Açık gereksinimler ve kısıtlamalarla yeni işlevsellik oluşturma:

    ```
    Create a POST /api/tasks endpoint that:
    - Accepts task title (required), description (optional), and category_id (required)
    - Validates that the category exists in the database
    - Returns 400 if validation fails with descriptive error messages
    - Saves the task to the database and returns the created task with 201 status
    - Add this to the existing tasks router in routes/tasks.js
    - Create the controller method in controllers/taskController.js
    - Use the existing error handling pattern from other controllers
    ```

    **Bunu etkili kılan nedir:**
    - Girdiler ve doğrulama için açık gereksinimler
    - Uygulama için belirli dosya konumları
    - Tutarlılığı korumak için mevcut kalıplara referans
    - Beklenen HTTP durum kodları ve hata işleme
  </Tab>

  <Tab title="Hata düzeltme">
    Sorunları bağlam ve önerilen çözümlerle açıklama:

    ```
    Fix the race condition in payment processing at checkout. When multiple users submit payments simultaneously, some transactions fail with "duplicate order ID" errors. The issue appears to be in PaymentController.js around line 45 where we generate order IDs. Implement proper locking or use UUID generation to ensure unique IDs even under concurrent load.
    ```

    **Bunu etkili kılan nedir:**
    - Belirtilerle açık sorun açıklaması
    - Sorunun belirli konumu (dosya ve satır numarası)
    - Ne zaman olduğu hakkında bağlam (eşzamanlı kullanıcılar)
    - Önerilen çözüm yaklaşımları
  </Tab>

  <Tab title="Yeniden düzenleme">
    Davranışı korurken uygulamayı değiştirme:

    ```
    Refactor the authentication middleware in middleware/auth.js to use JWT tokens instead of session cookies. Keep the same authorization logic, but:
    - Replace session validation with JWT verification
    - Store tokens in httpOnly cookies
    - Maintain the existing user object structure that routes expect
    - Update only the authentication mechanism, don't change authorization rules
    - Ensure all existing routes continue to work without modification
    ```

    **Bunu etkili kılan nedir:**
    - Açık hedef (oturumlar yerine JWT)
    - Yeniden düzenlenecek belirli dosya
    - Açık kısıtlamalar (neyin DEĞİŞMEMESİ gerektiği)
    - Geriye dönük uyumluluk gereksinimi
  </Tab>

  <Tab title="Test">
    Kapsamlı kapsama sahip testler yazma:

    ```
    Write comprehensive unit tests for the UserService class in services/UserService.js. Cover:
    - User creation with valid and invalid data
    - Email validation edge cases (empty, malformed, duplicate)
    - Password hashing verification
    - User lookup by ID and email
    - Error handling for database failures
    Use Jest and follow the testing patterns in existing service tests
    ```

    **Bunu etkili kılan nedir:**
    - Test edilecek belirli sınıf/dosya
    - Kapsanacak senaryoların tam listesi
    - Belirtilen test çerçevesi
    - Mevcut test kalıplarına referans
  </Tab>

  <Tab title="Bileşen oluşturma">
    Ayrıntılı özelliklerle UI bileşenleri oluşturma:

    ```
    Create a reusable SearchBar component for the product catalog with:
    - Text input with real-time debounced search (300ms delay)
    - Category dropdown filter (fetch options from /api/categories)
    - Price range slider (min $0, max $1000)
    - Clear filters button
    - Use Material-UI components to match existing design
    - Emit search parameters via onChange callback to parent
    - Include PropTypes for all props
    ```

    **Bunu etkili kılan nedir:**
    - Belirli ayrıntılarla tam özellik listesi
    - Teknik özellikler (300ms gecikme, fiyat aralığı)
    - Belirtilen UI kütüphanesi (Material-UI)
    - Entegrasyon yaklaşımı (üst bileşene geri çağırma)
  </Tab>
</Tabs>

---

## Gelişmiş istem teknikleri

<Tabs>
  <Tab title="@-bahsetmeleri">
    Belirli dosyalara, bileşenlere veya alt aracılara referans verin:

    ```
    @auth.js @UserController.js Refactor authentication to use the same validation pattern
    ```

    **Avantajlar:**
    - Belirli dosyaları açıkça dahil ederek Verdent'in tam bağlama sahip olmasını sağlar
    - Benzer dosya adlarına sahip büyük kod tabanlarında belirsizliği önler
    - Doğru yeniden düzenleme ve kalıp eşleştirme için tüm ilgili kodun aynı anda görünür olmasını garanti eder
    - Bir dosyadaki uygulama kalıplarını başka bir dosyaya uygulamak için referans verirken kritiktir
  </Tab>

  <Tab title="Plan Mode">
    Büyük değişiklikler için yürütmeden önce Plan Mode'a geçin:

    ```
    Switch to Plan Mode
    Refactor the entire API layer to use TypeScript with strict type checking
    ```

    **Avantajlar:**
    - Herhangi bir dosya değiştirilmeden önce Verdent'in tam yaklaşımını inceleyin
    - Büyük yeniden düzenlemelerde veya mimari değişikliklerde maliyetli hataları önler
    - Yürütme başlamadan önce plan üzerinde yineleyin, kısıtlamalar ekleyin veya tamamen yönlendirin
    - Tüm gereksinimleri önceden toplamak için Verdent'in size açıklayıcı sorularla görüşme yapmasını isteyin
  </Tab>

  <Tab title="Alt aracı yetkilendirmesi">
    Özelleşmiş görevleri yerleşik veya özel alt aracılara devredin:

    ```
    @Code-reviewer Review the security vulnerabilities in authentication flow
    @Explorer Find all files that import the deprecated API client
    @Verifier Validate the authentication logic in the middleware
    ```

    **Avantajlar:**
    - Belirli görevler için optimize edilmiş özelleşmiş aracılardan yararlanın (keşif, doğrulama, kod incelemesi)
    - Genel amaçlı işlemeden daha odaklı uzmanlık ve daha hızlı sonuçlar
    - Toplam yürütme süresini önemli ölçüde azaltmak için birden çok analizi paralel olarak çalıştırın
    - Projenizin benzersiz gereksinimleri için alana özgü bilgiye sahip özel alt aracılar oluşturun

    **Yerleşik varsayılan alt aracılar:**
    - `@Verifier` - Hızlı kod kontrolleri ve doğrulama
    - `@Explorer` - Hızlı kod tabanı keşfi ve dosya bulma
    - `@Code-reviewer` - Kod kalitesi değerlendirmesi

    <Tip>
    Kod tabanı soruları için @Explorer, güvenlik analizi için @Code-reviewer kullanın; hedefli yetkilendirme ana aracı yönlendirmesinden daha hızlıdır.
    </Tip>
  </Tab>

  <Tab title="Think Hard Mode">
    Karmaşık zorluklar için genişletilmiş muhakemeyi etkinleştirin:

    ```
    Think: Design the optimal database schema for a multi-tenant SaaS application
    ```

    **Avantajlar:**
    - Karmaşık sorunları birden çok açıdan daha derin analiz etmek için genişletilmiş muhakemeyi etkinleştirir
    - Alternatif yaklaşımları ve uç durumları daha kapsamlı değerlendirir
    - Doğruluğun en önemli olduğu sağlam çözümler üretir
    - Daha yavaş yanıtlar ve daha yüksek kredi kullanımı, ancak aceleci, optimal olmayan çözümlerden kaynaklanan maliyetli yeniden çalışmayı önler

    <Tip>
    Think Hard Mode, mimari kararlar, karmaşık hata ayıklama ve derin analiz gerektiren algoritmik problemlerde mükemmeldir.
    </Tip>
  </Tab>

  <Tab title="Yinelemeli iyileştirme">
    Önceki yanıtların üzerine kademeli iyileştirmeyle inşa edin:

    ```
    Initial: "Create a dashboard component"
    Follow-up: "Add real-time data updates using WebSockets"
    Follow-up: "Now add filtering and sorting capabilities"
    ```

    **Avantajlar:**
    - Karmaşıklık eklemeden önce her adımda test ile kademeli geliştirmeyi sağlar
    - Üzerine inşa etmeden önce her katmanın doğru çalıştığını doğrulayarak riski azaltır
    - Yinelemeler beklenmedik sonuçlar üretirse hemen rotayı düzeltin
    - Her yineleme küçük ve kontrollü olduğundan, hangi belirli değişikliğin bir hata getirdiğini belirlemeyi kolaylaştırır

    <Tip>
    Yinelemeli iyileştirme riski azaltır; küçük kapsamla başlayın, sonuçları doğrulayın, sonra kademeli olarak genişletin.
    </Tip>
  </Tab>

  <Tab title="Kısıtlama tabanlı">
    Neyin değişeceğinin yanı sıra neyin DEĞİŞMEYECEĞİNİ belirtin:

    ```
    Add caching to the API endpoints, but:
    - Don't modify the authentication middleware
    - Keep the existing error handling unchanged
    - Maintain backward compatibility with mobile clients
    ```

    **Avantajlar:**
    - Kritik sistemleri (kimlik doğrulama, ödemeler) değiştirmeyi önlemek için sınırları açıkça tanımlar
    - Uyumluluk veya risk gereksinimleri nedeniyle değişmeden kalması gereken kararlı sistemleri korur
    - Değişiklikleri uygulama, bozuk işlevsellik keşfetme ve çözümleri yeniden çalışma gibi maliyetli döngülerden kaçınır
    - Geriye dönük uyumluluğu korur ve test edilmiş kodu gereksiz yeniden düzenlemeden korur
  </Tab>

  <Tab title="Referans kalıpları">
    Uygulama örnekleri olarak mevcut koda işaret edin:

    ```
    Implement the new ProductService following the same pattern as UserService.js, including error handling, validation, and database transaction management
    ```

    **Avantajlar:**
    - Yeni uygulamaların yerleşik kurallarla tutarlılığını korumasını sağlar
    - Kod tabanını daha bakımı kolay ve öngörülebilir hale getirir
    - Gereken açıklamayı önemli ölçüde azaltır - yaklaşımları ayrıntılı tanımlamak yerine örneklere işaret edin
    - Çözümleri yeniden icat etmek yerine kanıtlanmış, test edilmiş kalıplardan yararlanır
    - Hataları azaltır ve mevcut sistemlerle sorunsuz entegrasyon sağlar
  </Tab>

  <Tab title="todos.md planlama">
    Karmaşık, çok adımlı görevleri izlemek için bir todos.md dosyası oluşturun:

    ```
    Create a todos.md file with these tasks:
    1. Refactor authentication to use JWT tokens
    2. Update all controllers to use new auth middleware
    3. Add tests for authentication flow
    4. Update API documentation
    ```

    **Avantajlar:**
    - İncelenebilen, iyileştirilebilen ve ekip arkadaşlarıyla paylaşılabilen açık, yazılı bir yol haritası oluşturur
    - Proje boyunca gereksinimler geliştikçe kolayca ayarlanır
    - Oturumlar arasında kalıcı olduğundan çalışmaya ara verebilir, daha sonra devam edebilir ve nerede kaldığınızı hemen anlayabilirsiniz
    - Neyin planlandığını, tamamlandığını ve gelecekteki bakım ve adaptasyon için kaldığını belgeleyen bir proje yapıtı görevi görür
  </Tab>

  <Tab title="Bağlamı temizle">
    Yeni bağlam için farklı todo'lar arasında yeni oturumlar başlatın:

    ```
    After completing todo #1: "Start a new session"
    Then: "Let's work on todo #2 from todos.md"
    ```

    **Avantajlar:**
    - Önceki görev ayrıntılarının mevcut çalışmayı uygunsuz biçimde etkilediği bağlam kirlenmesini önler
    - Önceki görevlerin yükü olmadan yalnızca mevcut todo'ya odaklanmayı sağlar
    - Gereksiz konuşma geçmişini yüklemeyerek token kullanımını azaltır
    - Yanıtları daha hızlı ve daha kredi verimli hale getirir
    - Test ve değişiklikleri commit etmek için doğal kontrol noktaları oluşturur, temiz git geçmişi korur ve sorun izolasyonunu kolaylaştırır
  </Tab>

  <Tab title="MCP sunucuları">
    Özelleşmiş bağlam enjekte etmek için MCP (Model Context Protocol) sunucularını kullanın:
    - Projeye özgü dokümantasyon
    - API belirtimleri (OpenAPI, GraphQL şemaları)
    - Çerçeveye özgü bilgi

    **Avantajlar:**
    - Verdent'in eğitim verilerinde olmayan özel çerçeveleri, dahili araçları ve özelleşmiş alanları anlamasını geliştirir
    - Kuruluşa özgü API belirtimlerini ve dokümantasyonu doğrudan enjekte ederek özel sistemleri tekrar tekrar açıklama ihtiyacını ortadan kaldırır
    - Yalnızca istemlerle iletilmesi imkânsız olan dahili API'lerin ve tescilli sistemlerin doğru kullanımını sağlar
  </Tab>
</Tabs>

---

## İstemlere bağlam ekleme

<Tabs>
  <Tab title="Dosyalar için @-bahsetmeleri">
    İlgili dosyaları bağlama açıkça dahil edin:

    ```
    @models/User.js @controllers/UserController.js Add password reset functionality
    ```

    **Ne zaman kullanılır:**
    - Sıkı bağlı dosyalarla çalışırken (model ve denetleyici, servis ve testler)
    - Bir dosyadaki uygulama kalıplarını başka bir dosyaya uygulamak için referans verirken
    - Birden çok ilgili dosyada değişiklikleri koordine ederken
    - Otomatik tespitin bağlamı kaçırabileceği, benzer dosya adlarına sahip büyük kod tabanlarında
    - Verdent'ten "şununla aynı kalıbı izle..." istediğinizde tam koda sahip olmasını sağlamak için daima kullanın
  </Tab>

  <Tab title="Proje mimarisi">
    Yığınınız hakkında üst düzey bağlam ekleyin:

    ```
    This is a MERN stack application (MongoDB, Express, React, Node.js) with JWT authentication. Add role-based access control following our existing middleware pattern.
    ```

    **Ne zaman kullanılır:**
    - Mevcut teknoloji yığınınızla entegre olması gereken özellikler uygularken
    - Bir kod tabanında ilk kez çalışırken veya birden çok katmanı kapsayan özelliklerde (önyüzden veritabanına)
    - Yığınınızın uygulama seçimlerini etkileyen güçlü tercihleri olduğunda (GraphQL vs REST, Redux vs Context API)
    - Verdent'in genel bir çözüm yerine sisteminize uygun yaklaşımı seçmesini istediğinizde
  </Tab>

  <Tab title="Mevcut kalıplar">
    Kurallarınızı gösteren koda işaret edin:

    ```
    Follow the same error handling pattern used in ProductController.js - return consistent error objects with status codes and descriptive messages
    ```

    **Ne zaman kullanılır:**
    - Yeni kodun yerleşik kurallarla tutarlılığını korumasını istediğinizde (hata işleme, doğrulama, günlükleme, test)
    - Kod tabanının yeni bir alanında benzer işlevsellik uygularken
    - Mevcut kalıpları öğrenmek ve çoğaltmak istediğiniz, kod tabanının bilmediğiniz bölümlerine adapte olurken
    - Kalıpları ayrıntılı tanımlamaktan kaçınmak ve Verdent'in ifade etmesi zor nüansları yakalamasını istediğinizde
  </Tab>

  <Tab title="Teknik kısıtlamalar">
    Sınırlamaları veya gereksinimleri belirtin:

    ```
    We're using TypeScript with strict mode enabled, React 18 with hooks only (no class components), and Material-UI v5 for styling
    ```

    **Ne zaman kullanılır:**
    - Projenizin belirli teknoloji gereksinimleri olduğunda (TypeScript katı mod, yalnızca React hook'ları, harici bağımlılık yok)
    - Eski kısıtlamalarla çalışırken (IE11 desteği, Node.js 14 uyumluluğu)
    - Uyumluluk gereksinimleri seçimleri belirlediğinde (WCAG erişilebilirliği, GDPR veri işleme)
    - Sürümler arasında kırıcı değişiklikleri olan belirli kütüphane sürümlerini kullanırken
    - Verdent'in projenizin teknik sınırlarını ihlal eden çözümler önermesini engellemeniz gerektiğinde
  </Tab>

  <Tab title="İş mantığı">
    Alana özgü kuralları açıklayın:

    ```
    Users can only view tasks assigned to them or their team. Managers can view all tasks in their department. Admins can view everything.
    ```

    **Ne zaman kullanılır:**
    - Verdent'in yalnızca koddan çıkaramayacağı alana özgü kuralları olan özellikler uygularken
    - Yetkilendirme mantığı (kim neye erişebilir), iş akışları (onay süreçleri, durum makineleri)
    - Doğrulama kuralları (parola politikaları, veri kısıtlamaları), alan kısıtlamaları (envanter limitleri, fiyatlandırma kuralları)
    - Varlık ilişkilerinin ve kardinalitenin açıklama gerektirdiği veri modelleri oluştururken
    - Hesaplamalar uygularken (indirim kuralları, vergi hesaplaması, komisyon yapıları)
    - Verdent'in yalnızca işlevsel kod değil, kuruluşunuzun iş kurallarını doğru biçimde uygulamasını istediğinizde
  </Tab>

  <Tab title="Hata bağlamı">
    Hata ayıklarken hata mesajlarını veya günlükleri paylaşın:

    ```
    Getting "TypeError: Cannot read property 'id' of undefined" at UserController.js:42 when trying to update user profiles. The req.user object exists but doesn't have an id property after the recent auth middleware changes.
    ```

    **Ne zaman kullanılır:**
    - Hataları düzeltirken daima tam hata mesajlarını, yığın izlerini ve günlükleri ekleyin
    - Çalışma zamanı hataları (istisnalar, çökmeler), derleme hataları (derleme hataları, lint ihlalleri)
    - Test hataları (doğrulama hataları, zaman aşımı sorunları), beklenmedik davranış (yanlış çıktı, eksik veri)
    - Satır numaraları ve çağrı zincirini gösteren tam yığın izi ile kesin hata mesajlarına sahip olduğunuzda
    - Ne zaman oluştuğu hakkında bağlam sağlayabildiğinizde (her zaman, aralıklı, belirli koşullar)
    - Verdent'in tahmin etmek yerine kök nedenleri belirleme yeteneğini önemli ölçüde geliştirmek istediğinizde
  </Tab>

  <Tab title="Otomatik yükleme">
    Verdent isteğinize göre ilgili dosyaları otomatik olarak yükler:
    - İstemlerde adıyla bahsedilen dosyalar
    - Aynı dizindeki ilgili dosyalar
    - Sık erişilen proje dosyaları

    **Buna ne zaman güvenilir:**
    - İlişkilerin açık olduğu standart dosya referanslarında
    - Bileşenlerden adıyla bahsederken ve Verdent'in o belirli dosyayı yüklemesi gerektiğinde
    - Aynı dizinde genellikle birlikte çalışan dosyalarla çalışırken
    - Sık kullanılan proje dosyalarına erişirken (package.json, yapılandırma dosyaları)
    - İyi organize edilmiş kod tabanlarındaki basit senaryolarda iyi çalışır
    - Karmaşık çok dosyalı yeniden düzenleme, uzak kod tabanı parçaları veya belirsiz dosya adları için bunun yerine açık @-bahsetmeleri kullanın
  </Tab>

  <Tab title="Proje/Kullanıcı kuralları">
    Kural dosyaları aracılığıyla kalıcı bağlam yapılandırın (Settings → Rules):

    **Kullanıcı kuralları (VERDENT.md):**
    Tüm projelerde uygulanan genel tercihler

    **Proje kuralları (AGENTS.md):**
    Projeye özgü standartlar - mimari kalıplar, kodlama standartları

    **Plan kuralları (plan_rules.md):**
    Plan Mode'ta plan biçimini ve içeriğini özelleştirin

    **Ne zaman kullanılır:**
    - Oturumlar boyunca aynı bağlamı tekrar tekrar sağlarken
    - Kişisel tercihler için kullanıcı kuralları (kodlama stili, tercih edilen kütüphaneler, beğendiğiniz kalıplar)
    - Ekip standartları için proje kuralları (mimari kararlar, adlandırma kuralları, test gereksinimleri)
    - Yeni ekip üyelerinin adaptasyonunda değerli (kabilesel bilgiyi kodlar)
    - Büyük ekiplerde tutarlılığı korumak ve istem ayrıntısını azaltmak
    - Projeniz belgelenmeye değer yerleşik kalıplara sahip olacak kadar olgunlaştığında kural dosyalarına yatırım yapın
  </Tab>

  <Tab title="Görseller">
    Ekran görüntüleri, model çizimler veya diyagramlar ekleyin:

    ```
    @screenshot.png Implement this UI design with React components
    ```

    **Ne zaman kullanılır:**
    - Görsel bilgi gereksinimleri metinden daha etkili ilettiğinde
    - UI/UX uygulaması (tasarım model çizimleri, tel çerçeveler, kullanıcı akışları)
    - Görsel sorunları hata ayıklarken (bozuk düzen ekran görüntüsü, render sorunları)
    - Karmaşık mimarileri anlama (sistem diyagramları, veritabanı şemaları, akış şemaları)
    - Duyarlı tasarım, erişilebilirlik analizi ve hata yeniden üretimi için esastır
    - Figma veya Sketch gibi araçlardan tasarımları koda çevirme
    - İyi yakalanmış tek bir ekran görüntüsü genellikle paragraflarca tanımlanması gereken ayrıntıları iletir
  </Tab>

  <Tab title="Web bağlantıları">
    Harici dokümantasyona veya örneklere referans verin:

    ```
    Ultrathink: Read this API documentation at https://api-docs.example.com/v1/endpoints and implement the authentication flow
    ```

    **Ne zaman kullanılır:**
    - Çevrimiçi resmi dokümantasyonu olan harici API'ler veya kütüphanelerle entegrasyonlar uygularken
    - Özellikle kütüphane karmaşık yapılandırma seçeneklerine veya kimlik doğrulama akışlarına sahip olduğunda değerlidir
    - Kod oluşturmadan önce Verdent'e web içeriğini getirmesini ve analiz etmesini söylemek için "Ultrathink:" önekini kullanın
    - Dokümantasyonun eğitim verilerinden daha güncel olduğu hızla gelişen API'ler için esastır
    - Çerçeveye özgü kalıpları takip ederken (Next.js App Router, Vue Composition API)
    - Uygulamaların güncel API sürümleriyle eşleşmesini ve resmi önerileri takip etmesini sağlar
  </Tab>
</Tabs>

---

## Yinelemeli iyileştirme stratejileri

<Tabs>
  <Tab title="Genelden özele">
    **İlk istem:**
    ```
    Add authentication to the API
    ```

    Verdent'in yanıtı genel olabilir. İyileştirin:

    ```
    Use JWT tokens stored in httpOnly cookies, implement refresh token rotation, and follow the authentication pattern from our existing UserController
    ```

    **Ne zaman kullanılır:** Genel bir istekle başlayıp ilk yanıta göre ayrıntılar ekleme
  </Tab>

  <Tab title="İncele ve düzelt">
    Verdent'in uygulaması beklentilerinizle eşleşmiyorsa:

    ```
    The validation logic is good, but use Joi schema validation instead of manual checks. Match the validation pattern in ProductController.js
    ```

    **Ne zaman kullanılır:** Çıktıyı inceleyip belirli iyileştirmeleri belirledikten sonra
  </Tab>

  <Tab title="Takip istemleri">
    Kademeli olarak inşa edin:

    ```
    Initial: "Create a UserProfile component"
    Follow-up: "Add an avatar upload feature with image preview"
    Follow-up: "Add validation - max 5MB, only jpg/png formats"
    Follow-up: "Show upload progress with a progress bar"
    ```

    **Ne zaman kullanılır:** Aynı oturumda özellikleri kademeli olarak oluştururken
  </Tab>

  <Tab title="Açıklama isteyin">
    Uygulama beklenmedik görünüyorsa:

    ```
    Why did you use Redux instead of Context API? Can you explain the trade-offs for this use case?
    ```

    Sonra anlayışınıza göre iyileştirin:

    ```
    Actually, use Context API for consistency with the rest of our application
    ```

    **Ne zaman kullanılır:** Değişiklik istemeden önce mantığı anlama
  </Tab>

  <Tab title="Plan Mode iyileştirmesi">
    Karmaşık değişiklikler için:

    ```
    Switch to Plan Mode
    Show me how you would refactor the authentication system to support OAuth providers
    ```

    Planı inceleyin, sorular sorun, yürütmeden önce yaklaşım üzerinde yineleyin.

    **Ne zaman kullanılır:** İnceleme gerektiren büyük mimari değişiklikler
  </Tab>

  <Tab title="Örnek verin">
    Verdent'in stili sizinkiyle eşleşmiyorsa:

    ```
    The component structure is close, but use this pattern instead:
    [paste example of your preferred structure]
    Apply this same pattern to the remaining components
    ```

    **Ne zaman kullanılır:** Kod stili tercihlerini belirleme veya pekiştirme
  </Tab>

  <Tab title="Kısıtlamaları netleştirin">
    Çıktı belirtilmemiş kısıtlamaları ihlal ediyorsa:

    ```
    Good approach, but don't modify the database schema - work within the existing User table structure
    ```

    **Ne zaman kullanılır:** İlk uygulamayı gördükten sonra keşfedilen kısıtlamaları ekleme
  </Tab>

  <Tab title="Kademeli geliştirme">
    Temel işlevsellikle başlayın, özellikleri yinelemeli olarak ekleyin:

    ```
    Step 1: "Create basic CRUD endpoints for tasks"
    Step 2: "Add pagination to the GET endpoint"
    Step 3: "Add filtering by status and priority"
    Step 4: "Add full-text search across title and description"
    ```

    **Ne zaman kullanılır:** Her adımda test ile karmaşık özellikleri kademeli oluşturma
  </Tab>
</Tabs>

---

## SSS

<Accordion title="İstemlerim ne kadar belirli olmalı?">
Belirsizliği ortadan kaldıracak kadar belirli olun, ancak bariz ayrıntıları fazla açıklamayın. Şunları ekleyin: tam dosya yolları, uygulama yaklaşımı, beklenen sonuçlar ve kısıtlamalar. Kötü: "Kodu düzelt" - çok belirsiz. İyi: "Geçersiz e-posta biçimlerini reddetmek için `ContactForm.js` dosyasındaki e-posta alanına girdi doğrulaması ekle" - açık kapsam ve hedef. Şüphe duyduğunuzda daha fazla belirginlik tarafında hata yapın.
</Accordion>

<Accordion title="@-bahsetmeleri ile otomatik dosya yükleme arasındaki fark nedir?">
Verdent istemlerde adıyla bahsedilen dosyaları ve aynı dizindeki ilgili dosyaları otomatik olarak yükler. `@-mentions` (`@filename.js`) bir dosyanın bağlamda olmasını açıkça garanti eder; bu, sıkı bağlı dosyalarla çalışırken, bir dosyadaki kalıpları başka bir dosyaya uygulamak için referans verirken veya büyük kod tabanlarında otomatik tespitin bağlamı kaçırabileceği durumlarda kritiktir. Verdent'ten "şununla aynı kalıbı izle..." istediğinizde tam kod referansını sağlamak için daima `@-mentions` kullanın.
</Accordion>

<Accordion title="Normal mod yerine Plan Mode'i ne zaman kullanmalıyım?">
Plan Mode'i şunlar için kullanın: büyük yeniden düzenlemeler veya mimari değişiklikler, yürütmeden önce kapsamı incelemek istediğiniz çok dosyalı değişiklikler, gereksinimlerden emin olmadığınız karmaşık görevler veya Verdent'in uygulamadan önce sizinle açıklayıcı sorularla görüşme yapmasını istediğinizde. Plan Mode'i şunlar için atlayın: basit, iyi tanımlanmış görevler, hızlı hata düzeltmeleri veya rutin işlemler. Plan Mode ek yük getirir ancak karmaşık işlerde maliyetli hataları önler.
</Accordion>

<Accordion title="Verdent istemimi doğru anlamaz veya takip etmezse ne olur?">
Yinelemeli iyileştirme kullanın: çıktıyı inceleyin, neyin yanlış olduğunu belirleyin, ardından bir takip isteminde düzeltmeler sağlayın. Örnek: "Doğrulama mantığı iyi, ancak manuel kontroller yerine Joi şema doğrulaması kullan. `ProductController.js` içindeki doğrulama kalıbıyla eşleştir." Ayrıca açıklama isteyebilirsiniz: "Context API yerine neden Redux kullandın?" sonra anlayışınıza göre iyileştirin. Aynı istemi tekrarlamayın - başarısız olana göre ayarlayın.
</Accordion>

<Accordion title="Bir oturum boyunca her istemde proje bağlamını tekrarlamam gerekir mi?">
Hayır - Verdent bir oturum içinde konuşma bağlamını korur, bu nedenle zaten tartışılan mimari ayrıntıları veya kuralları tekrarlamanıza gerek yoktur. Ancak kritik kısıtlamalar için veya oturumlar uzadığında (`100+` mesaj) önemli bağlamı yeniden belirtin. Daha iyi yaklaşım: teknoloji yığını, kodlama standartları ve kalıplar gibi kalıcı bağlamı belgelemek için proje kuralları (`AGENTS.md`) kullanın - böylece bunları asla tekrarlamanız gerekmez.
</Accordion>

<Check>
Açık niyet, ilgili bağlam ve belirli kısıtlamalara sahip iyi yapılandırılmış istemler tutarlı biçimde daha iyi sonuçlar üretir.
</Check>

---

## Ayrıca bakın

<CardGroup cols={3}>
  <Card title="Bağlam yönetimi" href="/docs/verdent-for-vscode/best-practices/context" icon="layer-group">
    Bağlam pencerelerini yönetme ve optimizasyon stratejileri
  </Card>
  <Card title="Yürütme modları" href="/docs/verdent-for-vscode/execution-modes/overview" icon="toggle-on">
    Farklı senaryolar için yürütme modlarını anlama
  </Card>
  <Card title="Hata işleme" href="/docs/verdent-for-vscode/error-handling/recovery" icon="triangle-exclamation">
    Hataları işleme ve sorun giderme
  </Card>
</CardGroup>
