@omerrgocmen/crewctl 1.0.2 → 1.0.3

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.
Files changed (84) hide show
  1. package/orchestrator/README.md +462 -462
  2. package/orchestrator/config.default.json +71 -71
  3. package/orchestrator/roles/operator.md +77 -77
  4. package/orchestrator/roles/reviewer.md +63 -63
  5. package/orchestrator/skills/acceptance-criteria.md +18 -18
  6. package/orchestrator/skills/accessibility-audit.md +16 -16
  7. package/orchestrator/skills/accessible-forms.md +16 -16
  8. package/orchestrator/skills/api-design.md +27 -27
  9. package/orchestrator/skills/api-documentation.md +16 -16
  10. package/orchestrator/skills/architecture-decision-record.md +18 -18
  11. package/orchestrator/skills/authentication-design.md +16 -16
  12. package/orchestrator/skills/authorization-review.md +16 -16
  13. package/orchestrator/skills/backward-compatibility.md +17 -17
  14. package/orchestrator/skills/changelog-writing.md +16 -16
  15. package/orchestrator/skills/ci-pipeline-design.md +16 -16
  16. package/orchestrator/skills/cli-design.md +16 -16
  17. package/orchestrator/skills/code-review.md +27 -27
  18. package/orchestrator/skills/configuration-management.md +16 -16
  19. package/orchestrator/skills/container-review.md +16 -16
  20. package/orchestrator/skills/contract-testing.md +16 -16
  21. package/orchestrator/skills/dashboard-design.md +16 -16
  22. package/orchestrator/skills/database-migration.md +16 -16
  23. package/orchestrator/skills/database-schema-design.md +16 -16
  24. package/orchestrator/skills/debugging.md +26 -26
  25. package/orchestrator/skills/dependency-review.md +16 -16
  26. package/orchestrator/skills/design-review.md +29 -29
  27. package/orchestrator/skills/design-system.md +16 -16
  28. package/orchestrator/skills/docs-api-reference.md +16 -16
  29. package/orchestrator/skills/docs-troubleshooting.md +16 -16
  30. package/orchestrator/skills/docs-tutorial.md +16 -16
  31. package/orchestrator/skills/docs-writing.md +25 -25
  32. package/orchestrator/skills/empty-error-loading-states.md +16 -16
  33. package/orchestrator/skills/end-to-end-testing.md +16 -16
  34. package/orchestrator/skills/error-handling.md +16 -16
  35. package/orchestrator/skills/frontend-design.md +28 -28
  36. package/orchestrator/skills/git-commit-writing.md +16 -16
  37. package/orchestrator/skills/graphql-design.md +16 -16
  38. package/orchestrator/skills/incident-runbook.md +18 -18
  39. package/orchestrator/skills/input-validation.md +16 -16
  40. package/orchestrator/skills/integration-testing.md +16 -16
  41. package/orchestrator/skills/interaction-design.md +16 -16
  42. package/orchestrator/skills/landing-page-design.md +16 -16
  43. package/orchestrator/skills/observability-design.md +16 -16
  44. package/orchestrator/skills/openapi-contract.md +16 -16
  45. package/orchestrator/skills/performance-profiling.md +16 -16
  46. package/orchestrator/skills/privacy-review.md +16 -16
  47. package/orchestrator/skills/property-based-testing.md +16 -16
  48. package/orchestrator/skills/pull-request-writing.md +16 -16
  49. package/orchestrator/skills/refactoring.md +16 -16
  50. package/orchestrator/skills/release-readiness.md +16 -16
  51. package/orchestrator/skills/responsive-design.md +16 -16
  52. package/orchestrator/skills/secrets-management.md +16 -16
  53. package/orchestrator/skills/secure-file-upload.md +16 -16
  54. package/orchestrator/skills/security-review.md +26 -26
  55. package/orchestrator/skills/semantic-versioning.md +17 -17
  56. package/orchestrator/skills/seo-on-page.md +16 -16
  57. package/orchestrator/skills/seo-structured-data.md +16 -16
  58. package/orchestrator/skills/seo-technical-audit.md +16 -16
  59. package/orchestrator/skills/sql-query-review.md +16 -16
  60. package/orchestrator/skills/supply-chain-security.md +16 -16
  61. package/orchestrator/skills/test-strategy.md +16 -16
  62. package/orchestrator/skills/threat-modeling.md +16 -16
  63. package/orchestrator/skills/unit-testing.md +16 -16
  64. package/orchestrator/skills/write-tests.md +28 -28
  65. package/orchestrator/src/cli-registry.js +616 -616
  66. package/orchestrator/src/cli.js +131 -131
  67. package/orchestrator/src/doctor.js +64 -64
  68. package/orchestrator/src/engine.js +162 -31
  69. package/orchestrator/src/server.js +766 -766
  70. package/orchestrator/src/skill-registry.js +272 -272
  71. package/orchestrator/src/store.js +399 -399
  72. package/orchestrator/web/OrbitControls.js +1417 -1417
  73. package/orchestrator/web/flow.html +740 -740
  74. package/orchestrator/web/index.html +587 -557
  75. package/orchestrator/web/jsm/postprocessing/EffectComposer.js +231 -231
  76. package/orchestrator/web/jsm/postprocessing/MaskPass.js +104 -104
  77. package/orchestrator/web/jsm/postprocessing/Pass.js +95 -95
  78. package/orchestrator/web/jsm/postprocessing/RenderPass.js +99 -99
  79. package/orchestrator/web/jsm/postprocessing/ShaderPass.js +77 -77
  80. package/orchestrator/web/jsm/postprocessing/UnrealBloomPass.js +415 -415
  81. package/orchestrator/web/jsm/shaders/CopyShader.js +45 -45
  82. package/orchestrator/web/jsm/shaders/LuminosityHighPassShader.js +66 -66
  83. package/orchestrator/web/three.module.min.js +6 -6
  84. package/package.json +1 -1
@@ -1,462 +1,462 @@
1
- <p align="center"><img src="https://raw.githubusercontent.com/omergocmen/CrewCtl/main/icon.png" alt="CrewCtl" width="140"></p>
2
-
3
- # CrewCtl 🛰️
4
-
5
- > **Kurulu CLI kodlama agent'larınızı — Codex, Claude Code, Gemini ve OpenCode — tek bir operatör‑liderliğindeki takım halinde çalıştıran, sıfır bağımlılıklı, yerel ve açık kaynak Node.js çok‑agent (multi‑agent) AI orkestratörü. Canlı web komuta merkezi dahil.**
6
- >
7
- > _A zero‑dependency, local, self‑hosted **multi‑agent AI orchestrator** that runs your installed CLI coding agents (OpenAI Codex, Claude Code, Google Gemini, OpenCode) as one **operator‑led team**, with a live web dashboard._
8
-
9
- [![GitHub stars](https://img.shields.io/github/stars/omergocmen/CrewCtl?style=flat&logo=github)](https://github.com/omergocmen/CrewCtl/stargazers)
10
- [![GitHub forks](https://img.shields.io/github/forks/omergocmen/CrewCtl?style=flat&logo=github)](https://github.com/omergocmen/CrewCtl/network/members)
11
- [![GitHub issues](https://img.shields.io/github/issues/omergocmen/CrewCtl)](https://github.com/omergocmen/CrewCtl/issues)
12
- [![Last commit](https://img.shields.io/github/last-commit/omergocmen/CrewCtl)](https://github.com/omergocmen/CrewCtl/commits)
13
- ![Node.js](https://img.shields.io/badge/Node.js-%E2%89%A518-339933?logo=node.js&logoColor=white)
14
- ![Dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)
15
- [![License: MIT](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
16
- ![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey)
17
- [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-ff69b4)](https://github.com/omergocmen/CrewCtl/pulls)
18
-
19
- 🔗 **Repo:** [github.com/omergocmen/CrewCtl](https://github.com/omergocmen/CrewCtl)
20
-
21
- Elinizde zaten **Codex CLI**, **Claude Code**, **Gemini CLI** veya **OpenCode** varsa; bu araç onları
22
- ayrı ayrı kullanmak yerine **tek bir yapay zeka geliştirici takımı** gibi koordine eder. Bir CLI
23
- **operatör** rolünü üstlenir; hedefinizi analiz eder, işi alt görevlere böler, doğru uzmana
24
- **delege eder**, sonuçları değerlendirir ve gerekirse yeni tur açar — tıpkı bir teknik lider gibi.
25
-
26
- ---
27
-
28
- ## İçindekiler
29
-
30
- - [Neden CrewCtl?](#-neden-crewctl-why)
31
- - [Öne çıkanlar](#-öne-çıkanlar-features)
32
- - [Hızlı başlangıç](#-hızlı-başlangıç-quickstart)
33
- - [Desteklenen CLI'lar](#-desteklenen-clilar)
34
- - [Nasıl çalışır?](#-nasıl-çalışır)
35
- - [Çalışma modları](#-çalışma-modları)
36
- - [Operatör](#-operatör)
37
- - [Agent ekleme](#-agent-ekleme)
38
- - [Canlı görünürlük](#-canlı-görünürlük)
39
- - [Markdown roller](#-markdown-roller)
40
- - [Beceriler (Skills)](#-beceriler-skills)
41
- - [Tamamlanan görevle sohbet](#-tamamlanan-görevle-sohbet)
42
- - [Onay ve güvenlik](#-onay-ve-güvenlik)
43
- - [Depolama](#-depolama)
44
- - [Test](#-test)
45
- - [SSS](#-sss-faq)
46
- - [Bilinen sınırlar](#-bilinen-sınırlar)
47
- - [Anahtar kelimeler](#anahtar-kelimeler--keywords)
48
-
49
- ---
50
-
51
- ## 🎯 Neden CrewCtl? (Why)
52
-
53
- - **Elindeki araçları kullan.** Ekstra API anahtarı veya SaaS aboneliği yok; zaten kurulu
54
- olan CLI agent'larının kendi oturumlarını ve sağlayıcılarını kullanır.
55
- - **Yerel ve gizli.** Her şey kendi makinende çalışır; orkestrasyon katmanı buluta veri göndermez
56
- (yalnızca CLI'lar kendi sağlayıcılarıyla konuşur).
57
- - **Sıfır bağımlılık.** Saf Node.js — `npm install` ek paket indirmez, `node_modules` şişmez.
58
- - **Sağlayıcıları karıştır.** Aynı görevde Codex ile uygula, Claude ile incele, Gemini ile araştır.
59
- - **Gerçek görünürlük.** Her CLI çağrısını canlı terminaliyle, süresi ve çıkış koduyla izle.
60
- - **Her PC'de kur‑çalıştır.** Klonla → `npm start` → makinene göre otomatik yapılandırılır.
61
-
62
- ## ✨ Öne çıkanlar (Features)
63
-
64
- - 🧠 **Operatör‑liderliğinde orkestrasyon** — bir CLI ekibi planlar, delege eder, değerlendirir.
65
- - 🤝 **Çok‑agent takım** — Codex / Claude / Gemini / OpenCode uzmanlarını rollere göre kullan.
66
- - 🖥️ **Canlı web komuta merkezi** — takım haritası, canlı CLI terminalleri, birleşik olay akışı.
67
- - 🛰️ **Ekip Akışı sayfası** — operatör çekirdeği + animasyonlu delegasyon akışı + ajan filosu.
68
- - 🧬 **Canlı Kod sayfası** — agent'ların yaptığı dosya değişikliklerini Git‑benzeri **satır‑satır diff** ile canlı izle.
69
- - 🛟 **Otomatik sürüm + tek‑tık geri dönüş** — her görev öncesi checkpoint; beğenmezsen **Bu sürüme dön** ile önceki koda dön (redo güvenli).
70
- - 🎚️ **Çalışma modları** — Otomatik / Hızlı / Dengeli / Derin ile hız‑kalite dengesi.
71
- - 🔎 **Otomatik CLI keşfi** — kurulu araçlar tespit edilip güvenli non‑interactive varsayılanlarla eklenir.
72
- - 🩺 **Hazır olma kontrolü** — OpenCode yalnızca kurulu olduğu için değil, kullanılabilir modeli keşfedildiğinde göreve alınır.
73
- - ⏱️ **Takılma koruması** — düzenli ilerleme bilgisi, sessizlik zaman aşımı, process-tree sonlandırma ve otomatik agent fallback.
74
- - 🧰 **CLI şablonları** — agent oluştururken CLI'ı seç; komut, argümanlar ve uygun model otomatik dolsun.
75
- - 📁 **Klasör seçici** — çalışma dizinini path yazmadan gözat‑ve‑seç.
76
- - 🗂️ **Kalıcı olay geçmişi** — `state/events/*.jsonl` ile her görevin akışını yeniden oynat.
77
- - 🛡️ **Onay/risk kapısı** — riskli planlar `ask` modunda insan onayına alınır (SHA‑256 kilitli).
78
- - ☀️🌙 **Açık/koyu tema** ve duruma‑farkında **Başlat/Durdur** kontrolü.
79
-
80
- ## 🚀 Hızlı başlangıç (Quickstart)
81
-
82
- **Gereksinimler:** [Node.js](https://nodejs.org) **18+** ve en az bir kurulu CLI agent'ı
83
- (Codex, Claude Code, Gemini veya OpenCode). Başka npm bağımlılığı **yoktur**.
84
-
85
- **Tek komut — kurulum gerektirmez:**
86
-
87
- ```bash
88
- npx @omerrgocmen/crewctl # paneli anında başlatır (komutsuz = start)
89
- ```
90
-
91
- > **Kaynak depo notu:** `npx` komutunu CrewCtl kaynak deposunun kendi kökünde değil, yönetmek
92
- > istediğiniz proje klasöründe çalıştırın. Klonlanmış geliştirme kopyasında `npm start`
93
- > kullanılır; aksi halde npm aynı isimli yerel manifesti seçip bin shim'ini bulamayabilir.
94
-
95
- Ya da global kurun:
96
-
97
- ```bash
98
- npm install -g @omerrgocmen/crewctl
99
- crewctl # panel
100
- crewctl status
101
- crewctl task "Testleri düzelt" --dir . --mode balanced
102
- crewctl doctor # salt-okunur ortam kontrolü
103
- ```
104
-
105
- > **Veri konumu:** config, kuyruk ve görev geçmişi `~/.crewctl` altında tutulur
106
- > (`CREWCTL_HOME` ile değiştirilebilir). Çalışma klasörü varsayılan olarak komutu çalıştırdığınız
107
- > dizindir; panelden değiştirilebilir.
108
-
109
- ### Developer modu / uzun yol (Git clone)
110
-
111
- Kaynak kodu geliştirmek, testleri çalıştırmak veya npm paketi yerine doğrudan Git kopyasını
112
- kullanmak için:
113
-
114
- ```bash
115
- git clone https://github.com/omergocmen/CrewCtl.git
116
- cd CrewCtl
117
- npm install
118
- npm run cli -- doctor # salt-okunur ortam kontrolü
119
- npm test # tam regresyon zinciri
120
- npm start # sunucuyu başlatır ve tarayıcıyı açar
121
- ```
122
-
123
- `npm install` runtime bağımlılığı indirmez; lock/yerel npm ortamını hazırlar. Kaynaktan
124
- çalıştırıldığında (repo `test/` klasörü mevcutken) geliştirme verileri `orchestrator/`
125
- klasöründe tutulur.
126
-
127
- `crewctl doctor` ayarları değiştirmez. Yalnızca keşif sonucunu `config.json` dosyasına uygulamak
128
- istediğinizde açıkça `crewctl doctor --fix` kullanın.
129
-
130
- > **Yeni klonladıysanız:** `config.json` ilk `npm start` anında üretilir. Ondan önce çalıştırılan
131
- > salt-okunur `doctor`, CLI'larınızı kurulu görse bile “Operatör CLI: (yok) / Uzman ajan sayısı: 0”
132
- > raporlar. Bu bir hata değildir; `npm start` (veya `crewctl doctor --fix`) yapılandırmayı kurar.
133
-
134
- `npm start` çalışınca:
135
-
136
- - `config.json` yoksa `config.default.json` şablonundan **makinenize göre otomatik** üretilir;
137
- kurulu CLI'lar tespit edilip uzman agent olarak eklenir ve bir operatör CLI'sı seçilir.
138
- - Panel **`http://localhost:4317`** adresinde açılır (tarayıcı otomatik açılır; `OPEN=0 npm start`
139
- ile kapatabilirsiniz).
140
- - Panelde **▶ Başlat**'a basıp bir görev gönderin.
141
- - İlk açılışta otonom CLI çalıştırma koşullarını bir kez okuyup onaylayın. Kabul zamanı
142
- `config.json` içinde saklanır; aynı kurulumda uyarı tekrar gösterilmez.
143
-
144
- > **İpuçları:** Farklı port için `PORT=4318 npm start`. `config.json` kişiye özeldir
145
- > (`.gitignore`'dadır); ekip kurulumunuzu paylaşmak için `config.default.json` şablonunu
146
- > düzenleyip commit'leyin. Ortamınızda sorun mu var? `npm run doctor` tanı verir.
147
-
148
- ## 🧰 Desteklenen CLI'lar
149
-
150
- | CLI | Sağlayıcı | Örnek kurulum | Non‑interactive çağrı (otomatik) |
151
- |-----|-----------|---------------|----------------------------------|
152
- | **Codex CLI** | OpenAI | `npm i -g @openai/codex` | `codex exec --skip-git-repo-check` |
153
- | **Claude Code** | Anthropic | `npm i -g @anthropic-ai/claude-code` | `claude -p --output-format text` |
154
- | **Gemini CLI** | Google | `npm i -g @google/gemini-cli` | `gemini --approval-mode yolo` (stdin prompt) |
155
- | **OpenCode** | OpenCode / çok‑sağlayıcı | `npm i -g opencode-ai` | `opencode run --format json --model <keşfedilen-model> --file <prompt.md>` |
156
-
157
- Sunucu açılırken bu CLI'lar otomatik taranır; PATH dışında kalan yaygın kurulum dizinleri
158
- (npm, pnpm, yarn, bun, volta, scoop, winget, Chocolatey, Homebrew…) Windows, macOS ve Linux
159
- üzerinde de kontrol edilir. Kurulu bir CLI için henüz agent yoksa güvenli varsayılanlarla
160
- profil eklenir. Panelde **Ayarlar → Agent'lar → Yeniden Tara** ile kurulumdan sonra yeniden
161
- taratabilirsiniz. Prompt'u argüman olarak isteyen CLI'lar için argümanda `{PROMPT}`, dosya
162
- olarak isteyenler için `{PROMPT_FILE}` yer tutucusu kullanılabilir.
163
-
164
- Prompt hangi yolla verilirse verilsin, motor alt process'in **stdin'ini her zaman kapatır (EOF)**.
165
- Bu şart: OpenCode gibi CLI'lar stdin bir TTY değilse mesajı borudan da okumaya çalışır ve EOF
166
- gelmezse model çağrısına hiç geçmeden süresiz bloke olur. Kendi CLI'ınızı eklerken bu davranışa
167
- güvenebilirsiniz.
168
-
169
- OpenCode için “kurulu” ve “hazır” ayrı durumlardır. Orkestratör `opencode models opencode`
170
- ile OpenCode'un kendi modellerini keşfeder, önerilen modeli profile ekler ve yanıtı JSON olay
171
- akışından ayrıştırır. Kullanılabilir model bulunamazsa otomatik OpenCode profili devre dışı kalır;
172
- operatör veya delegasyon sessizce ona yönlendirilmez. Model seçimi **Ayarlar → Agent'lar** ve
173
- **Ayarlar → Operatör** bölümlerinden değiştirilebilir. Bu keşif kullanıcı adı, sabit kurulum yolu,
174
- yerel IP veya belirli bir bilgisayar yapılandırmasına bağlı değildir.
175
-
176
- ## 🧩 Nasıl çalışır?
177
-
178
- ```text
179
- Kullanıcı hedefi
180
-
181
- Seçilen operatör CLI (roles/operator.md)
182
- ↓ yapılandırılmış takım planı (JSON)
183
- Uzman A ← delegasyon → sonuç ┐
184
- Uzman B ← delegasyon → sonuç ├→ Operatör değerlendirmesi
185
- Uzman C ← delegasyon → sonuç ┘ ↓
186
- yeni delegasyon / tamamla
187
- ```
188
-
189
- Agent'lar kalıcı oturumlar değildir; her delegasyon için ilgili CLI **yeni bir process** olarak
190
- başlatılır. Takım sürekliliğini motorun tuttuğu görev durumu, mesajlar, uzman sonuçları ve proje
191
- hafızası sağlar. Operatör hedefin tamamlandığını onaylayana ya da tur sınırına ulaşılana kadar
192
- döngü devam eder.
193
-
194
- ## ⚙️ Çalışma modları
195
-
196
- Her görev `Otomatik`, `Hızlı`, `Dengeli` veya `Derin` modda çalıştırılabilir:
197
-
198
- - **Otomatik:** kısa/basit işleri Hızlı, kapsamlı işleri Dengeli moda yönlendirir.
199
- - **Hızlı:** operatör planı + tek implementation uzmanı; başarılı teslimatta ikinci operatör
200
- değerlendirmesi atlanır (normal akış iki CLI çağrısı). Hata halinde en fazla iki tur.
201
- - **Dengeli:** işi uygun uzmanlıklara dağıtır — sıfırdan uygulama/oyun/özellik gibi işlerde önce
202
- kısa planlama, sonra uygulama, sonra inceleme; üç uzmana ve dört tura kadar.
203
- - **Derin:** yapılandırılmış üst sınırlarla kapsamlı uygulama ve bağımsız denetim.
204
-
205
- ## 🎩 Operatör
206
-
207
- Operatör ayrı bir agent değil, bir **CLI seçimidir**. Seçtiğiniz CLI (Codex/Claude/Gemini/OpenCode)
208
- o görev boyunca `roles/operator.md` rolüyle çalıştırılır; ekibi kurar, uzmanlara delege eder ve
209
- sonuçları değerlendirir. Uzman agent'lar operatörün **altında** çalışır; bir uzmanı silmek operatörü
210
- etkilemez. **Ayarlar → Operatör** bölümünde operatör CLI'sı, `operator.md` metni, maksimum tur ve
211
- tur başına delegasyon sınırı yönetilir; her görevde farklı bir operatör de seçilebilir.
212
-
213
- Yapılandırılan operatör o cihazda kurulu değilse, sunucu açılışta ve her taramada otomatik olarak
214
- kurulu ve hazır bir CLI'ya geçer. OpenCode kurulu olsa bile kullanılabilir modeli yoksa operatör
215
- olarak seçilmez; elle model seçilmişse bu seçim korunur. Böylece proje yeni indirildiğinde tek eksik
216
- veya yapılandırılmamış CLI yüzünden görevler bloke olmaz.
217
-
218
- Operatör yanıtları serbest metin değil **JSON protokolüdür**. İlk tur takım planı:
219
-
220
- ```json
221
- {
222
- "summary": "Yaklaşım",
223
- "completionCriteria": ["Testler geçmeli"],
224
- "assignments": [
225
- { "id": "implement-api", "agent": "backend-codex", "kind": "implement", "instruction": "API'yi uygula ve test et", "dependsOn": [] }
226
- ]
227
- }
228
- ```
229
-
230
- Sonraki turlarda ya yeni delegasyon üretir (`{"status":"continue","assignments":[...]}`) ya da
231
- görevi tamamlar (`{"status":"complete","final":"...","verification":"..."}`). Geçersiz JSON
232
- yapılandırılan sayıda otomatik tekrar edilir. Delegasyon türleri `implement`, `review`, `research`
233
- ve `plan`'dır; motor türü görev metninden ayrıca doğrular ve yanlış rol seçilirse yeteneği uygun
234
- aktif agente otomatik yönlendirir.
235
-
236
- ## ➕ Agent ekleme
237
-
238
- Panelde **Ayarlar → Agent'lar → Yeni CLI agent** bölümünden önce CLI şablonunu seçin. Komut,
239
- non-interactive varsayılan argümanlar, yetenekler, rol ve destekleniyorsa model otomatik dolar.
240
- Bu nedenle daha önce sildiğiniz bir CLI'ı yeniden eklerken varsayılan komutları hatırlamanız gerekmez.
241
- Her agent için: benzersiz **ad**, **CLI komutu**,
242
- **argümanlar** (her satır bir argüman; prompt varsayılan olarak stdin'e gider), `roles/*.md` **rol
243
- dosyası**, **açıklama/yetenekler** (operatörün doğru uzmanı seçmesini sağlar), **zaman aşımı**,
244
- **maliyet sınıfı** ve **aktif** anahtarı.
245
-
246
- Otomatik keşfedilmiş bir Gemini/OpenCode profilini silerseniz adapter tercihi
247
- `discoveryIgnoredAdapters` içinde saklanır ve **Yeniden Tara** sırasında geri gelmez. İsterseniz
248
- **Gizlenenleri geri getir** ile bu kararı kaldırabilirsiniz; elle oluşturulmuş profillere dokunulmaz.
249
-
250
- ```json
251
- {
252
- "backend-codex": {
253
- "cmd": "codex",
254
- "args": ["exec", "--skip-git-repo-check"],
255
- "description": "Node.js API ve veritabanı uzmanı",
256
- "capabilities": ["node", "api", "postgres", "testing"],
257
- "roleFile": "roles/backend.md",
258
- "costTier": "high",
259
- "timeoutSeconds": 1200
260
- }
261
- }
262
- ```
263
-
264
- ## 📊 Canlı görünürlük
265
-
266
- Panel her CLI çağrısını ayrı kartta gösterir: canlı **stdout/stderr**, process başlangıcı, süresi
267
- ve çıkış kodu; operatör→uzman delegasyonları, uzman→operatör sonuçları, agent takım haritası ve
268
- kimlik doğrulama/kota/timeout/CLI‑bulunamadı hataları için sade hata kartları. Ayrı **🛰️ Ekip Akışı**
269
- sayfası; parlayan operatör çekirdeği, ajan filosu ve animasyonlu delegasyon akışıyla "arkada bir
270
- ekibin çalıştığı" hissini verir.
271
-
272
- Ayrı **🧬 Canlı Kod** sayfası, agent'lar çalışırken çalışma klasöründe oluşan/değişen/silinen dosyaları
273
- Git ekranına benzer biçimde **satır satır** gösterir: dosya bazında +/− sayaçları, hunk başlıkları,
274
- eklenen/silinen/bağlam satırları ayrı renklerle. "Şu an ne oluyor" satırı aktif agent'ı, üst kutucuklar
275
- toplam değişikliği özetler. Sayfa açıldığında aktif (veya son tamamlanan) görevin geçmiş diff'i otomatik
276
- yüklenir; hassas (`.env` vb.), ikili veya çok büyük dosyaların içeriği güvenlik için gizlenir. Diff, görev
277
- başındaki tabana göre **kümülatif**tir. Görev kartındaki **Kodu gör** düğmesi de o görevin farkını bu
278
- sayfada açar.
279
-
280
- Olaylar `state/events/<task-id>.jsonl` altında kalıcıdır; görev kartındaki **Akışı incele** düğmesi
281
- bu geçmişi yeniden oynatır. Bir uzman CLI kullanılamazsa görev hemen başarısız sayılmaz — motor
282
- hatayı yapılandırılmış sonuç olarak operatöre iletir ve alternatif uzman seçmesine izin verir.
283
-
284
- Çalışan CLI 15 saniyede bir süre/ilerleme olayı üretir. OpenCode varsayılan olarak 180 saniye,
285
- diğer CLI'lar 300 saniye boyunca hiçbir çıktı üretmezse `CLI_STALLED` olarak sınıflandırılır;
286
- Windows'ta alt process ağacıyla birlikte durdurulur, o oturum için karantinaya alınır ve uygun
287
- başka agent varsa görev onunla sürdürülür. Sağlayıcı bağlantı hataları `PROVIDER_UNAVAILABLE`
288
- olarak ayrı gösterilir; bozuk JSON sanılıp anlamsız protokol tekrarlarına sokulmaz.
289
-
290
- **Sessizlik sınırı toplam süre sınırı değildir.** Sayaç her stdout/stderr parçasında sıfırlanır,
291
- yani düzenli çıktı üreten bir CLI ne kadar uzun çalışırsa çalışsın kesilmez — OpenCode `--format json`
292
- ile her araç çağrısında `step_start` / `tool_use` / `step_finish` olayı yayınladığı için aktif
293
- kodlarken sessizlik sınırına yaklaşmaz. Bir çalışmayı gerçekten sınırlayan değer ayrı olan **toplam
294
- zaman aşımıdır**: agent'ın `timeoutSeconds` alanı (OpenCode profillerinde varsayılan **1800 sn**,
295
- diğerlerinde 1200 sn). Saatler sürecek işler planlıyorsanız değiştirmeniz gereken değer budur.
296
-
297
- ## 📝 Markdown roller
298
-
299
- Roller davranış ve uzmanlık talimatlarıdır; panelden oluşturulup agent'a atanır. Motor protokolü ve
300
- durum yönetimi Markdown'a bağlı değildir, bu yüzden rol metni değişse bile delegasyon şeması korunur.
301
- İyi bir uzman rolü şunları belirtir: sorumluluk alanı ve sınırlar, kullanılabilecek araçlar, kod/test
302
- standartları, beklenen teslimat biçimi ve hangi durumda `BLOCKED` bildirileceği.
303
-
304
- ## 🧠 Beceriler (Skills)
305
-
306
- Roller bir agentın **kim** olduğunu (uygulayıcı/denetçi/planlayıcı) tanımlar; **beceriler** ise bir
307
- işin **nasıl** yapılacağını anlatan yeniden kullanılabilir prosedür rehberleridir — `skills/*.md`
308
- altında frontmatter'lı Markdown dosyaları. Dağıtım; yazılım, test, güvenlik, dokümantasyon, SEO ve
309
- arayüz tasarımını kapsayan **60 yerel beceri** içerir. Hiçbiri API anahtarı veya harici ücretli servis
310
- gerektirmez.
311
-
312
- Beceriler **kullanıcı-kapılıdır**: yalnızca **Ayarlar → Beceriler** bölümünde etkinleştirdikleriniz
313
- taranır. Motor, tüm etkin kataloğu her çağrıda prompta yığmak yerine görev metni ve delegasyon türüne
314
- göre puanlayıp sabit bütçeli bir kısa listeyi operatöre verir. Operatör uygun adları `skills` alanıyla
315
- iliştirir; alanı atlarsa `autoMatch` aynı seçimi yerel olarak yapabilir. Uzman yalnızca kısa açıklama ve
316
- mutlak rehber yolunu görür, tam Markdown gövdesini gerçekten gerekiyorsa dosyadan okur. Hiçbir beceri
317
- etkin değilse davranış eskisi gibi kalır.
318
-
319
- ```json
320
- "skills": {
321
- "enabled": ["design-review", "write-tests", "seo-technical-audit"],
322
- "autoMatch": true,
323
- "catalogLimit": 12,
324
- "maxSkillsPerAssignment": 3,
325
- "charBudget": 2400,
326
- "referenceCharBudget": 1200
327
- }
328
- ```
329
-
330
- `charBudget` operatör kısa listesini, `referenceCharBudget` uzman promptundaki ad/açıklama/yol
331
- referanslarını sınırlar. Yeni beceri aynı bölümden (veya `skills/` klasörüne `.md` ekleyerek)
332
- oluşturulabilir. Frontmatter alanları: `name`, `description`, `category`, `appliesTo`
333
- (implement/review/plan/research) ve eşleştirme için `match`.
334
-
335
- ## 💬 Tamamlanan görevle sohbet
336
-
337
- Tamamlanan görev kartındaki **Operatöre Sor** düğmesi, aynı operatörle salt‑okunur takip sohbeti açar.
338
- Operatör; ana hedefi, takım raporlarını, dosya değişikliklerini, nihai teslimatı ve önceki soru‑cevapları
339
- bağlam olarak görür (yeni dosya değişikliği veya delegasyon yapmaz). Teslimat kartı operatör metninden
340
- bağımsız üretilir: kısa özet, eklenen/değiştirilen/silinen dosyalar, çalışma klasörü, kullanılan
341
- agent'lar, tur sayısı ve doğrulama kontrolü.
342
-
343
- ## 🔒 Onay ve güvenlik
344
-
345
- İlk açılışta uygulama, CLI'ların non-interactive/otonom modda çalıştırılacağını açıklayan tek
346
- seferlik bir onay gösterir. Kabul edilmeden motor başlatılamaz veya görev yürütülemez. Kabul zamanı
347
- `config.json` içindeki `autonomousConsentAcceptedAt` alanında tutulur; yapılandırma silinmediği
348
- sürece tekrar sorulmaz.
349
-
350
- Bu onaydan sonra adapter varsayılanları CLI içinde bekleyen etkileşimli izin sorularını azaltır:
351
- Gemini `--approval-mode yolo`, Claude `--permission-mode acceptEdits`, OpenCode ise process ortamında
352
- `{"permission":{"*":"allow"}}` kullanır. Codex non-interactive `exec` modunda çalışır. Kullanıcı
353
- elle değiştirdiği agent argümanlarının ve CLI'ın kendi sürüm/yapılandırmasının davranıştan sorumlu
354
- olduğunu unutmamalıdır.
355
-
356
- Orkestratörün görev-planı güvenlik kapısı ayrıca çalışır: `ask` modunda riskli kalıp içeren plan
357
- onaya alınır; onay planın **SHA‑256** özetiyle ilişkilidir ve aynı delegasyonlardan devam eder.
358
- `auto` modu bu plan onayını bekletmez.
359
-
360
- **Otomatik sürümleme (checkpoint) ve geri dönüş.** `versioning` açıkken (varsayılan) CrewCtl, her görev
361
- _çalışmadan önce_ çalışma klasörünün bir sürümünü alır. Klasör bir Git deposuysa yedeklenecek dosyalar
362
- `git ls-files` ile (yani `.gitignore`'a uyularak) belirlenir, değilse güvenli bir tarama kullanılır — her
363
- iki durumda da depolama birebir dosya kopyasıdır. Tamamlanan/başarısız görev kartındaki **Bu sürüme dön**
364
- (veya Canlı Kod sayfasındaki **Önceki sürüme dön**) eylemi, görev sonrası oluşan dosyaları siler ve
365
- değiştirilen/silinen dosyaları eski haline getirir. Geri yükleme öncesinde mevcut durum için bir **redo**
366
- checkpoint'i oluşturulur; böylece geri alma da geri alınabilir. Sürümler `state/checkpoints/` altında
367
- tutulur (`versioningRetention`, varsayılan 20 sürüm/klasör) ve yalnızca motor **boşta** iken geri yüklenir.
368
- Bu, Git yerine geçmez; kritik iş için normal sürüm kontrolünüzü sürdürün.
369
-
370
- > ⚠️ Otonom çalışma onayı bir sandbox değildir. Agent'lar çalışma klasöründeki dosyaları değiştirebilir,
371
- > komut çalıştırabilir ve CLI'ın verdiği yetki ölçüsünde daha geniş sisteme erişebilir. İzole çalışma
372
- > klasörü/repo kullanın, önemli dosyaları sürüm kontrolünde tutun ve **web panelini güvenilmeyen bir
373
- > ağa açmayın** — ayar API'si CLI komutlarını değiştirebilir.
374
-
375
- ## 🗄️ Depolama
376
-
377
- Saf dosya tabanlı, sıfır bağımlılık (SQLite/DB gerektirmez, her yerde taşınabilir). Yazımlar
378
- atomiktir (temp + rename); runtime verisi `.gitignore`'dadır.
379
-
380
- ```text
381
- queue/pending bekleyen görevler
382
- queue/approval insan onayı bekleyen planlar
383
- queue/done tamamlanan görevler ve takım durumu
384
- queue/failed başarısız görevler
385
- state/events stdout, stderr, process ve mesaj olayları (JSONL)
386
- state/checkpoints görev‑öncesi otomatik sürümler (tek‑tık geri dönüş için)
387
- memory/log.md görevler arası kısa proje hafızası
388
- roles operatör ve uzman Markdown rolleri
389
- config.json makineye özel yapılandırma (gitignore)
390
- config.default.json paylaşılabilir şablon
391
- ```
392
-
393
- ## 🧪 Test
394
-
395
- ```bash
396
- npm test
397
- ```
398
-
399
- Gerçek sağlayıcı çağrısı yapmadan, sahte operatör ve uzman CLI process'leriyle
400
- planlama → delegasyon → mesaj → dosya değişikliği → operatör tamamlama akışını uçtan uca doğrular.
401
- Testler ayrıca OpenCode JSON olay ayrıştırmasını, doğru izin yapılandırmasını, model önceliğini,
402
- hazır olmayan OpenCode'un devre dışı kalmasını, sessizlik watchdog'unu ve operatör fallback'ini kapsar.
403
- Sahte OpenCode process'i gerçeği taklit ederek stdin'i EOF'a kadar okur; böylece stdin'i kapatmayan
404
- bir regresyon (CLI'ın hiç çalışmadan asılı kalması) testlerden sessizce geçemez.
405
-
406
- ## ❓ SSS (FAQ)
407
-
408
- **Ayrı bir API anahtarı gerekiyor mu?**
409
- Hayır. Kurulu CLI'ların kendi kimlik doğrulamasını kullanır. Yeni bir anahtar veya abonelik gerekmez.
410
-
411
- **Hangi CLI araçlarını destekliyor?**
412
- OpenAI Codex CLI, Anthropic Claude Code, Google Gemini CLI ve OpenCode. Prompt'u stdin/argüman/dosya
413
- ile alan başka CLI'lar da elle eklenebilir.
414
-
415
- **Windows, macOS ve Linux'ta çalışır mı?**
416
- Evet. Node.js 18+ olan her yerde çalışır; CLI keşfi üç platformdaki yaygın kurulum dizinlerini tarar.
417
-
418
- **OpenCode kurulu ama neden “model seçilmeli” görünüyor?**
419
- `opencode models opencode` kullanılabilir bir model döndürmemiştir. Önce `opencode auth login` ile
420
- sağlayıcı girişini tamamlayın, ardından panelde **Ayarlar → Agent'lar → Yeniden Tara**'ya basın.
421
- İsterseniz agent veya operatör için erişilebilir modeli elle de seçebilirsiniz. Hazır olmayan
422
- OpenCode'a otomatik görev verilmez.
423
-
424
- **Bir CLI çalışıyor mu, takıldı mı nasıl anlarım?**
425
- Canlı karttaki süre ve 15 saniyelik ilerleme olayları çalışmayı görünür kılar. Çıktısız bekleme
426
- sessizlik sınırını aşarsa process otomatik durdurulur, açık hata gösterilir ve mümkünse başka
427
- agent'a geçilir. Uzun ama düzenli çıktı üreten işler normal zaman aşımı sınırına kadar sürebilir.
428
-
429
- **Bağımlılık kuruyor mu / node_modules şişer mi?**
430
- Hayır, sıfır bağımlılık. `npm install` yalnızca projeyi hazırlar.
431
-
432
- **Verilerim buluta gidiyor mu?**
433
- Orkestrasyon tamamen yereldir. Yalnızca CLI'lar kendi sağlayıcılarıyla (ör. OpenAI/Anthropic/Google) konuşur.
434
-
435
- **Aynı görevde birden çok modeli birlikte kullanabilir miyim?**
436
- Evet. Örn. Codex ile uygula, Claude ile incele, Gemini ile araştır — operatör işi uygun uzmana dağıtır.
437
-
438
- **SQLite veya bir veritabanı kurmam gerekir mi?**
439
- Hayır. Depolama düz JSON/JSONL dosyalarıdır; her makinede taşınabilir ve atomik yazılır.
440
-
441
- ## 🚧 Bilinen sınırlar
442
-
443
- - Delegasyonlar şimdilik aynı çalışma klasöründe güvenli biçimde **sırayla** yürütülür.
444
- - CLI'a özgü tool‑call telemetrisi yoksa yalnızca stdout/stderr görülebilir.
445
- - Proje hafızası metin tabanlıdır; semantik retrieval henüz yoktur.
446
- - Model keşfi sağlayıcının gerçek bir üretim çağrısını başlangıçta çalıştırmaz; sonradan oluşan ağ,
447
- kota veya sağlayıcı hatası ilk çağrıda gösterilir ve fallback akışına alınır.
448
- - Web paneli kimlik doğrulaması ve uzak sunucu modu henüz eklenmemiştir.
449
-
450
- ---
451
-
452
- ## Anahtar kelimeler / Keywords
453
-
454
- AI agent orchestrator · multi-agent orchestration · CLI agent orchestrator · operator-led agent team ·
455
- OpenAI **Codex CLI** · **Claude Code** (Anthropic) · Google **Gemini CLI** · **OpenCode** ·
456
- autonomous coding agents · local / self-hosted AI dev tool · zero-dependency Node.js · web command center ·
457
- agent delegation · task orchestration · yapay zeka geliştirici takımı · çok-agent orkestratör ·
458
- yerel yapay zeka geliştirme aracı · komut satırı ajan yönetimi.
459
-
460
- ## Lisans
461
-
462
- [MIT](LICENSE) © CrewCtl katkıda bulunanları.
1
+ <p align="center"><img src="https://raw.githubusercontent.com/omergocmen/CrewCtl/main/icon.png" alt="CrewCtl" width="140"></p>
2
+
3
+ # CrewCtl 🛰️
4
+
5
+ > **Kurulu CLI kodlama agent'larınızı — Codex, Claude Code, Gemini ve OpenCode — tek bir operatör‑liderliğindeki takım halinde çalıştıran, sıfır bağımlılıklı, yerel ve açık kaynak Node.js çok‑agent (multi‑agent) AI orkestratörü. Canlı web komuta merkezi dahil.**
6
+ >
7
+ > _A zero‑dependency, local, self‑hosted **multi‑agent AI orchestrator** that runs your installed CLI coding agents (OpenAI Codex, Claude Code, Google Gemini, OpenCode) as one **operator‑led team**, with a live web dashboard._
8
+
9
+ [![GitHub stars](https://img.shields.io/github/stars/omergocmen/CrewCtl?style=flat&logo=github)](https://github.com/omergocmen/CrewCtl/stargazers)
10
+ [![GitHub forks](https://img.shields.io/github/forks/omergocmen/CrewCtl?style=flat&logo=github)](https://github.com/omergocmen/CrewCtl/network/members)
11
+ [![GitHub issues](https://img.shields.io/github/issues/omergocmen/CrewCtl)](https://github.com/omergocmen/CrewCtl/issues)
12
+ [![Last commit](https://img.shields.io/github/last-commit/omergocmen/CrewCtl)](https://github.com/omergocmen/CrewCtl/commits)
13
+ ![Node.js](https://img.shields.io/badge/Node.js-%E2%89%A518-339933?logo=node.js&logoColor=white)
14
+ ![Dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)
15
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
16
+ ![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey)
17
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-ff69b4)](https://github.com/omergocmen/CrewCtl/pulls)
18
+
19
+ 🔗 **Repo:** [github.com/omergocmen/CrewCtl](https://github.com/omergocmen/CrewCtl)
20
+
21
+ Elinizde zaten **Codex CLI**, **Claude Code**, **Gemini CLI** veya **OpenCode** varsa; bu araç onları
22
+ ayrı ayrı kullanmak yerine **tek bir yapay zeka geliştirici takımı** gibi koordine eder. Bir CLI
23
+ **operatör** rolünü üstlenir; hedefinizi analiz eder, işi alt görevlere böler, doğru uzmana
24
+ **delege eder**, sonuçları değerlendirir ve gerekirse yeni tur açar — tıpkı bir teknik lider gibi.
25
+
26
+ ---
27
+
28
+ ## İçindekiler
29
+
30
+ - [Neden CrewCtl?](#-neden-crewctl-why)
31
+ - [Öne çıkanlar](#-öne-çıkanlar-features)
32
+ - [Hızlı başlangıç](#-hızlı-başlangıç-quickstart)
33
+ - [Desteklenen CLI'lar](#-desteklenen-clilar)
34
+ - [Nasıl çalışır?](#-nasıl-çalışır)
35
+ - [Çalışma modları](#-çalışma-modları)
36
+ - [Operatör](#-operatör)
37
+ - [Agent ekleme](#-agent-ekleme)
38
+ - [Canlı görünürlük](#-canlı-görünürlük)
39
+ - [Markdown roller](#-markdown-roller)
40
+ - [Beceriler (Skills)](#-beceriler-skills)
41
+ - [Tamamlanan görevle sohbet](#-tamamlanan-görevle-sohbet)
42
+ - [Onay ve güvenlik](#-onay-ve-güvenlik)
43
+ - [Depolama](#-depolama)
44
+ - [Test](#-test)
45
+ - [SSS](#-sss-faq)
46
+ - [Bilinen sınırlar](#-bilinen-sınırlar)
47
+ - [Anahtar kelimeler](#anahtar-kelimeler--keywords)
48
+
49
+ ---
50
+
51
+ ## 🎯 Neden CrewCtl? (Why)
52
+
53
+ - **Elindeki araçları kullan.** Ekstra API anahtarı veya SaaS aboneliği yok; zaten kurulu
54
+ olan CLI agent'larının kendi oturumlarını ve sağlayıcılarını kullanır.
55
+ - **Yerel ve gizli.** Her şey kendi makinende çalışır; orkestrasyon katmanı buluta veri göndermez
56
+ (yalnızca CLI'lar kendi sağlayıcılarıyla konuşur).
57
+ - **Sıfır bağımlılık.** Saf Node.js — `npm install` ek paket indirmez, `node_modules` şişmez.
58
+ - **Sağlayıcıları karıştır.** Aynı görevde Codex ile uygula, Claude ile incele, Gemini ile araştır.
59
+ - **Gerçek görünürlük.** Her CLI çağrısını canlı terminaliyle, süresi ve çıkış koduyla izle.
60
+ - **Her PC'de kur‑çalıştır.** Klonla → `npm start` → makinene göre otomatik yapılandırılır.
61
+
62
+ ## ✨ Öne çıkanlar (Features)
63
+
64
+ - 🧠 **Operatör‑liderliğinde orkestrasyon** — bir CLI ekibi planlar, delege eder, değerlendirir.
65
+ - 🤝 **Çok‑agent takım** — Codex / Claude / Gemini / OpenCode uzmanlarını rollere göre kullan.
66
+ - 🖥️ **Canlı web komuta merkezi** — takım haritası, canlı CLI terminalleri, birleşik olay akışı.
67
+ - 🛰️ **Ekip Akışı sayfası** — operatör çekirdeği + animasyonlu delegasyon akışı + ajan filosu.
68
+ - 🧬 **Canlı Kod sayfası** — agent'ların yaptığı dosya değişikliklerini Git‑benzeri **satır‑satır diff** ile canlı izle.
69
+ - 🛟 **Otomatik sürüm + tek‑tık geri dönüş** — her görev öncesi checkpoint; beğenmezsen **Bu sürüme dön** ile önceki koda dön (redo güvenli).
70
+ - 🎚️ **Çalışma modları** — Otomatik / Hızlı / Dengeli / Derin ile hız‑kalite dengesi.
71
+ - 🔎 **Otomatik CLI keşfi** — kurulu araçlar tespit edilip güvenli non‑interactive varsayılanlarla eklenir.
72
+ - 🩺 **Hazır olma kontrolü** — OpenCode yalnızca kurulu olduğu için değil, kullanılabilir modeli keşfedildiğinde göreve alınır.
73
+ - ⏱️ **Takılma koruması** — düzenli ilerleme bilgisi, sessizlik zaman aşımı, process-tree sonlandırma ve otomatik agent fallback.
74
+ - 🧰 **CLI şablonları** — agent oluştururken CLI'ı seç; komut, argümanlar ve uygun model otomatik dolsun.
75
+ - 📁 **Klasör seçici** — çalışma dizinini path yazmadan gözat‑ve‑seç.
76
+ - 🗂️ **Kalıcı olay geçmişi** — `state/events/*.jsonl` ile her görevin akışını yeniden oynat.
77
+ - 🛡️ **Onay/risk kapısı** — riskli planlar `ask` modunda insan onayına alınır (SHA‑256 kilitli).
78
+ - ☀️🌙 **Açık/koyu tema** ve duruma‑farkında **Başlat/Durdur** kontrolü.
79
+
80
+ ## 🚀 Hızlı başlangıç (Quickstart)
81
+
82
+ **Gereksinimler:** [Node.js](https://nodejs.org) **18+** ve en az bir kurulu CLI agent'ı
83
+ (Codex, Claude Code, Gemini veya OpenCode). Başka npm bağımlılığı **yoktur**.
84
+
85
+ **Tek komut — kurulum gerektirmez:**
86
+
87
+ ```bash
88
+ npx @omerrgocmen/crewctl # paneli anında başlatır (komutsuz = start)
89
+ ```
90
+
91
+ > **Kaynak depo notu:** `npx` komutunu CrewCtl kaynak deposunun kendi kökünde değil, yönetmek
92
+ > istediğiniz proje klasöründe çalıştırın. Klonlanmış geliştirme kopyasında `npm start`
93
+ > kullanılır; aksi halde npm aynı isimli yerel manifesti seçip bin shim'ini bulamayabilir.
94
+
95
+ Ya da global kurun:
96
+
97
+ ```bash
98
+ npm install -g @omerrgocmen/crewctl
99
+ crewctl # panel
100
+ crewctl status
101
+ crewctl task "Testleri düzelt" --dir . --mode balanced
102
+ crewctl doctor # salt-okunur ortam kontrolü
103
+ ```
104
+
105
+ > **Veri konumu:** config, kuyruk ve görev geçmişi `~/.crewctl` altında tutulur
106
+ > (`CREWCTL_HOME` ile değiştirilebilir). Çalışma klasörü varsayılan olarak komutu çalıştırdığınız
107
+ > dizindir; panelden değiştirilebilir.
108
+
109
+ ### Developer modu / uzun yol (Git clone)
110
+
111
+ Kaynak kodu geliştirmek, testleri çalıştırmak veya npm paketi yerine doğrudan Git kopyasını
112
+ kullanmak için:
113
+
114
+ ```bash
115
+ git clone https://github.com/omergocmen/CrewCtl.git
116
+ cd CrewCtl
117
+ npm install
118
+ npm run cli -- doctor # salt-okunur ortam kontrolü
119
+ npm test # tam regresyon zinciri
120
+ npm start # sunucuyu başlatır ve tarayıcıyı açar
121
+ ```
122
+
123
+ `npm install` runtime bağımlılığı indirmez; lock/yerel npm ortamını hazırlar. Kaynaktan
124
+ çalıştırıldığında (repo `test/` klasörü mevcutken) geliştirme verileri `orchestrator/`
125
+ klasöründe tutulur.
126
+
127
+ `crewctl doctor` ayarları değiştirmez. Yalnızca keşif sonucunu `config.json` dosyasına uygulamak
128
+ istediğinizde açıkça `crewctl doctor --fix` kullanın.
129
+
130
+ > **Yeni klonladıysanız:** `config.json` ilk `npm start` anında üretilir. Ondan önce çalıştırılan
131
+ > salt-okunur `doctor`, CLI'larınızı kurulu görse bile “Operatör CLI: (yok) / Uzman ajan sayısı: 0”
132
+ > raporlar. Bu bir hata değildir; `npm start` (veya `crewctl doctor --fix`) yapılandırmayı kurar.
133
+
134
+ `npm start` çalışınca:
135
+
136
+ - `config.json` yoksa `config.default.json` şablonundan **makinenize göre otomatik** üretilir;
137
+ kurulu CLI'lar tespit edilip uzman agent olarak eklenir ve bir operatör CLI'sı seçilir.
138
+ - Panel **`http://localhost:4317`** adresinde açılır (tarayıcı otomatik açılır; `OPEN=0 npm start`
139
+ ile kapatabilirsiniz).
140
+ - Panelde **▶ Başlat**'a basıp bir görev gönderin.
141
+ - İlk açılışta otonom CLI çalıştırma koşullarını bir kez okuyup onaylayın. Kabul zamanı
142
+ `config.json` içinde saklanır; aynı kurulumda uyarı tekrar gösterilmez.
143
+
144
+ > **İpuçları:** Farklı port için `PORT=4318 npm start`. `config.json` kişiye özeldir
145
+ > (`.gitignore`'dadır); ekip kurulumunuzu paylaşmak için `config.default.json` şablonunu
146
+ > düzenleyip commit'leyin. Ortamınızda sorun mu var? `npm run doctor` tanı verir.
147
+
148
+ ## 🧰 Desteklenen CLI'lar
149
+
150
+ | CLI | Sağlayıcı | Örnek kurulum | Non‑interactive çağrı (otomatik) |
151
+ |-----|-----------|---------------|----------------------------------|
152
+ | **Codex CLI** | OpenAI | `npm i -g @openai/codex` | `codex exec --skip-git-repo-check` |
153
+ | **Claude Code** | Anthropic | `npm i -g @anthropic-ai/claude-code` | `claude -p --output-format text` |
154
+ | **Gemini CLI** | Google | `npm i -g @google/gemini-cli` | `gemini --approval-mode yolo` (stdin prompt) |
155
+ | **OpenCode** | OpenCode / çok‑sağlayıcı | `npm i -g opencode-ai` | `opencode run --format json --model <keşfedilen-model> --file <prompt.md>` |
156
+
157
+ Sunucu açılırken bu CLI'lar otomatik taranır; PATH dışında kalan yaygın kurulum dizinleri
158
+ (npm, pnpm, yarn, bun, volta, scoop, winget, Chocolatey, Homebrew…) Windows, macOS ve Linux
159
+ üzerinde de kontrol edilir. Kurulu bir CLI için henüz agent yoksa güvenli varsayılanlarla
160
+ profil eklenir. Panelde **Ayarlar → Agent'lar → Yeniden Tara** ile kurulumdan sonra yeniden
161
+ taratabilirsiniz. Prompt'u argüman olarak isteyen CLI'lar için argümanda `{PROMPT}`, dosya
162
+ olarak isteyenler için `{PROMPT_FILE}` yer tutucusu kullanılabilir.
163
+
164
+ Prompt hangi yolla verilirse verilsin, motor alt process'in **stdin'ini her zaman kapatır (EOF)**.
165
+ Bu şart: OpenCode gibi CLI'lar stdin bir TTY değilse mesajı borudan da okumaya çalışır ve EOF
166
+ gelmezse model çağrısına hiç geçmeden süresiz bloke olur. Kendi CLI'ınızı eklerken bu davranışa
167
+ güvenebilirsiniz.
168
+
169
+ OpenCode için “kurulu” ve “hazır” ayrı durumlardır. Orkestratör `opencode models opencode`
170
+ ile OpenCode'un kendi modellerini keşfeder, önerilen modeli profile ekler ve yanıtı JSON olay
171
+ akışından ayrıştırır. Kullanılabilir model bulunamazsa otomatik OpenCode profili devre dışı kalır;
172
+ operatör veya delegasyon sessizce ona yönlendirilmez. Model seçimi **Ayarlar → Agent'lar** ve
173
+ **Ayarlar → Operatör** bölümlerinden değiştirilebilir. Bu keşif kullanıcı adı, sabit kurulum yolu,
174
+ yerel IP veya belirli bir bilgisayar yapılandırmasına bağlı değildir.
175
+
176
+ ## 🧩 Nasıl çalışır?
177
+
178
+ ```text
179
+ Kullanıcı hedefi
180
+
181
+ Seçilen operatör CLI (roles/operator.md)
182
+ ↓ yapılandırılmış takım planı (JSON)
183
+ Uzman A ← delegasyon → sonuç ┐
184
+ Uzman B ← delegasyon → sonuç ├→ Operatör değerlendirmesi
185
+ Uzman C ← delegasyon → sonuç ┘ ↓
186
+ yeni delegasyon / tamamla
187
+ ```
188
+
189
+ Agent'lar kalıcı oturumlar değildir; her delegasyon için ilgili CLI **yeni bir process** olarak
190
+ başlatılır. Takım sürekliliğini motorun tuttuğu görev durumu, mesajlar, uzman sonuçları ve proje
191
+ hafızası sağlar. Operatör hedefin tamamlandığını onaylayana ya da tur sınırına ulaşılana kadar
192
+ döngü devam eder.
193
+
194
+ ## ⚙️ Çalışma modları
195
+
196
+ Her görev `Otomatik`, `Hızlı`, `Dengeli` veya `Derin` modda çalıştırılabilir:
197
+
198
+ - **Otomatik:** kısa/basit işleri Hızlı, kapsamlı işleri Dengeli moda yönlendirir.
199
+ - **Hızlı:** operatör planı + tek implementation uzmanı; başarılı teslimatta ikinci operatör
200
+ değerlendirmesi atlanır (normal akış iki CLI çağrısı). Hata halinde en fazla iki tur.
201
+ - **Dengeli:** işi uygun uzmanlıklara dağıtır — sıfırdan uygulama/oyun/özellik gibi işlerde önce
202
+ kısa planlama, sonra uygulama, sonra inceleme; üç uzmana ve dört tura kadar.
203
+ - **Derin:** yapılandırılmış üst sınırlarla kapsamlı uygulama ve bağımsız denetim.
204
+
205
+ ## 🎩 Operatör
206
+
207
+ Operatör ayrı bir agent değil, bir **CLI seçimidir**. Seçtiğiniz CLI (Codex/Claude/Gemini/OpenCode)
208
+ o görev boyunca `roles/operator.md` rolüyle çalıştırılır; ekibi kurar, uzmanlara delege eder ve
209
+ sonuçları değerlendirir. Uzman agent'lar operatörün **altında** çalışır; bir uzmanı silmek operatörü
210
+ etkilemez. **Ayarlar → Operatör** bölümünde operatör CLI'sı, `operator.md` metni, maksimum tur ve
211
+ tur başına delegasyon sınırı yönetilir; her görevde farklı bir operatör de seçilebilir.
212
+
213
+ Yapılandırılan operatör o cihazda kurulu değilse, sunucu açılışta ve her taramada otomatik olarak
214
+ kurulu ve hazır bir CLI'ya geçer. OpenCode kurulu olsa bile kullanılabilir modeli yoksa operatör
215
+ olarak seçilmez; elle model seçilmişse bu seçim korunur. Böylece proje yeni indirildiğinde tek eksik
216
+ veya yapılandırılmamış CLI yüzünden görevler bloke olmaz.
217
+
218
+ Operatör yanıtları serbest metin değil **JSON protokolüdür**. İlk tur takım planı:
219
+
220
+ ```json
221
+ {
222
+ "summary": "Yaklaşım",
223
+ "completionCriteria": ["Testler geçmeli"],
224
+ "assignments": [
225
+ { "id": "implement-api", "agent": "backend-codex", "kind": "implement", "instruction": "API'yi uygula ve test et", "dependsOn": [] }
226
+ ]
227
+ }
228
+ ```
229
+
230
+ Sonraki turlarda ya yeni delegasyon üretir (`{"status":"continue","assignments":[...]}`) ya da
231
+ görevi tamamlar (`{"status":"complete","final":"...","verification":"..."}`). Geçersiz JSON
232
+ yapılandırılan sayıda otomatik tekrar edilir. Delegasyon türleri `implement`, `review`, `research`
233
+ ve `plan`'dır; motor türü görev metninden ayrıca doğrular ve yanlış rol seçilirse yeteneği uygun
234
+ aktif agente otomatik yönlendirir.
235
+
236
+ ## ➕ Agent ekleme
237
+
238
+ Panelde **Ayarlar → Agent'lar → Yeni CLI agent** bölümünden önce CLI şablonunu seçin. Komut,
239
+ non-interactive varsayılan argümanlar, yetenekler, rol ve destekleniyorsa model otomatik dolar.
240
+ Bu nedenle daha önce sildiğiniz bir CLI'ı yeniden eklerken varsayılan komutları hatırlamanız gerekmez.
241
+ Her agent için: benzersiz **ad**, **CLI komutu**,
242
+ **argümanlar** (her satır bir argüman; prompt varsayılan olarak stdin'e gider), `roles/*.md` **rol
243
+ dosyası**, **açıklama/yetenekler** (operatörün doğru uzmanı seçmesini sağlar), **zaman aşımı**,
244
+ **maliyet sınıfı** ve **aktif** anahtarı.
245
+
246
+ Otomatik keşfedilmiş bir Gemini/OpenCode profilini silerseniz adapter tercihi
247
+ `discoveryIgnoredAdapters` içinde saklanır ve **Yeniden Tara** sırasında geri gelmez. İsterseniz
248
+ **Gizlenenleri geri getir** ile bu kararı kaldırabilirsiniz; elle oluşturulmuş profillere dokunulmaz.
249
+
250
+ ```json
251
+ {
252
+ "backend-codex": {
253
+ "cmd": "codex",
254
+ "args": ["exec", "--skip-git-repo-check"],
255
+ "description": "Node.js API ve veritabanı uzmanı",
256
+ "capabilities": ["node", "api", "postgres", "testing"],
257
+ "roleFile": "roles/backend.md",
258
+ "costTier": "high",
259
+ "timeoutSeconds": 1200
260
+ }
261
+ }
262
+ ```
263
+
264
+ ## 📊 Canlı görünürlük
265
+
266
+ Panel her CLI çağrısını ayrı kartta gösterir: canlı **stdout/stderr**, process başlangıcı, süresi
267
+ ve çıkış kodu; operatör→uzman delegasyonları, uzman→operatör sonuçları, agent takım haritası ve
268
+ kimlik doğrulama/kota/timeout/CLI‑bulunamadı hataları için sade hata kartları. Ayrı **🛰️ Ekip Akışı**
269
+ sayfası; parlayan operatör çekirdeği, ajan filosu ve animasyonlu delegasyon akışıyla "arkada bir
270
+ ekibin çalıştığı" hissini verir.
271
+
272
+ Ayrı **🧬 Canlı Kod** sayfası, agent'lar çalışırken çalışma klasöründe oluşan/değişen/silinen dosyaları
273
+ Git ekranına benzer biçimde **satır satır** gösterir: dosya bazında +/− sayaçları, hunk başlıkları,
274
+ eklenen/silinen/bağlam satırları ayrı renklerle. "Şu an ne oluyor" satırı aktif agent'ı, üst kutucuklar
275
+ toplam değişikliği özetler. Sayfa açıldığında aktif (veya son tamamlanan) görevin geçmiş diff'i otomatik
276
+ yüklenir; hassas (`.env` vb.), ikili veya çok büyük dosyaların içeriği güvenlik için gizlenir. Diff, görev
277
+ başındaki tabana göre **kümülatif**tir. Görev kartındaki **Kodu gör** düğmesi de o görevin farkını bu
278
+ sayfada açar.
279
+
280
+ Olaylar `state/events/<task-id>.jsonl` altında kalıcıdır; görev kartındaki **Akışı incele** düğmesi
281
+ bu geçmişi yeniden oynatır. Bir uzman CLI kullanılamazsa görev hemen başarısız sayılmaz — motor
282
+ hatayı yapılandırılmış sonuç olarak operatöre iletir ve alternatif uzman seçmesine izin verir.
283
+
284
+ Çalışan CLI 15 saniyede bir süre/ilerleme olayı üretir. OpenCode varsayılan olarak 180 saniye,
285
+ diğer CLI'lar 300 saniye boyunca hiçbir çıktı üretmezse `CLI_STALLED` olarak sınıflandırılır;
286
+ Windows'ta alt process ağacıyla birlikte durdurulur, o oturum için karantinaya alınır ve uygun
287
+ başka agent varsa görev onunla sürdürülür. Sağlayıcı bağlantı hataları `PROVIDER_UNAVAILABLE`
288
+ olarak ayrı gösterilir; bozuk JSON sanılıp anlamsız protokol tekrarlarına sokulmaz.
289
+
290
+ **Sessizlik sınırı toplam süre sınırı değildir.** Sayaç her stdout/stderr parçasında sıfırlanır,
291
+ yani düzenli çıktı üreten bir CLI ne kadar uzun çalışırsa çalışsın kesilmez — OpenCode `--format json`
292
+ ile her araç çağrısında `step_start` / `tool_use` / `step_finish` olayı yayınladığı için aktif
293
+ kodlarken sessizlik sınırına yaklaşmaz. Bir çalışmayı gerçekten sınırlayan değer ayrı olan **toplam
294
+ zaman aşımıdır**: agent'ın `timeoutSeconds` alanı (OpenCode profillerinde varsayılan **1800 sn**,
295
+ diğerlerinde 1200 sn). Saatler sürecek işler planlıyorsanız değiştirmeniz gereken değer budur.
296
+
297
+ ## 📝 Markdown roller
298
+
299
+ Roller davranış ve uzmanlık talimatlarıdır; panelden oluşturulup agent'a atanır. Motor protokolü ve
300
+ durum yönetimi Markdown'a bağlı değildir, bu yüzden rol metni değişse bile delegasyon şeması korunur.
301
+ İyi bir uzman rolü şunları belirtir: sorumluluk alanı ve sınırlar, kullanılabilecek araçlar, kod/test
302
+ standartları, beklenen teslimat biçimi ve hangi durumda `BLOCKED` bildirileceği.
303
+
304
+ ## 🧠 Beceriler (Skills)
305
+
306
+ Roller bir agentın **kim** olduğunu (uygulayıcı/denetçi/planlayıcı) tanımlar; **beceriler** ise bir
307
+ işin **nasıl** yapılacağını anlatan yeniden kullanılabilir prosedür rehberleridir — `skills/*.md`
308
+ altında frontmatter'lı Markdown dosyaları. Dağıtım; yazılım, test, güvenlik, dokümantasyon, SEO ve
309
+ arayüz tasarımını kapsayan **60 yerel beceri** içerir. Hiçbiri API anahtarı veya harici ücretli servis
310
+ gerektirmez.
311
+
312
+ Beceriler **kullanıcı-kapılıdır**: yalnızca **Ayarlar → Beceriler** bölümünde etkinleştirdikleriniz
313
+ taranır. Motor, tüm etkin kataloğu her çağrıda prompta yığmak yerine görev metni ve delegasyon türüne
314
+ göre puanlayıp sabit bütçeli bir kısa listeyi operatöre verir. Operatör uygun adları `skills` alanıyla
315
+ iliştirir; alanı atlarsa `autoMatch` aynı seçimi yerel olarak yapabilir. Uzman yalnızca kısa açıklama ve
316
+ mutlak rehber yolunu görür, tam Markdown gövdesini gerçekten gerekiyorsa dosyadan okur. Hiçbir beceri
317
+ etkin değilse davranış eskisi gibi kalır.
318
+
319
+ ```json
320
+ "skills": {
321
+ "enabled": ["design-review", "write-tests", "seo-technical-audit"],
322
+ "autoMatch": true,
323
+ "catalogLimit": 12,
324
+ "maxSkillsPerAssignment": 3,
325
+ "charBudget": 2400,
326
+ "referenceCharBudget": 1200
327
+ }
328
+ ```
329
+
330
+ `charBudget` operatör kısa listesini, `referenceCharBudget` uzman promptundaki ad/açıklama/yol
331
+ referanslarını sınırlar. Yeni beceri aynı bölümden (veya `skills/` klasörüne `.md` ekleyerek)
332
+ oluşturulabilir. Frontmatter alanları: `name`, `description`, `category`, `appliesTo`
333
+ (implement/review/plan/research) ve eşleştirme için `match`.
334
+
335
+ ## 💬 Tamamlanan görevle sohbet
336
+
337
+ Tamamlanan görev kartındaki **Operatöre Sor** düğmesi, aynı operatörle salt‑okunur takip sohbeti açar.
338
+ Operatör; ana hedefi, takım raporlarını, dosya değişikliklerini, nihai teslimatı ve önceki soru‑cevapları
339
+ bağlam olarak görür (yeni dosya değişikliği veya delegasyon yapmaz). Teslimat kartı operatör metninden
340
+ bağımsız üretilir: kısa özet, eklenen/değiştirilen/silinen dosyalar, çalışma klasörü, kullanılan
341
+ agent'lar, tur sayısı ve doğrulama kontrolü.
342
+
343
+ ## 🔒 Onay ve güvenlik
344
+
345
+ İlk açılışta uygulama, CLI'ların non-interactive/otonom modda çalıştırılacağını açıklayan tek
346
+ seferlik bir onay gösterir. Kabul edilmeden motor başlatılamaz veya görev yürütülemez. Kabul zamanı
347
+ `config.json` içindeki `autonomousConsentAcceptedAt` alanında tutulur; yapılandırma silinmediği
348
+ sürece tekrar sorulmaz.
349
+
350
+ Bu onaydan sonra adapter varsayılanları CLI içinde bekleyen etkileşimli izin sorularını azaltır:
351
+ Gemini `--approval-mode yolo`, Claude `--permission-mode acceptEdits`, OpenCode ise process ortamında
352
+ `{"permission":{"*":"allow"}}` kullanır. Codex non-interactive `exec` modunda çalışır. Kullanıcı
353
+ elle değiştirdiği agent argümanlarının ve CLI'ın kendi sürüm/yapılandırmasının davranıştan sorumlu
354
+ olduğunu unutmamalıdır.
355
+
356
+ Orkestratörün görev-planı güvenlik kapısı ayrıca çalışır: `ask` modunda riskli kalıp içeren plan
357
+ onaya alınır; onay planın **SHA‑256** özetiyle ilişkilidir ve aynı delegasyonlardan devam eder.
358
+ `auto` modu bu plan onayını bekletmez.
359
+
360
+ **Otomatik sürümleme (checkpoint) ve geri dönüş.** `versioning` açıkken (varsayılan) CrewCtl, her görev
361
+ _çalışmadan önce_ çalışma klasörünün bir sürümünü alır. Klasör bir Git deposuysa yedeklenecek dosyalar
362
+ `git ls-files` ile (yani `.gitignore`'a uyularak) belirlenir, değilse güvenli bir tarama kullanılır — her
363
+ iki durumda da depolama birebir dosya kopyasıdır. Tamamlanan/başarısız görev kartındaki **Bu sürüme dön**
364
+ (veya Canlı Kod sayfasındaki **Önceki sürüme dön**) eylemi, görev sonrası oluşan dosyaları siler ve
365
+ değiştirilen/silinen dosyaları eski haline getirir. Geri yükleme öncesinde mevcut durum için bir **redo**
366
+ checkpoint'i oluşturulur; böylece geri alma da geri alınabilir. Sürümler `state/checkpoints/` altında
367
+ tutulur (`versioningRetention`, varsayılan 20 sürüm/klasör) ve yalnızca motor **boşta** iken geri yüklenir.
368
+ Bu, Git yerine geçmez; kritik iş için normal sürüm kontrolünüzü sürdürün.
369
+
370
+ > ⚠️ Otonom çalışma onayı bir sandbox değildir. Agent'lar çalışma klasöründeki dosyaları değiştirebilir,
371
+ > komut çalıştırabilir ve CLI'ın verdiği yetki ölçüsünde daha geniş sisteme erişebilir. İzole çalışma
372
+ > klasörü/repo kullanın, önemli dosyaları sürüm kontrolünde tutun ve **web panelini güvenilmeyen bir
373
+ > ağa açmayın** — ayar API'si CLI komutlarını değiştirebilir.
374
+
375
+ ## 🗄️ Depolama
376
+
377
+ Saf dosya tabanlı, sıfır bağımlılık (SQLite/DB gerektirmez, her yerde taşınabilir). Yazımlar
378
+ atomiktir (temp + rename); runtime verisi `.gitignore`'dadır.
379
+
380
+ ```text
381
+ queue/pending bekleyen görevler
382
+ queue/approval insan onayı bekleyen planlar
383
+ queue/done tamamlanan görevler ve takım durumu
384
+ queue/failed başarısız görevler
385
+ state/events stdout, stderr, process ve mesaj olayları (JSONL)
386
+ state/checkpoints görev‑öncesi otomatik sürümler (tek‑tık geri dönüş için)
387
+ memory/log.md görevler arası kısa proje hafızası
388
+ roles operatör ve uzman Markdown rolleri
389
+ config.json makineye özel yapılandırma (gitignore)
390
+ config.default.json paylaşılabilir şablon
391
+ ```
392
+
393
+ ## 🧪 Test
394
+
395
+ ```bash
396
+ npm test
397
+ ```
398
+
399
+ Gerçek sağlayıcı çağrısı yapmadan, sahte operatör ve uzman CLI process'leriyle
400
+ planlama → delegasyon → mesaj → dosya değişikliği → operatör tamamlama akışını uçtan uca doğrular.
401
+ Testler ayrıca OpenCode JSON olay ayrıştırmasını, doğru izin yapılandırmasını, model önceliğini,
402
+ hazır olmayan OpenCode'un devre dışı kalmasını, sessizlik watchdog'unu ve operatör fallback'ini kapsar.
403
+ Sahte OpenCode process'i gerçeği taklit ederek stdin'i EOF'a kadar okur; böylece stdin'i kapatmayan
404
+ bir regresyon (CLI'ın hiç çalışmadan asılı kalması) testlerden sessizce geçemez.
405
+
406
+ ## ❓ SSS (FAQ)
407
+
408
+ **Ayrı bir API anahtarı gerekiyor mu?**
409
+ Hayır. Kurulu CLI'ların kendi kimlik doğrulamasını kullanır. Yeni bir anahtar veya abonelik gerekmez.
410
+
411
+ **Hangi CLI araçlarını destekliyor?**
412
+ OpenAI Codex CLI, Anthropic Claude Code, Google Gemini CLI ve OpenCode. Prompt'u stdin/argüman/dosya
413
+ ile alan başka CLI'lar da elle eklenebilir.
414
+
415
+ **Windows, macOS ve Linux'ta çalışır mı?**
416
+ Evet. Node.js 18+ olan her yerde çalışır; CLI keşfi üç platformdaki yaygın kurulum dizinlerini tarar.
417
+
418
+ **OpenCode kurulu ama neden “model seçilmeli” görünüyor?**
419
+ `opencode models opencode` kullanılabilir bir model döndürmemiştir. Önce `opencode auth login` ile
420
+ sağlayıcı girişini tamamlayın, ardından panelde **Ayarlar → Agent'lar → Yeniden Tara**'ya basın.
421
+ İsterseniz agent veya operatör için erişilebilir modeli elle de seçebilirsiniz. Hazır olmayan
422
+ OpenCode'a otomatik görev verilmez.
423
+
424
+ **Bir CLI çalışıyor mu, takıldı mı nasıl anlarım?**
425
+ Canlı karttaki süre ve 15 saniyelik ilerleme olayları çalışmayı görünür kılar. Çıktısız bekleme
426
+ sessizlik sınırını aşarsa process otomatik durdurulur, açık hata gösterilir ve mümkünse başka
427
+ agent'a geçilir. Uzun ama düzenli çıktı üreten işler normal zaman aşımı sınırına kadar sürebilir.
428
+
429
+ **Bağımlılık kuruyor mu / node_modules şişer mi?**
430
+ Hayır, sıfır bağımlılık. `npm install` yalnızca projeyi hazırlar.
431
+
432
+ **Verilerim buluta gidiyor mu?**
433
+ Orkestrasyon tamamen yereldir. Yalnızca CLI'lar kendi sağlayıcılarıyla (ör. OpenAI/Anthropic/Google) konuşur.
434
+
435
+ **Aynı görevde birden çok modeli birlikte kullanabilir miyim?**
436
+ Evet. Örn. Codex ile uygula, Claude ile incele, Gemini ile araştır — operatör işi uygun uzmana dağıtır.
437
+
438
+ **SQLite veya bir veritabanı kurmam gerekir mi?**
439
+ Hayır. Depolama düz JSON/JSONL dosyalarıdır; her makinede taşınabilir ve atomik yazılır.
440
+
441
+ ## 🚧 Bilinen sınırlar
442
+
443
+ - Delegasyonlar şimdilik aynı çalışma klasöründe güvenli biçimde **sırayla** yürütülür.
444
+ - CLI'a özgü tool‑call telemetrisi yoksa yalnızca stdout/stderr görülebilir.
445
+ - Proje hafızası metin tabanlıdır; semantik retrieval henüz yoktur.
446
+ - Model keşfi sağlayıcının gerçek bir üretim çağrısını başlangıçta çalıştırmaz; sonradan oluşan ağ,
447
+ kota veya sağlayıcı hatası ilk çağrıda gösterilir ve fallback akışına alınır.
448
+ - Web paneli kimlik doğrulaması ve uzak sunucu modu henüz eklenmemiştir.
449
+
450
+ ---
451
+
452
+ ## Anahtar kelimeler / Keywords
453
+
454
+ AI agent orchestrator · multi-agent orchestration · CLI agent orchestrator · operator-led agent team ·
455
+ OpenAI **Codex CLI** · **Claude Code** (Anthropic) · Google **Gemini CLI** · **OpenCode** ·
456
+ autonomous coding agents · local / self-hosted AI dev tool · zero-dependency Node.js · web command center ·
457
+ agent delegation · task orchestration · yapay zeka geliştirici takımı · çok-agent orkestratör ·
458
+ yerel yapay zeka geliştirme aracı · komut satırı ajan yönetimi.
459
+
460
+ ## Lisans
461
+
462
+ [MIT](LICENSE) © CrewCtl katkıda bulunanları.