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