natureco-cli 5.6.45 → 5.6.46

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/CHANGELOG.md CHANGED
@@ -2,6 +2,28 @@
2
2
 
3
3
  All notable changes to NatureCo CLI will be documented in this file.
4
4
 
5
+ ## [5.6.46] - 2026-06-24 — "README OVERHAUL"
6
+
7
+ ### 📚 Documentation
8
+ - **README.md full rewrite** — 5.6.x serisine uygun:
9
+ - Hero slogan: "Yapay Zekânın Gücü artık parmaklarının ucunda / Terminalin hızını NatureCo ile keşfet"
10
+ - ASCII art banner
11
+ - Node badge: `>=16.0.0` (package.json engines ile uyumlu)
12
+ - npm version, downloads, GitHub stars badge'leri
13
+ - Quick Start 4 adım: install → setup → chat → code
14
+ - 51 komut / 10 kategori, gerçek örnekler
15
+ - Discord `https://discord.gg/4FwumbWph`, Twitter `https://twitter.com/naturecoofficial`
16
+ - GitHub: `natureco-official/natureco-cli`
17
+ - Karşılaştırma tablosu (Claude Code / Hermes / OpenClaw)
18
+ - 30s setup wizard tanıtımı
19
+
20
+ ### 🎯 Versiyon Notu
21
+ - 5.6.45 → 5.6.46 (patch bump, README-only release)
22
+ - Kod değişikliği yok, npm sayfası güncellendi
23
+ - Yeni kullanıcılar README üzerinden kurulum yapabilir
24
+
25
+ ---
26
+
5
27
  ## [4.2.0] - 2026-06-22 — "LAUNCH READY"
6
28
 
7
29
  ### 🚀 Headline
package/README.md CHANGED
@@ -528,8 +528,7 @@ natureco mcp add github npx -y @modelcontextprotocol/server-github
528
528
  - 📖 **Komut referansı:** [natureco.me/cli/commands](https://natureco.me/cli/commands)
529
529
  - 🎓 **Tutorial:** [natureco.me/cli/getting-started](https://natureco.me/cli/getting-started)
530
530
  - 🔧 **API:** [natureco.me/cli/api](https://natureco.me/cli/api)
531
- - 💬 **Discord topluluğu:** [discord.gg/natureco](https://discord.gg/natureco)
532
- - 📱 **Telegram grup:** [t.me/natureco](https://t.me/natureco)
531
+ - 💬 **Discord topluluğu:** [discord.gg/4FwumbWph](https://discord.gg/4FwumbWph)
533
532
  - 🐦 **Twitter/X:** [@naturecoofficial](https://twitter.com/naturecoofficial)
534
533
 
535
534
  ---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "natureco-cli",
3
- "version": "5.6.45",
3
+ "version": "5.6.46",
4
4
  "description": "OpenClaw'dan daha güvenli, daha hızlı, daha ucuz AI agent CLI. Multi-agent, self-evolving skills, audit log, maliyet optimizasyonu ve NatureCo platform-native.",
5
5
  "bin": {
6
6
  "natureco": "bin/natureco.js"
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: cavecrew
3
+ description: Token tasarrufu için subagent delegasyon karar rehberi. Ana thread cavecrew subagent'larına (investigator/builder/reviewer) ne zaman delege edeceğini bilir. Subagent çıktıları caveman-compressed formatta döner → %60 daha küçük context.
4
+ metadata: {"natureco": {"requires": {"bins": []}, "os": ["darwin","linux","win32"]}}
5
+ ---
6
+
7
+ # Cavecrew Skill (Token Tasarrufu Subagent Pattern)
8
+
9
+ Subagent çıktıları main context'e aynen inject edilir. Vanilla Explore 2k token prose dönerse → 2k token harcarsın. Cavecrew ~700 token döner. 20 delegasyon = context bitme vs işi bitirme farkı.
10
+
11
+ ## Hangi Subagent Ne Zaman
12
+
13
+ | İş | Kullan |
14
+ |-----|-------|
15
+ | "X nerede tanımlı / Y'yi kim çağırıyor / Z'nin kullanımları" | `cavecrew-investigator` |
16
+ | Aynısı + mimari yorum | vanilla `Explore` |
17
+ | Cerrahi edit, ≤2 dosya | `cavecrew-builder` |
18
+ | Yeni feature / 3+ dosya / cross-cutting | Ana thread veya `feature-dev:code-architect` |
19
+ | Diff/branch/file review (bug) | `cavecrew-reviewer` |
20
+ | Derin code review (gerekçe + alternatifler) | vanilla `Code Reviewer` |
21
+ | 1 satır cevap, zaten biliyorsun | Ana thread, subagent yok |
22
+
23
+ **Kural:** 1/3 token istiyorsan → cavecrew. Prose istiyorsan → vanilla.
24
+
25
+ ## Output Formatları (Subagent sözleşmeleri)
26
+
27
+ **`cavecrew-investigator`:**
28
+ ```
29
+ <Header>:
30
+ - path:line — `symbol` — kısa not
31
+ totals: <sayım>.
32
+ ```
33
+ veya `No match.`
34
+
35
+ **`cavecrew-builder`:**
36
+ ```
37
+ <path:line-range> — <change ≤10 kelime>.
38
+ verified: <re-read OK | mismatch @ path:line>.
39
+ ```
40
+ veya `too-big.` / `needs-confirm.` / `ambiguous.` / `regressed.`
41
+
42
+ **`cavecrew-reviewer`:**
43
+ ```
44
+ path:line: <emoji> <severity>: <problem>. <fix>.
45
+ totals: N🔴 N🟡 N🔵 N❓
46
+ ```
47
+ veya `No issues.`
48
+
49
+ ## Chaining (Sıralı Çağrı)
50
+
51
+ **Locate → fix → verify** (en yaygın):
52
+ 1. `cavecrew-investigator` site listesi döner
53
+ 2. Ana thread 1-2 site seçer, `cavecrew-builder`'a path verir
54
+ 3. `cavecrew-reviewer` diff'i inceler
55
+
56
+ **Parallel scout** (geniş investigation):
57
+ Bir mesajda 2-3 `cavecrew-investigator` çağır (farklı açılar: defs/callers/tests). Ana thread'de topla.
58
+
59
+ **Single-shot edit** (site zaten biliniyor):
60
+ Investigator atla, direkt `cavecrew-builder`'a path:line ver.
61
+
62
+ ## YAPMA
63
+
64
+ - `cavecrew-builder` → dosya bilinmiyorsa YAPMA. Önce investigator.
65
+ - 5-dosya refactor'da `investigator → builder` chain YAPMA. Builder `too-big.` döner.
66
+ - `cavecrew-reviewer`'dan "genel feedback" isteme YAPMA. Sadece findings.
67
+ - Prose bekleme YAPMA. Cavecrew output yapısal, kuru. İnsan okuyacaksa paraphrase et.
68
+
69
+ ## Auto-clarity
70
+
71
+ Security uyarıları, irreversible-action onayları — subagent'lar caveman'dan normal İngilizce'ye geçer. Sonra devam.
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: caveman-compress
3
+ description: Doğal dil dosyalarını (CLAUDE.md, memory, todo, preferences) caveman formatına sıkıştırır. Token tasarrufu. Teknik içerik (kod, URL, path) korunur. /caveman-compress FILEPATH veya "compress memory file" tetikleyicisi.
4
+ metadata: {"natureco": {"requires": {"bins": ["python3"]}, "os": ["darwin","linux","win32"]}}
5
+ ---
6
+
7
+ # Caveman Compress Skill
8
+
9
+ Doğal dil dosyalarını caveman-speak'e sıkıştır. Input token tasarrufu. Compressed dosya orijinalin yerine geçer. Backup `FILE.original.md` olarak saklanır.
10
+
11
+ ## Tetikleyici
12
+
13
+ `/caveman-compress filepath` veya "compress memory file" dediğinde.
14
+
15
+ ## Sıkıştırma Kuralları
16
+
17
+ ### ÇIKAR
18
+ - Article: a, an, the
19
+ - Filler: just, really, basically, actually, simply, essentially, generally
20
+ - Pleasantries: "sure", "certainly", "of course", "happy to"
21
+ - Hedging: "it might be worth", "you could consider"
22
+ - Redundant: "in order to" → "to", "make sure to" → "ensure"
23
+ - Connective fluff: "however", "furthermore", "additionally"
24
+
25
+ ### KORU (Asla değiştirme)
26
+ - Kod blokları (fenced ``` ve indented)
27
+ - Inline code (`backtick`)
28
+ - URL'ler ve linkler (tam URL, markdown link)
29
+ - File paths (`/src/components/...`)
30
+ - Komutlar (`npm install`, `git commit`, `docker build`)
31
+ - Teknik terimler (kütüphane, API, protokol isimleri)
32
+ - Özel isimler (proje, kişi, şirket)
33
+ - Tarihler, versiyon, numerik değerler
34
+ - Env değişkenleri (`$HOME`, `NODE_ENV`)
35
+
36
+ ### YAPIYI KORU
37
+ - Tüm markdown başlıkları (tam metin)
38
+ - Bullet point hiyerarşisi (nesting)
39
+ - Numaralı listeler (numaralar)
40
+ - Tablolar (hücre metni sıkıştırılabilir, yapı korunur)
41
+ - Frontmatter/YAML header
42
+
43
+ ### SIKIŞTIR
44
+ - Kısa eş anlamlı: "big" not "extensive", "fix" not "implement a solution for"
45
+ - Fragment OK: "Run tests before commit" not "You should always run tests before committing"
46
+ - "you should", "make sure to", "remember to" → sadece eylemi söyle
47
+ - Aynı şeyi söyleyen fazla bullet'ları birleştir
48
+ - Birden fazla örnek aynı pattern'i gösteriyorsa bir tane bırak
49
+
50
+ ## KRİTİK KURAL
51
+
52
+ ```...``` içindeki her şey **TAM KORUNMALI**. Yapma:
53
+ - comment silme
54
+ - spacing kaldırma
55
+ - satır sırası değiştirme
56
+ - komut kısaltma
57
+ - hiçbir şeyi basitleştirme
58
+
59
+ Inline code (`...`) da tam korunmalı. Backtick içinde değişiklik yapma.
60
+
61
+ ## Pattern
62
+
63
+ **ÖNCE:**
64
+ > You should always make sure to run the test suite before pushing any changes to the main branch. This is important because it helps catch bugs early and prevents broken builds from being deployed to production.
65
+
66
+ **SONRA:**
67
+ > Run tests before push to main. Catch bugs early, prevent broken prod deploys.
68
+
69
+ **ÖNCE:**
70
+ > The application uses a microservices architecture with the following components. The API gateway handles all incoming requests and routes them to the appropriate service. The authentication service is responsible for managing user sessions and JWT tokens.
71
+
72
+ **SONRA:**
73
+ > Microservices architecture. API gateway route all requests to services. Auth service manage user sessions + JWT tokens.
74
+
75
+ ## Sınırlar
76
+
77
+ - **Sadece** doğal dil dosyaları sıkıştır (.md, .txt, .typ, extensionless)
78
+ - **Asla** değiştirme: .py, .js, .ts, .json, .yaml, .yml, .toml, .env, .lock, .css, .html, .xml, .sql, .sh
79
+ - Karışık içerikte **sadece prose** kısımlarını sıkıştır
80
+ - Emin değilsen → değiştirme
81
+ - Backup `FILE.original.md` olarak saklanır, **asla onu sıkıştırma**
@@ -0,0 +1,108 @@
1
+ ---
2
+ name: code-refactoring
3
+ description: Clean code, SOLID prensipleri ve modern mühendislik pratikleri. Karmaşık kodu basitleştirmek, code smell'leri gidermek, testability artırmak istediğinde bu skill'i yükle.
4
+ metadata: {"natureco": {"requires": {"bins": []}, "os": ["darwin","linux","win32"]}}
5
+ ---
6
+
7
+ # Code Refactoring Skill
8
+
9
+ Clean code, SOLID design patterns ve modern yazılım mühendisliği ile kod kalitesini artır.
10
+
11
+ ## Ne Zaman Kullan
12
+
13
+ - Karmaşık, bakımı zor kodu refactor etmek
14
+ - Duplikasyon, karmaşıklık, code smell azaltmak
15
+ - Testability ve tasarım tutarlılığı artırmak
16
+ - Modülleri yeni feature'ler için güvenle hazırlamak
17
+
18
+ **Kullanma:** tek satırlık fix, change freeze, sadece dokümantasyon isteği varsa.
19
+
20
+ ## Talimatlar
21
+
22
+ 1. **Code smell'leri değerlendir:** duplikasyon, uzun fonksiyon, yüksek coupling
23
+ 2. **Refactor planı oluştur:** incremental adımlarla
24
+ 3. **Küçük dilimler halinde uygula** — davranış sabit kalmalı
25
+ 4. **Testleri güncelle** ve regression olmadığını doğrula
26
+
27
+ ## Extract Method (Pattern)
28
+
29
+ ```typescript
30
+ // ÖNCE
31
+ function processOrder(order: Order) {
32
+ // validate
33
+ if (!order.items.length) throw new Error('empty');
34
+ // compute total
35
+ let total = 0;
36
+ for (const item of order.items) {
37
+ total += item.price * item.quantity;
38
+ }
39
+ // save
40
+ db.save({ orderId: order.id, total });
41
+ }
42
+
43
+ // SONRA
44
+ function processOrder(order: Order) {
45
+ validateOrder(order);
46
+ const total = computeTotal(order);
47
+ saveOrder(order, total);
48
+ }
49
+ ```
50
+
51
+ ## SOLID Prensipleri
52
+
53
+ - **S**ingle Responsibility — bir sınıf/fonksiyon tek bir değişim nedeni olmalı
54
+ - **O**pen/Closed — extension için açık, modification için kapalı
55
+ - **L**iskov Substitution — alt sınıflar üst sınıfların yerine geçebilmeli
56
+ - **I**nterface Segregation — interface'ler küçük ve öz olmalı
57
+ - **D**ependency Inversion — abstraction'lara bağımlı, concrete'lere değil
58
+
59
+ ## Code Smell Kategorileri
60
+
61
+ | Smell | Tedavi |
62
+ |-------|--------|
63
+ | Long Method (>30 satır) | Extract Method |
64
+ | Long Class | Extract Class |
65
+ | Duplicate Code | Extract Method → call from both |
66
+ | Long Parameter List (>4) | Parameter Object |
67
+ | Divergent Change | Extract Class (her değişim için bir sınıf) |
68
+ | Shotgun Surgery | Move Method, Move Field |
69
+ | Feature Envy | Move Method (kendi verisini kullanan sınıfa) |
70
+ | Data Clumps | Extract Class |
71
+ | Primitive Obsession | Replace Type Code with Class |
72
+ | Switch Statements | Replace Conditional with Polymorphism |
73
+ | Parallel Inheritance | Move Method/Field |
74
+ | Lazy Class | Inline Class |
75
+ | Speculative Generality | Collapse Hierarchy |
76
+ | Temporary Field | Extract Class |
77
+ | Message Chains | Hide Delegate |
78
+ | Middle Man | Remove Middle Man |
79
+ | Inappropriate Intimacy | Move Method, Extract Class |
80
+ | Alternative Classes with Different Interfaces | Rename Method, Move Method |
81
+ | Refused Bequest | Replace Inheritance with Delegation |
82
+ | Comments | Rename Method (kendi kendini açıklayan) |
83
+ | Duplicated Code | Extract Method |
84
+
85
+ ## Output Format
86
+
87
+ ```
88
+ ## Issues
89
+ - <code smell 1>: <path:line>
90
+ - <code smell 2>: <path:line>
91
+
92
+ ## Plan
93
+ 1. <step 1: Extract Method from X to Y>
94
+ 2. <step 2: Rename Z to W>
95
+ ...
96
+
97
+ ## Changes
98
+ - <path:line-range> — <change>
99
+
100
+ ## Tests
101
+ - <verification step>
102
+ ```
103
+
104
+ ## Güvenlik
105
+
106
+ - External davranışı explicit onay olmadan değiştirme
107
+ - Diff'leri reviewable tut (küçük, atomic)
108
+ - Test'ler her zaman geçmeli
@@ -0,0 +1,90 @@
1
+ ---
2
+ name: frontend-design
3
+ description: Dikkat çekici, kasıtlı görsel tasarım rehberi. Yeni UI inşa ederken veya mevcut olanı yeniden şekillendirirken. Estetik yön, tipografi ve template default'larından kaçınma.
4
+ metadata: {"natureco": {"requires": {"bins": []}, "os": ["darwin","linux","win32"]}}
5
+ ---
6
+
7
+ # Frontend Design Skill
8
+
9
+ Template gibi görünmeyen, özgün UI tasarımı için rehber.
10
+
11
+ ## Temel Felsefe
12
+
13
+ Sen kısa bir stüdyonun tasarım direktörüsün. Her projeye özgün bir görsel kimlik veriyorsun. Brief'i oku, pinle, sonra bilinçli seçimler yap.
14
+
15
+ ## Tasarım İlkeleri
16
+
17
+ ### Hero = Tez
18
+ Sayfa, konunun dünyasındaki en karakteristik şeyle açılmalı. Headline, imaj, animasyon, live demo — brief'e en uygun olan.
19
+
20
+ ### Tipografi = Kişilik
21
+ Display ve body font'ları bilinçli seç. Her projede aynı fontlara düşme. Type scale, weight, spacing — hepsi bilinçli.
22
+
23
+ ### Yapı = Bilgi
24
+ Yapısal elementler (numara, divider, label) içeriğin gerçek yapısını kodlamalı, süs olmamalı. "01 / 02 / 03" gibi numaralar sadece gerçekten sıralı içerik varsa kullanılmalı.
25
+
26
+ ### Hareket = Bilinçli
27
+ Animasyon her yerde değil, doğru yerde. Page-load sequence, scroll reveal, hover micro-interaction — orkestre edilmiş bir an, dağınık efektlerden iyidir.
28
+
29
+ ### Karmaşıklık = Vizyon
30
+ Maximalist yönler detaylı işçilik ister. Minimal yönler spacing, type, detayda hassasiyet ister. İkisinde de elegance = vizyonu iyi uygulamak.
31
+
32
+ ## AI Default'larından Kaçın
33
+
34
+ AI-generated design 3 cluster'da toplanır:
35
+ 1. **Cream (#F4F1EA) + serif display + terracotta accent**
36
+ 2. **Near-black + single bright accent (acid-green/vermilion)**
37
+ 3. **Broadsheet-style (hairline rules, zero border-radius, dense columns)**
38
+
39
+ Bunlar legitimate ama **default**. Brief bunlardan birini isterse kullan, aksi halde default'a düşme.
40
+
41
+ ## Process: Brainstorm → Explore → Plan → Critique → Build → Critique Again
42
+
43
+ ### Pass 1: Plan
44
+
45
+ Compact token sistemi oluştur:
46
+ - **Color:** 4-6 named hex values
47
+ - **Type:** 2+ rol için typeface (display + body + utility)
48
+ - **Layout:** one-sentence prose description + ASCII wireframe
49
+ - **Signature:** tek unutulmaz element
50
+
51
+ ### Pass 2: Critique
52
+
53
+ Plan'ı brief ile karşılaştır. "Bu herhangi bir projede yaparım" gibi geliyorsa → revize.
54
+
55
+ ### Pass 3: Build
56
+
57
+ Sadece plan unique olduktan sonra code yaz. Her renk/type kararı plan'dan türemeli.
58
+
59
+ ### CSS Dikkat
60
+
61
+ Type-based ve element-based selector'lar birbirini override edebilir. Specificity'ye dikkat.
62
+
63
+ ## Yazım (Copy)
64
+
65
+ - **End-user bakış açısıyla yaz.** Sistem nasıl inşa edildi değil, kullanıcı ne kontrol ediyor → o.
66
+ - **Active voice.** "Save changes" değil "Submit".
67
+ - **Tutarlı isimlendirme.** Publish butonu → Published toast.
68
+ - **Hatalar yön gösterir.** Özür dilemesin, ne olduğunu söyle.
69
+ - **Boş ekran = davet.** "Henüz yok" değil, ne yapılacağını söyle.
70
+ - **Boş sohbet değil.** Plain verbs, sentence case, no filler.
71
+
72
+ ## Restraint
73
+
74
+ Bir yerde cesur ol. Signature element tek unutulmaz şey olsun, gerisi sade kalsın. Chanel: "Eve çıkmadan önce aynaya bak ve bir aksesuarı çıkar."
75
+
76
+ Screenshots ile self-critique yap. Görsel inceleme 1000 token'a bedel.
77
+
78
+ ## Özet
79
+
80
+ - Subject-first düşün
81
+ - Template default'larından kaçın
82
+ - Tek bir signature element
83
+ - Type, renk, spacing bilinçli
84
+ - Copy = design material, decoration değil
85
+ - Critique twice, build once
86
+ - Restraint > excess
87
+
88
+ ## Reference
89
+
90
+ - Anthropic orijinal skill: https://github.com/anthropics/skills/tree/main/skills/frontend-design
@@ -0,0 +1,98 @@
1
+ ---
2
+ name: mcp-builder
3
+ description: MCP (Model Context Protocol) server geliştirme rehberi. AI agent'lar için araç expose etmek istediğinde bu skill'i yükle.
4
+ metadata: {"natureco": {"requires": {"bins": ["npx", "node"]}, "os": ["darwin","linux"]}}
5
+ ---
6
+
7
+ # MCP Builder Skill
8
+
9
+ AI agent'ların tool, resource ve prompt olarak kullanabileceği MCP server'ları geliştirmek için rehber.
10
+
11
+ ## MCP Nedir
12
+
13
+ Anthropic'in açık protokolü. AI modeller ile veri kaynakları/araçlar arasında standart bağlantı. JSON-RPC tabanlı, server-client mimarisi.
14
+
15
+ ## Ne Zaman Kullan
16
+
17
+ - NatureCo CLI'yi bir AI agent'a tool olarak bağlamak
18
+ - Yeni bir MCP server sıfırdan yazmak
19
+ - Mevcut bir API/CLI aracını MCP'ye çevirmek
20
+ - stdio vs HTTP+SSE vs streamable-HTTP transport seçmek
21
+ - fastmcp (Python) vs mcporter (Node) arasında seçim yapmak
22
+
23
+ ## Hızlı Başlangıç (Python - fastmcp)
24
+
25
+ ```python
26
+ from fastmcp import FastMCP
27
+
28
+ mcp = FastMCP("natureco-tools")
29
+
30
+ @mcp.tool()
31
+ def scan_repo(path: str, max_files: int = 200) -> dict:
32
+ """NatureCo CLI üzerinden repo tarar."""
33
+ import subprocess
34
+ result = subprocess.run(
35
+ ["natureco", "scan", path, "--max", str(max_files)],
36
+ capture_output=True, text=True, check=True,
37
+ )
38
+ return {"output": result.stdout}
39
+
40
+ if __name__ == "__main__":
41
+ mcp.run()
42
+ ```
43
+
44
+ ## Hızlı Başlangıç (Node - mcporter)
45
+
46
+ ```typescript
47
+ import { McpServer } from "mcporter";
48
+
49
+ const server = new McpServer({ name: "natureco-tools", version: "1.0.0" });
50
+
51
+ server.tool("scan_repo", {
52
+ description: "NatureCo CLI üzerinden repo tarar",
53
+ inputSchema: {
54
+ type: "object",
55
+ properties: {
56
+ path: { type: "string" },
57
+ max_files: { type: "integer", default: 200 },
58
+ },
59
+ required: ["path"],
60
+ },
61
+ }, async ({ path, max_files }) => {
62
+ return { content: [{ type: "text", text: `Scanned ${path}` }] };
63
+ });
64
+
65
+ await server.listen({ port: 3000 });
66
+ ```
67
+
68
+ ## NatureCo için En İyi Pratikler
69
+
70
+ - **subprocess.run**: NatureCo CLI'yi subprocess olarak çağır
71
+ - **Type hints**: tüm tool parametrelerine açık tip ver
72
+ - **Docstring**: her tool'un ilk satırı açıklama olmalı
73
+ - **Async tools**: I/O işlemleri için async tanımla
74
+ - **Error handling**: subprocess.CalledProcessError'ı yakala
75
+
76
+ ## Debug
77
+
78
+ ```bash
79
+ # MCP Inspector ile test
80
+ npx @modelcontextprotocol/inspector python my_server.py
81
+
82
+ # stdIO sunucu stdout'a yazma (protokol bozulur)
83
+ # Tüm logları stderr'e yönlendir
84
+ ```
85
+
86
+ ## Production Kontrol Listesi
87
+
88
+ - Her tool için timeout koy
89
+ - Rate limiting uygula
90
+ - Pagination ekle (büyük listeler için)
91
+ - OAuth 2.1 ile auth ekle (remote sunucular için)
92
+ - Her tool call'unu logla
93
+
94
+ ## Reference
95
+
96
+ - Spec: https://modelcontextprotocol.io
97
+ - Python SDK: https://github.com/jlowin/fastmcp
98
+ - Node SDK: https://github.com/mcporter-ai/mcporter
@@ -0,0 +1,116 @@
1
+ ---
2
+ name: playwright
3
+ description: Microsoft Playwright MCP ile browser otomasyonu. Sayfa açma, tıklama, form doldurma, ekran görüntüsü alma, accessibility snapshot ve JavaScript çalıştırma.
4
+ metadata: {"natureco": {"requires": {"bins": ["npx", "node"]}, "os": ["darwin","linux","win32"]}}
5
+ ---
6
+
7
+ # Playwright Skill (Browser Otomasyonu)
8
+
9
+ Microsoft'un `@playwright/mcp` server'ı ile gerçek browser'da (Chromium/Firefox/WebKit) işlem yap.
10
+
11
+ ## Ne Zaman Kullan
12
+
13
+ - Web sayfası açıp DOM'u incelemek (sadece HTML değil, gerçek JS çalıştırma)
14
+ - Buton tıklamak, form doldurmak, hover/drag/scroll
15
+ - Ekran görüntüsü almak
16
+ - Accessibility snapshot için (model pixel yerine yapı görsün)
17
+ - Sayfada JavaScript çalıştırmak (veri çekmek veya davranış test etmek)
18
+ - Multi-step akış (login, search, checkout) test etmek
19
+ - UI end-to-end doğrulaması
20
+
21
+ **Kullanma:** basit HTML scraping için `curl` + `web_extract` yeterli.
22
+
23
+ ## Kurulum
24
+
25
+ ```bash
26
+ # Claude Code'a MCP server olarak ekle
27
+ claude mcp add playwright npx @playwright/mcp@latest
28
+
29
+ # Proje-scoped
30
+ claude mcp add playwright -s project npx @playwright/mcp@latest
31
+ ```
32
+
33
+ İlk çalıştırmada npx `@playwright/mcp` ve Playwright browser bundle (~150 MB) indirilir.
34
+
35
+ ## Tool'lar (En Sık Kullanılanlar)
36
+
37
+ ### Navigasyon
38
+ - `browser_navigate(url)` — URL aç
39
+ - `browser_navigate_back()` / `browser_navigate_forward()`
40
+ - `browser_close()`
41
+
42
+ ### Gözlem
43
+ - `browser_snapshot()` — **en kullanışlı tool**. Accessibility tree + element ref'leri (`[ref=42]`)
44
+ - `browser_take_screenshot(filename?, fullPage?, type?)` — PNG/JPEG screenshot
45
+ - `browser_console_messages(onlyErrors?)` — console.log çıktısı
46
+ - `browser_evaluate(function)` — sayfada JS çalıştır
47
+
48
+ ### Etkileşim
49
+ - `browser_click(element, ref)`
50
+ - `browser_type(element, ref, text, slowly?)`
51
+ - `browser_hover(element, ref)`
52
+ - `browser_drag(fromElement, fromRef, toElement, toRef)`
53
+ - `browser_select_option(element, ref, values)`
54
+ - `browser_press_key(key)` — Enter, Escape, Tab, ArrowDown
55
+ - `browser_scroll(direction, amount?)` — up/down/left/right
56
+
57
+ ### Bekleme
58
+ - `browser_wait_for(time?, text?, textGone?)`
59
+
60
+ ### Tablar
61
+ - `browser_tabs(action, index?)` — list/new/select/close
62
+
63
+ ## Önerilen Workflow
64
+
65
+ 1. `browser_navigate(url)` → `browser_snapshot()` (tersi değil!)
66
+ 2. Major DOM değişiklikten sonra **mutlaka** yeni snapshot
67
+ 3. **Snapshot tercih et**, screenshot sadece visual review için
68
+ 4. Veri çekmek için `browser_evaluate` daha hızlı
69
+ 5. İş bitince `browser_close()`
70
+
71
+ ## Login Pattern
72
+
73
+ ```
74
+ 1. browser_navigate("https://example.com/login")
75
+ 2. browser_snapshot()
76
+ 3. browser_type("Email", "[ref=12]", "user@example.com")
77
+ 4. browser_type("Password", "[ref=14]", "...")
78
+ 5. browser_click("Sign in", "[ref=18]")
79
+ 6. browser_snapshot() # giriş doğrula
80
+ ```
81
+
82
+ ## Konfigürasyon
83
+
84
+ ```bash
85
+ claude mcp add playwright npx @playwright/mcp@latest -e HEADLESS=false # görünür browser
86
+ claude mcp add playwright npx @playwright/mcp@latest -e BROWSER=firefox
87
+ claude mcp add playwright npx @playwright/mcp@latest -e ISOLATED=true # temiz profil
88
+ ```
89
+
90
+ Env değişkenleri:
91
+ - `HEADLESS` — true (default) veya false
92
+ - `BROWSER` — chromium, firefox, webkit, msedge
93
+ - `ISOLATED` — true = ephemeral profile
94
+ - `VIEWPORT_SIZE` — default 1280x720
95
+ - `USER_DATA_DIR` — persistent profil yolu
96
+ - `CAPTURE_MODE` — screenshot/snapshot/none
97
+
98
+ ## Sınırlamalar
99
+
100
+ - Dosya download dialog'ları native değil → JS ile tetikle
101
+ - Bazı siteler automation'ı algılar → stealth plugin veya USER_DATA_DIR kullan
102
+ - ~300 MB per browser context
103
+ - Cold start 5-10sn
104
+ - WebSocket/SSE sayfalar flaky olabilir → generous timeout
105
+
106
+ ## Debug
107
+
108
+ - `browser_console_messages()` — genelde click'in neden başarısız olduğunu gösterir
109
+ - Click işe yaramadıysa → fresh snapshot al (ref değişmiş olabilir)
110
+ - CAPTCHA/login gibi durumlar için `ISOLATED=false` ve gerçek USER_DATA_DIR
111
+
112
+ ## Reference
113
+
114
+ - Server: https://github.com/microsoft/playwright-mcp
115
+ - Playwright: https://playwright.dev/docs/intro
116
+ - MCP Spec: https://modelcontextprotocol.io