# Everything Claude Code'a Katkıda Bulunma

Katkıda bulunmak istediğiniz için teşekkürler! Bu repo, Claude Code kullanıcıları için bir topluluk kaynağıdır.

## İçindekiler

- [Ne Arıyoruz](#ne-arıyoruz)
- [Hızlı Başlangıç](#hızlı-başlangıç)
- [Skill'lere Katkıda Bulunma](#skilllere-katkıda-bulunma)
- [Agent'lara Katkıda Bulunma](#agentlara-katkıda-bulunma)
- [Hook'lara Katkıda Bulunma](#hooklara-katkıda-bulunma)
- [Command'lara Katkıda Bulunma](#commandlara-katkıda-bulunma)
- [MCP ve dokümantasyon (örn. Context7)](#mcp-ve-dokümantasyon-örn-context7)
- [Cross-Harness ve Çeviriler](#cross-harness-ve-çeviriler)
- [Pull Request Süreci](#pull-request-süreci)

---

## Ne Arıyoruz

### Agent'lar
Belirli görevleri iyi yöneten yeni agent'lar:
- Dile özgü reviewer'lar (Python, Go, Rust)
- Framework uzmanları (Django, Rails, Laravel, Spring)
- DevOps uzmanları (Kubernetes, Terraform, CI/CD)
- Alan uzmanları (ML pipeline'ları, data engineering, mobil)

### Skill'ler
Workflow tanımları ve alan bilgisi:
- Dil en iyi uygulamaları
- Framework pattern'leri
- Test stratejileri
- Mimari kılavuzları

### Hook'lar
Faydalı otomasyonlar:
- Linting/formatlama hook'ları
- Güvenlik kontrolleri
- Doğrulama hook'ları
- Bildirim hook'ları

### Command'lar
Faydalı workflow'ları çağıran slash command'lar:
- Deployment command'ları
- Test command'ları
- Kod üretim command'ları

---

## Hızlı Başlangıç

```bash
# 1. Fork ve clone
gh repo fork affaan-m/everything-claude-code --clone
cd everything-claude-code

# 2. Branch oluştur
git checkout -b feat/my-contribution

# 3. Katkınızı ekleyin (aşağıdaki bölümlere bakın)

# 4. Yerel olarak test edin
cp -r skills/my-skill ~/.claude/skills/  # skill'ler için
# Ardından Claude Code ile test edin

# 5. PR gönderin
git add . && git commit -m "feat: add my-skill" && git push -u origin feat/my-contribution
```

---

## Skill'lere Katkıda Bulunma

Skill'ler, Claude Code'un bağlama göre yüklediği bilgi modülleridir.

### Dizin Yapısı

```
skills/
└── your-skill-name/
    └── SKILL.md
```

### SKILL.md Şablonu

```markdown
---
name: your-skill-name
description: Skill listesinde gösterilen kısa açıklama
origin: ECC
---

# Skill Başlığınız

Bu skill'in neyi kapsadığına dair kısa genel bakış.

## Temel Kavramlar

Temel pattern'leri ve yönergeleri açıklayın.

## Kod Örnekleri

\`\`\`typescript
// Pratik, test edilmiş örnekler ekleyin
function example() {
  // İyi yorumlanmış kod
}
\`\`\`

## En İyi Uygulamalar

- Uygulanabilir yönergeler
- Yapılması ve yapılmaması gerekenler
- Kaçınılması gereken yaygın hatalar

## Ne Zaman Kullanılır

Bu skill'in uygulandığı senaryoları açıklayın.
```

### Skill Kontrol Listesi

- [ ] Tek bir alan/teknolojiye odaklanmış
- [ ] Pratik kod örnekleri içeriyor
- [ ] 500 satırın altında
- [ ] Net bölüm başlıkları kullanıyor
- [ ] Claude Code ile test edilmiş

### Örnek Skill'ler

| Skill | Amaç |
|-------|---------|
| `coding-standards/` | TypeScript/JavaScript pattern'leri |
| `frontend-patterns/` | React ve Next.js en iyi uygulamaları |
| `backend-patterns/` | API ve veritabanı pattern'leri |
| `security-review/` | Güvenlik kontrol listesi |

---

## Agent'lara Katkıda Bulunma

Agent'lar, Task tool üzerinden çağrılan özelleşmiş asistanlardır.

### Dosya Konumu

```
agents/your-agent-name.md
```

### Agent Şablonu

```markdown
---
name: your-agent-name
description: Bu agent'ın ne yaptığı ve Claude'un onu ne zaman çağırması gerektiği. Spesifik olun!
tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
model: sonnet
---

Siz bir [rol] uzmanısınız.

## Rolünüz

- Birincil sorumluluk
- İkincil sorumluluk
- YAPMADIĞINIZ şeyler (sınırlar)

## Workflow

### Adım 1: Anlama
Göreve nasıl yaklaşıyorsunuz.

### Adım 2: Uygulama
İşi nasıl gerçekleştiriyorsunuz.

### Adım 3: Doğrulama
Sonuçları nasıl doğruluyorsunuz.

## Çıktı Formatı

Kullanıcıya ne döndürüyorsunuz.

## Örnekler

### Örnek: [Senaryo]
Girdi: [kullanıcının sağladığı]
Eylem: [yaptığınız]
Çıktı: [döndürdüğünüz]
```

### Agent Alanları

| Alan | Açıklama | Seçenekler |
|-------|-------------|---------|
| `name` | Küçük harf, tire ile ayrılmış | `code-reviewer` |
| `description` | Ne zaman çağrılacağına karar vermek için kullanılır | Spesifik olun! |
| `tools` | Sadece gerekli olanlar | `Read, Write, Edit, Bash, Grep, Glob, WebFetch, Task`, veya agent MCP kullanıyorsa MCP tool isimleri (örn. `mcp__context7__resolve-library-id`, `mcp__context7__query-docs`) |
| `model` | Karmaşıklık seviyesi | `haiku` (basit), `sonnet` (kodlama), `opus` (karmaşık) |

### Örnek Agent'lar

| Agent | Amaç |
|-------|---------|
| `tdd-guide.md` | Test odaklı geliştirme |
| `code-reviewer.md` | Kod incelemesi |
| `security-reviewer.md` | Güvenlik taraması |
| `build-error-resolver.md` | Build hatalarını düzeltme |

---

## Hook'lara Katkıda Bulunma

Hook'lar, Claude Code olayları tarafından tetiklenen otomatik davranışlardır.

### Dosya Konumu

```
hooks/hooks.json
```

### Hook Türleri

| Tür | Tetikleyici | Kullanım Alanı |
|------|---------|----------|
| `PreToolUse` | Tool çalışmadan önce | Doğrulama, uyarı, engelleme |
| `PostToolUse` | Tool çalıştıktan sonra | Formatlama, kontrol, bildirim |
| `SessionStart` | Oturum başladığında | Bağlam yükleme |
| `Stop` | Oturum sona erdiğinde | Temizleme, denetim |

### Hook Formatı

```json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "tool == \"Bash\" && tool_input.command matches \"rm -rf /\"",
        "hooks": [
          {
            "type": "command",
            "command": "echo '[Hook] ENGELLENDİ: Tehlikeli komut' && exit 1"
          }
        ],
        "description": "Tehlikeli rm komutlarını engelle"
      }
    ]
  }
}
```

### Matcher Sözdizimi

```javascript
// Belirli tool'ları eşleştir
tool == "Bash"
tool == "Edit"
tool == "Write"

// Girdi pattern'lerini eşleştir
tool_input.command matches "npm install"
tool_input.file_path matches "\\.tsx?$"

// Koşulları birleştir
tool == "Bash" && tool_input.command matches "git push"
```

### Hook Örnekleri

```json
// tmux dışında dev server'ları engelle
{
  "matcher": "tool == \"Bash\" && tool_input.command matches \"npm run dev\"",
  "hooks": [{"type": "command", "command": "echo 'Dev server'lar için tmux kullanın' && exit 1"}],
  "description": "Dev server'ların tmux'ta çalışmasını sağla"
}

// TypeScript düzenledikten sonra otomatik formatla
{
  "matcher": "tool == \"Edit\" && tool_input.file_path matches \"\\.tsx?$\"",
  "hooks": [{"type": "command", "command": "npx prettier --write \"$file_path\""}],
  "description": "TypeScript dosyalarını düzenlemeden sonra formatla"
}

// git push öncesi uyar
{
  "matcher": "tool == \"Bash\" && tool_input.command matches \"git push\"",
  "hooks": [{"type": "command", "command": "echo '[Hook] Push yapmadan önce değişiklikleri gözden geçirin'"}],
  "description": "Push öncesi gözden geçirme hatırlatıcısı"
}
```

### Hook Kontrol Listesi

- [ ] Matcher spesifik (aşırı geniş değil)
- [ ] Net hata/bilgi mesajları içeriyor
- [ ] Doğru çıkış kodlarını kullanıyor (`exit 1` engeller, `exit 0` izin verir)
- [ ] Kapsamlı test edilmiş
- [ ] Açıklama içeriyor

---

## Command'lara Katkıda Bulunma

Command'lar, `/command-name` ile kullanıcı tarafından çağrılan eylemlerdir.

### Dosya Konumu

```
commands/your-command.md
```

### Command Şablonu

```markdown
---
description: /help'te gösterilen kısa açıklama
---

# Command Adı

## Amaç

Bu command'ın ne yaptığı.

## Kullanım

\`\`\`
/your-command [args]
\`\`\`

## Workflow

1. İlk adım
2. İkinci adım
3. Son adım

## Çıktı

Kullanıcının aldığı.
```

### Örnek Command'lar

| Command | Amaç |
|---------|---------|
| `commit.md` | Git commit'leri oluştur |
| `code-review.md` | Kod değişikliklerini incele |
| `tdd.md` | TDD workflow'u |
| `e2e.md` | E2E test |

---

## MCP ve dokümantasyon (örn. Context7)

Skill'ler ve agent'lar, sadece eğitim verilerine güvenmek yerine güncel verileri çekmek için **MCP (Model Context Protocol)** tool'larını kullanabilir. Bu özellikle dokümantasyon için faydalıdır.

- **Context7**, `resolve-library-id` ve `query-docs`'u açığa çıkaran bir MCP server'ıdır. Kullanıcı kütüphaneler, framework'ler veya API'ler hakkında sorduğunda, cevapların güncel dokümantasyonu ve kod örneklerini yansıtması için kullanın.
- Canlı dokümantasyona bağlı **skill'lere** katkıda bulunurken (örn. kurulum, API kullanımı), ilgili MCP tool'larının nasıl kullanılacağını açıklayın (örn. kütüphane ID'sini çözümle, ardından dokümantasyonu sorgula) ve pattern olarak `documentation-lookup` skill'ine veya Context7'ye işaret edin.
- Dokümantasyon/API sorularını yanıtlayan **agent'lara** katkıda bulunurken, agent'ın tool'larına Context7 MCP tool isimlerini ekleyin (örn. `mcp__context7__resolve-library-id`, `mcp__context7__query-docs`) ve çözümle → sorgula workflow'unu belgeleyin.
- **mcp-configs/mcp-servers.json** bir Context7 girişi içerir; kullanıcılar `documentation-lookup` skill'ini (`skills/documentation-lookup/` içinde) ve `/docs` command'ını kullanmak için bunu harness'lerinde (örn. Claude Code, Cursor) etkinleştirir.

---

## Cross-Harness ve Çeviriler

### Skill alt kümeleri (Codex ve Cursor)

ECC, diğer harness'ler için skill alt kümeleri içerir:

- **Codex:** `.agents/skills/` — `agents/openai.yaml` içinde listelenen skill'ler Codex tarafından yüklenir.
- **Cursor:** `.cursor/skills/` — Cursor için bir skill alt kümesi paketlenmiştir.

Codex veya Cursor'da kullanılabilir olması gereken **yeni bir skill eklediğinizde**:

1. Skill'i her zamanki gibi `skills/your-skill-name/` altına ekleyin.
2. **Codex**'te kullanılabilir olması gerekiyorsa, `.agents/skills/` altına ekleyin (skill dizinini kopyalayın veya referans ekleyin) ve gerekirse `agents/openai.yaml` içinde referans verildiğinden emin olun.
3. **Cursor**'da kullanılabilir olması gerekiyorsa, Cursor'un düzenine göre `.cursor/skills/` altına ekleyin.

Beklenen yapı için bu dizinlerdeki mevcut skill'leri kontrol edin. Bu alt kümeleri senkronize tutmak manuel bir işlemdir; bunları güncellediyseniz PR'ınızda belirtin.

### Çeviriler

Çeviriler `docs/` altında bulunur (örn. `docs/zh-CN`, `docs/zh-TW`, `docs/ja-JP`). Çevrilmiş agent'ları, command'ları veya skill'leri değiştirirseniz, ilgili çeviri dosyalarını güncellemeyi veya bakımcıların ya da çevirmenlerin bunları güncelleyebilmesi için bir issue açmayı düşünün.

---

## Pull Request Süreci

### 1. PR Başlık Formatı

```
feat(skills): add rust-patterns skill
feat(agents): add api-designer agent
feat(hooks): add auto-format hook
fix(skills): update React patterns
docs: improve contributing guide
```

### 2. PR Açıklaması

```markdown
## Özet
Ne eklediğiniz ve neden.

## Tür
- [ ] Skill
- [ ] Agent
- [ ] Hook
- [ ] Command

## Test
Bunu nasıl test ettiniz.

## Kontrol Listesi
- [ ] Format yönergelerini takip ediyor
- [ ] Claude Code ile test edildi
- [ ] Hassas bilgi yok (API anahtarları, yollar)
- [ ] Net açıklamalar
```

### 3. İnceleme Süreci

1. Bakımcılar 48 saat içinde inceler
2. İstenirse geri bildirimlere cevap verin
3. Onaylandığında, main'e merge edilir

---

## Yönergeler

### Yapın
- Katkıları odaklanmış ve modüler tutun
- Net açıklamalar ekleyin
- Göndermeden önce test edin
- Mevcut pattern'leri takip edin
- Bağımlılıkları belgeleyin

### Yapmayın
- Hassas veri eklemeyin (API anahtarları, token'lar, yollar)
- Aşırı karmaşık veya niş config'ler eklemeyin
- Test edilmemiş katkılar göndermeyin
- Mevcut işlevselliğin kopyalarını oluşturmayın

---

## Dosya Adlandırma

- Tire ile küçük harf kullanın: `python-reviewer.md`
- Açıklayıcı olun: `tdd-workflow.md` değil `workflow.md`
- İsim, dosya adıyla eşleşsin

---

## Sorularınız mı var?

- **Issue'lar:** [github.com/affaan-m/everything-claude-code/issues](https://github.com/affaan-m/everything-claude-code/issues)
- **X/Twitter:** [@affaanmustafa](https://x.com/affaanmustafa)

---

Katkıda bulunduğunuz için teşekkürler! Birlikte harika bir kaynak oluşturalım.
