@omerrgocmen/crewctl 1.0.0

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 (95) hide show
  1. package/README.md +182 -0
  2. package/orchestrator/LICENSE +21 -0
  3. package/orchestrator/README.md +452 -0
  4. package/orchestrator/config.default.json +65 -0
  5. package/orchestrator/roles/executor.md +49 -0
  6. package/orchestrator/roles/operator-chat.md +25 -0
  7. package/orchestrator/roles/operator.md +75 -0
  8. package/orchestrator/roles/planner.md +53 -0
  9. package/orchestrator/roles/reviewer.md +54 -0
  10. package/orchestrator/skills/acceptance-criteria.md +18 -0
  11. package/orchestrator/skills/accessibility-audit.md +16 -0
  12. package/orchestrator/skills/accessible-forms.md +16 -0
  13. package/orchestrator/skills/api-design.md +27 -0
  14. package/orchestrator/skills/api-documentation.md +16 -0
  15. package/orchestrator/skills/architecture-decision-record.md +18 -0
  16. package/orchestrator/skills/authentication-design.md +16 -0
  17. package/orchestrator/skills/authorization-review.md +16 -0
  18. package/orchestrator/skills/backward-compatibility.md +17 -0
  19. package/orchestrator/skills/changelog-writing.md +16 -0
  20. package/orchestrator/skills/ci-pipeline-design.md +16 -0
  21. package/orchestrator/skills/cli-design.md +16 -0
  22. package/orchestrator/skills/code-review.md +27 -0
  23. package/orchestrator/skills/configuration-management.md +16 -0
  24. package/orchestrator/skills/container-review.md +16 -0
  25. package/orchestrator/skills/contract-testing.md +16 -0
  26. package/orchestrator/skills/dashboard-design.md +16 -0
  27. package/orchestrator/skills/database-migration.md +16 -0
  28. package/orchestrator/skills/database-schema-design.md +16 -0
  29. package/orchestrator/skills/debugging.md +26 -0
  30. package/orchestrator/skills/dependency-review.md +16 -0
  31. package/orchestrator/skills/design-review.md +29 -0
  32. package/orchestrator/skills/design-system.md +16 -0
  33. package/orchestrator/skills/docs-api-reference.md +16 -0
  34. package/orchestrator/skills/docs-troubleshooting.md +16 -0
  35. package/orchestrator/skills/docs-tutorial.md +16 -0
  36. package/orchestrator/skills/docs-writing.md +25 -0
  37. package/orchestrator/skills/empty-error-loading-states.md +16 -0
  38. package/orchestrator/skills/end-to-end-testing.md +16 -0
  39. package/orchestrator/skills/error-handling.md +16 -0
  40. package/orchestrator/skills/frontend-design.md +28 -0
  41. package/orchestrator/skills/git-commit-writing.md +16 -0
  42. package/orchestrator/skills/graphql-design.md +16 -0
  43. package/orchestrator/skills/incident-runbook.md +18 -0
  44. package/orchestrator/skills/input-validation.md +16 -0
  45. package/orchestrator/skills/integration-testing.md +16 -0
  46. package/orchestrator/skills/interaction-design.md +16 -0
  47. package/orchestrator/skills/landing-page-design.md +16 -0
  48. package/orchestrator/skills/observability-design.md +16 -0
  49. package/orchestrator/skills/openapi-contract.md +16 -0
  50. package/orchestrator/skills/performance-profiling.md +16 -0
  51. package/orchestrator/skills/privacy-review.md +16 -0
  52. package/orchestrator/skills/property-based-testing.md +16 -0
  53. package/orchestrator/skills/pull-request-writing.md +16 -0
  54. package/orchestrator/skills/refactoring.md +16 -0
  55. package/orchestrator/skills/release-readiness.md +16 -0
  56. package/orchestrator/skills/responsive-design.md +16 -0
  57. package/orchestrator/skills/secrets-management.md +16 -0
  58. package/orchestrator/skills/secure-file-upload.md +16 -0
  59. package/orchestrator/skills/security-review.md +26 -0
  60. package/orchestrator/skills/semantic-versioning.md +17 -0
  61. package/orchestrator/skills/seo-on-page.md +16 -0
  62. package/orchestrator/skills/seo-structured-data.md +16 -0
  63. package/orchestrator/skills/seo-technical-audit.md +16 -0
  64. package/orchestrator/skills/sql-query-review.md +16 -0
  65. package/orchestrator/skills/supply-chain-security.md +16 -0
  66. package/orchestrator/skills/test-strategy.md +16 -0
  67. package/orchestrator/skills/threat-modeling.md +16 -0
  68. package/orchestrator/skills/unit-testing.md +16 -0
  69. package/orchestrator/skills/write-tests.md +28 -0
  70. package/orchestrator/src/checkpoints.js +187 -0
  71. package/orchestrator/src/cli-registry.js +579 -0
  72. package/orchestrator/src/cli.js +135 -0
  73. package/orchestrator/src/doctor.js +64 -0
  74. package/orchestrator/src/engine.js +1364 -0
  75. package/orchestrator/src/schedule.js +126 -0
  76. package/orchestrator/src/server.js +706 -0
  77. package/orchestrator/src/skill-registry.js +272 -0
  78. package/orchestrator/src/store.js +364 -0
  79. package/orchestrator/web/OrbitControls.js +1417 -0
  80. package/orchestrator/web/app.css +116 -0
  81. package/orchestrator/web/app.js +70 -0
  82. package/orchestrator/web/board.html +141 -0
  83. package/orchestrator/web/code.html +208 -0
  84. package/orchestrator/web/flow.html +736 -0
  85. package/orchestrator/web/index.html +539 -0
  86. package/orchestrator/web/jsm/postprocessing/EffectComposer.js +231 -0
  87. package/orchestrator/web/jsm/postprocessing/MaskPass.js +104 -0
  88. package/orchestrator/web/jsm/postprocessing/Pass.js +95 -0
  89. package/orchestrator/web/jsm/postprocessing/RenderPass.js +99 -0
  90. package/orchestrator/web/jsm/postprocessing/ShaderPass.js +77 -0
  91. package/orchestrator/web/jsm/postprocessing/UnrealBloomPass.js +415 -0
  92. package/orchestrator/web/jsm/shaders/CopyShader.js +45 -0
  93. package/orchestrator/web/jsm/shaders/LuminosityHighPassShader.js +66 -0
  94. package/orchestrator/web/three.module.min.js +6 -0
  95. package/package.json +51 -0
package/README.md ADDED
@@ -0,0 +1,182 @@
1
+ <div align="center">
2
+
3
+ # CrewCtl 🛰️
4
+
5
+ **Kurulu CLI kodlama agent'larınızı — Codex, Claude Code, Gemini ve OpenCode — tek bir operatör liderliğindeki ekip olarak çalıştıran yerel, açık kaynak ve sıfır runtime bağımlılıklı Node.js orkestratörü.**
6
+
7
+ _A local, self-hosted, zero-dependency multi-agent AI orchestrator with an operator-led team and a live web command center._
8
+
9
+ [![GitHub stars](https://img.shields.io/github/stars/omergocmen/cli?style=flat&logo=github)](https://github.com/omergocmen/cli/stargazers)
10
+ [![GitHub forks](https://img.shields.io/github/forks/omergocmen/cli?style=flat&logo=github)](https://github.com/omergocmen/cli/network/members)
11
+ [![GitHub issues](https://img.shields.io/github/issues/omergocmen/cli)](https://github.com/omergocmen/cli/issues)
12
+ [![Last commit](https://img.shields.io/github/last-commit/omergocmen/cli)](https://github.com/omergocmen/cli/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/runtime_dependencies-0-brightgreen)
15
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue)](orchestrator/LICENSE)
16
+ ![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey)
17
+
18
+ 📖 **[Tam dokümantasyon → orchestrator/README.md](orchestrator/README.md)**
19
+
20
+ ![CrewCtl Komuta Merkezi](image.png)
21
+
22
+ </div>
23
+
24
+ ---
25
+
26
+ ## CrewCtl nedir?
27
+
28
+ CrewCtl, makinenizde zaten kurulu ve oturum açılmış **Codex CLI**, **Claude Code**, **Gemini CLI** ve **OpenCode** araçlarını tek bir geliştirici takımı halinde koordine eder.
29
+
30
+ Bir CLI **operatör** rolünü üstlenir; hedefi analiz eder, işi planlar, uygun uzman agent'a delege eder, sonuçları inceler ve gerekirse yeni bir tur başlatır. Uzmanlar her delegasyonda ayrı CLI prosesleri olarak çalışır. CrewCtl ayrı bir servis ya da kendine ait API anahtarı istemez; mevcut CLI oturumlarınızı kullanır ve çalışma verilerini yerelde tutar.
31
+
32
+ ~~~text
33
+ Görev → Operatör planı → Uzman agent'lar → İnceleme → Teslimat
34
+ ↘ canlı akış + canlı kod + olay geçmişi
35
+ ~~~
36
+
37
+ ## Canlı görünürlük
38
+
39
+ ### 🛰️ Ekip Akışı
40
+
41
+ Ekip Akışı, orkestrasyonu yalnızca log satırlarıyla değil, canlı bir 3B çalışma sahnesiyle gösterir.
42
+
43
+ <p align="center">
44
+ <img src="image-1.png" alt="CrewCtl Ekip Akışı: agent filosu, operatör ve agent gezegenleri ile görev zaman çizelgesi" width="100%">
45
+ </p>
46
+
47
+ - **Sol — Agent filosu:** Her agent'ın CLI sağlayıcısı, rolü, durumu ve tamamladığı çalışma sayısı görünür.
48
+ - **Orta — 3B orkestrasyon sahnesi:** Operatör çekirdeği ve agent gezegenleri birlikte izlenir. Bağlantı çizgisi ile ok, hedef agent'ın CLI rengini kullanır; ölçülü veri paketleri operatörden çalışan agenta doğru akar.
49
+ - **Sağ — Zaman çizelgesi:** Görevin alınmasından planlama, delegasyon ve sonuca kadar tüm olaylar kronolojik olarak gösterilir.
50
+ - **Üst KPI'lar:** Tur, delegasyon, aktif agent, değişen dosya ve CLI çağrısı sayıları tek bakışta izlenir.
51
+ - **Etkileşim:** Sahne döndürülebilir, yakınlaştırılabilir ve agent'lara tıklanarak çalışma ayrıntıları açılabilir.
52
+
53
+ ### 🧬 Canlı Kod
54
+
55
+ Canlı Kod sayfası, agent'ların çalışma klasöründe yaptığı değişiklikleri Git ekranına benzer biçimde sunar:
56
+
57
+ - dosya bazında ekleme ve silme sayaçları,
58
+ - hunk başlıkları ile eski/yeni satır numaraları,
59
+ - eklenen, silinen ve bağlam satırlarının ayrı renklerle gösterimi,
60
+ - aktif görevin geçmiş değişikliklerini sayfa açıldığında otomatik yükleme,
61
+ - hassas, ikili, çok büyük veya okunamayan dosyalarda güvenli içerik gizleme.
62
+
63
+ ### Kesintisiz görev geçmişi
64
+
65
+ Komuta Merkezi veya Canlı Kod sayfasından başka bir ekrana gidip geri döndüğünüzde görünüm sıfırdan başlamaz. CrewCtl aktif görevi; aktif görev yoksa son tamamlanan ya da başarısız görevi otomatik seçer, kaydedilmiş olayları geri oynatır ve bu sırada gelen canlı SSE olaylarını yinelenmeden ekrana işler.
66
+
67
+ ### 🗂️ Kanban Pano
68
+
69
+ **Pano** sayfası, kuyruğu dikey liste yerine görev yaşam döngüsü sütunlarıyla gösterir:
70
+ **Bekleyen · Çalışıyor · Tamamlanan · Başarısız**. Çalışan görev kendi sütununda canlı izlenir;
71
+ kartlardan silme ve tamamlanan görevlerde “Kodu gör” işlemleri yapılabilir. Salt-görsel bir
72
+ katmandır; motorun otomatik durum geçişlerini değiştirmez. Her agent, CLI marka rengiyle
73
+ (Codex yeşil · Claude turuncu · Gemini mavi · OpenCode gök mavisi) tutarlı biçimde gösterilir.
74
+
75
+ ### ⏰ Zamanlanmış görevler
76
+
77
+ **Yeni görev** kutusundaki **⏱ Zamanla** bölümünden tekrar eden görevleri dostça ön ayarlarla
78
+ tanımlarsınız: **her N dakika**, **her gün SS:DD** veya **haftanın seçili günleri SS:DD** (saat
79
+ açılır menüyle seçilir). Zamanı gelen görev otomatik olarak kuyruğa eklenir; tanımlı zamanlamalar
80
+ kenar çubuğundaki **Zamanlanmış görevler** kartında sonraki çalışma zamanıyla listelenir ve Pano
81
+ üstündeki şeritte de görünür.
82
+
83
+ > Zamanlanmış görevlerin çalışması için motorun açık olması gerekir — görev, motor durmuşsa siz
84
+ > **Başlat**'a basana kadar bekler (gözetimsiz otomatik başlatma yoktur).
85
+
86
+ ## Görev güvenliği
87
+
88
+ - **Otomatik sürüm:** Varsayılan yapılandırmada CrewCtl, agent'lar çalışmaya başlamadan önce çalışma klasörünün bir checkpoint'ini alır.
89
+ - **Tek tıkla geri dönüş:** Tamamlanan veya başarısız görev kartındaki **Bu sürüme dön** eylemi, değiştirilmiş ve silinmiş dosyaları geri getirir; görevden sonra oluşan dosyaları kaldırır.
90
+ - **Geri almanın geri alınması:** Bir checkpoint geri yüklenmeden önce mevcut durum için yeni bir redo checkpoint'i oluşturulur.
91
+ - **Risk onayı:** Riskli görülen planlar yürütülmeden önce açık onay bekler.
92
+ - **Dayanıklılık:** Sessizlik zaman aşımı, proses ağacı sonlandırma, yeniden deneme ve uygun agent'a fallback mekanizmaları uzun çalışmaların kontrolünü korur.
93
+
94
+ > Sürüm geri yükleme yalnızca motor boşta olduğunda yapılabilir. Önemli çalışmalar için normal Git akışınızı kullanmaya devam etmeniz önerilir.
95
+
96
+ ## Öne çıkan özellikler
97
+
98
+ | Özellik | Açıklama |
99
+ | --- | --- |
100
+ | Operatör liderliğinde orkestrasyon | Planlama, delegasyon, değerlendirme, yeniden deneme ve teslimat döngüsü |
101
+ | Çoklu CLI desteği | Codex, Claude Code, Gemini ve OpenCode profillerini aynı takımda kullanma |
102
+ | Kanban Pano | Görev yaşam döngüsünü sütunlarda (Bekleyen · Çalışıyor · Tamamlanan · Başarısız) tek bakışta gösteren salt-görsel pano |
103
+ | Zamanlanmış görevler | Dostça ön ayarlarla (her N dakika · günlük HH:MM · haftalık günler) tekrar eden görevleri otomatik kuyruğa alma |
104
+ | Çalışma modları | Görevin kapsamına göre Auto, Fast, Balanced ve Deep yürütme seçenekleri |
105
+ | Otomatik CLI keşfi | Kurulu araçları, modelleri ve çalışmaya hazır olma durumunu algılama |
106
+ | Rol ve skill yönlendirme | Planner, executor, reviewer gibi roller ile yerel skill eşleştirme |
107
+ | Canlı Komuta Merkezi | Kuyruk, terminaller, birleşik aktivite akışı, bütçe ve motor kontrolleri |
108
+ | Kalıcı olay geçmişi | Görev olaylarını JSONL olarak saklama ve sayfalar arasında otomatik geri oynatma |
109
+ | Yerel ve taşınabilir | Node.js 18+, sıfır runtime bağımlılığı, Windows/macOS/Linux desteği |
110
+
111
+ ## Hızlı başlangıç
112
+
113
+ **Gereksinim:** [Node.js](https://nodejs.org) 18+ ve en az bir kurulu, oturum açılmış CLI agent'ı.
114
+
115
+ En hızlı yol — **tek komut, kurulum gerektirmez:**
116
+
117
+ ~~~bash
118
+ npx @omerrgocmen/crewctl
119
+ ~~~
120
+
121
+ Ya da global kurun:
122
+
123
+ ~~~bash
124
+ npm install -g @omerrgocmen/crewctl
125
+ crewctl
126
+ ~~~
127
+
128
+ Arayüz varsayılan olarak [http://localhost:4317](http://localhost:4317) adresinde açılır. Panelde çalışma klasörünü seçin, operatör ve agent profillerini kontrol edin, ardından bir görev ekleyip **Başlat** düğmesine basın.
129
+
130
+ > **Veri konumu:** config, kuyruk ve görev geçmişi kullanıcı klasörünüzdeki <code>~/.crewctl</code> altında tutulur (ortam değişkeni <code>CREWCTL_HOME</code> ile değiştirilebilir). Çalışma klasörü varsayılan olarak komutu çalıştırdığınız dizindir; panelden değiştirilebilir. Makineye özel <code>config.json</code> ilk çalıştırmada otomatik üretilir.
131
+
132
+ <details>
133
+ <summary>Kaynaktan çalıştırma (geliştirme)</summary>
134
+
135
+ ~~~bash
136
+ git clone https://github.com/omergocmen/cli.git
137
+ cd cli
138
+ npm run doctor
139
+ npm start
140
+ ~~~
141
+
142
+ Kaynaktan çalıştırıldığında veri, mevcut davranışla uyumlu olarak <code>orchestrator/</code> klasöründe tutulur.
143
+ </details>
144
+
145
+ ### CLI kullanımı
146
+
147
+ ~~~bash
148
+ npm run cli -- status
149
+ npm run cli -- task "Testleri çalıştır ve bulunan hataları düzelt" --mode balanced
150
+ npm run cli -- run --once
151
+ npm run cli -- approvals
152
+ ~~~
153
+
154
+ Global <code>crewctl</code> komutunu kullanmak isterseniz:
155
+
156
+ ~~~bash
157
+ npm link
158
+ crewctl start
159
+ ~~~
160
+
161
+ ## Geliştirme ve doğrulama
162
+
163
+ ~~~bash
164
+ npm test
165
+ ~~~
166
+
167
+ Test paketi CLI, dashboard smoke, skill, Ekip Akışı, canlı diff ve checkpoint senaryolarını kapsar. Yapılandırma, çalışma modları, veri dizinleri, API uçları ve sorun giderme notları için **[tam dokümantasyona](orchestrator/README.md)** bakın.
168
+
169
+ ---
170
+
171
+ <div align="center">
172
+
173
+ ### Anahtar kelimeler / Keywords
174
+
175
+ AI agent orchestrator · multi-agent orchestration · CLI agent orchestrator · operator-led agent team ·
176
+ OpenAI **Codex CLI** · **Claude Code** · Google **Gemini CLI** · **OpenCode** · autonomous coding agents ·
177
+ local / self-hosted AI dev tool · zero-dependency Node.js · live code diff · agent team visualization ·
178
+ yapay zeka geliştirici takımı · çok-agent orkestratör · yerel yapay zeka geliştirme aracı
179
+
180
+ **Lisans:** [MIT](orchestrator/LICENSE)
181
+
182
+ </div>
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ömer Göçmen
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,452 @@
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 **operator‑led team**, with a live web dashboard._
6
+
7
+ [![GitHub stars](https://img.shields.io/github/stars/omergocmen/cli?style=flat&logo=github)](https://github.com/omergocmen/cli/stargazers)
8
+ [![GitHub forks](https://img.shields.io/github/forks/omergocmen/cli?style=flat&logo=github)](https://github.com/omergocmen/cli/network/members)
9
+ [![GitHub issues](https://img.shields.io/github/issues/omergocmen/cli)](https://github.com/omergocmen/cli/issues)
10
+ [![Last commit](https://img.shields.io/github/last-commit/omergocmen/cli)](https://github.com/omergocmen/cli/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)
15
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-ff69b4)](https://github.com/omergocmen/cli/pulls)
16
+
17
+ 🔗 **Repo:** [github.com/omergocmen/cli](https://github.com/omergocmen/cli)
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
+
85
+ ```bash
86
+ npx @omerrgocmen/crewctl # paneli anında başlatır (komutsuz = start)
87
+ ```
88
+
89
+ Ya da global kurun:
90
+
91
+ ```bash
92
+ npm install -g @omerrgocmen/crewctl
93
+ crewctl # panel
94
+ crewctl status
95
+ crewctl task "Testleri düzelt" --dir . --mode balanced
96
+ crewctl doctor # salt-okunur ortam kontrolü
97
+ ```
98
+
99
+ > **Veri konumu:** config, kuyruk ve görev geçmişi `~/.crewctl` altında tutulur
100
+ > (`CREWCTL_HOME` ile değiştirilebilir). Çalışma klasörü varsayılan olarak komutu çalıştırdığınız
101
+ > dizindir; panelden değiştirilebilir.
102
+
103
+ <details>
104
+ <summary>Kaynaktan çalıştırma (geliştirme)</summary>
105
+
106
+ ```bash
107
+ git clone https://github.com/omergocmen/cli.git
108
+ cd cli
109
+ npm run cli -- doctor # salt-okunur ortam kontrolü
110
+ npm start # sunucuyu başlatır ve tarayıcıyı açar
111
+ ```
112
+
113
+ Kaynaktan çalıştırıldığında (repo `test/` klasörü mevcutken) veri, mevcut davranışla uyumlu olarak
114
+ `orchestrator/` klasöründe tutulur.
115
+ </details>
116
+
117
+ `crewctl doctor` ayarları değiştirmez. Yalnızca keşif sonucunu `config.json` dosyasına uygulamak
118
+ istediğinizde açıkça `crewctl doctor --fix` kullanın.
119
+
120
+ > **Yeni klonladıysanız:** `config.json` ilk `npm start` anında üretilir. Ondan önce çalıştırılan
121
+ > salt-okunur `doctor`, CLI'larınızı kurulu görse bile “Operatör CLI: (yok) / Uzman ajan sayısı: 0”
122
+ > raporlar. Bu bir hata değildir; `npm start` (veya `crewctl doctor --fix`) yapılandırmayı kurar.
123
+
124
+ `npm start` çalışınca:
125
+
126
+ - `config.json` yoksa `config.default.json` şablonundan **makinenize göre otomatik** üretilir;
127
+ kurulu CLI'lar tespit edilip uzman agent olarak eklenir ve bir operatör CLI'sı seçilir.
128
+ - Panel **`http://localhost:4317`** adresinde açılır (tarayıcı otomatik açılır; `OPEN=0 npm start`
129
+ ile kapatabilirsiniz).
130
+ - Panelde **▶ Başlat**'a basıp bir görev gönderin.
131
+ - İlk açılışta otonom CLI çalıştırma koşullarını bir kez okuyup onaylayın. Kabul zamanı
132
+ `config.json` içinde saklanır; aynı kurulumda uyarı tekrar gösterilmez.
133
+
134
+ > **İpuçları:** Farklı port için `PORT=4318 npm start`. `config.json` kişiye özeldir
135
+ > (`.gitignore`'dadır); ekip kurulumunuzu paylaşmak için `config.default.json` şablonunu
136
+ > düzenleyip commit'leyin. Ortamınızda sorun mu var? `npm run doctor` tanı verir.
137
+
138
+ ## 🧰 Desteklenen CLI'lar
139
+
140
+ | CLI | Sağlayıcı | Örnek kurulum | Non‑interactive çağrı (otomatik) |
141
+ |-----|-----------|---------------|----------------------------------|
142
+ | **Codex CLI** | OpenAI | `npm i -g @openai/codex` | `codex exec --skip-git-repo-check` |
143
+ | **Claude Code** | Anthropic | `npm i -g @anthropic-ai/claude-code` | `claude -p --output-format text` |
144
+ | **Gemini CLI** | Google | `npm i -g @google/gemini-cli` | `gemini --approval-mode yolo` (stdin prompt) |
145
+ | **OpenCode** | OpenCode / çok‑sağlayıcı | `npm i -g opencode-ai` | `opencode run --format json --model <keşfedilen-model> --file <prompt.md>` |
146
+
147
+ Sunucu açılırken bu CLI'lar otomatik taranır; PATH dışında kalan yaygın kurulum dizinleri
148
+ (npm, pnpm, yarn, bun, volta, scoop, winget, Chocolatey, Homebrew…) Windows, macOS ve Linux
149
+ üzerinde de kontrol edilir. Kurulu bir CLI için henüz agent yoksa güvenli varsayılanlarla
150
+ profil eklenir. Panelde **Ayarlar → Agent'lar → Yeniden Tara** ile kurulumdan sonra yeniden
151
+ taratabilirsiniz. Prompt'u argüman olarak isteyen CLI'lar için argümanda `{PROMPT}`, dosya
152
+ olarak isteyenler için `{PROMPT_FILE}` yer tutucusu kullanılabilir.
153
+
154
+ Prompt hangi yolla verilirse verilsin, motor alt process'in **stdin'ini her zaman kapatır (EOF)**.
155
+ Bu şart: OpenCode gibi CLI'lar stdin bir TTY değilse mesajı borudan da okumaya çalışır ve EOF
156
+ gelmezse model çağrısına hiç geçmeden süresiz bloke olur. Kendi CLI'ınızı eklerken bu davranışa
157
+ güvenebilirsiniz.
158
+
159
+ OpenCode için “kurulu” ve “hazır” ayrı durumlardır. Orkestratör `opencode models opencode`
160
+ ile OpenCode'un kendi modellerini keşfeder, önerilen modeli profile ekler ve yanıtı JSON olay
161
+ akışından ayrıştırır. Kullanılabilir model bulunamazsa otomatik OpenCode profili devre dışı kalır;
162
+ operatör veya delegasyon sessizce ona yönlendirilmez. Model seçimi **Ayarlar → Agent'lar** ve
163
+ **Ayarlar → Operatör** bölümlerinden değiştirilebilir. Bu keşif kullanıcı adı, sabit kurulum yolu,
164
+ yerel IP veya belirli bir bilgisayar yapılandırmasına bağlı değildir.
165
+
166
+ ## 🧩 Nasıl çalışır?
167
+
168
+ ```text
169
+ Kullanıcı hedefi
170
+
171
+ Seçilen operatör CLI (roles/operator.md)
172
+ ↓ yapılandırılmış takım planı (JSON)
173
+ Uzman A ← delegasyon → sonuç ┐
174
+ Uzman B ← delegasyon → sonuç ├→ Operatör değerlendirmesi
175
+ Uzman C ← delegasyon → sonuç ┘ ↓
176
+ yeni delegasyon / tamamla
177
+ ```
178
+
179
+ Agent'lar kalıcı oturumlar değildir; her delegasyon için ilgili CLI **yeni bir process** olarak
180
+ başlatılır. Takım sürekliliğini motorun tuttuğu görev durumu, mesajlar, uzman sonuçları ve proje
181
+ hafızası sağlar. Operatör hedefin tamamlandığını onaylayana ya da tur sınırına ulaşılana kadar
182
+ döngü devam eder.
183
+
184
+ ## ⚙️ Çalışma modları
185
+
186
+ Her görev `Otomatik`, `Hızlı`, `Dengeli` veya `Derin` modda çalıştırılabilir:
187
+
188
+ - **Otomatik:** kısa/basit işleri Hızlı, kapsamlı işleri Dengeli moda yönlendirir.
189
+ - **Hızlı:** operatör planı + tek implementation uzmanı; başarılı teslimatta ikinci operatör
190
+ değerlendirmesi atlanır (normal akış iki CLI çağrısı). Hata halinde en fazla iki tur.
191
+ - **Dengeli:** işi uygun uzmanlıklara dağıtır — sıfırdan uygulama/oyun/özellik gibi işlerde önce
192
+ kısa planlama, sonra uygulama, sonra inceleme; üç uzmana ve dört tura kadar.
193
+ - **Derin:** yapılandırılmış üst sınırlarla kapsamlı uygulama ve bağımsız denetim.
194
+
195
+ ## 🎩 Operatör
196
+
197
+ Operatör ayrı bir agent değil, bir **CLI seçimidir**. Seçtiğiniz CLI (Codex/Claude/Gemini/OpenCode)
198
+ o görev boyunca `roles/operator.md` rolüyle çalıştırılır; ekibi kurar, uzmanlara delege eder ve
199
+ sonuçları değerlendirir. Uzman agent'lar operatörün **altında** çalışır; bir uzmanı silmek operatörü
200
+ etkilemez. **Ayarlar → Operatör** bölümünde operatör CLI'sı, `operator.md` metni, maksimum tur ve
201
+ tur başına delegasyon sınırı yönetilir; her görevde farklı bir operatör de seçilebilir.
202
+
203
+ Yapılandırılan operatör o cihazda kurulu değilse, sunucu açılışta ve her taramada otomatik olarak
204
+ kurulu ve hazır bir CLI'ya geçer. OpenCode kurulu olsa bile kullanılabilir modeli yoksa operatör
205
+ olarak seçilmez; elle model seçilmişse bu seçim korunur. Böylece proje yeni indirildiğinde tek eksik
206
+ veya yapılandırılmamış CLI yüzünden görevler bloke olmaz.
207
+
208
+ Operatör yanıtları serbest metin değil **JSON protokolüdür**. İlk tur takım planı:
209
+
210
+ ```json
211
+ {
212
+ "summary": "Yaklaşım",
213
+ "completionCriteria": ["Testler geçmeli"],
214
+ "assignments": [
215
+ { "id": "implement-api", "agent": "backend-codex", "kind": "implement", "instruction": "API'yi uygula ve test et", "dependsOn": [] }
216
+ ]
217
+ }
218
+ ```
219
+
220
+ Sonraki turlarda ya yeni delegasyon üretir (`{"status":"continue","assignments":[...]}`) ya da
221
+ görevi tamamlar (`{"status":"complete","final":"...","verification":"..."}`). Geçersiz JSON
222
+ yapılandırılan sayıda otomatik tekrar edilir. Delegasyon türleri `implement`, `review`, `research`
223
+ ve `plan`'dır; motor türü görev metninden ayrıca doğrular ve yanlış rol seçilirse yeteneği uygun
224
+ aktif agente otomatik yönlendirir.
225
+
226
+ ## ➕ Agent ekleme
227
+
228
+ Panelde **Ayarlar → Agent'lar → Yeni CLI agent** bölümünden önce CLI şablonunu seçin. Komut,
229
+ non-interactive varsayılan argümanlar, yetenekler, rol ve destekleniyorsa model otomatik dolar.
230
+ Bu nedenle daha önce sildiğiniz bir CLI'ı yeniden eklerken varsayılan komutları hatırlamanız gerekmez.
231
+ Her agent için: benzersiz **ad**, **CLI komutu**,
232
+ **argümanlar** (her satır bir argüman; prompt varsayılan olarak stdin'e gider), `roles/*.md` **rol
233
+ dosyası**, **açıklama/yetenekler** (operatörün doğru uzmanı seçmesini sağlar), **zaman aşımı**,
234
+ **maliyet sınıfı** ve **aktif** anahtarı.
235
+
236
+ Otomatik keşfedilmiş bir Gemini/OpenCode profilini silerseniz adapter tercihi
237
+ `discoveryIgnoredAdapters` içinde saklanır ve **Yeniden Tara** sırasında geri gelmez. İsterseniz
238
+ **Gizlenenleri geri getir** ile bu kararı kaldırabilirsiniz; elle oluşturulmuş profillere dokunulmaz.
239
+
240
+ ```json
241
+ {
242
+ "backend-codex": {
243
+ "cmd": "codex",
244
+ "args": ["exec", "--skip-git-repo-check"],
245
+ "description": "Node.js API ve veritabanı uzmanı",
246
+ "capabilities": ["node", "api", "postgres", "testing"],
247
+ "roleFile": "roles/backend.md",
248
+ "costTier": "high",
249
+ "timeoutSeconds": 1200
250
+ }
251
+ }
252
+ ```
253
+
254
+ ## 📊 Canlı görünürlük
255
+
256
+ Panel her CLI çağrısını ayrı kartta gösterir: canlı **stdout/stderr**, process başlangıcı, süresi
257
+ ve çıkış kodu; operatör→uzman delegasyonları, uzman→operatör sonuçları, agent takım haritası ve
258
+ kimlik doğrulama/kota/timeout/CLI‑bulunamadı hataları için sade hata kartları. Ayrı **🛰️ Ekip Akışı**
259
+ sayfası; parlayan operatör çekirdeği, ajan filosu ve animasyonlu delegasyon akışıyla "arkada bir
260
+ ekibin çalıştığı" hissini verir.
261
+
262
+ Ayrı **🧬 Canlı Kod** sayfası, agent'lar çalışırken çalışma klasöründe oluşan/değişen/silinen dosyaları
263
+ Git ekranına benzer biçimde **satır satır** gösterir: dosya bazında +/− sayaçları, hunk başlıkları,
264
+ eklenen/silinen/bağlam satırları ayrı renklerle. "Şu an ne oluyor" satırı aktif agent'ı, üst kutucuklar
265
+ toplam değişikliği özetler. Sayfa açıldığında aktif (veya son tamamlanan) görevin geçmiş diff'i otomatik
266
+ yüklenir; hassas (`.env` vb.), ikili veya çok büyük dosyaların içeriği güvenlik için gizlenir. Diff, görev
267
+ 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
268
+ sayfada açar.
269
+
270
+ Olaylar `state/events/<task-id>.jsonl` altında kalıcıdır; görev kartındaki **Akışı incele** düğmesi
271
+ bu geçmişi yeniden oynatır. Bir uzman CLI kullanılamazsa görev hemen başarısız sayılmaz — motor
272
+ hatayı yapılandırılmış sonuç olarak operatöre iletir ve alternatif uzman seçmesine izin verir.
273
+
274
+ Çalışan CLI 15 saniyede bir süre/ilerleme olayı üretir. OpenCode varsayılan olarak 180 saniye,
275
+ diğer CLI'lar 300 saniye boyunca hiçbir çıktı üretmezse `CLI_STALLED` olarak sınıflandırılır;
276
+ Windows'ta alt process ağacıyla birlikte durdurulur, o oturum için karantinaya alınır ve uygun
277
+ başka agent varsa görev onunla sürdürülür. Sağlayıcı bağlantı hataları `PROVIDER_UNAVAILABLE`
278
+ olarak ayrı gösterilir; bozuk JSON sanılıp anlamsız protokol tekrarlarına sokulmaz.
279
+
280
+ **Sessizlik sınırı toplam süre sınırı değildir.** Sayaç her stdout/stderr parçasında sıfırlanır,
281
+ yani düzenli çıktı üreten bir CLI ne kadar uzun çalışırsa çalışsın kesilmez — OpenCode `--format json`
282
+ ile her araç çağrısında `step_start` / `tool_use` / `step_finish` olayı yayınladığı için aktif
283
+ kodlarken sessizlik sınırına yaklaşmaz. Bir çalışmayı gerçekten sınırlayan değer ayrı olan **toplam
284
+ zaman aşımıdır**: agent'ın `timeoutSeconds` alanı (OpenCode profillerinde varsayılan **1800 sn**,
285
+ diğerlerinde 1200 sn). Saatler sürecek işler planlıyorsanız değiştirmeniz gereken değer budur.
286
+
287
+ ## 📝 Markdown roller
288
+
289
+ Roller davranış ve uzmanlık talimatlarıdır; panelden oluşturulup agent'a atanır. Motor protokolü ve
290
+ durum yönetimi Markdown'a bağlı değildir, bu yüzden rol metni değişse bile delegasyon şeması korunur.
291
+ İyi bir uzman rolü şunları belirtir: sorumluluk alanı ve sınırlar, kullanılabilecek araçlar, kod/test
292
+ standartları, beklenen teslimat biçimi ve hangi durumda `BLOCKED` bildirileceği.
293
+
294
+ ## 🧠 Beceriler (Skills)
295
+
296
+ Roller bir agentın **kim** olduğunu (uygulayıcı/denetçi/planlayıcı) tanımlar; **beceriler** ise bir
297
+ işin **nasıl** yapılacağını anlatan yeniden kullanılabilir prosedür rehberleridir — `skills/*.md`
298
+ altında frontmatter'lı Markdown dosyaları. Dağıtım; yazılım, test, güvenlik, dokümantasyon, SEO ve
299
+ arayüz tasarımını kapsayan **60 yerel beceri** içerir. Hiçbiri API anahtarı veya harici ücretli servis
300
+ gerektirmez.
301
+
302
+ Beceriler **kullanıcı-kapılıdır**: yalnızca **Ayarlar → Beceriler** bölümünde etkinleştirdikleriniz
303
+ taranır. Motor, tüm etkin kataloğu her çağrıda prompta yığmak yerine görev metni ve delegasyon türüne
304
+ göre puanlayıp sabit bütçeli bir kısa listeyi operatöre verir. Operatör uygun adları `skills` alanıyla
305
+ iliştirir; alanı atlarsa `autoMatch` aynı seçimi yerel olarak yapabilir. Uzman yalnızca kısa açıklama ve
306
+ mutlak rehber yolunu görür, tam Markdown gövdesini gerçekten gerekiyorsa dosyadan okur. Hiçbir beceri
307
+ etkin değilse davranış eskisi gibi kalır.
308
+
309
+ ```json
310
+ "skills": {
311
+ "enabled": ["design-review", "write-tests", "seo-technical-audit"],
312
+ "autoMatch": true,
313
+ "catalogLimit": 12,
314
+ "maxSkillsPerAssignment": 3,
315
+ "charBudget": 2400,
316
+ "referenceCharBudget": 1200
317
+ }
318
+ ```
319
+
320
+ `charBudget` operatör kısa listesini, `referenceCharBudget` uzman promptundaki ad/açıklama/yol
321
+ referanslarını sınırlar. Yeni beceri aynı bölümden (veya `skills/` klasörüne `.md` ekleyerek)
322
+ oluşturulabilir. Frontmatter alanları: `name`, `description`, `category`, `appliesTo`
323
+ (implement/review/plan/research) ve eşleştirme için `match`.
324
+
325
+ ## 💬 Tamamlanan görevle sohbet
326
+
327
+ Tamamlanan görev kartındaki **Operatöre Sor** düğmesi, aynı operatörle salt‑okunur takip sohbeti açar.
328
+ Operatör; ana hedefi, takım raporlarını, dosya değişikliklerini, nihai teslimatı ve önceki soru‑cevapları
329
+ bağlam olarak görür (yeni dosya değişikliği veya delegasyon yapmaz). Teslimat kartı operatör metninden
330
+ bağımsız üretilir: kısa özet, eklenen/değiştirilen/silinen dosyalar, çalışma klasörü, kullanılan
331
+ agent'lar, tur sayısı ve doğrulama kontrolü.
332
+
333
+ ## 🔒 Onay ve güvenlik
334
+
335
+ İlk açılışta uygulama, CLI'ların non-interactive/otonom modda çalıştırılacağını açıklayan tek
336
+ seferlik bir onay gösterir. Kabul edilmeden motor başlatılamaz veya görev yürütülemez. Kabul zamanı
337
+ `config.json` içindeki `autonomousConsentAcceptedAt` alanında tutulur; yapılandırma silinmediği
338
+ sürece tekrar sorulmaz.
339
+
340
+ Bu onaydan sonra adapter varsayılanları CLI içinde bekleyen etkileşimli izin sorularını azaltır:
341
+ Gemini `--approval-mode yolo`, Claude `--permission-mode acceptEdits`, OpenCode ise process ortamında
342
+ `{"permission":{"*":"allow"}}` kullanır. Codex non-interactive `exec` modunda çalışır. Kullanıcı
343
+ 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
344
+ olduğunu unutmamalıdır.
345
+
346
+ Orkestratörün görev-planı güvenlik kapısı ayrıca çalışır: `ask` modunda riskli kalıp içeren plan
347
+ onaya alınır; onay planın **SHA‑256** özetiyle ilişkilidir ve aynı delegasyonlardan devam eder.
348
+ `auto` modu bu plan onayını bekletmez.
349
+
350
+ **Otomatik sürümleme (checkpoint) ve geri dönüş.** `versioning` açıkken (varsayılan) CrewCtl, her görev
351
+ _çalışmadan önce_ çalışma klasörünün bir sürümünü alır. Klasör bir Git deposuysa yedeklenecek dosyalar
352
+ `git ls-files` ile (yani `.gitignore`'a uyularak) belirlenir, değilse güvenli bir tarama kullanılır — her
353
+ iki durumda da depolama birebir dosya kopyasıdır. Tamamlanan/başarısız görev kartındaki **Bu sürüme dön**
354
+ (veya Canlı Kod sayfasındaki **Önceki sürüme dön**) eylemi, görev sonrası oluşan dosyaları siler ve
355
+ değiştirilen/silinen dosyaları eski haline getirir. Geri yükleme öncesinde mevcut durum için bir **redo**
356
+ checkpoint'i oluşturulur; böylece geri alma da geri alınabilir. Sürümler `state/checkpoints/` altında
357
+ tutulur (`versioningRetention`, varsayılan 20 sürüm/klasör) ve yalnızca motor **boşta** iken geri yüklenir.
358
+ Bu, Git yerine geçmez; kritik iş için normal sürüm kontrolünüzü sürdürün.
359
+
360
+ > ⚠️ Otonom çalışma onayı bir sandbox değildir. Agent'lar çalışma klasöründeki dosyaları değiştirebilir,
361
+ > komut çalıştırabilir ve CLI'ın verdiği yetki ölçüsünde daha geniş sisteme erişebilir. İzole çalışma
362
+ > klasörü/repo kullanın, önemli dosyaları sürüm kontrolünde tutun ve **web panelini güvenilmeyen bir
363
+ > ağa açmayın** — ayar API'si CLI komutlarını değiştirebilir.
364
+
365
+ ## 🗄️ Depolama
366
+
367
+ Saf dosya tabanlı, sıfır bağımlılık (SQLite/DB gerektirmez, her yerde taşınabilir). Yazımlar
368
+ atomiktir (temp + rename); runtime verisi `.gitignore`'dadır.
369
+
370
+ ```text
371
+ queue/pending bekleyen görevler
372
+ queue/approval insan onayı bekleyen planlar
373
+ queue/done tamamlanan görevler ve takım durumu
374
+ queue/failed başarısız görevler
375
+ state/events stdout, stderr, process ve mesaj olayları (JSONL)
376
+ state/checkpoints görev‑öncesi otomatik sürümler (tek‑tık geri dönüş için)
377
+ memory/log.md görevler arası kısa proje hafızası
378
+ roles operatör ve uzman Markdown rolleri
379
+ config.json makineye özel yapılandırma (gitignore)
380
+ config.default.json paylaşılabilir şablon
381
+ ```
382
+
383
+ ## 🧪 Test
384
+
385
+ ```bash
386
+ npm test
387
+ ```
388
+
389
+ Gerçek sağlayıcı çağrısı yapmadan, sahte operatör ve uzman CLI process'leriyle
390
+ planlama → delegasyon → mesaj → dosya değişikliği → operatör tamamlama akışını uçtan uca doğrular.
391
+ Testler ayrıca OpenCode JSON olay ayrıştırmasını, doğru izin yapılandırmasını, model önceliğini,
392
+ hazır olmayan OpenCode'un devre dışı kalmasını, sessizlik watchdog'unu ve operatör fallback'ini kapsar.
393
+ Sahte OpenCode process'i gerçeği taklit ederek stdin'i EOF'a kadar okur; böylece stdin'i kapatmayan
394
+ bir regresyon (CLI'ın hiç çalışmadan asılı kalması) testlerden sessizce geçemez.
395
+
396
+ ## ❓ SSS (FAQ)
397
+
398
+ **Ayrı bir API anahtarı gerekiyor mu?**
399
+ Hayır. Kurulu CLI'ların kendi kimlik doğrulamasını kullanır. Yeni bir anahtar veya abonelik gerekmez.
400
+
401
+ **Hangi CLI araçlarını destekliyor?**
402
+ OpenAI Codex CLI, Anthropic Claude Code, Google Gemini CLI ve OpenCode. Prompt'u stdin/argüman/dosya
403
+ ile alan başka CLI'lar da elle eklenebilir.
404
+
405
+ **Windows, macOS ve Linux'ta çalışır mı?**
406
+ Evet. Node.js 18+ olan her yerde çalışır; CLI keşfi üç platformdaki yaygın kurulum dizinlerini tarar.
407
+
408
+ **OpenCode kurulu ama neden “model seçilmeli” görünüyor?**
409
+ `opencode models opencode` kullanılabilir bir model döndürmemiştir. Önce `opencode auth login` ile
410
+ sağlayıcı girişini tamamlayın, ardından panelde **Ayarlar → Agent'lar → Yeniden Tara**'ya basın.
411
+ İsterseniz agent veya operatör için erişilebilir modeli elle de seçebilirsiniz. Hazır olmayan
412
+ OpenCode'a otomatik görev verilmez.
413
+
414
+ **Bir CLI çalışıyor mu, takıldı mı nasıl anlarım?**
415
+ Canlı karttaki süre ve 15 saniyelik ilerleme olayları çalışmayı görünür kılar. Çıktısız bekleme
416
+ sessizlik sınırını aşarsa process otomatik durdurulur, açık hata gösterilir ve mümkünse başka
417
+ agent'a geçilir. Uzun ama düzenli çıktı üreten işler normal zaman aşımı sınırına kadar sürebilir.
418
+
419
+ **Bağımlılık kuruyor mu / node_modules şişer mi?**
420
+ Hayır, sıfır bağımlılık. `npm install` yalnızca projeyi hazırlar.
421
+
422
+ **Verilerim buluta gidiyor mu?**
423
+ Orkestrasyon tamamen yereldir. Yalnızca CLI'lar kendi sağlayıcılarıyla (ör. OpenAI/Anthropic/Google) konuşur.
424
+
425
+ **Aynı görevde birden çok modeli birlikte kullanabilir miyim?**
426
+ Evet. Örn. Codex ile uygula, Claude ile incele, Gemini ile araştır — operatör işi uygun uzmana dağıtır.
427
+
428
+ **SQLite veya bir veritabanı kurmam gerekir mi?**
429
+ Hayır. Depolama düz JSON/JSONL dosyalarıdır; her makinede taşınabilir ve atomik yazılır.
430
+
431
+ ## 🚧 Bilinen sınırlar
432
+
433
+ - Delegasyonlar şimdilik aynı çalışma klasöründe güvenli biçimde **sırayla** yürütülür.
434
+ - CLI'a özgü tool‑call telemetrisi yoksa yalnızca stdout/stderr görülebilir.
435
+ - Proje hafızası metin tabanlıdır; semantik retrieval henüz yoktur.
436
+ - 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ğ,
437
+ kota veya sağlayıcı hatası ilk çağrıda gösterilir ve fallback akışına alınır.
438
+ - Web paneli kimlik doğrulaması ve uzak sunucu modu henüz eklenmemiştir.
439
+
440
+ ---
441
+
442
+ ## Anahtar kelimeler / Keywords
443
+
444
+ AI agent orchestrator · multi-agent orchestration · CLI agent orchestrator · operator-led agent team ·
445
+ OpenAI **Codex CLI** · **Claude Code** (Anthropic) · Google **Gemini CLI** · **OpenCode** ·
446
+ autonomous coding agents · local / self-hosted AI dev tool · zero-dependency Node.js · web command center ·
447
+ agent delegation · task orchestration · yapay zeka geliştirici takımı · çok-agent orkestratör ·
448
+ yerel yapay zeka geliştirme aracı · komut satırı ajan yönetimi.
449
+
450
+ ## Lisans
451
+
452
+ [MIT](LICENSE) © CrewCtl katkıda bulunanları.