beast-agent 1.7.0 → 1.8.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.
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: verification-before-completion
3
+ description: İşin bitti/düştü/geçti diye bildirmeden ÖNCE kullan — herhangi bir tamamlama iddiasından hemen önce; komutu çalıştırıp çıktısıyla kanıtlamadan başarı beyanı yasak.
4
+ ---
5
+
6
+ # Tamamlamadan Önce Doğrulama
7
+
8
+ ## Çekirdek ilke
9
+
10
+ **Kanıt önce gelir, iddia sonra. Her zaman.**
11
+
12
+ **Kuralın harfini ihlal etmek, kuralın ruhunu ihlal etmektir.**
13
+
14
+ ## Demir Kanun
15
+
16
+ ```
17
+ TAZE DOĞRULAMA KANITI OLMADAN TAMAMLAMA İDDİASI YOK
18
+ ```
19
+
20
+ Bu tur içinde doğrulama komutunu çalıştırmadıysan, geçtiğini söyleyemezsin.
21
+
22
+ ## Kapı Fonksiyonu
23
+
24
+ Herhangi bir durum beyan etmeden / memnuniyet göstermeden ÖNCE:
25
+
26
+ 1. **BELİRLE:** Bu iddiayı kanıtlayan komut nedir?
27
+ 2. **ÇALIŞTIR:** Komutu TAM ve TAZE çalıştır (run_command) — önceki turun çıktısı geçersiz
28
+ 3. **OKU:** Çıktının tamamını oku, exit code'a bak, hata sayısını say
29
+ 4. **DOĞRULA:** Çıktı iddiayı destekliyor mu?
30
+ - Hayır → gerçek durumu kanıtıyla bildir
31
+ - Evet → iddiayı KANITLA birlikte bildir
32
+ 5. **ANCAK O ZAMAN:** iddiada bulun
33
+
34
+ Bir adımı atlarsan doğrulamış değilsin, yalan söylüyorsundur.
35
+
36
+ ## Yaygın İddia → Gerekli Kanıt
37
+
38
+ | İddia | Gerekli kanıt | Yetmez |
39
+ |---|---|---|
40
+ | Testler geçti | Test çıktısı: 0 failure | Önceki tur, "geçer herhalde" |
41
+ | Linter temiz | Linter çıktısı: 0 hata | Kısmi kontrol, çıkarım |
42
+ | Build başarılı | run_command: exit 0 | Linter geçti, loglar iyi görünüyor |
43
+ | Bug düzeltildi | Orijinal belirtinin testi: geçti | Kod değişti, düzeldi varsayımı |
44
+ | Ajan işi bitirdi | diff / tasks_list raporu eşleşiyor | Ajan "başarılı" dedi |
45
+ | Gereksinimler karşılandı | Madde madde kontrol listesi | Testler geçti |
46
+
47
+ ## Kırmızı Bayraklar — DUR
48
+
49
+ - "Zaten çalıştırdım" (bu turda DEĞİLSE sayılmaz)
50
+ - "Geçmesi lazım", "kesin çalışır"
51
+ - Kodu değiştirip testi TEKRAR çalıştırmadan "düzeldi" demek
52
+ - Kısmi çıktıyla ("testlerin çoğu geçti") tamamlama iddiası
53
+ - Ajanın kendi "başarılı" raporunu doğrulamadan kullanıcıya aktarmak
54
+ - Çıktıyı okumadan exit code'a güvenmek
55
+
56
+ **Hepsi aynı anlama gelir: komutu çalıştır, çıktıyı oku, öyle bildir.**
57
+
58
+ ## Paralel Ajan Notu
59
+
60
+ run_background ile devrettiğin işin raporu geldiğinde bu skill ÇİFT GEÇERLİ:
61
+ ajanın raporu bir iddiadır, kanıt değil. İddia görevle eşleşiyor mu?
62
+ Dosyalar gerçekten oluşmuş mu (list_dir/glob), komut gerçekten geçmiş mi
63
+ (task_status çıktısı)? Doğrulamadan kullanıcıya "bitti" deme.
@@ -0,0 +1,162 @@
1
+ ---
2
+ name: writing-plans
3
+ description: Çok adımlı bir iş için spec/gereksinim hazır olduğunda, KODA DOKUNMADAN ÖNCE kullan — implementasyon planı yazılacak her durumda.
4
+ ---
5
+
6
+ # Plan Yazma
7
+
8
+ ## Genel Bakış
9
+
10
+ Sıfır bağlama sahip, zevki şüpheli bir mühendisin takip edebileceği kapsamlı
11
+ implementasyon planı yaz. Her görevin hangi dosyalara dokunacağını, kodu,
12
+ testi, nasıl test edileceğini belgele. Planı ısırık büyüklüğünde adımlara böl.
13
+ DRY. YAGNI. TDD. Sık commit.
14
+
15
+ Yetenekli ama arac setini ve problem alanını neredeyse hiç bilmeyen biri
16
+ olduğunu varsay. Plan o kişinin eline tek başına geçmeli.
17
+
18
+ **Planları buraya kaydet:** `<workspace>/docs/plans/YYYY-MM-DD-<özellik-adı>.md`
19
+ (write_file ile; klasör yoksa oluşur)
20
+
21
+ ## Kapsam Kontrolü
22
+
23
+ Spec birden fazla bağımsız alt sistemi kapsıyorsa ayrı planlara böl — her biri
24
+ tek başına çalışan, test edilebilir yazılım üretmeli.
25
+
26
+ ## Dosya Yapısı
27
+
28
+ Görevleri tanımlamadan önce hangi dosyaların oluşacağı/değişeceğinin ve
29
+ her birinin sorumluluğunun haritasını çıkar. Kararlar burada kilitlenir:
30
+
31
+ - Net sınırlı, tek sorumlu dosyalar; birlikte değişenler yan yana
32
+ - Küçük odaklı dosyalar tercih et — bağlamında tutabildiğin ve edit'inin
33
+ güvenilir olduğu yapı budur
34
+ - Mevcut kod tabanında yerleşik deseni takip et; tek taraflı yeniden yapılandırma
35
+
36
+ ## Görev Ölçüsü
37
+
38
+ Görev = kendi test döngüsünü taşıyan, bağımsız doğrulanabilir en küçük birim.
39
+ Kurulum/scaffolding adımlarını, çıktısı onlara ihtiyaç duyan görevin içine kat.
40
+ İki görevi ayır: birinci reddedilirken ikincisi onaylanabilir mi?
41
+
42
+ ## Isırık Büyüklüğünde Adımlar
43
+
44
+ Her adım TEK eylem (2-5 dakika):
45
+
46
+ - "Başarısız testi yaz" — adım
47
+ - "Çalıştır, fail olduğunu gör" — adım
48
+ - "Testi geçecek minimal kodu yaz" — adım
49
+ - "Testleri çalıştır, geçtiğini gör" — adım
50
+ - "Commit" — adım
51
+
52
+ ## Plan Dosyası Başlığı
53
+
54
+ **Her plan bu başlıkla başlamalı:**
55
+
56
+ ```markdown
57
+ # [Özellik Adı] Implementasyon Planı
58
+
59
+ > **Ajan işçiler için:** GÖREV BAŞINA taze alt-ajan: subagent-driven-development
60
+ > (önerilen, CEO modunda) veya executing-plans kullan. Adımlar checkbox (- [ ])
61
+ > sözdizimiyle takip edilir.
62
+
63
+ **Hedef:** [Bu planın ürettiği şey — tek cümle]
64
+
65
+ **Mimari:** [Yaklaşım — 2-3 cümle]
66
+
67
+ **Teknoloji:** [Önemli teknoloji/kütüphaneler]
68
+
69
+ **Spec:** [Varsa spec/design dosyasının yolu — plan spec'ten hareket eder]
70
+
71
+ ## Global Kısıtlar
72
+
73
+ [Proje geneli şartlar — sürüm sınırları, bağımlılık sınırları, isim kuralları,
74
+ platform şartları — spec'ten BİREBİR kopyalanmış değerlerle, her biri tek satır.
75
+ Her görev bu bölümü örtük olarak içerir.]
76
+
77
+ ---
78
+ ```
79
+
80
+ ## Görev Yapısı
81
+
82
+ ````markdown
83
+ ### Görev N: [Bileşen Adı]
84
+
85
+ **Dosyalar:**
86
+ - Oluştur: `tam/yol/dosya.js`
87
+ - Değiştir: `tam/yol/mevcut.js:123-145`
88
+ - Test: `tests/tam/yol/dosya.test.js`
89
+
90
+ **Arayüzler:**
91
+ - Tüketir: [önceki görevlerden kullandığı — tam imzalar]
92
+ - Üretir: [sonraki görevlerin dayandığı — tam fonksiyon adları, parametre ve
93
+ dönüş tipleri. Bir görevin implementeri SADECE kendi görevini görür;
94
+ komşu görevlerin adlarını/tiplerini buradan öğrenir.]
95
+
96
+ - [ ] **Adım 1: Başarısız testi yaz**
97
+
98
+ ```js
99
+ test('boş e-postayı reddeder', () => {
100
+ expect(submitForm({ email: '' }).error).toBe('Email gerekli');
101
+ });
102
+ ```
103
+
104
+ - [ ] **Adım 2: Fail olduğunu doğrula**
105
+
106
+ Çalıştır: `node --test tests/dosya.test.js`
107
+ Beklenen: FAIL — "submitForm is not defined"
108
+
109
+ - [ ] **Adım 3: Minimal implementasyon**
110
+
111
+ ```js
112
+ function submitForm(data) {
113
+ if (!data.email?.trim()) return { error: 'Email gerekli' };
114
+ }
115
+ ```
116
+
117
+ - [ ] **Adım 4: Geçtiğini doğrula**
118
+
119
+ Çalıştır: `node --test tests/dosya.test.js`
120
+ Beklenen: PASS
121
+
122
+ - [ ] **Adım 5: Commit**
123
+
124
+ ```bash
125
+ git add tests/dosya.test.js src/dosya.js
126
+ git commit -m "feat: boş e-postayı reddet"
127
+ ```
128
+ ````
129
+
130
+ ## Placeholder YASAK
131
+
132
+ Her adım mühendisin ihtiyacı olan GERÇEK içeriği taşır. Bunlar **plan
133
+ hatasıdır** — asla yazma:
134
+
135
+ - "TBD", "TODO", "sonra doldur", "detayları tamamla"
136
+ - "Uygun hata yönetimi ekle" / "kenar durumları handle et"
137
+ - "Yukarıdakine test yaz" (test kodu olmadan)
138
+ - "Görev N'ye benzer" (kodun kendisini yaz — mühendis görevleri sırasız okuyabilir)
139
+ - Ne yapılacağını söyleyip nasılını göstermeyen adımlar (kod adımı = kod bloğu)
140
+ - Hiçbir görevde tanımlanmamış tip/fonksiyon referansı
141
+
142
+ ## Öz-Denetim
143
+
144
+ Planı bitirince spec'i taze gözle kontrol et (kendi checklist'in):
145
+
146
+ 1. **Spec kapsamı:** Spec'in her bölümü için hangi görev implemente ediyor?
147
+ Boşlukları listele, görev ekle.
148
+ 2. **Placeholder taraması:** Yukarıdaki kırmızı desenleri kendi planında ara, düzelt.
149
+ 3. **Tip tutarlılığı:** Görev 3'te `clearLayers()` diye çağırdığın şey Görev 7'de
150
+ `clearFullLayers()` olmasın. İmzalar birebir eşleşmeli.
151
+
152
+ Sorun bulursan yerinde düzelt, tekrar tekrar dolaşma.
153
+
154
+ ## Teslim
155
+
156
+ Plan kaydedildikten sonra yürütme seçeneği sun:
157
+
158
+ **"Plan `<yol>`'e kaydedildi. İki seçenek:**
159
+ **1. Alt-Ajan Destekli (önerilen)** — her görev için taze paralel ajan
160
+ (run_background), görevler arası inceleme; CEO modunda birebir
161
+ **2. Satır İçi** — bu oturumda executing-plans ile, checkpoint'li seri yürütme
162
+ **Hangisi?"**
@@ -0,0 +1,229 @@
1
+ ---
2
+ name: writing-skills
3
+ description: Yeni skill oluştururken, mevcut skill düzenlerken veya deploy öncesi doğrularken kullan — %APPDATA%\beast\skills altına SKILL.md yazılacak/herhangi bir edit olacaksa.
4
+ ---
5
+
6
+ # Skill Yazma
7
+
8
+ ## Genel Bakış
9
+
10
+ **Skill yazmak, süreç dokümantasyonuna uygulanan TDD'dir.**
11
+
12
+ Test senaryoları yaz (paralel ajanla baskı senaryosu), fail izle (baseline
13
+ davranış), skill'i yaz (doküman), geçiş izle (ajan artık uyuyor), refactor
14
+ (loophole kapat).
15
+
16
+ **Çekirdek ilke:** Skill'siz ajanın fail ettiğini izlemediysen, skill'in
17
+ doğru şeyi öğrettiğini bilmezsin.
18
+
19
+ **ZORUNLU TEMEL:** test-driven-development skill'ini anlıyor olmalısın —
20
+ o RED-GREEN-REFACTOR'ü tanımlar, bu skill onu dokümana uyarlar.
21
+
22
+ ## Skill Nedir?
23
+
24
+ **Skill:** Kanıtlanmış teknik, desen veya araç için referans rehber.
25
+ **Skill'dir:** Yeniden kullanılabilir teknik/pattern/araç/rehber.
26
+ **Skill değildir:** Bir problemi bir kez nasıl çözdüğüne dair hikâye.
27
+
28
+ ## Ne Zaman Skill Yaratılır
29
+
30
+ **Yarat:**
31
+ - Teknik sana sezgisel gelmediyse
32
+ - Projeler arası tekrar referans edeceksen
33
+ - Desen genelse (proje-özel değilse)
34
+
35
+ **Yaratma:**
36
+ - Tek seferlik çözümler için
37
+ - Başka yerde iyi dokümante edilmiş standart pratikler için
38
+ - Proje-özel konvansiyonlar (onlar AGENTS.md'ye/proje talimatına)
39
+ - Regex/validasyonla zorlanabilir mekanik kısıtlar (otomatikleştir —
40
+ dokümanı yargı gerektiren kararlara sakla)
41
+
42
+ ## Beast'te Skill Yapısı
43
+
44
+ Yer: `%APPDATA%\beast\skills\<slug>\SKILL.md` (write_file ile yaz; slug
45
+ küçük-harf-tire). Isim+açıklama HER SOHBETE system prompta girer — gövde
46
+ sadece ilgiliyken read_file ile okunur.
47
+
48
+ ```markdown
49
+ ---
50
+ name: skill-adi
51
+ description: [TETİKLEYİCİ — ne zaman okunmalı; aşağıya bak]
52
+ version: 1.0.0
53
+ ---
54
+
55
+ # Skill Adı
56
+
57
+ ## Genel Bakış
58
+ Bu ne? Çekirdek ilke 1-2 cümle.
59
+
60
+ ## Ne Zaman
61
+ Belirtiler ve kullanım durumları; ne zaman KULLANILMAZ
62
+
63
+ ## Çekirdek Desen
64
+ Önce/sonra karşılaştırması veya adımlar
65
+
66
+ ## Hızlı Referans
67
+ Sık işlemler için tablo
68
+
69
+ ## Yaygın Hatalar
70
+ Ne yanlış gider + fix
71
+ ```
72
+
73
+ **Frontmatter kuralları:**
74
+ - `name`: harf, rakam, tire (özel karakter yok)
75
+ - `description`: üçüncü şahıs, SADECE ne zaman kullanılacağını anlatır
76
+
77
+ ## Skill Keşif Optimizasyonu (SDO)
78
+
79
+ **description = NE ZAMAN, ne YAPDIĞI değil.**
80
+
81
+ Test şunu gösterdi: description workflow'u özetlerse ajan TÜM skill'i
82
+ okumadan description'daki kısayolu uygular. Gövde, ajanın atladığı
83
+ dokümana döner.
84
+
85
+ ```yaml
86
+ # ❌ KÖTÜ: workflow özetler — ajan gövdeyi okumadan bunu takip eder
87
+ description: Plan yürütürken kullan — görev başına alt-ajan devreder, aralarında inceleme yapar
88
+
89
+ # ✅ İYİ: sadece tetikleyici koşullar
90
+ description: Bağımsız görevlere bölünmüş implementasyon planı yürütülürken kullan
91
+ ```
92
+
93
+ - Somut tetikleyiciler, belirtiler ve durumlar yaz
94
+ - Sorunu tarif et (race condition, tutarsız davranış), dile özgü belirtiyi değil
95
+ - Arama kelimeleri kullan: hata mesajları, belirtiler ("flaky", "takılıyor"),
96
+ araç adları
97
+ - Üçüncü şahıs yaz (system prompta enjekte edilir)
98
+
99
+ ## Demir Kanun (TDD ile aynı)
100
+
101
+ ```
102
+ FAILING TEST OLMADAN SKILL YOK
103
+ ```
104
+
105
+ Bu YENİ skill'ler VE mevcut skill EDİTLERİ için geçerli. Test etmeden
106
+ skill yazdıysan: sil, baştan başla. "Basit ekleme" istisnası yok.
107
+
108
+ ## RED-GREEN-REFACTOR (skill için)
109
+
110
+ ### RED: Başarısız Test (Baseline)
111
+
112
+ Skill'siz ajanla baskı senaryosu çalıştır (run_background ile taze ajan —
113
+ sistem promptu skill'in yaşayacağı gerçek bağlam, kullanıcı mesajı hataya
114
+ çekecek görev olsun). Birebir belgele:
115
+ - Hangi seçimleri yaptı?
116
+ - Hangi bahaneleri kullandı (verbatim)?
117
+ - Hangi baskılar ihlale yol açtı?
118
+
119
+ ### GREEN: Minimal Skill Yaz
120
+
121
+ Baseline'da belgelenen SPESİFİK bahaneleri karşılayan skill yaz. Hayali
122
+ durumlar için ekstra içerik EKLEME. Aynı senaryoyu skill ile tekrar koştur —
123
+ ajan artık uymalı.
124
+
125
+ ### REFACTOR: Loophole Kapat
126
+
127
+ Ajan YENİ bahane buldu? Açık karşı-argüman ekle. Bulletproof olana kadar
128
+ tekrar test et.
129
+
130
+ **Mikro-test:** tam senaryo pahalıysa önce kelimelik test — tek taze örnek +
131
+ rehberli vs kontrolsüz (rehbersiz) karşılaştırma, 5+ tekrar, her eşleşmeyi
132
+ elle oku. Kontrol grupta hata YOKSA yazılacak rehber de yok — dur.
133
+
134
+ ## Uyum Sağlamayı Ezberle (Disiplin Skill'leri)
135
+
136
+ Kural bilen ajan baskı altında atlarsa:
137
+
138
+ **Her loophole'u açıkça kapat** — kuralı söylemek yetmez, workaround'ları
139
+ tek tek yasakla:
140
+
141
+ ```markdown
142
+ Testten önce kod yazdıysan: SİL. Baştan başla.
143
+
144
+ **İstisna yok:**
145
+ - "Referans olarak" tutma
146
+ - Testleri yazarken uyarlama
147
+ - Silmek silmektir
148
+ ```
149
+
150
+ **"Ruh vs harf" argümanını baştan kes:**
151
+
152
+ ```markdown
153
+ **Kuralın harfini ihlal etmek, kuralın ruhunu ihlal etmektir.**
154
+ ```
155
+
156
+ **Bahane tablosu kur** — baseline testten çıkan HER bahane:
157
+
158
+ ```markdown
159
+ | Bahane | Gerçek |
160
+ |---|---|
161
+ | "Test etmek için çok basit" | Basit kod da kırılır. Test 30 saniye. |
162
+ ```
163
+
164
+ **Kırmızı bayrak listesi** — ajanın kendini kontrolü kolay olsun:
165
+
166
+ ```markdown
167
+ ## Kırmızı Bayraklar — DUR
168
+ - "Sadece bu sefer" bahanesi
169
+ - "Elle test ettim zaten"
170
+
171
+ **Hepsi: kodu sil, TDD ile baştan başla.**
172
+ ```
173
+
174
+ ## Kalıbı Hatanın Türüne Eşle
175
+
176
+ | Baseline hatası | Doğru kalıp | Yanlış kalıp |
177
+ |---|---|---|
178
+ | Baskı altında kuralı atlıyor | Yasak + bahane tablosu + kırmızı bayraklar | Yumuşak yönlendirme ("tercih et", "düşün") |
179
+ | Uyuyor ama çıktı yanlış biçimde | Pozitif reçete: çıktı NE — parçaları ve sırasıyla | Yasak listesi |
180
+ | Zaten ürettiği şeyden eleman eksitiyor | Şablon REQUIRED alanı | Şablon yanına prose hatırlatma |
181
+ | Davranış koşula bağlı olmalı | Gözlenebilir koşullu ("brief varsa ona atıf yap") | Koşulsuz kural + istisna cümleleri |
182
+
183
+ Yasaklar, şekillendirme sorunlarında TERS TEPER — "X yapma" pazarlığa
184
+ açık kalır; reçete pazarlık bırakmaz: çıktı ya söylenen kalıptadır ya değil.
185
+
186
+ **Seçtiğin kalıp için:** nüans cümlesi YOK ("X yapma, önemliyse hariç"
187
+ pazarlığı yeniden açar).
188
+
189
+ ## Token Verimliliği (Kritik)
190
+
191
+ Skill gövdesi okunduğunda bağlama girer:
192
+
193
+ - Sık yüklenen skill'ler: <200 kelime hedef
194
+ - Diğerleri: <500 kelime (yine de öz ol)
195
+ - Detayları araç yardımına bırak; cross-referans kullan ("ZORUNLU:
196
+ test-driven-development skill'ini kullan" — içerik tekrarı yok)
197
+ - Tek mükemmel örnek, çok vasat örnekten iyi
198
+ - Yeniden kullanılabilir ağır referans (100+ satır) ayrı dosyaya
199
+ (`SKILL.md` yanına `referans.md`), inline ilkeler/prensipler kalır
200
+
201
+ ## Anti-Desenler
202
+
203
+ - ❌ **Hikâye anlatımı:** "2025-10-03 oturumunda empty projectDir yüzünden..."
204
+ — çok spesifik, yeniden kullanılamaz
205
+ - ❌ **Çok-dil sulandırma:** example-js.js + example-py.py + example-go.go
206
+ - ❌ **Anlamsız etiketler:** helper1, step3, pattern4
207
+
208
+ ## Test Türüne Göre
209
+
210
+ | Skill türü | Test yöntemi | Başarı kriteri |
211
+ |---|---|---|
212
+ | Disiplin (kural dayatır: TDD, verification) | Baskı senaryosu: zaman+sunk cost+baskı birleşik; bahaneleri yakala | Maksimum baskıda kurala uyar |
213
+ | Teknik (nasıl-yapılır) | Uygulama + varyasyon + eksik bilgi senaryoları | Tekniği yeni senaryoya doğru uygular |
214
+ | Desen (zihinsel model) | Tanıma + uygulama + karşı-örnek | Ne zaman uygulanacağını doğru bulur |
215
+ | Referans (API/komut dokümanı) | Erişim + uygulama + boşluk testi | Doğru bilgiyi bulur ve uygular |
216
+
217
+ ## Deploy Etmeden ÖNCE
218
+
219
+ Her skill için (toplu üretimde her biri AYRI test edilmeden sonrakine geçme):
220
+
221
+ - [ ] Baseline (skill'siz) davranış birebir belgelendi
222
+ - [ ] description "ne zaman" tarzında, workflow özetlemiyor
223
+ - [ ] name kurallara uygun, dosya `%APPDATA%\beast\skills\<slug>\SKILL.md`
224
+ - [ ] Skill ile senaryo artık geçiyor
225
+ - [ ] Yeni bahaneler bulunduysa karşıları eklendi, tekrar test edildi
226
+ - [ ] Bahane tablosu + kırmızı bayraklar var (disiplin skill'i ise)
227
+ - [ ] `/skills` listesinde görünüyor, okunabilirlik kontrol edildi
228
+
229
+ Deploy edilmemiş skill = deploy edilmemiş kod. Test et, sonra konuşlandır.
@@ -102,7 +102,7 @@ Get-Content "$env:APPDATA\\beast\\sessions\\bg-jobs.json" | ConvertFrom-Json | %
102
102
  | Yol | Ne İşe Yarar |
103
103
  |---|---|
104
104
  | \`config.yaml\` + \`.env\` | Model sağlayıcıları + API anahtarları (\`providers.<id>.base_url/key_env/models\`, aktif: \`model.provider/default\`) |
105
- | \`settings.json\` | App ayarları: theme, workspace, modelOverride, customProviders, roleModels, deletedModels, fallout, waTts, email, waAllow, **searchChain (web arama sırası)**, **obscuraEnabled**, activeBotId |
105
+ | \`settings.json\` | App ayarları: theme, workspace, modelOverride, customProviders, roleModels, deletedModels, fallout, waTts, email, waAllow, **searchChain (web arama sırası)**, activeBotId |
106
106
  | \`sessions\\*.jsonl\` | Sohbet oturumları (satır JSON: t:meta kod, t:meta2 paralel-ajan işareti, t:msg mesaj, t:todo, t:notes) |
107
107
  | \`sessions\\bg-jobs.json\` | Paralel ajan iş kayıtları: id, title, status(queued/running/done/error/aborted), error=İPTAL SEBEBİ, groupId |
108
108
  | \`memories\\\` | SOUL.md (kişilik), MEMORY.md (uzun hafıza), USER.md (kullanıcı) |
@@ -112,7 +112,7 @@ Get-Content "$env:APPDATA\\beast\\sessions\\bg-jobs.json" | ConvertFrom-Json | %
112
112
  | \`whitelist.json\`, \`wa-auth\\\`, \`wa-chats.json\`, \`wa.log\` | WhatsApp izin listesi, Baileys auth (SİLME), sohbet eşlemesi, log |
113
113
  | \`cron.json\`, \`watchers.json\`, \`bus.json\` | Zamanlanmış görevler, web/batarya izleyicileri, olay abonelikleri |
114
114
  | \`scripts\\\` | Python scriptleri (websearch.py, news.py) |
115
- | \`obscura\\obscura.exe\` | Obscura stealth tarayıcı (web arama zincirinin 2. motoru; açılışta otomatik kurulur) |
115
+ | \`searxng\\settings.yml\` | SearXNG yerel arama motoru ayarları (127.0.0.1:8888 \`beast searxng\` ile kurulur/başlatılır) |
116
116
  | \`py\\python.exe\` | Gömülü Python runtime (makinede Python olmasa bile python_run çalışır) |
117
117
  | \`usage.json\`, \`logs\\\` | Kullanım sayaçları, çalışma logları |
118
118
  | Masaüstü\\Beast-Backups | Şifreli yedekler (.beastbak) — /backup ile alınır |
@@ -121,14 +121,14 @@ Get-Content "$env:APPDATA\\beast\\sessions\\bg-jobs.json" | ConvertFrom-Json | %
121
121
 
122
122
  | Dosya | Sorumluluk |
123
123
  |---|---|
124
- | \`main.js\` | Electron ana süreç: tüm IPC, WhatsApp/Telegram/Discord entegrasyonları, onay kapısı (/approve), /stop /restart, splash, gizli araştırma tarayıcısı, obscura kurulumu |
124
+ | \`main.js\` | Electron ana süreç: tüm IPC, WhatsApp/Telegram/Discord entegrasyonları, onay kapısı (/approve), /stop /restart, splash, gizli araştırma tarayıcısı |
125
125
  | \`agent/engine.js\` | OTURUM MOTORU: send/_run tur döngüsü, paralel ajanlar (run_background, run_background_many, tasks_list, task_status, task_cancel — task_cancel reason ZORUNLU), superyorizon (takılan işi zorla kapatır), iptal sebep disiplini, flushPendingReports |
126
126
  | \`agent/tools.js\` | Araçlar + web_search SIRALI ZİNCİRİ (searchChain: 1 dahili tarayıcı(Google) → 2 Obscura(stealth→DuckDuckGo) → 3 TinyFish(anahtarsa) → 4 python çoklu-motor; sıra Ayarlar→Web Arama'dan değişir), run_command, read/write_file, python_run, http_fetch, deep_search |
127
127
  | \`agent/llm.js\` | Sağlayıcı çağrısı + retry: ağ kopmasında 6 deneme + internet dönene kadar bekler; akış ortası kopmada kaldığı yerden devam |
128
128
  | \`agent/agentdefs.js\` | Özel ajan tanımları: %APPDATA%\beast\agents\\*.md (frontmatter: model/tools/steps/mode + prompt gövdesi); /agent ile bağlanır, run_background(agent:) ile paralel ajana verilir |
129
- | \`agent/obscura.js\` | Obscura: otomatik kurulum (GitHub releases, stealth zip) + DuckDuckGo html/lite arama ayrıştırıcı |
129
+ | \`agent/searxng.js\` | SearXNG entegrasyonu: gömülü Python'a kurulum + 127.0.0.1:8888 başlatıcı + JSON arama motoru |
130
130
  | \`agent/bots.js\` | Bot CRUD, 5 haneli bot kodu, izolasyon; ad-ilk-harf doğrulaması |
131
- | \`agent/skills.js\` | Builtin tohumlar (help, email, python-web-search, pdf, gold-trading) + SKILL.md taraması + taslaklar |
131
+ | \`agent/skills.js\` | Builtin tohumlar (help, email, python-web-search, pdf, gold-trading + superpowers metodoloji paketi: brainstorming/writing-plans/executing-plans/TDD/paralel-ajan/alt-ajan-geliştirme/sistematik-debugging/doğrulama/skill-yazma) + SKILL.md taraması + taslaklar |
132
132
  | \`agent/memory.js\`, \`agent/kb.js\` | Kalıcı hafıza + bilgi bankası |
133
133
  | \`cron.js\` (src kökü), \`agent/watchers.js\`, \`agent/bus.js\` | Cron, izleyici, olay merkezi — /stop bunlara DOKUNMAZ |
134
134
  | \`agent/usage.js\` | Token/maliyet sayaçları |
@@ -235,9 +235,9 @@ web_search aracı çağrıldığında zincir OTOMATİK çalışır — elle moto
235
235
 
236
236
  Gerçek Chromium olduğu için Google'a bot koruması uygulamaz. Arama aep=1 ile açılır: Google'ın KENDİ AI cevabı yanıtın 'ai' alanında HAZIR gelir — "kimdir/nedir" sorularında önce onu kullan, kaynak linkleri de 'results' alanında gelir. Sağ panelde açılır, kullanıcı da görebilir. CAPTCHA/trafik uyarısı gelirse tarayıcı 10 dk atlanır, sıradaki motor devreye girer.
237
237
 
238
- ## 2. Obscura (stealth headlessDuckDuckGo)
238
+ ## 2. SearXNG (yerel metasearchotomatik öncelik)
239
239
 
240
- Rust tabanlı gizli tarayıcı: anti-detect parmak izi + V8 JS. Beast Agent PAKETİNDE hazır gelir ilk açılışta %APPDATA%\\beast\\obscura'ya açılır (indirme yok). Varsayılan AKTİF — tarayıcı engellenirse bot korumasını aşarak DuckDuckGo'dan sonuç getirir.
240
+ Ücretsiz, sınırsız, anahtarsız. \`beast searxng\` ile gömülü Python'a kurulur ve 127.0.0.1:8888'de arka planda çalışır. AYAKTAYSA zincirde nerede olursa olsun OTOMATİK ÖNE alınır (çok kaynaklı: Google/Bing/DDG…); kapalıysa sessizce atlanır.
241
241
 
242
242
  ## 3. TinyFish API (anahtar varsa)
243
243
 
@@ -452,16 +452,45 @@ function writeSeed(seed) {
452
452
  } catch {}
453
453
  }
454
454
 
455
+ /* Dosya tohumları: src/agent/seeds/<klasör>/SKILL.md — Superpowers metodoloji
456
+ paketi gibi kod dışı taşınan builtin skill'ler. Hepsi force: her açılışta
457
+ app sürümüyle güncellenir (kullanıcı düzenlemesi korunmaz, builtin'dir). */
458
+ function fileSeedsDir() {
459
+ return path.join(__dirname, 'seeds');
460
+ }
461
+
462
+ function loadFileSeeds() {
463
+ const out = [];
464
+ let entries;
465
+ try {
466
+ entries = fs.readdirSync(fileSeedsDir(), { withFileTypes: true });
467
+ } catch {
468
+ return out;
469
+ }
470
+ for (const e of entries) {
471
+ if (!e.isDirectory()) continue;
472
+ try {
473
+ out.push({
474
+ folder: e.name,
475
+ force: true,
476
+ body: fs.readFileSync(path.join(fileSeedsDir(), e.name, 'SKILL.md'), 'utf8'),
477
+ });
478
+ } catch {}
479
+ }
480
+ return out;
481
+ }
482
+
455
483
  /* Kaldırılan eski tohumlar: kullanıcı makinesinden de silinir */
456
484
  const RETIRED_SEEDS = ['free-web-search'];
457
485
 
458
486
  function seedIfEmpty() {
487
+ const seeds = SEEDS.concat(loadFileSeeds());
459
488
  if (!scan().length) {
460
- for (const seed of SEEDS) writeSeed(seed);
489
+ for (const seed of seeds) writeSeed(seed);
461
490
  } else {
462
491
  /* force tohumlar her açılışta güncellenir: varsayılan web arama skill'inin
463
492
  içeriği hep güncel kalır (mevcut kurulum dahil) */
464
- for (const seed of SEEDS) {
493
+ for (const seed of seeds) {
465
494
  if (seed.force) writeSeed(seed);
466
495
  }
467
496
  }
@@ -612,6 +641,7 @@ module.exports = {
612
641
  scan,
613
642
  seedIfEmpty,
614
643
  parseFrontmatter,
644
+ loadFileSeeds,
615
645
  addDraft,
616
646
  listDrafts,
617
647
  acceptDraft,