Add Turkish (tr) docs and update README (#744)

* Add Turkish (tr) docs and update README

Add a full set of Turkish documentation under docs/tr (agents, changelog, CLAUDE guide, contributing, code of conduct, and many agents/commands/skills/rules files). Update README to include a link to the Turkish docs and increment the supported language count from 5 to 6. This commit adds localized guidance and references to help Turkish-speaking contributors and users.

* Update docs/tr/TROUBLESHOOTING.md

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* Update docs/tr/README.md

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* docs(tr): fix license link and update readmes

Update Turkish docs: change license badge link to point to repository root (../../LICENSE), increment displayed language count from 5 to 6, and remove two outdated related links from docs/tr/examples/README.md to keep references accurate.

* Update docs/tr/commands/instinct-import.md

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* Update docs/tr/commands/checkpoint.md

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
This commit is contained in:
Berkcan Gümüşışık
2026-03-23 01:37:04 +03:00
committed by GitHub
parent bb1efad7c7
commit fd2a8edb53
139 changed files with 26670 additions and 2 deletions

61
docs/tr/rules/README.md Normal file
View File

@@ -0,0 +1,61 @@
# Kurallar (Rules)
Claude Code için kodlama kuralları ve en iyi uygulamalar.
## Dizin Yapısı
### Common (Dile Bağımsız Kurallar)
Tüm programlama dillerine uygulanan temel kurallar:
- **agents.md** - Agent orkestrasyonu ve kullanımı
- **coding-style.md** - Genel kodlama stili kuralları (immutability, dosya organizasyonu, hata yönetimi)
- **development-workflow.md** - Özellik geliştirme iş akışı (araştırma, planlama, TDD, kod incelemesi)
- **git-workflow.md** - Git commit ve PR iş akışı
- **hooks.md** - Hook sistemi (PreToolUse, PostToolUse, Stop)
- **patterns.md** - Yaygın tasarım pattern'leri (Repository, API Response Format)
- **performance.md** - Performans optimizasyonu (model seçimi, context window yönetimi)
- **security.md** - Güvenlik kuralları (secret yönetimi, güvenlik kontrolleri)
- **testing.md** - Test gereksinimleri (TDD, minimum %80 coverage)
### TypeScript/JavaScript
TypeScript ve JavaScript projeleri için özel kurallar:
- **coding-style.md** - Tip sistemleri, immutability, hata yönetimi, input validasyonu
- **hooks.md** - Prettier, TypeScript check, console.log uyarıları
- **patterns.md** - API response format, custom hooks, repository pattern
- **security.md** - Secret yönetimi, environment variable'lar
- **testing.md** - Playwright E2E testing
### Python
Python projeleri için özel kurallar:
- **coding-style.md** - PEP 8, type annotation'lar, immutability, formatlama araçları
- **hooks.md** - black/ruff formatlama, mypy/pyright tip kontrolü
- **patterns.md** - Protocol (duck typing), dataclass'lar, context manager'lar
- **security.md** - Secret yönetimi, bandit güvenlik taraması
- **testing.md** - pytest framework, coverage, test organizasyonu
### Golang
Go projeleri için özel kurallar:
- **coding-style.md** - gofmt/goimports, tasarım ilkeleri, hata yönetimi
- **hooks.md** - gofmt/goimports formatlama, go vet, staticcheck
- **patterns.md** - Functional options, küçük interface'ler, dependency injection
- **security.md** - Secret yönetimi, gosec güvenlik taraması, context & timeout'lar
- **testing.md** - Table-driven testler, race detection, coverage
## Kullanım
Bu kurallar Claude Code tarafından otomatik olarak yüklenir ve uygulanır. Kurallar:
1. **Dile bağımsız** - `common/` dizinindeki kurallar tüm projeler için geçerlidir
2. **Dile özgü** - İlgili dil dizinindeki kurallar (typescript/, python/, golang/) common kuralları genişletir
3. **Path tabanlı** - Kurallar YAML frontmatter'daki path pattern'leri ile eşleşen dosyalara uygulanır
## Orijinal Dokümantasyon
Bu dokümantasyonun İngilizce orijinali `rules/` dizininde bulunmaktadır.

View File

@@ -0,0 +1,50 @@
# Agent Orkestrasyonu
## Mevcut Agent'lar
`~/.claude/agents/` dizininde bulunur:
| Agent | Amaç | Ne Zaman Kullanılır |
|-------|---------|-------------|
| planner | Uygulama planlaması | Karmaşık özellikler, refactoring |
| architect | Sistem tasarımı | Mimari kararlar |
| tdd-guide | Test odaklı geliştirme | Yeni özellikler, hata düzeltmeleri |
| code-reviewer | Kod incelemesi | Kod yazdıktan sonra |
| security-reviewer | Güvenlik analizi | Commit'lerden önce |
| build-error-resolver | Build hatalarını düzeltme | Build başarısız olduğunda |
| e2e-runner | E2E testleri | Kritik kullanıcı akışları |
| refactor-cleaner | Ölü kod temizliği | Kod bakımı |
| doc-updater | Dokümantasyon | Dokümanları güncelleme |
| rust-reviewer | Rust kod incelemesi | Rust projeleri |
## Anlık Agent Kullanımı
Kullanıcı istemi gerekmez:
1. Karmaşık özellik istekleri - **planner** agent kullan
2. Kod yeni yazıldı/değiştirildi - **code-reviewer** agent kullan
3. Hata düzeltmesi veya yeni özellik - **tdd-guide** agent kullan
4. Mimari karar - **architect** agent kullan
## Paralel Görev Yürütme
Bağımsız işlemler için DAIMA paralel Task yürütme kullan:
```markdown
# İYİ: Paralel yürütme
3 agent'ı paralel başlat:
1. Agent 1: Auth modülü güvenlik analizi
2. Agent 2: Cache sistemi performans incelemesi
3. Agent 3: Utilities tip kontrolü
# KÖTÜ: Gereksiz sıralı yürütme
Önce agent 1, sonra agent 2, sonra agent 3
```
## Çok Perspektifli Analiz
Karmaşık problemler için split role sub-agent'lar kullan:
- Factual reviewer
- Senior engineer
- Security expert
- Consistency reviewer
- Redundancy checker

View File

@@ -0,0 +1,48 @@
# Kodlama Stili
## Immutability (KRİTİK)
DAIMA yeni nesneler oluştur, mevcut olanları ASLA değiştirme:
```
// Pseudocode
YANLIŞ: modify(original, field, value) → original'i yerinde değiştirir
DOĞRU: update(original, field, value) → değişiklikle birlikte yeni kopya döner
```
Gerekçe: Immutable veri gizli yan etkileri önler, debug'ı kolaylaştırır ve güvenli eşzamanlılık sağlar.
## Dosya Organizasyonu
ÇOK KÜÇÜK DOSYA > AZ BÜYÜK DOSYA:
- Yüksek kohezyon, düşük coupling
- Tipik 200-400 satır, maksimum 800
- Büyük modüllerden utility'leri çıkar
- Type'a göre değil, feature/domain'e göre organize et
## Hata Yönetimi
Hataları DAIMA kapsamlı bir şekilde yönet:
- Her seviyede hatalarııkça ele al
- UI'ye yönelik kodda kullanıcı dostu hata mesajları ver
- Server tarafında detaylı hata bağlamı logla
- Hataları asla sessizce yutma
## Input Validasyonu
Sistem sınırlarında DAIMA validate et:
- İşlemeden önce tüm kullanıcı girdilerini validate et
- Mümkün olan yerlerde schema tabanlı validasyon kullan
-ık hata mesajlarıyla hızlıca başarısız ol
- Harici verilere asla güvenme (API yanıtları, kullanıcı girdisi, dosya içeriği)
## Kod Kalitesi Kontrol Listesi
İşi tamamlandı olarak işaretlemeden önce:
- [ ] Kod okunabilir ve iyi adlandırılmış
- [ ] Fonksiyonlar küçük (<50 satır)
- [ ] Dosyalar odaklı (<800 satır)
- [ ] Derin iç içe geçme yok (>4 seviye)
- [ ] Düzgün hata yönetimi
- [ ] Hardcoded değer yok (sabit veya config kullan)
- [ ] Mutasyon yok (immutable pattern'ler kullanıldı)

View File

@@ -0,0 +1,38 @@
# Geliştirme İş Akışı
> Bu dosya [common/git-workflow.md](./git-workflow.md) dosyasını git işlemlerinden önce gerçekleşen tam özellik geliştirme süreci ile genişletir.
Feature Implementation Workflow geliştirme pipeline'ını tanımlar: araştırma, planlama, TDD, kod incelemesi ve ardından git'e commit.
## Feature Uygulama İş Akışı
0. **Araştırma & Yeniden Kullanım** _(her yeni implementasyondan önce zorunlu)_
- **Önce GitHub kod araması:** Yeni bir şey yazmadan önce mevcut implementasyonları, şablonları ve pattern'leri bulmak için `gh search repos` ve `gh search code` çalıştır.
- **İkinci olarak kütüphane dokümanları:** Uygulamadan önce API davranışını, paket kullanımını ve versiyona özgü detayları doğrulamak için Context7 veya birincil vendor dokümanlarını kullan.
- **İlk ikisi yetersiz olduğunda Exa:** GitHub araması ve birincil dokümanlardan sonra daha geniş web araştırması veya keşif için Exa kullan.
- **Paket kayıtlarını kontrol et:** Utility kodu yazmadan önce npm, PyPI, crates.io ve diğer kayıtları ara. Kendi çözümlerinden ziyade test edilmiş kütüphaneleri tercih et.
- **Adapte edilebilir implementasyonlar ara:** Problemin %80+'sını çözen ve fork'lanabilir, port edilebilir veya wrap edilebilir açık kaynak projeler ara.
- Gereksinimi karşıladığında sıfırdan yeni kod yazmak yerine kanıtlanmış bir yaklaşımı benimsemeyi veya port etmeyi tercih et.
1. **Önce Planla**
- Uygulama planı oluşturmak için **planner** agent kullan
- Kodlamadan önce planlama dokümanları oluştur: PRD, architecture, system_design, tech_doc, task_list
- Bağımlılıkları ve riskleri belirle
- Fazlara ayır
2. **TDD Yaklaşımı**
- **tdd-guide** agent kullan
- Önce testleri yaz (RED)
- Testleri geçmek için uygula (GREEN)
- Refactor et (IMPROVE)
- %80+ coverage'ı doğrula
3. **Kod İncelemesi**
- Kod yazdıktan hemen sonra **code-reviewer** agent kullan
- CRITICAL ve HIGH sorunları ele al
- Mümkün olduğunda MEDIUM sorunları düzelt
4. **Commit & Push**
- Detaylı commit mesajları
- Conventional commits formatını takip et
- Commit mesaj formatı ve PR süreci için [git-workflow.md](./git-workflow.md) dosyasına bak

View File

@@ -0,0 +1,24 @@
# Git İş Akışı
## Commit Mesaj Formatı
```
<type>: <description>
<optional body>
```
Types: feat, fix, refactor, docs, test, chore, perf, ci
Not: Attribution ~/.claude/settings.json aracılığıyla global olarak devre dışı bırakıldı.
## Pull Request İş Akışı
PR oluştururken:
1. Tam commit geçmişini analiz et (sadece son commit değil)
2. Tüm değişiklikleri görmek için `git diff [base-branch]...HEAD` kullan
3. Kapsamlı PR özeti taslağı hazırla
4. TODO'ları içeren test planı ekle
5. Yeni branch ise `-u` flag'i ile push et
> Git işlemlerinden önce tam geliştirme süreci (planlama, TDD, kod incelemesi) için
> [development-workflow.md](./development-workflow.md) dosyasına bakın.

View File

@@ -0,0 +1,30 @@
# Hooks Sistemi
## Hook Tipleri
- **PreToolUse**: Tool yürütmeden önce (validasyon, parametre değişikliği)
- **PostToolUse**: Tool yürütmeden sonra (auto-format, kontroller)
- **Stop**: Session bittiğinde (final doğrulama)
## Auto-Accept İzinleri
Dikkatli kullan:
- Güvenilir, iyi tanımlanmış planlar için etkinleştir
- Keşifsel çalışmalar için devre dışı bırak
- Asla dangerously-skip-permissions flag'i kullanma
- Bunun yerine `~/.claude.json` içinde `allowedTools` yapılandır
## TodoWrite En İyi Uygulamalar
TodoWrite tool'unu şunlar için kullan:
- Çok adımlı görevlerdeki ilerlemeyi takip et
- Talimatların anlaşıldığını doğrula
- Gerçek zamanlı yönlendirmeyi etkinleştir
- Detaylı implementasyon adımlarını göster
Todo listesi şunları ortaya çıkarır:
- Sıra dışı adımlar
- Eksik öğeler
- Fazladan gereksiz öğeler
- Yanlış detay düzeyi
- Yanlış yorumlanmış gereksinimler

View File

@@ -0,0 +1,31 @@
# Yaygın Pattern'ler
## Skeleton Projeler
Yeni fonksiyonellik uygulanırken:
1. Test edilmiş skeleton projeler ara
2. Seçenekleri değerlendirmek için paralel agent'lar kullan:
- Güvenlik değerlendirmesi
- Genişletilebilirlik analizi
- İlgililik puanlaması
- Uygulama planlaması
3. En iyi eşleşmeyi temel olarak klonla
4. Kanıtlanmış yapı içinde iterate et
## Tasarım Pattern'leri
### Repository Pattern
Veri erişimini tutarlı bir arayüz arkasında kapsülle:
- Standart işlemleri tanımla: findAll, findById, create, update, delete
- Concrete implementasyonlar storage detaylarını ele alır (database, API, file, vb.)
- Business logic storage mekanizması yerine abstract interface'e bağlıdır
- Veri kaynaklarının kolay değiştirilmesini sağlar ve mock'larla testi basitleştirir
### API Response Formatı
Tüm API yanıtları için tutarlı bir zarf kullan:
- Success/status göstergesi ekle
- Data payload ekle (hata durumunda nullable)
- Hata mesajı alanı ekle (başarı durumunda nullable)
- Sayfalandırılmış yanıtlar için metadata ekle (total, page, limit)

View File

@@ -0,0 +1,55 @@
# Performans Optimizasyonu
## Model Seçim Stratejisi
**Haiku 4.5** (Sonnet kapasitesinin %90'ı, 3x maliyet tasarrufu):
- Sık çağrılan hafif agent'lar
- Pair programming ve kod üretimi
- Multi-agent sistemlerinde worker agent'lar
**Sonnet 4.6** (En iyi kodlama modeli):
- Ana geliştirme çalışması
- Multi-agent iş akışlarını orkestrasyon
- Karmaşık kodlama görevleri
**Opus 4.5** (En derin akıl yürütme):
- Karmaşık mimari kararlar
- Maksimum akıl yürütme gereksinimleri
- Araştırma ve analiz görevleri
## Context Window Yönetimi
Context window'un son %20'sinden kaçın:
- Büyük ölçekli refactoring
- Birden fazla dosyaya yayılan özellik implementasyonu
- Karmaşık etkileşimleri debug etme
Daha düşük context hassasiyeti olan görevler:
- Tek dosya düzenlemeleri
- Bağımsız utility oluşturma
- Dokümantasyon güncellemeleri
- Basit hata düzeltmeleri
## Extended Thinking + Plan Mode
Extended thinking varsayılan olarak etkindir ve dahili akıl yürütme için 31,999 token'a kadar ayırır.
Extended thinking kontrolü:
- **Toggle**: Option+T (macOS) / Alt+T (Windows/Linux)
- **Config**: `~/.claude/settings.json` içinde `alwaysThinkingEnabled` ayarla
- **Budget cap**: `export MAX_THINKING_TOKENS=10000`
- **Verbose mode**: Thinking çıktısını görmek için Ctrl+O
Derin akıl yürütme gerektiren karmaşık görevler için:
1. Extended thinking'in etkin olduğundan emin ol (varsayılan olarak açık)
2. Yapılandırılmış yaklaşım için **Plan Mode**'u etkinleştir
3. Kapsamlı analiz için birden fazla kritik tur kullan
4. Çeşitli perspektifler için split role sub-agent'lar kullan
## Build Sorun Giderme
Build başarısız olursa:
1. **build-error-resolver** agent kullan
2. Hata mesajlarını analiz et
3. Aşamalı olarak düzelt
4. Her düzeltmeden sonra doğrula

View File

@@ -0,0 +1,29 @@
# Güvenlik Kuralları
## Zorunlu Güvenlik Kontrolleri
HERHANGİ bir commit'ten önce:
- [ ] Hardcoded secret yok (API anahtarları, şifreler, token'lar)
- [ ] Tüm kullanıcı girdileri validate edildi
- [ ] SQL injection önleme (parametreli sorgular)
- [ ] XSS önleme (sanitize edilmiş HTML)
- [ ] CSRF koruması etkin
- [ ] Authentication/authorization doğrulandı
- [ ] Tüm endpoint'lerde rate limiting
- [ ] Hata mesajları hassas veri sızdırmıyor
## Secret Yönetimi
- Kaynak kodda ASLA secret'ları hardcode etme
- DAIMA environment variable'lar veya secret manager kullan
- Başlangıçta gerekli secret'ların mevcut olduğunu validate et
- İfşa olmuş olabilecek secret'ları rotate et
## Güvenlik Yanıt Protokolü
Güvenlik sorunu bulunursa:
1. HEMEN DUR
2. **security-reviewer** agent kullan
3. Devam etmeden önce CRITICAL sorunları düzelt
4. İfşa olmuş secret'ları rotate et
5. Benzer sorunlar için tüm kod tabanını incele

View File

@@ -0,0 +1,29 @@
# Test Gereksinimleri
## Minimum Test Coverage: %80
Test Tipleri (HEPSİ gerekli):
1. **Unit Tests** - Bireysel fonksiyonlar, utility'ler, component'ler
2. **Integration Tests** - API endpoint'leri, database işlemleri
3. **E2E Tests** - Kritik kullanıcı akışları (framework dile göre seçilir)
## Test Odaklı Geliştirme
ZORUNLU iş akışı:
1. Önce test yaz (RED)
2. Testi çalıştır - BAŞARISIZ olmalı
3. Minimum implementasyon yaz (GREEN)
4. Testi çalıştır - BAŞARILI olmalı
5. Refactor et (IMPROVE)
6. Coverage'ı doğrula (%80+)
## Test Hatalarında Sorun Giderme
1. **tdd-guide** agent kullan
2. Test izolasyonunu kontrol et
3. Mock'ların doğru olduğunu doğrula
4. Testleri değil implementasyonu düzelt (testler yanlış olmadıkça)
## Agent Desteği
- **tdd-guide** - Yeni özellikler için PROAKTİF olarak kullan, test-önce-yaz'ı zorlar

View File

@@ -0,0 +1,32 @@
---
paths:
- "**/*.go"
- "**/go.mod"
- "**/go.sum"
---
# Go Kodlama Stili
> Bu dosya [common/coding-style.md](../common/coding-style.md) dosyasını Go'ya özgü içerikle genişletir.
## Formatlama
- **gofmt** ve **goimports** zorunludur — stil tartışması yok
## Tasarım İlkeleri
- Interface'leri kabul et, struct'ları döndür
- Interface'leri küçük tut (1-3 metot)
## Hata Yönetimi
Hataları daima context ile sarmalayın:
```go
if err != nil {
return fmt.Errorf("failed to create user: %w", err)
}
```
## Referans
Kapsamlı Go idiom'ları ve pattern'leri için skill: `golang-patterns` dosyasına bakın.

View File

@@ -0,0 +1,17 @@
---
paths:
- "**/*.go"
- "**/go.mod"
- "**/go.sum"
---
# Go Hooks
> Bu dosya [common/hooks.md](../common/hooks.md) dosyasını Go'ya özgü içerikle genişletir.
## PostToolUse Hooks
`~/.claude/settings.json` içinde yapılandır:
- **gofmt/goimports**: Edit'ten sonra `.go` dosyalarını otomatik formatla
- **go vet**: `.go` dosyalarını düzenledikten sonra statik analiz çalıştır
- **staticcheck**: Değiştirilen paketlerde genişletilmiş statik kontroller çalıştır

View File

@@ -0,0 +1,45 @@
---
paths:
- "**/*.go"
- "**/go.mod"
- "**/go.sum"
---
# Go Pattern'leri
> Bu dosya [common/patterns.md](../common/patterns.md) dosyasını Go'ya özgü içerikle genişletir.
## Functional Options
```go
type Option func(*Server)
func WithPort(port int) Option {
return func(s *Server) { s.port = port }
}
func NewServer(opts ...Option) *Server {
s := &Server{port: 8080}
for _, opt := range opts {
opt(s)
}
return s
}
```
## Küçük Interface'ler
Interface'leri implement edildikleri yerde değil, kullanıldıkları yerde tanımla.
## Dependency Injection
Bağımlılıkları enjekte etmek için constructor fonksiyonları kullan:
```go
func NewUserService(repo UserRepository, logger Logger) *UserService {
return &UserService{repo: repo, logger: logger}
}
```
## Referans
Concurrency, hata yönetimi ve paket organizasyonu dahil kapsamlı Go pattern'leri için skill: `golang-patterns` dosyasına bakın.

View File

@@ -0,0 +1,34 @@
---
paths:
- "**/*.go"
- "**/go.mod"
- "**/go.sum"
---
# Go Güvenlik
> Bu dosya [common/security.md](../common/security.md) dosyasını Go'ya özgü içerikle genişletir.
## Secret Yönetimi
```go
apiKey := os.Getenv("OPENAI_API_KEY")
if apiKey == "" {
log.Fatal("OPENAI_API_KEY not configured")
}
```
## Güvenlik Taraması
- Statik güvenlik analizi için **gosec** kullan:
```bash
gosec ./...
```
## Context & Timeout'lar
Timeout kontrolü için daima `context.Context` kullan:
```go
ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
defer cancel()
```

View File

@@ -0,0 +1,31 @@
---
paths:
- "**/*.go"
- "**/go.mod"
- "**/go.sum"
---
# Go Testing
> Bu dosya [common/testing.md](../common/testing.md) dosyasını Go'ya özgü içerikle genişletir.
## Framework
**Table-driven testler** ile standart `go test` kullan.
## Race Detection
Daima `-race` flag'i ile çalıştır:
```bash
go test -race ./...
```
## Coverage
```bash
go test -cover ./...
```
## Referans
Detaylı Go test pattern'leri ve helper'lar için skill: `golang-testing` dosyasına bakın.

View File

@@ -0,0 +1,42 @@
---
paths:
- "**/*.py"
- "**/*.pyi"
---
# Python Kodlama Stili
> Bu dosya [common/coding-style.md](../common/coding-style.md) dosyasını Python'a özgü içerikle genişletir.
## Standartlar
- **PEP 8** konvansiyonlarını takip et
- Tüm fonksiyon imzalarında **type annotation'lar** kullan
## Immutability
Immutable veri yapılarını tercih et:
```python
from dataclasses import dataclass
@dataclass(frozen=True)
class User:
name: str
email: str
from typing import NamedTuple
class Point(NamedTuple):
x: float
y: float
```
## Formatlama
- Kod formatlama için **black**
- Import sıralama için **isort**
- Linting için **ruff**
## Referans
Kapsamlı Python idiom'ları ve pattern'leri için skill: `python-patterns` dosyasına bakın.

View File

@@ -0,0 +1,19 @@
---
paths:
- "**/*.py"
- "**/*.pyi"
---
# Python Hooks
> Bu dosya [common/hooks.md](../common/hooks.md) dosyasını Python'a özgü içerikle genişletir.
## PostToolUse Hooks
`~/.claude/settings.json` içinde yapılandır:
- **black/ruff**: Edit'ten sonra `.py` dosyalarını otomatik formatla
- **mypy/pyright**: `.py` dosyalarını düzenledikten sonra tip kontrolü çalıştır
## Uyarılar
- Düzenlenen dosyalarda `print()` ifadeleri hakkında uyar (bunun yerine `logging` modülü kullan)

View File

@@ -0,0 +1,39 @@
---
paths:
- "**/*.py"
- "**/*.pyi"
---
# Python Pattern'leri
> Bu dosya [common/patterns.md](../common/patterns.md) dosyasını Python'a özgü içerikle genişletir.
## Protocol (Duck Typing)
```python
from typing import Protocol
class Repository(Protocol):
def find_by_id(self, id: str) -> dict | None: ...
def save(self, entity: dict) -> dict: ...
```
## DTO'lar olarak Dataclass'lar
```python
from dataclasses import dataclass
@dataclass
class CreateUserRequest:
name: str
email: str
age: int | None = None
```
## Context Manager'lar & Generator'lar
- Kaynak yönetimi için context manager'ları (`with` ifadesi) kullan
- Lazy evaluation ve bellek verimli iterasyon için generator'ları kullan
## Referans
Decorator'lar, concurrency ve paket organizasyonu dahil kapsamlı pattern'ler için skill: `python-patterns` dosyasına bakın.

View File

@@ -0,0 +1,30 @@
---
paths:
- "**/*.py"
- "**/*.pyi"
---
# Python Güvenlik
> Bu dosya [common/security.md](../common/security.md) dosyasını Python'a özgü içerikle genişletir.
## Secret Yönetimi
```python
import os
from dotenv import load_dotenv
load_dotenv()
api_key = os.environ["OPENAI_API_KEY"] # Eksikse KeyError hatası verir
```
## Güvenlik Taraması
- Statik güvenlik analizi için **bandit** kullan:
```bash
bandit -r src/
```
## Referans
Django'ya özgü güvenlik kuralları için (eğer uygulanabilirse) skill: `django-security` dosyasına bakın.

View File

@@ -0,0 +1,38 @@
---
paths:
- "**/*.py"
- "**/*.pyi"
---
# Python Testing
> Bu dosya [common/testing.md](../common/testing.md) dosyasını Python'a özgü içerikle genişletir.
## Framework
Test framework'ü olarak **pytest** kullan.
## Coverage
```bash
pytest --cov=src --cov-report=term-missing
```
## Test Organizasyonu
Test kategorizasyonu için `pytest.mark` kullan:
```python
import pytest
@pytest.mark.unit
def test_calculate_total():
...
@pytest.mark.integration
def test_database_connection():
...
```
## Referans
Detaylı pytest pattern'leri ve fixture'lar için skill: `python-testing` dosyasına bakın.

View File

@@ -0,0 +1,199 @@
---
paths:
- "**/*.ts"
- "**/*.tsx"
- "**/*.js"
- "**/*.jsx"
---
# TypeScript/JavaScript Kodlama Stili
> Bu dosya [common/coding-style.md](../common/coding-style.md) dosyasını TypeScript/JavaScript'e özgü içerikle genişletir.
## Tipler ve Interface'ler
Public API'ları, paylaşılan modelleri ve component prop'larınıık, okunabilir ve yeniden kullanılabilir yapmak için tipleri kullan.
### Public API'lar
- Dışa aktarılan fonksiyonlara, paylaşılan utility'lere ve public sınıf metotlarına parametre ve dönüş tipleri ekle
- TypeScript'in açık local değişken tiplerini çıkarmasına izin ver
- Tekrarlanan inline object şekillerini adlandırılmış tipler veya interface'lere çıkar
```typescript
// YANLIŞ: Açık tipler olmadan dışa aktarılan fonksiyon
export function formatUser(user) {
return `${user.firstName} ${user.lastName}`
}
// DOĞRU: Public API'larda açık tipler
interface User {
firstName: string
lastName: string
}
export function formatUser(user: User): string {
return `${user.firstName} ${user.lastName}`
}
```
### Interface vs. Type Alias'ları
- Extend edilebilir veya implement edilebilir object şekilleri için `interface` kullan
- Union'lar, intersection'lar, tuple'lar, mapped tipler ve utility tipler için `type` kullan
- Interoperability için `enum` gerekli olmadıkça string literal union'ları tercih et
```typescript
interface User {
id: string
email: string
}
type UserRole = 'admin' | 'member'
type UserWithRole = User & {
role: UserRole
}
```
### `any`'den Kaçın
- Uygulama kodunda `any`'den kaçın
- Harici veya güvenilmeyen girdi için `unknown` kullan, ardından güvenli bir şekilde daralt
- Bir değerin tipi çağırana bağlı olduğunda generic'ler kullan
```typescript
// YANLIŞ: any tip güvenliğini kaldırır
function getErrorMessage(error: any) {
return error.message
}
// DOĞRU: unknown güvenli daraltmayı zorlar
function getErrorMessage(error: unknown): string {
if (error instanceof Error) {
return error.message
}
return 'Unexpected error'
}
```
### React Props
- Component prop'larını adlandırılmış `interface` veya `type` ile tanımla
- Callback prop'larınııkça tiplendir
- Belirli bir nedeni olmadıkça `React.FC` kullanma
```typescript
interface User {
id: string
email: string
}
interface UserCardProps {
user: User
onSelect: (id: string) => void
}
function UserCard({ user, onSelect }: UserCardProps) {
return <button onClick={() => onSelect(user.id)}>{user.email}</button>
}
```
### JavaScript Dosyaları
- `.js` ve `.jsx` dosyalarında, tipler netliği artırdığında ve TypeScript migration pratik olmadığında JSDoc kullan
- JSDoc'u runtime davranışıyla hizalı tut
```javascript
/**
* @param {{ firstName: string, lastName: string }} user
* @returns {string}
*/
export function formatUser(user) {
return `${user.firstName} ${user.lastName}`
}
```
## Immutability
Immutable güncellemeler için spread operator kullan:
```typescript
interface User {
id: string
name: string
}
// YANLIŞ: Mutation
function updateUser(user: User, name: string): User {
user.name = name // MUTASYON!
return user
}
// DOĞRU: Immutability
function updateUser(user: Readonly<User>, name: string): User {
return {
...user,
name
}
}
```
## Hata Yönetimi
Try-catch ile async/await kullan ve unknown hataları güvenli bir şekilde daralt:
```typescript
interface User {
id: string
email: string
}
declare function riskyOperation(userId: string): Promise<User>
function getErrorMessage(error: unknown): string {
if (error instanceof Error) {
return error.message
}
return 'Unexpected error'
}
const logger = {
error: (message: string, error: unknown) => {
// Production logger'ınızla değiştirin (örneğin, pino veya winston).
}
}
async function loadUser(userId: string): Promise<User> {
try {
const result = await riskyOperation(userId)
return result
} catch (error: unknown) {
logger.error('Operation failed', error)
throw new Error(getErrorMessage(error))
}
}
```
## Input Validasyonu
Schema tabanlı validasyon için Zod kullan ve schema'dan tipleri çıkar:
```typescript
import { z } from 'zod'
const userSchema = z.object({
email: z.string().email(),
age: z.number().int().min(0).max(150)
})
type UserInput = z.infer<typeof userSchema>
const validated: UserInput = userSchema.parse(input)
```
## Console.log
- Production kodunda `console.log` ifadeleri yok
- Bunun yerine uygun logging kütüphaneleri kullan
- Otomatik tespit için hook'lara bakın

View File

@@ -0,0 +1,22 @@
---
paths:
- "**/*.ts"
- "**/*.tsx"
- "**/*.js"
- "**/*.jsx"
---
# TypeScript/JavaScript Hooks
> Bu dosya [common/hooks.md](../common/hooks.md) dosyasını TypeScript/JavaScript'e özgü içerikle genişletir.
## PostToolUse Hooks
`~/.claude/settings.json` içinde yapılandır:
- **Prettier**: Edit'ten sonra JS/TS dosyalarını otomatik formatla
- **TypeScript check**: `.ts`/`.tsx` dosyalarını düzenledikten sonra `tsc` çalıştır
- **console.log uyarısı**: Düzenlenen dosyalarda `console.log` hakkında uyar
## Stop Hooks
- **console.log audit**: Session bitmeden önce değiştirilen tüm dosyalarda `console.log` kontrolü yap

View File

@@ -0,0 +1,52 @@
---
paths:
- "**/*.ts"
- "**/*.tsx"
- "**/*.js"
- "**/*.jsx"
---
# TypeScript/JavaScript Pattern'leri
> Bu dosya [common/patterns.md](../common/patterns.md) dosyasını TypeScript/JavaScript'e özgü içerikle genişletir.
## API Response Formatı
```typescript
interface ApiResponse<T> {
success: boolean
data?: T
error?: string
meta?: {
total: number
page: number
limit: number
}
}
```
## Custom Hooks Pattern
```typescript
export function useDebounce<T>(value: T, delay: number): T {
const [debouncedValue, setDebouncedValue] = useState<T>(value)
useEffect(() => {
const handler = setTimeout(() => setDebouncedValue(value), delay)
return () => clearTimeout(handler)
}, [value, delay])
return debouncedValue
}
```
## Repository Pattern
```typescript
interface Repository<T> {
findAll(filters?: Filters): Promise<T[]>
findById(id: string): Promise<T | null>
create(data: CreateDto): Promise<T>
update(id: string, data: UpdateDto): Promise<T>
delete(id: string): Promise<void>
}
```

View File

@@ -0,0 +1,28 @@
---
paths:
- "**/*.ts"
- "**/*.tsx"
- "**/*.js"
- "**/*.jsx"
---
# TypeScript/JavaScript Güvenlik
> Bu dosya [common/security.md](../common/security.md) dosyasını TypeScript/JavaScript'e özgü içerikle genişletir.
## Secret Yönetimi
```typescript
// ASLA: Hardcoded secret'lar
const apiKey = "sk-proj-xxxxx"
// DAIMA: Environment variable'lar
const apiKey = process.env.OPENAI_API_KEY
if (!apiKey) {
throw new Error('OPENAI_API_KEY not configured')
}
```
## Agent Desteği
- Kapsamlı güvenlik denetimleri için **security-reviewer** skill kullan

View File

@@ -0,0 +1,18 @@
---
paths:
- "**/*.ts"
- "**/*.tsx"
- "**/*.js"
- "**/*.jsx"
---
# TypeScript/JavaScript Testing
> Bu dosya [common/testing.md](../common/testing.md) dosyasını TypeScript/JavaScript'e özgü içerikle genişletir.
## E2E Testing
Kritik kullanıcı akışları için E2E test framework'ü olarak **Playwright** kullan.
## Agent Desteği
- **e2e-runner** - Playwright E2E testing uzmanı