beast-agent 1.7.0 → 1.9.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,167 @@
1
+ ---
2
+ name: subagent-driven-development
3
+ description: Bağımsız görevlere bölünmüş bir implementasyon planı yürütülürken, görev başına taze paralel ajan devredilecekken kullan — CEO modunda planlı geliştirme işlerinde.
4
+ ---
5
+
6
+ # Alt-Ajan Destekli Geliştirme
7
+
8
+ Planı, görev başına TAZE implementer alt-ajanı devrederek yürüt; her
9
+ görevden sonra görev incelemesi (spec uyumu + kalite), sonda tüm işin
10
+ genel incelemesi.
11
+
12
+ **Neden alt-ajan:** Bağlamı izole, uzman ajanlara devredersin. Onlar senin
13
+ oturum bağlamını asla görmez — ihtiyaçları olan her şeyi sen kurarsın. Bu
14
+ senin bağlamını koordinasyona saklar ve her görevde taze, kiralanmamış
15
+ bağlam garanti eder.
16
+
17
+ **Çekirdek ilke:** Görev başına taze ajan + görev incelemesi + sonda geniş
18
+ inceleme = yüksek kalite, hızlı iterasyon.
19
+
20
+ **Kesintisiz yürütme:** Görevler arasında kullanıcıya "devam edeyim mi?"
21
+ diye DURMA. Planı sorana kadar yürüt. Durmanın sadece 4 sebebi var:
22
+ (1) geri döndürülemez/yıkıcı işlem, (2) güvenlik hassasiyetli işlem,
23
+ (3) worktree dışına dokunan yan etki (merge, push, publish), (4) plan o
24
+ kadar bozuk ki her yol tahmine dayanıyor.
25
+
26
+ **Karar ver, bekleme:** Çelişki, belirsizlik, plan kusuru — sen karar ver.
27
+ Spec bağlayıcı otoritedir, plan onun savunmasıdır. Her kararı defterine
28
+ `Karar: <neyi> — <neden> — <yanlışsa maliyeti>` olarak yaz ve devam et.
29
+
30
+ ## Ne Zaman
31
+
32
+ - Implementasyon planı var mı? → yoksa önce writing-plans
33
+ - Görevler çoğunlukla bağımsız mı? → sıkı bağlıysa satır içi (executing-plans)
34
+ - CEO modu / paralel ajan mümkün mü? → evetse bu skill
35
+
36
+ ## Kurulum
37
+
38
+ 1. Planı BİR KEZ oku (ve varsa spec'i — çelişkiler spec'e göre çözülür)
39
+ 2. todo_write ile her göreve bir madde aç
40
+ 3. Defteri kur: `<workspace>/.sdd/<plan-adı>-progress.md` — ilk satır
41
+ `# SDD defteri — plan: <plan dosyası>` olsun. Bağlam sıkışırsa/kaybolursa
42
+ defter VE git log senin hafızandan güvenilirdir; tamamlanan görevleri
43
+ yeniden devretme.
44
+ 4. Görev 1'den önce hızlı çelişki taraması: birbiriyle çelişen görevler,
45
+ görevlerin tanımladığı arayüzler tutarlı mı? Bulgu varsa kararını deftere yaz.
46
+
47
+ ## Model Seçimi (agent: parametresi)
48
+
49
+ Her devirde en az güçlü yeterli modeli kullan — run_background'da
50
+ `agent:` ile tanımlı ajan ver (%APPDATA%\beast\agents\*.md) ya da görevde
51
+ model beklentisini belirt:
52
+
53
+ - **Mekanik iş** (izole fonksiyon, net spec, 1-2 dosya, plan kodu tam içeriyor):
54
+ hızlı/ucuz model
55
+ - **Entegrasyon/tyargı işi** (çok dosya, pattern eşleme, debug): standart model
56
+ - **Mimari/tasarım işi + FİNAL inceleme:** en güçlü model — final review
57
+ asla oturum varsayılanına düşük kalmamalı
58
+ - **Fix turları 4-5:** takılan implementer'dan bir tier güçlü model
59
+
60
+ ## Görev Döngüsü
61
+
62
+ **Küçük aynı-kalıp işleri TOPLA:** plan birkaç küçük bağımsız aynı-tip edit
63
+ listeliyorsa görev başına ajan AÇMA — tek brief'te tüm dosyaları listele,
64
+ tek ajana ver, diff'ini tek unit olarak incele.
65
+
66
+ ### 1. Implementeri devret
67
+
68
+ - **Görev brief'i:** görev metnini brief dosyasına yaz
69
+ (`<workspace>/.sdd/gorev-N-brief.md`) — tam değerler, kod, testler brief'te.
70
+ Devir metni şunu içersin: (1) görevin projedeki yeri tek cümle; (2) brief
71
+ dosyasının yolu ("önce bunu oku — gereksinimlerin burada, değerleri birebir
72
+ kullan"); (3) brief'in bilemeyeceği önceki görevlerin arayüz kararları;
73
+ (4) belirsizliklerin çözümü; (5) rapor dosyası yolu
74
+ (`gorev-N-rapor.md`).
75
+ - **Kritik kuralları GÖM:** alt-ajanlar skill OKUMAZ (skills taraması
76
+ arka-ajanlara girmez) — TDD/verification gibi şartları görev metnine tek
77
+ cümleyle göm: "Testten önce kod yok: RED→fail gör→GREEN→pass gör.
78
+ Bitti demeden önce test çıktısıyla kanıtla."
79
+ - **Alt-ajan alt-ajan AÇAMAZ** — bu normaldir: implementer inceleme de
80
+ devredemez; inceleme senden gelir.
81
+ - Aynı anda birden çok implementasyon ajanı devretme (çakışır) —
82
+ BAĞIMSIZ görevler run_background_many ile fan-out edilebilir.
83
+ - Report contract: ajan kısa döner — status + commit + tek satır test özeti +
84
+ endişeler; detay rapor dosyasına yazar (senin bağlamını şişirmez).
85
+
86
+ ### 2. Raporu ele
87
+
88
+ - **DONE:** inceleme paketini hazırla, task reviewer devret (adım 3)
89
+ - **DONE_WITH_CONCERNS:** endişeleri oku; doğruluk/kapsam ise review'dan
90
+ ÖNCE ele al; gözlemse not al ve geç
91
+ - **NEEDS_CONTEXT:** eksik bağlamı ver, yeniden devret
92
+ - **BLOCKED:** bağlam sorunuysa bağlamla; akıl sorunuysa güçlü modelle;
93
+ iş büyükse böl; plan hatalıysa karar ver + deftere yaz + düzeltilmiş devir
94
+
95
+ Ajan takıldı dediysen aynı modelle aynı şartlarda TEKRAR deneme — bir şey
96
+ değişmeli.
97
+
98
+ ### 3. Görevi incele
99
+
100
+ - **Task reviewer devret** (taze ajan): girdiler = brief dosyası + rapor
101
+ dosyası + diff dosyası. Diff'i kendin ÖZETLEME — `git diff BASE..HEAD` çıktısını
102
+ bir dosyaya yaz (BASE = devirden önceki commit) ve yolunu ver; reviewer tek
103
+ okumada commit listesi + stat + tam diff görür, senin bağlamına diff girmez.
104
+ - Reviewer'a planın Global Kısıtlarını BİREBİR kopyala — bu onun dikkat
105
+ merceğidir. Açık uçlu talimat ("tüm kullanımları kontrol et") EKLEME.
106
+ - Reviewer'a bulguyu ÖNCEDELEN yargılama — "şunu bayraklama" deme; bulgunu
107
+ çıkarsın, inceleme döngüsünde sen kararlaştırırsın.
108
+ - İki karar gereklidir: spec uyumu ✓ VE kalite onayı. Ajanın öz-incelemesi
109
+ task incelemesinin YERİNİ TUTMAZ.
110
+ - Reviewer "diff'ten doğrulanamıyor" işareti koyabilir — bunları kendin çöz:
111
+ plan + görevler-arası bağlam sende.
112
+
113
+ ### 4. Fix döngüsü
114
+
115
+ Review spec ❌ veya Critical/Important bulgu bildirirse döngü başlar.
116
+ Minor bulgular döngüye girmez — deftere `Task N: minor (ertelendi): <tek satır>` yaz.
117
+
118
+ Tur başına: bir fix devri + bir scoped re-review. Görev başına MAK 5 tur:
119
+
120
+ - **Tur 1-3 — aynı implementer'a devam:** açık bulguları birebir gönder;
121
+ bağlamı duruyor. Aynı ajana mesaj atılamıyorsa taze implementer'a brief +
122
+ rapor + bulguları ver — rapor dosyası kalıcı hafızadır.
123
+ - **Tur 4-5 — taze implementer + güçlü model:** "Önceki implementer N kez
124
+ denedi; artık sen sahibin. Deneneni rapordan oku."
125
+ - Her turda: implementer kapsayan testleri yeniden çalıştırır, fix raporunu
126
+ AYNI rapor dosyasına ekler. Re-review scoped: SADECE fix diff'inde bulgular
127
+ ADDRESSED/NOT ADDRESSED + yeni kırılma var mı.
128
+ - Defteri her turda güncelle: `Task N: fix turu R/5 (X giderildi, Y açık)`.
129
+
130
+ **Kendin fix YAPMA** — bağlamın koordinasyon için temiz kalmalı ve senin
131
+ fix'in review'sız kalır.
132
+
133
+ **Sigorta (5. turda da açık bulgu):** devretmeyi durdur, her bulguyu kendin
134
+ kararla:
135
+ - Reviewer yanılıyorsa → park et: `Task N: park — <bulgu> — Karar: <kod neden duruyor>`
136
+ - Gerçek ama kimseye binmiyorsa → ertelendi olarak park et
137
+ - Gerçek ve yük taşıyorsa → en küçük açıcı değişikliğe karar ver, deftere yaz,
138
+ sonraki görevin devrine taşı
139
+
140
+ ### 5. Görevi tamamla
141
+
142
+ Review temiz gelince (veya bulgular park edildiğinde): deftere
143
+ `Task N: complete (commits <base>..<head>, review clean)` yaz, todo done yap,
144
+ sıradaki görev.
145
+
146
+ ## Final Review
147
+
148
+ Tüm görevler bitince TÜM işin incelemesini devret — en güçlü modelle:
149
+ `git diff <plan-başlangıç>..HEAD` diff dosyası + defterdeki ertelenen minor/
150
+ park satırlarıyla (hangi merge'i bloklar triage etsin). Bulgu dönerse TEK fix
151
+ ajanı devret (bulgu başına ayrı ajan değil) + TEK scoped re-review.
152
+
153
+ Bitirince defterdeki tüm `Karar:` satırlarını final mesajında kullanıcıya
154
+ listele — senin onun adına aldığın kararlar buraya kadar görünür olur.
155
+
156
+ ## Yaygın Bahaneler
157
+
158
+ | Bahane | Gerçek |
159
+ |---|---|
160
+ | "Spec uyumu kabaca tamam" | Reviewer spec boşluğu buldu = bitmedi. Fix veya cap+karar — başka çıkış yok. |
161
+ | "Kendim fixleyeyim, devir maliyetli" | Senin fix'in review'sız kalır ve bağlamını kirletir. Implementer'a devam ettir. |
162
+ | "Bir tur daha yakınsar" | Cap sonrası turlar yakınsamaz — sorun yapısal. Kararlaştır. |
163
+ | "Reviewer zaten yeni bulgu çıkaracak" | Scoped re-review sadece fix'i doğrular; yeni bulgu deftere gider, döngüye değil. |
164
+ | "Bu bulgu bariz yanlış, düşüreyim" | Karar SADECE cap'te ve her karar deftere. Sessiz düşürme yasak. |
165
+ | "Fix küçük, re-review'sız geç" | Review'sız fix = regresyon kapısı. Her tur re-review ile biter. |
166
+ | "İnceleme döngüyü yavaşlatıyor" | Reviewsuz döngü doğrulanmamış efor. İnceleme fren ve direksiyondur. |
167
+ | "Defter yazımı maliyetli" | Defter bağlam sıkışmasından kurtulan tek şeydir. |
@@ -0,0 +1,131 @@
1
+ ---
2
+ name: systematic-debugging
3
+ description: Herhangi bir bug, test hatası, beklenmedik davranış, build/entegrasyon sorunuyla karşılaştığında — ÇÖZÜM ÖNERMEDEN ÖNCE kullan; kök neden araştırması yapılmadan düzeltme denemesi yasak.
4
+ ---
5
+
6
+ # Sistematik Hata Ayıklama
7
+
8
+ ## Çekirdek ilke
9
+
10
+ **Her zaman kök nedeni bul, sonra düzelt. Belirtiye yama = başarısızlık.**
11
+
12
+ **Bu sürecin harfini ihlal etmek, ruhunu ihlal etmektir.**
13
+
14
+ ## Demir Kanun
15
+
16
+ ```
17
+ KÖK NEDEN ARAŞTIRMASI OLMADAN DÜZELTME YOK
18
+ ```
19
+
20
+ Faz 1 tamamlanmadıysa çözüm öneremezsin.
21
+
22
+ ## Ne Zaman
23
+
24
+ Her teknik sorun: test hataları, prod bug'ları, beklenmedik davranış,
25
+ performans sorunları, build/entegrasyon hataları.
26
+
27
+ ÖZELLİKLE şunlarda kullan:
28
+ - Zaman baskısı varken (acele tahmini cezbeder)
29
+ - "Hızlı bir tek düzeltme" çok bariz görünüyorken
30
+ - Birden fazla düzeltme denedin ve olmadıysa
31
+
32
+ Basit görünen sorunlarda da atlama — basit bug'ların da kök nedeni var.
33
+
34
+ ## Dört Faz
35
+
36
+ Her fazı bitirmeden sonrakine geçemezsin.
37
+
38
+ ### Faz 1: Kök Neden Araştırması
39
+
40
+ HİÇBİR düzeltmeden ÖNCE:
41
+
42
+ 1. **Hata mesajlarını DİKKATLE oku** — stack trace'i tamamen oku; satır
43
+ numarası, dosya yolu, hata kodu not al. Çözüm genelde mesajın içindedir.
44
+ 2. **Tutarlı şekilde yeniden üret** — güvenilir tetikleyebiliyor musun?
45
+ Adımlar neler, her seferinde oluyor mu? Üretilemiyorsa veri topla, TAHMİN ETME.
46
+ 3. **Son değişiklikleri kontrol et** — ne değişti? git diff, son commit'ler,
47
+ yeni bağımlılık/config değişikliği.
48
+ 4. **Çok bileşenli sistemlerde kanıt topla** — her bileşen sınırında ne
49
+ girdiğini/ne çıktığını logla; HANGİ katmanın kırdığını gösteren tek bir
50
+ kanıt çalıştırması yap, sonra o bileşeni incele.
51
+ 5. **Veri akışını izle** — bozuk değer nereden kaynaklanıyor? Kim bu değeri
52
+ gönderdi? Kaynağa kadar yukarı çıkar; kaynağında düzelt, belirtide değil.
53
+
54
+ ### Faz 2: Desen Analizi
55
+
56
+ 1. **Çalışan örnek bul** — aynı kod tabanında benzer ama ÇALIŞAN kod nerede?
57
+ 2. **Referansla karşılaştır** — bir desen uyguluyorsan referans implementasyonu
58
+ TAMAMEN oku (göz gezdirme yok).
59
+ 3. **Farkları listele** — çalışanla bozuk arasındaki her farkı, ne kadar küçük
60
+ olursa olsun yaz. "Bu fark önemli olamaz" deme.
61
+ 4. **Bağımlılıkları anla** — hangi bileşen/ayar/ortam varsayımlarına dayanıyor?
62
+
63
+ ### Faz 3: Hipotez ve Test
64
+
65
+ Bilimsel yöntem:
66
+
67
+ 1. **Tek hipotez kur** — "X kök neden, çünkü Y" diye net yaz. Spesifik ol.
68
+ 2. **Minimal test et** — hipotezi test eden EN KÜÇÜK değişikliği yap. Tek
69
+ değişken. Birden fazla şeyi birden düzeltme.
70
+ 3. **Devam etmeden doğrula** — oldu mu → Faz 4. Olmadı mı → YENİ hipotez;
71
+ üstüne yama EKLEME.
72
+ 4. **Bilmiyorsan söyle** — "X'i anlamıyorum" de; araştır, yardım iste.
73
+
74
+ ### Faz 4: Uygulama
75
+
76
+ 1. **Başarısız test üret** — en basit yeniden üretim; test framework varsa
77
+ otomatik test, yoksa tek seferlik script (test-driven-development skill'i
78
+ ilerler). Düzeltmeden ÖNCE şart.
79
+ 2. **Tek düzeltme uygula** — belirlenen kök nedeni hedefle; "buradayken şu da"
80
+ iyileştirmesi YOK, paket refactoring YOK.
81
+ 3. **Düzeltmeyi doğrula** — test geçti mi? Başka testler kırıldı mı? Sorun
82
+ gerçekten çözüldü mü? Başarı iddiasından önce verification-before-completion.
83
+ 4. **Düzeltme işe yaramadıysa:** DUR. Kaç düzeltme denedin say. 3'ten azsa →
84
+ Faz 1'e dön, yeni bilgiyle yeniden analiz et. 3 ve üzeriyse → mimariyi
85
+ sorgula (aşağıda).
86
+
87
+ ### 3+ Düzeltme Başarısızsa: Mimaride Hata Var
88
+
89
+ Desen: her düzeltme başka yerde yeni sorun çıkarıyor; düzeltmeler "büyük
90
+ refactoring" istiyor; her fix yeni belirti üretiyor.
91
+
92
+ DUR ve temel soruları sor: Bu desen sağlam mı? Devam etmek atalet mi?
93
+ Mimariyi refactor etmek mi, belirti düzeltmeye devam etmek mi? Kullanıcıya
94
+ danışmadan 4. düzeltmeyi deneme. Bu başarısız hipotez değil — yanlış mimaridir.
95
+
96
+ ## Kırmızı Bayraklar — DUR ve Sürece Dön
97
+
98
+ Kendini şöyle düşünürken yakalarsan:
99
+
100
+ - "Şimdilik hızlı bir fix, sonra bakarız"
101
+ - "X'i değiştirip bakalım" (araştırma olmadan)
102
+ - "Birden fazla değişiklik yapayım, testleri çalıştırırım"
103
+ - "Testi atlayayım, elle doğrularım"
104
+ - "Muhtemelen X'tir, onu düzelteyim"
105
+ - "Tam anlamıyorum ama bu işe yarayabilir"
106
+ - Veri akışını izlemeden çözüm listesi sunmak
107
+ - 2+ başarısız denemeden sonra "bir fix daha"
108
+ - Her fix başka yerde yeni sorun açıyor
109
+
110
+ **Hepsi aynı anlama gelir: DUR. Faz 1'e dön.**
111
+
112
+ ## Yaygın Bahaneler
113
+
114
+ | Bahane | Gerçek |
115
+ |---|---|
116
+ | "Sorun basit, sürece gerek yok" | Basit sorunların da kök nedeni var; süreç basitte hızlıdır. |
117
+ | "Acil, süreç için vakit yok" | Sistematik hata ayıklama, tahmin-check döngüsünden HIZLIDIR. |
118
+ | "Önce şunu deneyeyim, sonra araştırırım" | İlk fix deseni belirler; baştan doğru yap. |
119
+ | "Testi fix işe yaradıktan sonra yazarım" | Testsiz fix kalıcı değildir; test önce kanıtlar. |
120
+ | "Birden çok fixi birden yapsam zaman kazanırım" | Neyin işe yaradığını izole edemezsin; yeni bug üretir. |
121
+ | "Referans çok uzun, uyarlarım" | Kısmi anlayış bug garantidir. Tamamını oku. |
122
+ | "Sorunu görüyorum, düzelteyim" | Belirti görmek ≠ kök nedeni anlamak. |
123
+
124
+ ## Hızlı Referans
125
+
126
+ | Faz | Anahtar işler | Başarı kriteri |
127
+ |---|---|---|
128
+ | 1. Kök neden | Hata oku, üret, değişiklikleri kontrol et, kanıt topla | NE ve NEDEN'i anladın |
129
+ | 2. Desen | Çalışan örnek bul, karşılaştır | Farkları belirledin |
130
+ | 3. Hipotez | Teori kur, minimal test et | Doğrulandı veya yeni hipotez |
131
+ | 4. Uygulama | Test üret, tek fix, doğrula | Bug çözüldü, testler geçti |
@@ -0,0 +1,152 @@
1
+ ---
2
+ name: test-driven-development
3
+ description: Herhangi bir özellik veya bug fix uygulanırken, implementasyon kodu yazılmadan ÖNCE kullan — yeni özellik, davranış değişikliği, refactoring işlerinde test-önce disiplini zorunludur.
4
+ ---
5
+
6
+ # Test-Driven Development (TDD)
7
+
8
+ ## Genel Bakış
9
+
10
+ Önce testi yaz. Başarısız olduğunu İZLE. Geçecek minimal kodu yaz.
11
+
12
+ **Çekirdek ilke:** Testin başarısız olduğunu izlemediysen, doğru şeyi
13
+ test ettiğini bilmezsin.
14
+
15
+ **Kuralın harfini ihlal etmek, ruhunu ihlal etmektir.**
16
+
17
+ ## Demir Kanun
18
+
19
+ ```
20
+ BAŞARISIZ TEST OLMADAN PRODUCTION KODU YOK
21
+ ```
22
+
23
+ Testten önce kod yazdıysan: SİL. Baştan başla.
24
+
25
+ **İstisna yok:**
26
+ - "Referans olarak tutma"
27
+ - Testleri yazarken "uyarlama"
28
+ - Bakma bile
29
+ - Silmek silmektir. Testten taze implemente et.
30
+
31
+ ## Ne Zaman
32
+
33
+ **Her zaman:** yeni özellik, bug fix, refactoring, davranış değişikliği.
34
+
35
+ **İstisnalar (kullanıcıya sorarak):** atılacak prototipler, üretilmiş kod,
36
+ config dosyaları.
37
+
38
+ "Bu seferlik TDD'yi atlayayım" düşüncesi = bahane. DUR.
39
+
40
+ ## RED-GREEN-REFACTOR
41
+
42
+ ### RED — Başarısız Test Yaz
43
+
44
+ Bir minimal test yaz: ne OLMASI gerektiğini gösterir.
45
+
46
+ **Gereksinimler:**
47
+ - Tek davranış
48
+ - Açık isim (`retry 3 kereden sonra vazgeçer`, "retry works" değil)
49
+ - Gerçek kod (kaçınılmaz değilse mock yok)
50
+
51
+ ### RED'i Doğrula — Başarısızlığını İZLE
52
+
53
+ **ZORUNLU. Asla atlama.**
54
+
55
+ ```
56
+ run_command: node --test tests/ornek.test.js
57
+ ```
58
+
59
+ Doğrula:
60
+ - Test FAIL ediyor (error değil)
61
+ - Hata mesajı beklenen
62
+ - Eksik özellik yüzünden fail ediyor (typo değil)
63
+
64
+ **Test hemen geçti?** Mevcut davranışı test ediyorsun. Testi düzelt.
65
+
66
+ **Test error verdi?** Hatayı düzelt, doğru şekilde fail edene kadar tekrar.
67
+
68
+ ### GREEN — Minimal Kod
69
+
70
+ Testi geçecek EN BASİT kodu yaz. Fazla özellik, gereksiz opsiyon,
71
+ "şimdiyken ekleyiver" YOK (YAGNI).
72
+
73
+ ### GREEN'i Doğrula — Geçişini İZLE
74
+
75
+ **ZORUNLU.** Aynı komutu çalıştır:
76
+ - Test geçiyor
77
+ - Diğer testler hâlâ geçiyor
78
+ - Çıktı temiz (hata/uyarı yok)
79
+
80
+ **Test fail?** Testi değil KODU düzelt.
81
+ **Başka testler fail?** Şimdi düzelt.
82
+
83
+ ### REFACTOR — Temizle
84
+
85
+ Sadece yeşilken: tekrar eden kodu kaldır, isimleri iyileştir, helper çıkar.
86
+ Testleri yeşil tut. Davranış EKLEME. Sonra sonraki failing test ile tekrarla.
87
+
88
+ ## İyi Test
89
+
90
+ | Nitelik | İyi | Kötü |
91
+ |---|---|---|
92
+ | Minimal | Tek şey. İsmi "ve" içeriyorsa böl. | `email ve domain ve boşluğu doğrular` |
93
+ | Açık | İsim davranışı tarif eder | `test1` |
94
+ | Niyet gösterir | İstenen API'yi sergiler | Kodun ne yapacağını gizler |
95
+
96
+ - Gerçek davranışa assert et, mock davranışına asla
97
+ - Test yazmadan önce: bu testi FAIL eden production değişikliğini adlandırabilmeliyim
98
+
99
+ ## Yaygın Bahaneler
100
+
101
+ | Bahane | Gerçek |
102
+ |---|---|
103
+ | "Test etmek için çok basit" | Basit kod da kırılır. Test 30 saniye. |
104
+ | "Sonra yazarım" | Sonradan yazılan test hemen geçer — bu bir şey KANITLAMAZ. Yanlış şeyi test edebilir, hatırladığın kenar durumları kapsar, unuttuğunları kaçırır. |
105
+ | "Testler sonra da aynı hedefe ulaşır" | Test-sonra "bu ne yapıyor?"u cevaplar; test-önce "bu ne YAPMALI?"ı cevaplar. Kod zaten yazılmışken test ondan biaslanır. |
106
+ | "Elle test ettim zaten" | Elle test kayıpsız tekrarlanamaz, kenar durumları kanıtlamaz. |
107
+ | "X saat kaybolacak, silmesem iyi olur" | Batık maliyet yanılgısı. Güvenemediğin kodu tutmak asıl kayıp. |
108
+ | "Keşif gerek önce" | Tamam — keşfi at, TDD ile baştan başla. |
109
+ | "Test yazması zor = tasarım kötü" | Teste dinle. Test etmek zor = kullanmak zor. |
110
+ | "TDD yavaşlatır" | TDD pragmatik yoldur: commit öncesi yakalar, regresyonu önler, korkusuz refactor sağlar. "Pragmatik" kısayol = prod'da debug. |
111
+
112
+ ## Kırmızı Bayraklar — DUR, Baştan Başla
113
+
114
+ - Testten önce kod
115
+ - Implementasyondan sonra test
116
+ - Test anında geçti
117
+ - Testin neden fail ettiğini açıklayamıyorsun
118
+ - "Sonraya" eklenen testler
119
+ - "Sadece bu sefer" bahanesi
120
+ - "Elle test ettim zaten"
121
+ - "Ruha uygun, ritüele değil"
122
+ - "Referans olarak tutarım"
123
+ - "X saat boşa gideydi"
124
+
125
+ **Hepsi aynı anlama gelir: Kodu sil. TDD ile baştan başla.**
126
+
127
+ ## Doğrulama Listesi
128
+
129
+ İşi tamamlanmış saymadan önce:
130
+
131
+ - [ ] Her yeni fonksiyonun testi var
132
+ - [ ] Her testi implementasyondan ÖNCE fail izledim
133
+ - [ ] Her test beklenen sebeple fail etti
134
+ - [ ] Her test için minimal kod yazdım
135
+ - [ ] Tüm testler geçiyor, çıktı temiz
136
+ - [ ] Kenar durumları ve hatalar kapsamlı
137
+
138
+ Tüm kutular dolmuyorsa TDD'yi atladın. Baştan başla.
139
+
140
+ ## Takıldığında
141
+
142
+ | Sorun | Çözüm |
143
+ |---|---|
144
+ | Nasıl test edeceğimi bilmiyorum | İstediğin API'yi yaz, assertion'la başla, kullanıcıya sor |
145
+ | Test çok karmaşık | Tasarım karmaşık demektir. Arayüzü sadeleştir. |
146
+ | Her şeyi mock'lamam gerek | Kod fazla coupled. Bağımlılık enjeksiyonu kullan. |
147
+ | Test kurulumu devasa | Helper çıkar. Hâlâ karmaşıksa tasarımı sadeleştir. |
148
+
149
+ ## Bug Bulunduğunda
150
+
151
+ Bug'ı yeniden üreten FAILING test yaz → TDD döngüsü → test hem fix'i
152
+ kanıtlar hem regresyonu önler. Testsiz bug fixi ASLA yapma.
@@ -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?"**