claude-code-router-config 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -10
- package/docs/AGENTSKILLS_INTEGRATION.md +500 -0
- package/docs/AGENTSKILLS_SETUP.md +743 -0
- package/docs/AGENTSKILLS_SETUP_TR.md +736 -0
- package/docs/FULL_DOCUMENTATION.md +23 -2
- package/docs/FULL_DOCUMENTATION_EN.md +23 -2
- package/docs/HOMEBREW_SETUP.md +252 -0
- package/package.json +17 -8
|
@@ -0,0 +1,736 @@
|
|
|
1
|
+
# AgentSkills Kurulum Rehberi
|
|
2
|
+
|
|
3
|
+
## Hızlı Başlangıç
|
|
4
|
+
|
|
5
|
+
Bu rehber, AgentSkills'i Claude Code Router yapılandırmanıza entegre etmek için adım adım talimatlar sağlar.
|
|
6
|
+
|
|
7
|
+
## Ön Koşullar
|
|
8
|
+
|
|
9
|
+
- Çalışan Claude Code Router kurulumu (Homebrew kurulumuna bakın)
|
|
10
|
+
- Claude Sonnet 4 erişimi olan Anthropic API anahtarı
|
|
11
|
+
- Yüklü Node.js 16+ ve pnpm
|
|
12
|
+
- JSON ve JavaScript yapılandırması hakkında temel bilgi
|
|
13
|
+
|
|
14
|
+
## Adım 1: Yapılandırma Dosyalarını Güncelleyin
|
|
15
|
+
|
|
16
|
+
### 1.1 config.json Dosyasını Güncelleyin
|
|
17
|
+
|
|
18
|
+
AgentSkills'i yeni bir sağlayıcı olarak ekleyin:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Mevcut yapılandırmayı yedekle
|
|
22
|
+
cp ~/.claude-code-router/config.json ~/.claude-code-router/config.json.backup
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
`~/.claude-code-router/config.json` dosyasını düzenleyin ve AgentSkills sağlayıcısını ekleyin:
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"_comment": "AgentSkills Entegrasyonlu Claude Code Router Yapılandırması",
|
|
30
|
+
"_attribution": "Orijinal proje: https://github.com/musistudio/claude-code-router",
|
|
31
|
+
"_author": "Yapılandırma: Halil Ertekin",
|
|
32
|
+
"LOG": true,
|
|
33
|
+
"LOG_LEVEL": "info",
|
|
34
|
+
"API_TIMEOUT_MS": 300000,
|
|
35
|
+
"CUSTOM_ROUTER_PATH": "$HOME/.claude-code-router/intent-router.js",
|
|
36
|
+
|
|
37
|
+
"Providers": [
|
|
38
|
+
{
|
|
39
|
+
"name": "openai",
|
|
40
|
+
"api_base_url": "https://api.openai.com/v1/chat/completions",
|
|
41
|
+
"api_key": "$OPENAI_API_KEY",
|
|
42
|
+
"models": ["gpt-4o", "gpt-4-turbo", "gpt-4o-mini", "o1", "o1-mini"],
|
|
43
|
+
"transformer": { "use": [] }
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "anthropic",
|
|
47
|
+
"api_base_url": "https://api.anthropic.com/v1/messages",
|
|
48
|
+
"api_key": "$ANTHROPIC_API_KEY",
|
|
49
|
+
"models": ["claude-sonnet-4-latest", "claude-3-5-sonnet-latest"],
|
|
50
|
+
"transformer": { "use": ["Anthropic"] }
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "agentskills",
|
|
54
|
+
"api_base_url": "https://api.anthropic.com/v1/messages",
|
|
55
|
+
"api_key": "$ANTHROPIC_API_KEY",
|
|
56
|
+
"models": ["claude-sonnet-4-latest"],
|
|
57
|
+
"transformer": { "use": ["Anthropic"] },
|
|
58
|
+
"skills_enabled": true,
|
|
59
|
+
"skills_registry": "$HOME/.claude-code-router/skills"
|
|
60
|
+
}
|
|
61
|
+
// ... diğer sağlayıcılar
|
|
62
|
+
],
|
|
63
|
+
|
|
64
|
+
"Router": {
|
|
65
|
+
"default": "openai,gpt-4o",
|
|
66
|
+
"background": "qwen,qwen-turbo",
|
|
67
|
+
"think": "anthropic,claude-sonnet-4-latest",
|
|
68
|
+
"longContext": "gemini,gemini-2.5-flash",
|
|
69
|
+
"longContextThreshold": 60000,
|
|
70
|
+
"skills": "agentskills,claude-sonnet-4-latest"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 1.2 Skills Dizinini Oluşturun
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# Skills dizinini oluştur
|
|
79
|
+
mkdir -p ~/.claude-code-router/skills
|
|
80
|
+
|
|
81
|
+
# Skill kayıt dosyasını oluştur
|
|
82
|
+
cat > ~/.claude-code-router/skills/registry.json << 'EOF'
|
|
83
|
+
{
|
|
84
|
+
"version": "1.0.0",
|
|
85
|
+
"skills": [
|
|
86
|
+
{
|
|
87
|
+
"name": "business-panel",
|
|
88
|
+
"description": "Uzman çerçevelerle iş analizi",
|
|
89
|
+
"provider": "agentskills",
|
|
90
|
+
"model": "claude-sonnet-4-latest",
|
|
91
|
+
"enabled": true,
|
|
92
|
+
"priority": "highest"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"name": "code-review",
|
|
96
|
+
"description": "Kapsamlı kod kalitesi analizi",
|
|
97
|
+
"provider": "agentskills",
|
|
98
|
+
"model": "claude-sonnet-4-latest",
|
|
99
|
+
"enabled": true,
|
|
100
|
+
"priority": "high"
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
EOF
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Adım 2: Intent Router'ı Güncelleyin
|
|
108
|
+
|
|
109
|
+
### 2.1 Gelişmiş Intent Router Oluşturun
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Mevcut router'ı yedekle
|
|
113
|
+
cp ~/.claude-code-router/intent-router.js ~/.claude-code-router/intent-router.js.backup
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
`~/.claude-code-router/intent-router.js` dosyasında yeni gelişmiş intent router oluşturun:
|
|
117
|
+
|
|
118
|
+
```javascript
|
|
119
|
+
/**
|
|
120
|
+
* AgentSkills Entegrasyonlu Çoklu Sağlayıcı Intent Router
|
|
121
|
+
- İsteğin görev türüne ve beceri gereksinimlerine göre optimal sağlayıcıya yönlendirme
|
|
122
|
+
*
|
|
123
|
+
* Bu router @musistudio/claude-code-router ile kullanım için tasarlanmıştır
|
|
124
|
+
* Orijinal proje: https://github.com/musistudio/claude-code-router
|
|
125
|
+
*
|
|
126
|
+
* AgentSkills desteği ile geliştiren: Halil Ertekin
|
|
127
|
+
*/
|
|
128
|
+
|
|
129
|
+
const fs = require('fs');
|
|
130
|
+
const path = require('path');
|
|
131
|
+
|
|
132
|
+
// Skills kayıt defterini yükle
|
|
133
|
+
let skillsRegistry = null;
|
|
134
|
+
try {
|
|
135
|
+
const registryPath = path.join(process.env.HOME || process.env.USERPROFILE, '.claude-code-router/skills/registry.json');
|
|
136
|
+
skillsRegistry = JSON.parse(fs.readFileSync(registryPath, 'utf8'));
|
|
137
|
+
} catch (error) {
|
|
138
|
+
console.log('[Router] Skills kayıt defteri bulunamadı, standart yönlendirme kullanılıyor');
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const INTENTS = {
|
|
142
|
+
// AgentSkills yönlendirmesi - en yüksek öncelik
|
|
143
|
+
AGENT_SKILLS: {
|
|
144
|
+
patterns: [
|
|
145
|
+
/\b\/sc:[\w-]+\b/i, // Tüm SuperClaude komutları
|
|
146
|
+
/\b(skill:|capability:|expertise:)\w+/i,
|
|
147
|
+
/\b(agent|assistant) with \w+ skill/i
|
|
148
|
+
],
|
|
149
|
+
route: "agentskills,claude-sonnet-4-latest",
|
|
150
|
+
priority: 100
|
|
151
|
+
},
|
|
152
|
+
|
|
153
|
+
// Business Panel - uzman analizi
|
|
154
|
+
BUSINESS_PANEL: {
|
|
155
|
+
patterns: [
|
|
156
|
+
/\b\/sc:business-panel\b/i,
|
|
157
|
+
/\b(iş analizi|stratejik planlama|pazar araştırması)\b/i,
|
|
158
|
+
/\b(porter|christensen|drucker|godin|meadows)\b/i
|
|
159
|
+
],
|
|
160
|
+
route: "agentskills,business-panel",
|
|
161
|
+
priority: 90,
|
|
162
|
+
fallback: "anthropic,claude-sonnet-4-latest"
|
|
163
|
+
},
|
|
164
|
+
|
|
165
|
+
// Code Review - uzman analizi
|
|
166
|
+
CODE_REVIEW: {
|
|
167
|
+
patterns: [
|
|
168
|
+
/\b\/sc:code-review\b/i,
|
|
169
|
+
/\b(kodu incele|kod kalitesi|en iyi uygulamalar)\b/i,
|
|
170
|
+
/\b(pr review|pull request|kod analizi)\b/i
|
|
171
|
+
],
|
|
172
|
+
route: "agentskills,code-review",
|
|
173
|
+
priority: 85,
|
|
174
|
+
fallback: "openai,gpt-4o"
|
|
175
|
+
},
|
|
176
|
+
|
|
177
|
+
// Orijinal intent'ler ayarlanmış önceliklerle
|
|
178
|
+
CODING: {
|
|
179
|
+
patterns: [
|
|
180
|
+
/\b(implement|refactor|debug|fix|write|code|function|class|method|bug|error|compile|syntax)\b/i,
|
|
181
|
+
/\b(typescript|javascript|python|rust|go|java|react|vue|angular|swift|kotlin)\b/i,
|
|
182
|
+
/\b(api|endpoint|database|query|migration|schema|test|unit test)\b/i,
|
|
183
|
+
/\b(codex|o1|reasoning)\b/i
|
|
184
|
+
],
|
|
185
|
+
route: "openai,gpt-4o",
|
|
186
|
+
priority: 80
|
|
187
|
+
},
|
|
188
|
+
|
|
189
|
+
REASONING: {
|
|
190
|
+
patterns: [
|
|
191
|
+
/\b(architect|design|analyze|plan|strategy|structure|system|trade-?off)\b/i,
|
|
192
|
+
/\b(why|explain|reason|understand|compare|evaluate|consider|review)\b/i,
|
|
193
|
+
/\b(decision|approach|best practice|pattern|principle|philosophy)\b/i
|
|
194
|
+
],
|
|
195
|
+
route: "anthropic,claude-sonnet-4-latest",
|
|
196
|
+
priority: 75
|
|
197
|
+
},
|
|
198
|
+
|
|
199
|
+
// ... diğer mevcut intent'ler
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
// İçerik çıkarma yardımcı fonksiyonu
|
|
203
|
+
function extractContent(req) {
|
|
204
|
+
const messages = req.body?.messages || [];
|
|
205
|
+
return messages
|
|
206
|
+
.filter(m => m.role === "user" || m.role === "system")
|
|
207
|
+
.map(m => typeof m.content === "string" ? m.content : JSON.stringify(m.content))
|
|
208
|
+
.join(" ")
|
|
209
|
+
.slice(0, 3000);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// Gelişmiş beceri tespiti
|
|
213
|
+
function detectSkills(content) {
|
|
214
|
+
const skills = [];
|
|
215
|
+
|
|
216
|
+
// SuperClaude komutlarını kontrol et
|
|
217
|
+
const scMatch = content.match(/\/sc:([\w-]+)/i);
|
|
218
|
+
if (scMatch) {
|
|
219
|
+
skills.push({
|
|
220
|
+
type: 'superclaude',
|
|
221
|
+
command: scMatch[1],
|
|
222
|
+
confidence: 0.95
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// Beceri anahtar kelimelerini kontrol et
|
|
227
|
+
if (skillsRegistry) {
|
|
228
|
+
skillsRegistry.skills.forEach(skill => {
|
|
229
|
+
if (skill.enabled && content.toLowerCase().includes(skill.name.toLowerCase())) {
|
|
230
|
+
skills.push({
|
|
231
|
+
type: 'skill',
|
|
232
|
+
name: skill.name,
|
|
233
|
+
provider: skill.provider,
|
|
234
|
+
model: skill.model,
|
|
235
|
+
confidence: 0.8
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
return skills.sort((a, b) => b.confidence - a.confidence);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// Beceri farkındalığı ile gelişmiş intent tespiti
|
|
245
|
+
function detectIntent(content) {
|
|
246
|
+
const skills = detectSkills(content);
|
|
247
|
+
const scores = {};
|
|
248
|
+
|
|
249
|
+
// Intent'leri puanla
|
|
250
|
+
for (const [intent, config] of Object.entries(INTENTS)) {
|
|
251
|
+
scores[intent] = {
|
|
252
|
+
score: config.patterns.reduce((score, pattern) => {
|
|
253
|
+
const matches = (content.match(pattern) || []).length;
|
|
254
|
+
return score + matches;
|
|
255
|
+
}, 0),
|
|
256
|
+
priority: config.priority || 0,
|
|
257
|
+
config: config
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
// Becerileri faktöre ekle
|
|
262
|
+
if (skills.length > 0) {
|
|
263
|
+
// Beceriler tespit edilirse AgentSkills intent'ini artır
|
|
264
|
+
if (scores.AGENT_SKILLS) {
|
|
265
|
+
scores.AGENT_SKILLS.score += skills.length * 2;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
// Önce skora, sonra önceliğe göre sırala
|
|
270
|
+
const sorted = Object.entries(scores)
|
|
271
|
+
.filter(([_, data]) => data.score > 0)
|
|
272
|
+
.sort((a, b) => {
|
|
273
|
+
// Birincil sıralama: skor
|
|
274
|
+
if (b[1].score !== a[1].score) {
|
|
275
|
+
return b[1].score - a[1].score;
|
|
276
|
+
}
|
|
277
|
+
// İkincil sıralama: öncelik
|
|
278
|
+
return b[1].priority - a[1].priority;
|
|
279
|
+
});
|
|
280
|
+
|
|
281
|
+
return sorted.length > 0 ? sorted[0][0] : null;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// Ana yönlendirme fonksiyonu
|
|
285
|
+
module.exports = async function router(req, config) {
|
|
286
|
+
const content = extractContent(req);
|
|
287
|
+
const skills = detectSkills(content);
|
|
288
|
+
const intent = detectIntent(content);
|
|
289
|
+
|
|
290
|
+
// Hata ayıklama için tespiti logla
|
|
291
|
+
if (skills.length > 0) {
|
|
292
|
+
console.log(`[Router] Beceriler tespit edildi: ${skills.map(s => s.name || s.type).join(', ')}`);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
if (intent && INTENTS[intent]) {
|
|
296
|
+
const route = INTENTS[intent].route;
|
|
297
|
+
console.log(`[Router] ${intent} → ${route}`);
|
|
298
|
+
|
|
299
|
+
// Rotanın AgentSkills kullanıp kullanmadığını kontrol et
|
|
300
|
+
if (route.includes('agentskills') && skills.length > 0) {
|
|
301
|
+
// İsteği beceri bilgileriyle zenginleştir
|
|
302
|
+
if (!req.body) req.body = {};
|
|
303
|
+
if (!req.body.metadata) req.body.metadata = {};
|
|
304
|
+
req.body.metadata.skills = skills;
|
|
305
|
+
req.body.metadata.intent = intent;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
return route;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
// Fallback
|
|
312
|
+
console.log("[Router] Eşleşme yok → openai,gpt-4o");
|
|
313
|
+
return null;
|
|
314
|
+
};
|
|
315
|
+
|
|
316
|
+
// Test için yardımcı fonksiyonları dışa aktar
|
|
317
|
+
module.exports.detectSkills = detectSkills;
|
|
318
|
+
module.exports.detectIntent = detectIntent;
|
|
319
|
+
module.exports.INTENTS = INTENTS;
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
## Adım 3: Beceri Tanımlamaları Oluşturun
|
|
323
|
+
|
|
324
|
+
### 3.1 Business Panel Becerisi
|
|
325
|
+
|
|
326
|
+
`~/.claude-code-router/skills/business-panel/SKILL.md` dosyasını oluşturun:
|
|
327
|
+
|
|
328
|
+
```markdown
|
|
329
|
+
---
|
|
330
|
+
name: "business-panel"
|
|
331
|
+
description: "Uzman çerçevelerle iş analizi (Porter, Christensen, Drucker, Godin, Meadows)"
|
|
332
|
+
version: "1.0.0"
|
|
333
|
+
license: "MIT"
|
|
334
|
+
compatibility: ["claude-sonnet-4-latest"]
|
|
335
|
+
tags: ["iş", "strateji", "analiz", "uzman-panel"]
|
|
336
|
+
allowed_tools: ["web-search", "context7", "sequential-thinking"]
|
|
337
|
+
metadata:
|
|
338
|
+
expertise_level: "expert"
|
|
339
|
+
response_time: "slow"
|
|
340
|
+
cost_level: "high"
|
|
341
|
+
experts: ["porter", "christensen", "drucker", "godin", "meadows"]
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
# Business Panel Becerisi
|
|
345
|
+
|
|
346
|
+
## Genel Bakış
|
|
347
|
+
Bu beceri, kuruluş çerçevelerini ve metodolojilerini kullanarak kapsamlı iş analizi için sanal bir uzman paneli aktive eder.
|
|
348
|
+
|
|
349
|
+
## Uzman Yetenekleri
|
|
350
|
+
|
|
351
|
+
### Michael Porter - Rekabet Stratejisi
|
|
352
|
+
- **Beş Güç Analizi**: Sektör yapısı değerlendirmesi
|
|
353
|
+
- **Değer Zinciri Analizi**: İç yetenek değerlendirmesi
|
|
354
|
+
- **Genel Stratejiler**: Maliyet liderliği, farklılaşma, odaklanma
|
|
355
|
+
- **Rekabet Avantajı**: Sürdürülebilir konumlandırma
|
|
356
|
+
|
|
357
|
+
### Clayton Christensen - Yıkım Teorisi
|
|
358
|
+
- **Jobs-to-be-Done**: Müşteri ihtiyacı analizi
|
|
359
|
+
- **Yıkım Paternleri**: Sektör dönüşümü tanımlaması
|
|
360
|
+
- **İnovasyon Metrikleri**: Büyüme fırsatı değerlendirmesi
|
|
361
|
+
- **Pazar Giriş Stratejisi**: Yıkıcı konumlandırma
|
|
362
|
+
|
|
363
|
+
### Peter Drucker - Yönetim İlkeleri
|
|
364
|
+
- **Yönetimle Hedef belirleme**: Hedef uyumu
|
|
365
|
+
- **Bilgi İşçi Verimliliği**: Takım optimizasyonu
|
|
366
|
+
- **İnovasyon ve Girişimcilik**: Büyüme çerçeveleri
|
|
367
|
+
- **Etkili Yönetici**: Liderlik gelişimi
|
|
368
|
+
|
|
369
|
+
### Seth Godin - Pazarlama ve Farklılaşma
|
|
370
|
+
- **Purple Cow Teorisi**: Farklı ürün geliştirme
|
|
371
|
+
- **İzinli Pazarlama**: Müşteri ilişkisi kurma
|
|
372
|
+
- **Kabileler**: Topluluk oluşturma ve yönetme
|
|
373
|
+
- **Hikaye Anlatımı**: Marka anlatısı oluşturma
|
|
374
|
+
|
|
375
|
+
### Donella Meadows - Sistem Düşüncesi
|
|
376
|
+
- **Kaldıraç Noktaları**: Sistem müdahalesi tanımlaması
|
|
377
|
+
- **Geri Besleme Döngüleri**: Patern tanıma
|
|
378
|
+
- **Sistem Arketipleri**: Yaygın dinamikler anlayışı
|
|
379
|
+
- **Sürdürülebilirlik**: Uzun vadeli yapılabilirlik analizi
|
|
380
|
+
|
|
381
|
+
## Kullanım Paternleri
|
|
382
|
+
|
|
383
|
+
### Tetikleyici İfadeler
|
|
384
|
+
- "/sc:business-panel"
|
|
385
|
+
- "iş analizi"
|
|
386
|
+
- "stratejik planlama"
|
|
387
|
+
- "pazar araştırması"
|
|
388
|
+
- "rekabet analizi"
|
|
389
|
+
- "uzman panel"
|
|
390
|
+
|
|
391
|
+
### Analiz Türleri
|
|
392
|
+
|
|
393
|
+
1. **Kapsamlı Stratejik Analiz**
|
|
394
|
+
- Girdi: İş planı, pazar verileri, rekabet ortamı
|
|
395
|
+
- Süreç: Çoklu uzman çerçevesi uygulaması
|
|
396
|
+
- Çıktı: Entegre stratejik öneriler
|
|
397
|
+
|
|
398
|
+
2. **Pazar Giriş Stratejisi**
|
|
399
|
+
- Girdi: Hedef pazar, ürün/hizmet, kaynaklar
|
|
400
|
+
- Süreç: Yıkım + rekabet analizi
|
|
401
|
+
- Çıktı: Zamanlama ve konumlandırma ile pazar stratejisi
|
|
402
|
+
|
|
403
|
+
3. **Organizasyonel Tasarım**
|
|
404
|
+
- Girdi: Mevcut yapı, hedefler, kısıtlamalar
|
|
405
|
+
- Süreç: Sistem düşüncesi + yönetim ilkeleri
|
|
406
|
+
- Çıktı: Optimize edilmiş organizasyonel tasarım
|
|
407
|
+
|
|
408
|
+
## Uygulama Notları
|
|
409
|
+
|
|
410
|
+
### En İyi Uygulamalar
|
|
411
|
+
- Karmaşık, çok yönlü iş zorlukları için kullanın
|
|
412
|
+
- Kapsamlı analiz için çoklu uzman perspektiflerini birleştirin
|
|
413
|
+
- Organizasyonel ve pazar sorunları için sistem düşüncesini uygulayın
|
|
414
|
+
- Teorik çerçeveler yerine eyleme geçirilebilir içgörülere odaklanın
|
|
415
|
+
|
|
416
|
+
### Sınırlamalar
|
|
417
|
+
- Anlamlı analiz için önemli bağlam gerektirir
|
|
418
|
+
- Optimal akıl yürütme için Claude Sonnet 4 ile en iyi sonucu verir
|
|
419
|
+
- Kapsamlı analiz nedeniyle daha yüksek token kullanımı
|
|
420
|
+
- Karmaşıklık nedeniyle yanıt süresi daha uzun olabilir
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
### 3.2 Code Review Becerisi
|
|
424
|
+
|
|
425
|
+
`~/.claude-code-router/skills/code-review/SKILL.md` dosyasını oluşturun:
|
|
426
|
+
|
|
427
|
+
```markdown
|
|
428
|
+
---
|
|
429
|
+
name: "code-review"
|
|
430
|
+
description: "Güvenlik, performans ve sürdürülebilirlik odaklı kapsamlı kod kalitesi analizi"
|
|
431
|
+
version: "1.0.0"
|
|
432
|
+
license: "MIT"
|
|
433
|
+
compatibility: ["claude-sonnet-4-latest", "claude-3-5-sonnet-latest"]
|
|
434
|
+
tags: ["kod", "inceleme", "kalite", "güvenlik", "performans"]
|
|
435
|
+
allowed_tools: ["context7", "sequential-thinking", "lsp"]
|
|
436
|
+
metadata:
|
|
437
|
+
expertise_level: "senior-developer"
|
|
438
|
+
response_time: "medium"
|
|
439
|
+
cost_level: "medium"
|
|
440
|
+
focus_areas: ["security", "performance", "maintainability", "patterns"]
|
|
441
|
+
---
|
|
442
|
+
|
|
443
|
+
# Code Review Becerisi
|
|
444
|
+
|
|
445
|
+
## Genel Bakış
|
|
446
|
+
Bu beceri, güvenlik açıkları, performans optimizasyon fırsatları, sürdürülebilirlik sorunları ve en iyi uygulamalara uyum konusunda kapsamlı kod analizi sağlar.
|
|
447
|
+
|
|
448
|
+
## İnceleme Boyutları
|
|
449
|
+
|
|
450
|
+
### Güvenlik Analizi
|
|
451
|
+
- **Güvenlik Ağı Tespiti**: SQL injection, XSS, CSRF, kimlik doğrulama kusurları
|
|
452
|
+
- **Veri Koruma**: Hassas veri işleme, şifreleme, erişim kontrolleri
|
|
453
|
+
- **Girdi Doğrulama**: Temizleme, sınır kontrolü, tip güvenliği
|
|
454
|
+
- **Bağımlılık Güvenliği**: Bilinen açıklar, lisans uyumu
|
|
455
|
+
|
|
456
|
+
### Performans Optimizasyonu
|
|
457
|
+
- **Algoritmik Verimlilik**: Zaman/alan karmaşıklığı analizi
|
|
458
|
+
- **Kaynak Kullanımı**: Bellek, CPU, G/Ç optimizasyonu
|
|
459
|
+
- **Önbellekleme Stratejileri**: Uygulama fırsatları
|
|
460
|
+
- **Veritabanı Optimizasyonu**: Sorgu verimliliği, indeksleme, bağlantı havuzu
|
|
461
|
+
|
|
462
|
+
### Kod Kalitesi ve Sürdürülebilirlik
|
|
463
|
+
- **Tasarım Paternleri**: Uygun patern kullanımı ve anti-paternler
|
|
464
|
+
- **Kod Organizasyonu**: Modülerlik, bağlılık, cohesion
|
|
465
|
+
- **Dokümantasyon**: Kod yorumları, API dokümantasyonu
|
|
466
|
+
- **Test Etme**: Test kapsamı, test kalitesi, kenar durumlar
|
|
467
|
+
|
|
468
|
+
### En İyi Uygulamalar
|
|
469
|
+
- **Dile Özel**: Dil başına idiyomatik kod kullanımı
|
|
470
|
+
- **Çerçeve Yönergeleri**: Çerçeveye özgü kurallar
|
|
471
|
+
- **Hata Yönetimi**: İstisna yönetimi, zararlı düşüş
|
|
472
|
+
- **Günlükleme**: Uygun günlük seviyeleri ve bilgiler
|
|
473
|
+
|
|
474
|
+
## Kullanım Paternleri
|
|
475
|
+
|
|
476
|
+
### Tetikleyici İfadeler
|
|
477
|
+
- "/sc:code-review"
|
|
478
|
+
- "kodumu incele"
|
|
479
|
+
- "kod kalitesi kontrolü"
|
|
480
|
+
- "güvenlik incelemesi"
|
|
481
|
+
- "performans analizi"
|
|
482
|
+
- "en iyi uygulamalar incelemesi"
|
|
483
|
+
|
|
484
|
+
### İnceleme Türleri
|
|
485
|
+
|
|
486
|
+
1. **Güvenlik Odaklı İnceleme**
|
|
487
|
+
- Öncelik: Kritik güvenlik açıkları ilk
|
|
488
|
+
- Kapsam: Kimlik doğrulama, yetkilendirme, veri koruma
|
|
489
|
+
- Çıktı: Şiddet derecelendirmesi ve düzeltmeleri olan güvenlik sorunları
|
|
490
|
+
|
|
491
|
+
2. **Performans İncelemesi**
|
|
492
|
+
- Öncelik: Darboğazlar ve optimizasyon fırsatları
|
|
493
|
+
- Kapsam: Algoritmik verimlilik, kaynak kullanımı
|
|
494
|
+
- Çıktı: Optimizasyon önerileri olan performans sorunları
|
|
495
|
+
|
|
496
|
+
3. **Kapsamlı İnceleme**
|
|
497
|
+
- Eşit öncelikli tüm boyutlar
|
|
498
|
+
- Bütünsel kod kalitesi değerlendirmesi
|
|
499
|
+
- Detaylı iyileştirme yol haritası
|
|
500
|
+
|
|
501
|
+
## İnceleme Süreci
|
|
502
|
+
|
|
503
|
+
### Analiz Adımları
|
|
504
|
+
1. **Kod Yapısı Anlama**: Ayrıştırma ve mimari anlama
|
|
505
|
+
2. **Patern Tanıma**: Tasarım paternleri ve anti-pernler
|
|
506
|
+
3. **Sorun Tespiti**: Güvenlik, performans ve kalite sorunlarını bul
|
|
507
|
+
4. **Etki Değerlendirmesi**: Sorunların şiddetini ve önceliğini değerlendir
|
|
508
|
+
5. **Öneri Üretimi**: Eyleme geçirilebilir iyileştirme önerileri sağla
|
|
509
|
+
|
|
510
|
+
### Çıktı Formatı
|
|
511
|
+
```
|
|
512
|
+
## Kod İnceleme Özeti
|
|
513
|
+
|
|
514
|
+
### 🔴 Kritik Sorunlar
|
|
515
|
+
[Yüksek öncelikli güvenlik veya işlevsellik sorunları]
|
|
516
|
+
|
|
517
|
+
### 🟡 Önemli İyileştirmeler
|
|
518
|
+
[Performans optimizasyonları, güvenlik iyileştirmeleri]
|
|
519
|
+
|
|
520
|
+
### 🟢 Öneriler
|
|
521
|
+
[Kod kalitesi, sürdürülebilirlik iyileştirmeleri]
|
|
522
|
+
|
|
523
|
+
### 📊 Metrikler
|
|
524
|
+
- Güvenlik Skoru: X/10
|
|
525
|
+
- Performans Skoru: X/10
|
|
526
|
+
- Sürdürülebilirlik Skoru: X/10
|
|
527
|
+
```
|
|
528
|
+
|
|
529
|
+
## Uygulama Notları
|
|
530
|
+
|
|
531
|
+
### Desteklenen Diller
|
|
532
|
+
- JavaScript/TypeScript
|
|
533
|
+
- Python
|
|
534
|
+
- Java
|
|
535
|
+
- Go
|
|
536
|
+
- Rust
|
|
537
|
+
- C#
|
|
538
|
+
- Ruby
|
|
539
|
+
|
|
540
|
+
### Entegrasyon Noktaları
|
|
541
|
+
- GitHub/GitLab PR incelemeleri
|
|
542
|
+
- CI/CD pipeline entegrasyonu
|
|
543
|
+
- IDE eklentileri
|
|
544
|
+
- Kod kalitesi panelleri
|
|
545
|
+
|
|
546
|
+
### Kalite Metrikleri
|
|
547
|
+
- Analiz edilen kod satırları
|
|
548
|
+
- Kategori başına bulunan sorunlar
|
|
549
|
+
- Yanlış pozitif oranı
|
|
550
|
+
- İnceleme tamamlanma süresi
|
|
551
|
+
|
|
552
|
+
## Sınırlamalar
|
|
553
|
+
- İnsan kod incelemesini tamamen yerine geçemez
|
|
554
|
+
- İş mantığı sorunlarını kaçıran olabilir
|
|
555
|
+
- Bağlama bağlı hataları gözden kaçırabilir
|
|
556
|
+
- Doğru analiz için yeterli kod bağlamı gerektirir
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
## Adım 4: Ortam Değişkenlerini Güncelleyin
|
|
560
|
+
|
|
561
|
+
`~/.env` dosyanıza ekleyin:
|
|
562
|
+
|
|
563
|
+
```bash
|
|
564
|
+
# AgentSkills Yapılandırması
|
|
565
|
+
export AGENTSKILLS_ENABLED="true"
|
|
566
|
+
export AGENTSKILLS_REGISTRY_PATH="$HOME/.claude-code-router/skills"
|
|
567
|
+
export AGENTSKILLS_LOG_LEVEL="info"
|
|
568
|
+
export AGENTSKILLS_CACHE_TTL="3600"
|
|
569
|
+
|
|
570
|
+
# Beceriye Özel Yapılandırma
|
|
571
|
+
export AGENTSKILLS_BUSINESS_PANEL_ENABLED="true"
|
|
572
|
+
export AGENTSKILLS_CODE_REVIEW_ENABLED="true"
|
|
573
|
+
export AGENTSKILLS_MAX_SKILLS_PER_REQUEST="3"
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
Shell'inizi yeniden yükleyin:
|
|
577
|
+
```bash
|
|
578
|
+
source ~/.zshrc
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
## Adım 5: Entegrasyonu Test Edin
|
|
582
|
+
|
|
583
|
+
### 5.1 Beceri Tespitini Test Edin
|
|
584
|
+
|
|
585
|
+
```bash
|
|
586
|
+
# SuperClaude komut tespitini test et
|
|
587
|
+
echo "Beceri tespiti test ediliyor..."
|
|
588
|
+
node -e "
|
|
589
|
+
const router = require('$HOME/.claude-code-router/intent-router.js');
|
|
590
|
+
const mockReq = {
|
|
591
|
+
body: {
|
|
592
|
+
messages: [{ role: 'user', content: '/sc:business-panel rekabet konumumuzu analiz edin' }]
|
|
593
|
+
}
|
|
594
|
+
};
|
|
595
|
+
router(mockReq, {}).then(route => console.log('Rota:', route));
|
|
596
|
+
"
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
### 5.2 Business Panel Becerisini Test Edin
|
|
600
|
+
|
|
601
|
+
```bash
|
|
602
|
+
# Router'ı başlat
|
|
603
|
+
ccr code
|
|
604
|
+
|
|
605
|
+
# Başka bir terminalde, curl ile test et
|
|
606
|
+
curl -X POST http://localhost:3456/v1/chat/completions \
|
|
607
|
+
-H "Content-Type: application/json" \
|
|
608
|
+
-d '{
|
|
609
|
+
"messages": [
|
|
610
|
+
{"role": "user", "content": "/sc:business-panel Elektrikli araç startupları için rekabet ortamını analiz edin"}
|
|
611
|
+
],
|
|
612
|
+
"model": "claude-sonnet-4-latest"
|
|
613
|
+
}'
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
### 5.3 Code Review Becerisini Test Edin
|
|
617
|
+
|
|
618
|
+
```bash
|
|
619
|
+
# Kod inceleme işlevselliğini test et
|
|
620
|
+
curl -X POST http://localhost:3456/v1/chat/completions \
|
|
621
|
+
-H "Content-Type: application/json" \
|
|
622
|
+
-d '{
|
|
623
|
+
"messages": [
|
|
624
|
+
{"role": "user", "content": "/sc:code-review Bu Python kodunu güvenlik açıklarından inceleyin:\n\n```python\ndef login(username, password):\n query = \"SELECT * FROM users WHERE username = '\" + username + \"' AND password = '\" + password + \"'\"\n return db.execute(query)\n```"}
|
|
625
|
+
],
|
|
626
|
+
"model": "claude-sonnet-4-latest"
|
|
627
|
+
}'
|
|
628
|
+
```
|
|
629
|
+
|
|
630
|
+
## Adım 6: İzleyin ve Optimize Edin
|
|
631
|
+
|
|
632
|
+
### 6.1 Günlüklemeyi Etkinleştirin
|
|
633
|
+
|
|
634
|
+
`~/.claude-code-router/config.json` dosyanıza ekleyin:
|
|
635
|
+
|
|
636
|
+
```json
|
|
637
|
+
{
|
|
638
|
+
"LOG": true,
|
|
639
|
+
"LOG_LEVEL": "debug",
|
|
640
|
+
"AGENTSKILLS_LOG_REQUESTS": true,
|
|
641
|
+
"AGENTSKILLS_LOG_ROUTING_DECISIONS": true
|
|
642
|
+
}
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
### 6.2 Performansı İzleyin
|
|
646
|
+
|
|
647
|
+
`~/.claude-code-router/monitor.js` dosyasında izleme script'i oluşturun:
|
|
648
|
+
|
|
649
|
+
```javascript
|
|
650
|
+
const fs = require('fs');
|
|
651
|
+
|
|
652
|
+
// Yönlendirme kararlarını günlükle
|
|
653
|
+
setInterval(() => {
|
|
654
|
+
const logs = fs.readFileSync('/tmp/claude-router.log', 'utf8');
|
|
655
|
+
const agentSkillsRequests = logs.match(/\[Router\].*agentskills/g) || [];
|
|
656
|
+
|
|
657
|
+
console.log(`Son dakikada AgentSkills istekleri: ${agentSkillsRequests.length}`);
|
|
658
|
+
|
|
659
|
+
// Beceri kullanımını ayrıştır
|
|
660
|
+
const skillUsage = {};
|
|
661
|
+
agentSkillsRequests.forEach(log => {
|
|
662
|
+
const skillMatch = log.match(/Skill route: (\w+)/);
|
|
663
|
+
if (skillMatch) {
|
|
664
|
+
skillUsage[skillMatch[1]] = (skillUsage[skillMatch[1]] || 0) + 1;
|
|
665
|
+
}
|
|
666
|
+
});
|
|
667
|
+
|
|
668
|
+
console.log('Beceri kullanımı:', skillUsage);
|
|
669
|
+
}, 60000);
|
|
670
|
+
```
|
|
671
|
+
|
|
672
|
+
## Sorun Giderme
|
|
673
|
+
|
|
674
|
+
### Yaygın Sorunlar
|
|
675
|
+
|
|
676
|
+
1. **Beceriler yüklenmiyor**
|
|
677
|
+
```bash
|
|
678
|
+
# Skills dizinini kontrol et
|
|
679
|
+
ls -la ~/.claude-code-router/skills/
|
|
680
|
+
|
|
681
|
+
# Kayıt dosyasını doğrula
|
|
682
|
+
cat ~/.claude-code-router/skills/registry.json
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
2. **Router AgentSkills kullanmıyor**
|
|
686
|
+
```bash
|
|
687
|
+
# Intent router sözdizimini kontrol et
|
|
688
|
+
node -c ~/.claude-code-router/intent-router.js
|
|
689
|
+
|
|
690
|
+
# Yönlendirmeyi manuel olarak test et
|
|
691
|
+
node -e "console.log(require('./intent-router.js').detectIntent('/sc:business-panel test'))"
|
|
692
|
+
```
|
|
693
|
+
|
|
694
|
+
3. **Skill dosyaları bulunamadı**
|
|
695
|
+
```bash
|
|
696
|
+
# Beceri yapısını doğrula
|
|
697
|
+
find ~/.claude-code-router/skills -name "SKILL.md"
|
|
698
|
+
|
|
699
|
+
# Beceri dosya formatını kontrol et
|
|
700
|
+
cat ~/.claude-code-router/skills/business-panel/SKILL.md | head -20
|
|
701
|
+
```
|
|
702
|
+
|
|
703
|
+
### Hata Ayıklama Modu
|
|
704
|
+
|
|
705
|
+
Hata ayıklama günlüklemesini etkinleştirin:
|
|
706
|
+
|
|
707
|
+
```bash
|
|
708
|
+
# Hata ayıklama ortamını ayarla
|
|
709
|
+
export AGENTSKILLS_DEBUG=true
|
|
710
|
+
export AGENTSKILLS_LOG_LEVEL=debug
|
|
711
|
+
|
|
712
|
+
# Router'ı ayrıntılı çıktıyla yeniden başlat
|
|
713
|
+
ccr code --verbose
|
|
714
|
+
```
|
|
715
|
+
|
|
716
|
+
## Sonraki Adımlar
|
|
717
|
+
|
|
718
|
+
1. **Özel Beceriler Ekleyin**: Kullanım durumlarınız için domaine özel beceriler oluşturun
|
|
719
|
+
2. **CI/CD ile Entegre Edin**: Pipeline'ınıza otomatik kod incelemeleri ekleyin
|
|
720
|
+
3. **Beceri Market Place'i Oluşturun**: Becerileri ekibinizle paylaşın
|
|
721
|
+
4. **Kullanımı İzleyin**: Hangi becerilerin en çok değer sağladığını takip edin
|
|
722
|
+
5. **Performansı Optimize Edin**: Kullanım paternlerine göre yönlendirmeyi ince ayar yapın
|
|
723
|
+
|
|
724
|
+
## Destek
|
|
725
|
+
|
|
726
|
+
- **Ana Depo**: https://github.com/halilertekin/CC-RouterMultiProvider
|
|
727
|
+
- **AgentSkills**: https://github.com/agentskills/agentskills
|
|
728
|
+
- **Sorunlar**: GitHub issue'ları üzerinden bildirin
|
|
729
|
+
- **Dokümantasyon**: Daha fazla rehber için `/docs` dizinine bakın
|
|
730
|
+
|
|
731
|
+
## Atıf
|
|
732
|
+
|
|
733
|
+
Bu kurulum rehberi [claude-code-router-config](https://github.com/halilertekin/CC-RouterMultiProvider) projesi içindir.
|
|
734
|
+
Orijinal proje: https://github.com/musistudio/claude-code-router
|
|
735
|
+
AgentSkills: https://github.com/agentskills/agentskills
|
|
736
|
+
Rehber: Halil Ertekin
|