tillerhand 3.30.0 → 3.31.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.
@@ -23,7 +23,7 @@ Hangi toplantı ve kararın konseye gideceğini proje profili belirler (`docs/wo
23
23
 
24
24
  | Durum (profil izin veriyorsa) | Konsey türü | Aşama 1 üyeleri | Başkan |
25
25
  |---|---|---|---|
26
- | Plan, faz sonu, canlıya alma toplantısı | **Toplantı konseyi** | rules.md §3'e göre seçilen kurul üyeleri (kendi modelleriyle) | `board-chair` |
26
+ | Plan, faz sonu, canlıya alma toplantısı | **Toplantı konseyi** | rules.md §3'e göre seçilen kurul üyeleri (inceleme rolünün modeliyle) | `board-chair` |
27
27
  | Görev sonu toplantısında RET çıktı | Toplantı konseyi (sadece aşama 2 ve 3) | RET veren üye + o toplantının diğer üyeleri | `board-chair` |
28
28
  | Tek yönlü kapı kararı (Hafif/Standart: sadece veritabanı ve auth; Tam: hepsi; `docs/workflow/decision-protocol.md` §2a) veya her profilde `/board council <soru>` | **Karar konseyi** | 3 × `council-advisor`: `haiku`, `sonnet`, `opus` (aynı soru, farklı model) | `board-chair` |
29
29
 
@@ -14,11 +14,11 @@
14
14
 
15
15
  | Toplantı | Ne zaman | Kim katılır | Model |
16
16
  |---|---|---|---|
17
- | **Plan** | `/plan-task` sonunda, kullanıcı onayından önce | `board-product` + `board-architect` + değişikliğe ilgili üyeler (en fazla 4) | üyenin kendi modeli |
18
- | **Görev sonu** | `/build` sonunda, "bitti" demeden önce | Değişikliğe ilgili üyeler (en fazla 3) | üyenin kendi modeli |
19
- | **Commit (hafif)** | Her `git commit` öncesi (hook zorunlu kılar) | Değişen dosyalara ilgili en fazla 2 üye; sadece değişen satırları (diff) inceler | her zaman `haiku` |
20
- | **Faz sonu** | Faz bitince (`/wrap-up` önerir) veya `/board convene phase-end` | Tüm kurul | üyenin kendi modeli |
21
- | **Canlıya alma** | `/release ilk` | Tüm kurul | üyenin kendi modeli |
17
+ | **Plan** | `/plan-task` sonunda, kullanıcı onayından önce | `board-product` + `board-architect` + değişikliğe ilgili üyeler (en fazla 4) | inceleme rolü (`docs/workflow/models.md`) |
18
+ | **Görev sonu** | `/build` sonunda, "bitti" demeden önce | Değişikliğe ilgili üyeler (en fazla 3) | inceleme rolü (`docs/workflow/models.md`) |
19
+ | **Commit (hafif)** | Her `git commit` öncesi (hook zorunlu kılar) | Değişen dosyalara ilgili en fazla 2 üye; sadece değişen satırları (diff) inceler | her zaman `haiku`, effort `low` |
20
+ | **Faz sonu** | Faz bitince (`/wrap-up` önerir) veya `/board convene phase-end` | Tüm kurul | inceleme rolü (`docs/workflow/models.md`) |
21
+ | **Canlıya alma** | `/release ilk` | Tüm kurul | inceleme rolü (`docs/workflow/models.md`) |
22
22
 
23
23
  Sadece dokümantasyon değişikliği (`.md`, `docs/`) içeren commit'ler denetimden muaftır.
24
24
 
@@ -45,7 +45,7 @@ Kurulda olmayan bir üyeyi çağırma; ilgili alan kurulda yoksa durum bloğunda
45
45
 
46
46
  1. **Limit kontrolü** (`docs/workflow/usage-limits.md`): Seviye sarıysa üye sayısını yarıya indir; kırmızıysa kullanıcıya sor (kurulu hafiflet seçeneği dahil).
47
47
  1b. **Deterministik kapı** (commit, görev sonu, faz sonu; plan toplantısında yok): `node .claude/hooks/gate.mjs --run`. AGENTS.md → Komutlar'daki lint, tip kontrolü ve test ile Semgrep çalışır; sonuç değişiklik imzasıyla saklanır. Kırmızıysa veya boşsa (hiçbir kontrol çalışmadı) commit kapısı açılmaz: önce düzelt ya da Komutlar'ı doldur. Kullanıcı ara commit için açıkça isterse `node .claude/hooks/commit-gate.mjs --skip "kullanıcı isteği"` (her zaman onaya sorulur). Kapı "komut onayı gerekli" derse komutları kullanıcıya göster; onaylarsa `node .claude/hooks/gate.mjs --approve` (yeni veya değişen komut onaysız çalışmaz).
48
- 2. **Üyeleri paralel çalıştır** (Agent aracı, her üye ayrı alt ajan). Her üyeye şunları ver: toplantı türü, kapsam (plan metni / diff aralığı / faz), görev kodu, kabul kriterleri ve kapı çıktısı (varsa). Commit toplantısında `model: "haiku"` ver.
48
+ 2. **Üyeleri paralel çalıştır** (Agent aracı, her üye ayrı alt ajan). Her üyeye şunları ver: toplantı türü, kapsam (plan metni / diff aralığı / faz), görev kodu, kabul kriterleri ve kapı çıktısı (varsa). Çağrıda inceleme rolünün `model` ve `effort`'unu ver (`node .claude/hooks/models.mjs --show`); commit toplantısında `model: "haiku"`, `effort: "low"` ver.
49
49
  2b. **Konsey toplantısıysa** (§2) `.claude/board/council.md` aşama 1-4'ü uygula. Sentezi başkanın kararından kur; görüş ayrılığı satırına azınlık görüşünü yaz.
50
50
  3. **Sentezle** (ana ajan; konseyde başkanın kararına göre):
51
51
 
@@ -68,9 +68,9 @@ Kullanıcı commit denetimini o an için atlamak isterse açıkça söylemesi ge
68
68
 
69
69
  1. Proje tipine ve PRD'ye göre öneri (aşağıdaki tablo). AI eki varsa `board-ai`, kişisel veri varsa `board-privacy` mutlaka önerilir.
70
70
  2. Kullanıcıya **çoklu seçimle** sor (önerilenler işaretli). "Other" ile yeni bir uzman isteyebilir. Örneğin "Erişilebilirlik uzmanı", "Oyun tasarımcısı" veya "Fintech uyum uzmanı". Bu durumda mevcut şablon yapısıyla yeni bir `board-<ad>.md` yaz.
71
- 3. Model dağılımını onaylat. Önerilen karma: Mimar ve Güvenlik güçlü model (`sonnet`), diğerleri `haiku`.
71
+ 3. Model sorulmaz: üyeler inceleme rolünün modeli ve effort'uyla çalışır (`docs/workflow/models.md`).
72
72
  4. Seçilen her üye için `.claude/board/board-<role>.md` dosyasını `.claude/agents/board-<role>.md`'ye kopyala ve **"Bu proje" bölümünü doldur**: ürün özeti, seçilen stack, kritik akışlar, bu role özel riskler. `security-auditor` zaten `.claude/agents/` altında.
73
- 5. `docs/workflow/board.md` → durum, üye tablosu ve commit denetimi satırını doldur.
73
+ 5. `docs/workflow/board.md` → durum, üye tablosu (Model sütununa "inceleme rolü") ve commit denetimi satırını doldur.
74
74
  6. Kullanıcıya kurulu tanıt: Her üye ne yapar, ne zaman devreye girer, tahmini maliyeti nedir (tek satır).
75
75
  7. Yeni ajanlar oturum yeniden başlatıldığında yüklenir. Kullanıcıya bunu söyle; bu oturumda gerekirse üyeyi genel amaçlı alt ajana rol dosyasının içeriğini vererek çalıştır.
76
76
 
@@ -18,7 +18,7 @@ Bu bir **9 adımlı uyum sihirbazı** (0-9). `/start`'ın var olan kod için ola
18
18
  ## Adım 0: Hazırlık
19
19
 
20
20
  1. `docs/workflow/progress.md` → `**Aktif faz:** Başlangıç (uyum)`, `**Başlangıç adımı:** 0/9`.
21
- 2. `/start` Adım 0'daki şu maddeleri aynen uygula: Profil (0), anlatıcı mod (0b), araç (0c), auto memory (0d), ortam kontrolü (1), eklentiler (2), caveman (3), kod haritası (5), bildirimler (6), pano (6b). Var olan projede kod haritası daha da faydalıdır; önerilen seçenek "Kur" olsun.
21
+ 2. `/start` Adım 0'daki şu maddeleri aynen uygula: Profil (0), anlatıcı mod (0b), araç (0c), auto memory (0d), model ve effort (0e, `docs/workflow/models.md`), ortam kontrolü (1), eklentiler (2), caveman (3), kod haritası (5), bildirimler (6), pano (6b). Var olan projede kod haritası daha da faydalıdır; önerilen seçenek "Kur" olsun.
22
22
  3. **Tarama derinliği:** Limiti oku ve sor. Tahmini maliyetleri göster:
23
23
  - **Hızlı tarama (Önerilen, Pro'da):** Yapı, stack, testler, git geçmişi, belgeler. 5 saatlik limitin yaklaşık %10-20'si.
24
24
  - **Derin tarama:** Hızlı taramaya ek olarak seçilen bulgu raporları (`/findings-tech`, `-security`, `-ux` vb.). Rapor başına yaklaşık %8-15 daha. Hangi raporların çalışacağını çoklu seçimle sor.
@@ -7,8 +7,8 @@ argument-hint: [boş | setup | convene <plan|task|phase-end|release|konu> | coun
7
7
 
8
8
  Önce `.claude/board/rules.md` ve `docs/workflow/board.md`'yi oku.
9
9
 
10
- - **Boş:** Kurulun durumunu göster: üyeler, modelleri, son 5 toplantı ve sonuçları, açık kritik bulgular, commit denetimi açık/kapalı. Kurul kurulmamışsa `/board setup` öner.
11
- - **`setup`:** rules.md §5'i uygula. Kurul zaten varsa, ne yapılacağını sor: üye ekle / üye çıkar / model değiştir / "Bu proje" bölümlerini güncel stack'e göre yenile.
10
+ - **Boş:** Kurulun durumunu göster: üyeler, inceleme rolünün modeli (`node .claude/hooks/models.mjs --show`), son 5 toplantı ve sonuçları, açık kritik bulgular, commit denetimi açık/kapalı. Kurul kurulmamışsa `/board setup` öner.
11
+ - **`setup`:** rules.md §5'i uygula. Kurul zaten varsa, ne yapılacağını sor: üye ekle / üye çıkar / "Bu proje" bölümlerini güncel stack'e göre yenile. Model buradan değişmez: üyeler inceleme rolüyle çalışır (`docs/workflow/models.md`).
12
12
  - **`convene <tür>`:** rules.md §4'ü uygula.
13
13
  - `plan`: son onaylanmamış plan
14
14
  - `task`: aktif görevin değişiklikleri (`git diff`)
@@ -7,9 +7,11 @@ Görev: $ARGUMENTS
7
7
  Boşsa `docs/workflow/progress.md` → "Sıradaki adım" veya `docs/product/roadmap.md`'deki ilk işaretsiz görevi al.
8
8
 
9
9
  0. **Limit ve bağlam:** Limiti oku, 5 saatlik yüzdeyi ve başlangıç saatini not et (maliyet günlüğü için). Bağlam %50'yi geçmişse önce `/wrap-up` + `/clear` öner. Seviye sarı/kırmızıysa veya tahmin kalan payı aşıyorsa bunu tek satırla söyle ve başla (`docs/workflow/usage-limits.md` §3; soru sorma). `docs/workflow/progress.md` → "Kaldığı yer" doluysa oradan devam et.
10
+ 0b. **Model ve effort** (`docs/workflow/models.md`): Son seçimi `node .claude/hooks/models.mjs --show` ile oku. İki AskUserQuestion çağrısı yap: önce dört soru, her rolün modeli (Opus / Sonnet / Haiku); sonra dört soru, her rolün effort'u (düşük / orta / yüksek / ekstra yüksek). Her soruda models.md'deki önerilen seçenek ilk sırada ve "(Önerilen)" etiketli; son seçim farklıysa o seçeneğin açıklamasına "son seçim" yaz. Cevabı `node .claude/hooks/models.mjs --set plan=<model>:<effort> code=… review=… docs=…` ile kaydet. Ana oturumun modeli veya effort'u plan rolünden farklıysa tek satırla `/model <ad>` ve `/effort <düzey>` öner. Soru modunda `maliyet` konusu kapalıysa sorma ve `--set` çalıştırma: son seçim geçerli kalır, durum bloğunda "otomatik" yaz.
10
11
  1. Görevi ve kabul kriterlerini bana tek cümleyle tekrar et. `docs/workflow/progress.md` → aktif görevi güncelle.
11
12
  2. Bu görev için onaylanmış bir plan yoksa ve 2'den fazla dosyaya dokunacaksa önce `/plan-task` adımlarını uygula (karar noktaları dahil), onay bekle.
12
- 2b. **Önce kabul testleri:** Görevin kabul kriterleri için testleri (kimlik test adında: `Ö-01.1`) ve gerekiyorsa saldırgan testlerini yaz, çalıştır ve **kırmızı** olduklarını göster. Sonra uygula.
13
+ 2b. **Kod rolüne devret (2b ve 3):** Agent aracıyla alt ajan çalıştır, çağrıda kod rolünün `model` ve `effort`'unu ver. İstemde: görev ve kabul kriterleri, onaylı plan, dokunulacak dosyalar, adım 3'teki kurallar, önce kırmızı testler. Alt ajan kullanıcıya soru soramaz: karar noktasında durup soruyu ve seçenekleri raporlamasını iste; soruyu sen sor, kararı günlüğe yaz, alt ajanı cevapla devam ettir. Alt ajan bitince diff'i ve test çıktısını kendin oku; adım 4'ten sonrası ana oturumda. Kullanıcıya görünen metni (humanizer) son haline sen getir.
14
+ **Önce kabul testleri:** Görevin kabul kriterleri için testleri (kimlik test adında: `Ö-01.1`) ve gerekiyorsa saldırgan testlerini yaz, çalıştır ve **kırmızı** olduklarını göster (alt ajanın kırmızı çıktısını bana göster). Sonra uygula.
13
15
  3. Uygula. Kurallar:
14
16
  - **Uygularken yeni bir karar noktası çıkarsa dur ve sor** (`docs/workflow/decision-protocol.md`). Tahmin edip devam etme.
15
17
  - Skill'ler (`docs/workflow/skills.md`): Kod için `ponytail:ponytail`, kritik akış için `mattpocock-skills:tdd`. Arayüz için seçilen yön skill'i + `impeccable:impeccable` (`DESIGN.md`'ye bağlı kal; yeni tasarım kararı gerekirse `/design`). Kullanıcıya görünen metin için `humanizer:humanizer`.
@@ -29,9 +31,9 @@ Boşsa `docs/workflow/progress.md` → "Sıradaki adım" veya `docs/product/road
29
31
  - API/iş mantığı → gerçek istek at veya testi çalıştır; isteği ve yanıtı göster.
30
32
  - Kanıt üretemiyorsan (cihaz, panel, ödeme gibi) bunu açıkça söyle ve benim yapmam gereken adımları yaz.
31
33
  6. Arayüz değiştiyse `impeccable:impeccable` → `critique` çalıştır; önemli bulguları düzeltip düzeltmeyeceğimi sor.
32
- 6b. **Görev sonu kurul toplantısı** (`.claude/board/rules.md`; kurul kurulduysa): Değişikliğe ilgili en fazla 3 üye. RET varsa görev bitmez; bulguyu ve seçenekleri sor. Toplantıyı `docs/workflow/board.md` günlüğüne yaz.
34
+ 6b. **Görev sonu kurul toplantısı** (`.claude/board/rules.md`; kurul kurulduysa): Değişikliğe ilgili en fazla 3 üye, inceleme rolünün `model` ve `effort`'uyla. RET varsa görev bitmez; bulguyu ve seçenekleri sor. Toplantıyı `docs/workflow/board.md` günlüğüne yaz.
33
35
  7. `AGENTS.md` → "Bitti tanımı" listesini tek tek kontrol et.
34
- 8. Kapsam kalkanını kapat (komut kullanıcıya sorulur): `node .claude/hooks/freeze-guard.mjs --plan-end`. `docs/product/roadmap.md`'de görevi işaretle; PRD'de sadece testi yeşil olan kriterleri işaretle. Testleri JUnit raporuyla çalıştır (`docs/architecture/stack.md` → Kabul testleri) ki pano güncellensin. Limiti tekrar oku ve `docs/workflow/cost-log.md`'ye satır ekle (başlangıç/bitiş 5 saatlik %, süre dk).
36
+ 8. Kapsam kalkanını kapat (komut kullanıcıya sorulur): `node .claude/hooks/freeze-guard.mjs --plan-end`. `docs/product/roadmap.md`'de görevi işaretle; PRD'de sadece testi yeşil olan kriterleri işaretle. Testleri JUnit raporuyla çalıştır (`docs/architecture/stack.md` → Kabul testleri) ki pano güncellensin. Limiti tekrar oku ve `docs/workflow/cost-log.md`'ye satır ekle (başlangıç/bitiş 5 saatlik %, süre dk). Roadmap, cost-log ve progress yazımını tek alt ajan çağrısıyla doküman rolüne ver (`model`, `effort`); sonucu kontrol et (progress.md'nin kalın etiketli satırları durum çubuğu ve pano için aynı biçimde kalmalı).
35
37
  9. Rapor ver:
36
38
  - Ne yapıldı (2-3 satır)
37
39
  - Bu görevde alınan kararlar (kullanıcı / otomatik)
@@ -8,7 +8,7 @@ Türler: $ARGUMENTS (boşsa: tech, business, security, ux, perf, legal)
8
8
  1. **Limit:** Tam set çok pahalıdır (Pro planda 5 saatlik limitin büyük kısmı). Limiti oku. Her tür için tahmini maliyeti göster ve AskUserQuestion ile **çoklu seçimle** sor: hangi türler çalışsın? Seviye sarı veya kırmızıysa en kritik 2 türü (tech + security) öner.
9
9
  1b. **Paket:** `security` seçildiyse `node .claude/hooks/tools.mjs --required guvenlik`. Kapalıysa alt ajanları başlatmadan önce bir kez sor (alt ajanlar oturumun eklentilerini kullanır).
10
10
  2. **Ön bilgiler:** Business ve legal için `docs/findings/config.md` boşsa sektör ve uzman rolünü şimdi bir kez sor; alt ajanlar tekrar sormasın.
11
- 3. **Paralel çalıştır:** Seçilen her tür için ayrı bir alt ajan başlat (Agent aracı, tek mesajda, arka planda). Her ajana şu talimatı ver: "`.claude/findings/protocol.md` adımlarını `.claude/findings/lenses/<tür>.md` ile uygula; raporu yaz; yol haritası sorusunu SORMA, önerdiğin görevleri raporun düzeltme planında bırak."
11
+ 3. **Paralel çalıştır:** Seçilen her tür için ayrı bir alt ajan başlat (Agent aracı, tek mesajda, arka planda; inceleme rolünün `model` ve `effort`'u, `docs/workflow/models.md`). Her ajana şu talimatı ver: "`.claude/findings/protocol.md` adımlarını `.claude/findings/lenses/<tür>.md` ile uygula; raporu yaz; yol haritası sorusunu SORMA, önerdiğin görevleri raporun düzeltme planında bırak."
12
12
  4. **Birleşik özet:** Tüm raporlar bitince `docs/findings/summary-YYYY-AA-GG.md` yaz:
13
13
  - Tür başına sağlık puanı ve önceki ile farkı
14
14
  - Tüm türlerden en yüksek puanlı 10 bulgu (tek liste, puana göre)
@@ -7,6 +7,7 @@ Mod: $ARGUMENTS (boş = sadece A bölümü, her sürüm; `first` = A + B bölüm
7
7
 
8
8
  Kaynak listeler: `docs/operations/release-checklist.md`, `docs/architecture/stack.md` → "Canlıya alma", `docs/security/checklist.md` (ilk lansmanda tamamı), varsa `docs/ai/guide.md` → "Canlıya alma" ve `docs/product/launch.md`.
9
9
 
10
+ 0. **Model ve effort** (`docs/workflow/models.md`): `/build` adım 0b'deki iki ekranı sor ve kaydet. Denetim ajanları (kurul, `security-auditor`) inceleme rolüyle çalışır.
10
11
  1. **Otomatik kontrol edebildiklerini çalıştır:**
11
12
  - `first` modunda önce limiti oku; tam denetim pahalıdır (`docs/workflow/usage-limits.md`). `node .claude/hooks/tools.mjs --required guvenlik` kapalıysa açmayı sor. Kurul kurulduysa **canlıya alma kurul toplantısı** (tüm kurul, `.claude/board/rules.md`) yap.
12
13
  - `first` modunda önce `/findings-all security,legal,perf` öner (tahmini maliyetiyle); raporlardaki Kritik bulgular yayını engeller.
@@ -12,7 +12,7 @@ Konu: $ARGUMENTS (boşsa `docs/product/prd.md` → problem ve değer önerisi)
12
12
  1. Konuyu tek cümleyle tekrar et ve 3-6 arama terimi çıkar (Türkçe ve İngilizce).
13
13
  2. Limiti oku ve derinliği tahmini maliyetle sor:
14
14
  - **Hızlı (Önerilen, Pro'da):** Kategori başına en fazla 5 kaynak. 5 saatlik limitin yaklaşık %10-15'i.
15
- - **Derin:** Kategori başına 10-15 kaynak, üç kategori paralel alt ajanlarla. Yaklaşık %25-35.
15
+ - **Derin:** Kategori başına 10-15 kaynak, üç kategori paralel alt ajanlarla (doküman rolünün `model` ve `effort`'u, `docs/workflow/models.md`). Yaklaşık %25-35.
16
16
  3. Kategorileri çoklu seçimle onaylat: akademik makaleler, GitHub projeleri, ticari ürünler.
17
17
 
18
18
  ## 1. Akademik makaleler
@@ -8,7 +8,7 @@ argument-hint: [boş = commit edilmemiş değişiklikler | main..HEAD | commit h
8
8
  Kendi yazdığın kodu kendin inceleme; bağımsız ajanlara ver.
9
9
 
10
10
  1. `git diff --stat` ile değişen dosyaları gör.
11
- 2. **`code-reviewer`** alt ajanını çalıştır. Ona aralığı ve (biliniyorsa) görev kodunu ver. Görevin `docs/product/specs/` altında spec'i varsa onu da ver: beklenen davranış karşılandı mı, değişmemesi gereken davranış bozuldu mu?
11
+ 2. **`code-reviewer`** alt ajanını inceleme rolünün `model` ve `effort`'uyla çalıştır (`docs/workflow/models.md`; adım 3 de öyle). Ona aralığı ve (biliniyorsa) görev kodunu ver. Görevin `docs/product/specs/` altında spec'i varsa onu da ver: beklenen davranış karşılandı mı, değişmemesi gereken davranış bozuldu mu?
12
12
  3. Değişiklik şunlardan birine dokunuyorsa **`security-auditor`** alt ajanını da paralel çalıştır: auth, yetki, ödeme, webhook, dosya yükleme, kişisel veri, DB erişim kuralları, ortam değişkenleri, AI/LLM çağrıları.
13
13
  Kurul kurulduysa değişikliğe ilgili kurul üyelerini de ekle (`.claude/board/rules.md` §3, en fazla 3; limit sarıysa 1).
14
14
  Aynı anda `ponytail:ponytail-review` ile gereksiz kod, aşırı mühendislik ve yük altında kırılacak yerlere bak. Arayüz değiştiyse `impeccable:impeccable` → `audit` da çalışsın.
@@ -12,7 +12,7 @@ Bu bir **9 adımlı sihirbaz** (0-9). Kullanıcı hiçbir şeyi bilmiyormuş gib
12
12
  **Kararlar anında kaydedilir:** Her kararı verildiği anda `docs/decisions/log.md` → Karar günlüğüne yaz (adım sonunu bekleme). Pano kararları ve adım ilerlemesini oradan canlı gösterir.
13
13
 
14
14
  **Pahalı adımlar** (Adım 4'teki karar konseyi, Adım 6 kurul, Adım 7 tasarım): Başlamadan tahmini maliyeti (`docs/workflow/usage-limits.md` tablosu) ve kalan limiti tek satırla söyle. Adım kaldırılmaz; seçim kullanıcıdadır. Ayrıntılı derinlikte bildir ve yap. Hızlı ve Standart'ta sor: **Yap** / **Hafif yap** / **Sonraya bırak**. Önerilen: Hızlı'da "Sonraya bırak", Standart'ta "Hafif yap".
15
- - Hafif yap: Adım 4'te konsey yerine tek danışman görüşü; Adım 6'da önerilen 3 üye tek onayla, hepsi `haiku`; Adım 7'de tek önizleme turu (stil yönü), renk ve yazı tipi o yönün önerilen setinden.
15
+ - Hafif yap: Adım 4'te konsey yerine tek danışman görüşü; Adım 6'da önerilen 3 üye tek onayla; Adım 7'de tek önizleme turu (stil yönü), renk ve yazı tipi o yönün önerilen setinden.
16
16
  - Sonraya bırak: Adım 4'te tek yönlü kararı yine kullanıcı verir (önerilen + gerekçe ile). Adım 6 ve 7 için Faz 0'a görev eklenir (`/board setup`, `/design genel`).
17
17
 
18
18
  ---
@@ -40,6 +40,7 @@ Bu bir **9 adımlı sihirbaz** (0-9). Kullanıcı hiçbir şeyi bilmiyormuş gib
40
40
  - **Kapalı (Önerilen):** Projenin hafızası `AGENTS.md`, `progress.md` ve karar günlüğünde; görünür ve git'te. Tekrarlayan hatalar `/fix-bug` ile "Öğrenilen kurallar"a önerilir. `.claude/settings.json`'a `"autoMemoryEnabled": false` ekle (dosyayı birleştir).
41
41
  - **Açık:** Tercihlerin oturumlar arasında kendiliğinden hatırlanır; notlar `AGENTS.md` ile çelişebilir. Ayara dokunma.
42
42
  Seçimi `**Profil:**` satırına ekle (örn. `hafıza: kapalı`). Kaynak: code.claude.com/docs/en/memory (2026-10-25).
43
+ 0e. **Model ve effort** (`docs/workflow/models.md`): `/build` adım 0b'deki iki ekranı sor ve kaydet. Planlama işleri ana oturumda, araştırma ve tarama doküman rolünde, kurul inceleme rolünde çalışır; Adım 6'da model ayrıca sorulmaz.
43
44
  1. Ortamı kontrol et ve tek satırla raporla: `node --version`, `git --version` ve kitin yeri. İki kurulum yolu var: kökte `kit/kit.mjs` (template yolu) ya da `.kit.json` → `kit` alanındaki klasör (`init` ile kurulmuş, `type` boş). `kit` alanı `npx:tillerhand@<sürüm>` ise kit npm paketinden kurulmuştur. `local` ise klasörün bu makinedeki yolu git dışı `.kit.local.json` → `kit`'tedir; o dosya yoksa kullanıcıya kit klasörünü sor ya da `npx -y tillerhand@<.kit.json → version>` kullan. Klasörde zaten uygulama kodu varsa (`package.json`, `pyproject.toml`, `src/` vb.) dur ve `/adopt` öner.
44
45
  2. `docs/workflow/skills.md`'deki plugin'lerin skill'leri senin skill listende var mı bak. LSP eklentisi dil sunucusu ister: web ve mobil için `npm i -g typescript-language-server typescript`, backend için `npm i -g pyright` (global kurulum; kullanıcı onayıyla). **Eklentiler:** Proje ayarı eklentileri açar ama indirmez; kurulmamış olanlar yükleme hatası verir ve skill'leri gelmez. Kullanıcıya listeyi göster ve sor: "Proje ayarındaki eklentiler kurulsun mu?" Önce `node .claude/hooks/plugins-sync.mjs` ile eksikleri listele; onay gelirse `node .claude/hooks/plugins-sync.mjs --install` çalıştır. Betik eksikleri proje kapsamında kurar, `false` olanları (paket eklentileri: tasarım, güvenlik, yayın, video) kurup kapatır. Kullanıcıya tek cümleyle söyle: "Paketler kapalı gelir, ilgili komut gerektiğinde açmayı sorar; durum için `/tools`." Sonra kullanıcıdan `/reload-plugins` çalıştırmasını iste. claude CLI yoksa eksik eklentilerin `/plugin install x@y` komutlarını ver ve "Kurup devam edelim mi, eksik skill olmadan mı?" diye sor.
45
46
  3. `caveman:caveman` skill'ini yükle (rapor dili).
@@ -131,7 +132,7 @@ Pahalı adım: önce maliyeti söyle ve derinliğe göre sor (yukarıdaki "Pahal
131
132
  `.claude/board/rules.md` §5'i uygula:
132
133
  1. Tipe, PRD'ye ve seçilen stack'e göre kurul öner. Kurulun ne olduğunu kısaca anlat: Uzman ajanlar planı, görevi, her commit'i ve fazı denetler. Danışmandır; kritik bulguda durdurur; karar her zaman kullanıcıda.
133
134
  2. Üyeleri **çoklu seçimle** onaylat; yeni uzman eklenebileceğini söyle.
134
- 3. Model dağılımını onaylat (önerilen karma: Mimar + Güvenlik `sonnet`, diğerleri `haiku`). Pro planda tam kurul toplantısının tahmini maliyetini söyle (`docs/workflow/usage-limits.md`).
135
+ 3. Üyeler inceleme rolünün modeli ve effort'uyla çalışır (Adım 0e, `docs/workflow/models.md`); ayrıca sorma. Pro planda tam kurul toplantısının tahmini maliyetini söyle (`docs/workflow/usage-limits.md`).
135
136
  4. Commit denetimi açık mı kalsın? Varsayılan açık ve hafif: en fazla 2 üye, `haiku`, sadece diff.
136
137
  5. Ajan dosyalarını üret ve "Bu proje" bölümlerini doldur. `docs/workflow/board.md`'yi doldur.
137
138
  6. Yeni ajanların bir sonraki oturumda yükleneceğini söyle.
@@ -9,6 +9,7 @@ import { execFileSync } from 'node:child_process';
9
9
  import { readStatus, readText, sections, findSection, tally, tableRows } from './status-read.mjs';
10
10
  import { readLimits, summary, level, THRESHOLDS } from './usage.mjs';
11
11
  import { packageStatus, commandMode } from './tools.mjs';
12
+ import { readModels, modelsFile, modelsNote, ROLES } from './models.mjs';
12
13
  import { acceptanceStatus, accounts, flags, unitEconomics, feedback, learning, qaSummary, metrics, githubStatus, readContext, findingReports, FINDING_KINDS, producedAssets, costSummary, councilMinutes, spendAlarms, envWarnings, repeatedBugClasses } from './dashboard-data.mjs';
13
14
 
14
15
  const args = process.argv.slice(2);
@@ -297,7 +298,8 @@ const limitCard = (name, k) => {
297
298
  const limitSection = `
298
299
  <section class="card"><h3>Kullanım limiti</h3><div class="grid2 tight">${limitCard('5 saatlik', 'five_hour')}${limitCard('Haftalık', 'seven_day')}</div>
299
300
  <p class="muted small">${e(summary(limit))}</p>
300
- <h4>Bağlam penceresi</h4>${context ? `<div class="lim"><div class="lim-h"><b>Son oturum</b>${badge(context.percent >= 70 ? 'critical' : context.percent >= 50 ? 'warn' : 'good', `%${context.percent}`)}</div><div class="bar big ${context.percent >= 70 ? 'critical' : context.percent >= 50 ? 'warn' : 'good'}"><span style="width:${Math.min(100, context.percent)}%"></span><i style="left:50%"></i><i style="left:70%"></i></div><div class="muted small">%50'de /wrap-up + /clear önerilir · ${new Date(context.readAt).toLocaleString('tr-TR', { hour: '2-digit', minute: '2-digit' })} itibarıyla</div></div>` : empty('Bağlam bilgisi yok (durum çubuğu yazar).')}</section>
301
+ <h4>Bağlam penceresi</h4>${context ? `<div class="lim"><div class="lim-h"><b>Son oturum</b>${badge(context.percent >= 70 ? 'critical' : context.percent >= 50 ? 'warn' : 'good', `%${context.percent}`)}</div><div class="bar big ${context.percent >= 70 ? 'critical' : context.percent >= 50 ? 'warn' : 'good'}"><span style="width:${Math.min(100, context.percent)}%"></span><i style="left:50%"></i><i style="left:70%"></i></div><div class="muted small">%50'de /wrap-up + /clear önerilir · ${new Date(context.readAt).toLocaleString('tr-TR', { hour: '2-digit', minute: '2-digit' })} itibarıyla</div></div>` : empty('Bağlam bilgisi yok (durum çubuğu yazar).')}
302
+ <h4>Model ve effort · rol bazında</h4><div class="tw"><table><tbody>${Object.entries(readModels(modelsFile(root))).map(([r, v]) => `<tr><td>${e(ROLES[r])}</td><td class="nw">${e(v.replace(':', ' · '))}</td></tr>`).join('')}</tbody></table></div><p class="muted small">${modelsNote(modelsFile(root)) ? `${e(modelsNote(modelsFile(root)))}. ` : ''}/build her görevin başında sorar (docs/workflow/models.md).</p></section>
301
303
  <section class="card"><h3>Token ve maliyet · son 30 gün</h3>${tokenCost?.days.length ? (() => {
302
304
  const latest = tokenCost.days.slice(-14);
303
305
  const maxTokens = Math.max(...latest.map((g) => g.token));
@@ -0,0 +1,73 @@
1
+ #!/usr/bin/env node
2
+ // Model and effort per role (docs/workflow/models.md). /build, /start, /adopt and /release ask the user, then save the answer here.
3
+ // node .claude/hooks/models.mjs --show current choice (the recommended one if nothing is saved)
4
+ // node .claude/hooks/models.mjs --set plan=opus:high code=sonnet:high review=sonnet:high docs=haiku:high
5
+ // A role left out of --set keeps its current value. File: .claude/state/models.json (git-ignored, this project only).
6
+ // Aliases, not model IDs: in Claude Code opus/sonnet/haiku/fable always point to the newest model of that family.
7
+ import fs from 'node:fs';
8
+ import path from 'node:path';
9
+ import { findRoot, isMain } from './shared.mjs';
10
+
11
+ export const ROLES = { plan: 'Planlama ve mimari', code: 'Kod yazma', review: 'İnceleme ve denetim', docs: 'Doküman ve araştırma' };
12
+ export const RECOMMENDED = { plan: 'opus:high', code: 'sonnet:high', review: 'sonnet:high', docs: 'haiku:high' };
13
+ export const MODELS = ['opus', 'sonnet', 'haiku', 'fable'];
14
+ export const EFFORTS = ['low', 'medium', 'high', 'xhigh'];
15
+
16
+ export const modelsFile = (root = findRoot()) => path.join(root, '.claude', 'state', 'models.json');
17
+
18
+ const valid = (role, value) => {
19
+ const [model, effort, extra] = String(value).split(':');
20
+ return Object.hasOwn(ROLES, role ?? '') && MODELS.includes(model) && EFFORTS.includes(effort) && extra === undefined;
21
+ };
22
+
23
+ // Saved choice over the recommended one; a value that does not pass the check (hand edit) falls back to the recommended
24
+ export function readModels(file = modelsFile()) {
25
+ let saved = {};
26
+ try { saved = JSON.parse(fs.readFileSync(file, 'utf8')); } catch { /* none yet */ }
27
+ return Object.fromEntries(Object.keys(ROLES).map((r) => [r, valid(r, saved?.[r]) ? saved[r] : RECOMMENDED[r]]));
28
+ }
29
+
30
+ // pairs: ['code=sonnet:medium', ...]. Returns an error text or null.
31
+ export function setModels(pairs, file = modelsFile()) {
32
+ if (!pairs.length) return `Kullanım: --set ${Object.entries(RECOMMENDED).map(([r, v]) => `${r}=${v}`).join(' ')}`;
33
+ const next = readModels(file);
34
+ for (const pair of pairs) {
35
+ const [role, value, extra] = pair.toLowerCase().split('=');
36
+ if (extra !== undefined || !valid(role, value)) return `Geçersiz: "${pair}". Rol: ${Object.keys(ROLES).join(', ')} · model: ${MODELS.join(', ')} · effort: ${EFFORTS.join(', ')} (örnek code=sonnet:medium)`;
37
+ next[role] = value;
38
+ }
39
+ try {
40
+ fs.mkdirSync(path.dirname(file), { recursive: true });
41
+ fs.writeFileSync(file, JSON.stringify(next, null, 2) + '\n');
42
+ } catch (e) {
43
+ return `Dosya yazılamadı (${e.code ?? e.message}): ${file}`;
44
+ }
45
+ return null;
46
+ }
47
+
48
+ // '' when a saved choice is in use; otherwise why the recommended values are shown
49
+ export function modelsNote(file = modelsFile()) {
50
+ if (!fs.existsSync(file)) return 'kayıt yok: önerilenler';
51
+ try { JSON.parse(fs.readFileSync(file, 'utf8')); return ''; } catch { return 'kayıt okunamadı: önerilenler; --set ile yeniden yaz'; }
52
+ }
53
+
54
+ export const showModels = (file = modelsFile()) => {
55
+ const m = readModels(file);
56
+ const note = modelsNote(file);
57
+ return Object.keys(ROLES).map((r) => `${r}: ${m[r].replace(':', ' / ')} (${ROLES[r]})${m[r] === RECOMMENDED[r] ? '' : ` · önerilen ${RECOMMENDED[r].replace(':', ' / ')}`}`).join('\n')
58
+ + (note ? `\n(${note})` : '');
59
+ };
60
+
61
+ if (isMain(import.meta.url)) {
62
+ const [mode, ...rest] = process.argv.slice(2);
63
+ if (mode === '--set') {
64
+ const error = setModels(rest);
65
+ if (error) { console.error(error); process.exit(1); }
66
+ console.log(showModels());
67
+ } else if (mode === '--show') {
68
+ console.log(showModels());
69
+ } else {
70
+ console.error('Kullanım: --show | --set plan=<model>:<effort> code=… review=… docs=…');
71
+ process.exit(1);
72
+ }
73
+ }
@@ -23,7 +23,9 @@
23
23
  "Bash(node .claude/hooks/tools.mjs --required:*)",
24
24
  "Bash(node .claude/hooks/tools.mjs --measure)",
25
25
  "Bash(node .claude/hooks/tools.mjs --disable:*)",
26
- "Bash(node .claude/hooks/prefs.mjs --list)"
26
+ "Bash(node .claude/hooks/prefs.mjs --list)",
27
+ "Bash(node .claude/hooks/models.mjs --show)",
28
+ "Bash(node .claude/hooks/models.mjs --set:*)"
27
29
  ],
28
30
  "ask": [
29
31
  "Bash(git push:*)",
package/AGENTS.md CHANGED
@@ -36,6 +36,7 @@ Kit Claude Code için yazıldı; bu iki araçta şu karşılıklar geçerli:
36
36
  - **Komutlar** (`/start`, `/build`…) `.agents/skills/` altında skill olarak durur: Codex'te `$start` ya da `/skills`, Antigravity'de `/start`. Kaynakları `.claude/commands/`; skill kopyaları kit güncellemesinde yeniden üretilir, düzenleme kaynakta yapılır.
37
37
  - **AskUserQuestion** geçen her yerde: Antigravity'de `ask_question` aracı. Seçenekli soru aracı yoksa (Codex) seçenekleri numaralı liste olarak yaz, önerileni ilk sıraya koy ve "(Önerilen)" diye işaretle, cevabı bekle. Karar yine kullanıcınındır.
38
38
  - **Alt ajanlar** (kurul üyeleri, konsey, inceleme ajanları `.claude/agents/`): Çalıştıramıyorsan ilgili tanımı oku, o rolle kendin değerlendir ve raporda "tek model" diye belirt.
39
+ - **Model ve effort** (`docs/workflow/models.md`): Alt ajanı rolün karşılığıyla başlat (Codex: istemde model ve reasoning effort; Antigravity: `inherit`, `flash` ya da `pro`). Yapamıyorsan rolü kendin yürüt, modeli metinle öner.
39
40
  - **Korumalar** (sır engeli, yıkıcı komut kalkanı, yapı koruyucu, düzenleme kilidi, test koruması, düzenleme turu sayacı, paket kapısı ve Claude Code izin listesinin karşılığı) hook olarak çalışır: Codex `.codex/hooks.json`, Antigravity `.agents/hooks.json`. Kural ve koruma dosyalarına (`AGENTS.md`, `.claude/`, `.codex/`, `.agents/hooks.json`) yazma onaya bağlıdır. Engellenen işlemi başka yoldan (örneğin kabuk komutuyla) yapmaya çalışma; nedenini kullanıcıya söyle.
40
41
  - Claude Code eklentilerine ait skill'ler (adı `eklenti:skill` biçiminde) bu araçlarda yok: o adımı atla. Limit okuma ve durum çubuğu da yok: durum bloğunda limit "-" kalır.
41
42
  <!-- /kit:other-tools -->
@@ -50,6 +51,7 @@ Kit Claude Code için yazıldı; bu iki araçta şu karşılıklar geçerli:
50
51
  | `docs/product/roadmap.md` | Görev seçerken ve işaretlerken |
51
52
  | `docs/design/design-guide.md`, `DESIGN.md`, `PRODUCT.md` | Arayüz işinde |
52
53
  | `docs/quality/test-plan.md`, `docs/security/checklist.md` | Kritik akış, auth, veri, ödeme koduna dokunurken |
54
+ | `docs/workflow/models.md` | Alt ajan çağırırken (rolün modeli ve effort'u) |
53
55
  | `docs/ai/guide.md` (varsa) | Prompt veya model çağrısı işinde |
54
56
  | `docs/operations/accounts.md`, `docs/product/unit-economics.md` | Yeni dış servis, fiyat veya maliyet kararı |
55
57
  | `docs/operations/feature-flags.md` | Ödeme, AI, toplu bildirim, veri silen veya büyük arayüz değişikliği |
package/README.en.md CHANGED
@@ -6,7 +6,7 @@
6
6
  </p>
7
7
 
8
8
  <p align="center">
9
- <a href="kit/CHANGELOG.md"><img alt="Version" src="https://img.shields.io/badge/version-3.30.0-2a78d6?style=flat-square"></a>
9
+ <a href="kit/CHANGELOG.md"><img alt="Version" src="https://img.shields.io/badge/version-3.31.0-2a78d6?style=flat-square"></a>
10
10
  <a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-2a78d6?style=flat-square"></a>
11
11
  <img alt="Claude Code" src="https://img.shields.io/badge/Claude%20Code-ready-d97757?style=flat-square">
12
12
  <img alt="Also Codex and Antigravity" src="https://img.shields.io/badge/also-Codex%20%C2%B7%20Antigravity-5b6577?style=flat-square">
@@ -46,6 +46,7 @@
46
46
  | **Rollback** | `/rollback` returns to the last working state; history is kept, unfinished work is saved. |
47
47
  | **Narrator mode** | Optionally explains every change in plain language, as if to someone who doesn't code. |
48
48
  | **Learns how you work** | Picks up how you like to work (tone, questions, reports, code style). Preferences you approve apply to all your projects and stay on your computer. |
49
+ | **Model per role** | You pick the model and effort for planning, coding, review and docs at the start of each task. Coding, review and doc work go to subagents running on your choice. |
49
50
 
50
51
  ## Step by step for beginners
51
52
 
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  </p>
7
7
 
8
8
  <p align="center">
9
- <a href="kit/CHANGELOG.md"><img alt="Sürüm" src="https://img.shields.io/badge/s%C3%BCr%C3%BCm-3.30.0-2a78d6?style=flat-square"></a>
9
+ <a href="kit/CHANGELOG.md"><img alt="Sürüm" src="https://img.shields.io/badge/s%C3%BCr%C3%BCm-3.31.0-2a78d6?style=flat-square"></a>
10
10
  <a href="LICENSE"><img alt="Lisans: MIT" src="https://img.shields.io/badge/lisans-MIT-2a78d6?style=flat-square"></a>
11
11
  <img alt="Claude Code" src="https://img.shields.io/badge/Claude%20Code-haz%C4%B1r-d97757?style=flat-square">
12
12
  <img alt="Codex ve Antigravity" src="https://img.shields.io/badge/ayr%C4%B1ca-Codex%20%C2%B7%20Antigravity-5b6577?style=flat-square">
@@ -44,6 +44,7 @@
44
44
  | **Geri alma** | `/rollback` son çalışan hale döner; geçmiş silinmez, yarım iş saklanır. |
45
45
  | **Anlatıcı mod** | İstersen her değişikliği yazılım bilmeyen birine anlatır gibi sade Türkçe açıklar. |
46
46
  | **Seni tanır** | Nasıl çalışmak istediğini (konuşma, soru, rapor, kod tarzı) öğrenir. Onayladığın tercihler tüm projelerinde geçerli olur ve bilgisayarında kalır. |
47
+ | **Rol bazlı model** | Planlama, kod, inceleme ve doküman için modeli ve effort'u her görevin başında sen seçersin. Kod, inceleme ve doküman işleri seçtiğin modelde çalışan alt ajanlara gider. |
47
48
 
48
49
  ## Hiç bilmiyorsan: adım adım
49
50
 
@@ -0,0 +1,41 @@
1
+ # Model ve effort (rol bazında)
2
+
3
+ > Kit işi dört role ayırır. Her rolün modelini ve effort'unu (ne kadar düşüneceğini) sen seçersin.
4
+ > `/build` her görevin başında, `/start`, `/adopt` ve `/release` başlarken iki ekranda sorar: önce dört rolün modeli, sonra effort'u.
5
+ > Seçim `node .claude/hooks/models.mjs --set …` ile `.claude/state/models.json`'a yazılır (git'e girmez). Güncel seçimi `node .claude/hooks/models.mjs --show` gösterir.
6
+
7
+ ## Roller
8
+
9
+ | Rol | Anahtar | Kapsadığı işler | Önerilen |
10
+ |---|---|---|---|
11
+ | Planlama ve mimari | `plan` | Plan, mimari ve veri modeli kararları; PRD, README ve kullanıcıya görünen metin. Ana oturumda yürür. | Opus · yüksek |
12
+ | Kod yazma | `code` | Kabul testleri ve uygulama kodu. Alt ajana devredilir. | Sonnet · yüksek |
13
+ | İnceleme ve denetim | `review` | Kurul üyeleri, `code-reviewer`, `security-auditor`, bulgu raporları (`/findings-all`). | Sonnet · yüksek |
14
+ | Doküman ve araştırma | `docs` | Görev sonunda roadmap, progress ve maliyet günlüğü; CHANGELOG, rapor özeti; kod tarama, web araştırması (`/research` derin). Karar günlüğü karar anında ana oturumda yazılır. | Haiku · yüksek |
15
+
16
+ Effort ölçeği: düşük = `low`, orta = `medium`, yüksek = `high`, ekstra yüksek = `xhigh`. Effort arttıkça cevap yavaşlar ve limitten daha çok yer.
17
+
18
+ Opus en pahalı, Haiku en ucuz modeldir. Limit sarı veya kırmızıya döndüğünde en büyük tasarruf kod rolünü bir alt modele almaktır (`docs/workflow/usage-limits.md` §3). Güvenlik, veri modeli ve mimari kararlar planlama rolünde kalır.
19
+
20
+ ## Claude Code'da nasıl uygulanır
21
+
22
+ - **Ana oturum** planlama rolünü yürütür. Kit ana oturumun modelini değiştiremez: seçilen plan modeli veya effort'u oturumunkinden farklıysa AI tek satırla `/model <ad>` ve `/effort <düzey>` önerir.
23
+ - **Alt ajanlar:** Kod yazma, inceleme ve doküman işleri Agent aracıyla alt ajana gider. Çağrıda rolün `model` ve `effort` değeri verilir; çağrıdaki değer ajan dosyasındaki `model:` satırını ezer.
24
+ - **Takma adlar:** `opus`, `sonnet`, `haiku` (ayrıca `fable`) her zaman o ailenin en yeni modeline gider. Belirli bir sürüme sabitlemek için tam model kimliği ya da `ANTHROPIC_DEFAULT_OPUS_MODEL` (SONNET, HAIKU) ortam değişkeni.
25
+ - **Effort:** Alt ajan çağrısında effort Claude Code v2.1.292 ve sonrasında verilebilir. `CLAUDE_CODE_EFFORT_LEVEL` ortam değişkeni tanımlıysa bütün effort seçimlerini ezer. Bir model her düzeyi desteklemeyebilir.
26
+ - **Soru modu:** `maliyet` konusu kapalıysa soru gelmez, son seçim geçerli kalır.
27
+ - **İstisnalar:** Commit (hafif) kurul denetimi her commit'te çalıştığı için `haiku` ve `low` kalır (`.claude/board/rules.md`). Karar konseyi (`.claude/board/council.md`) bilerek farklı modelleri karşılaştırır; rol seçimi ona uygulanmaz.
28
+
29
+ Kaynak: code.claude.com/docs/en/sub-agents, code.claude.com/docs/en/model-config (2026-10-26).
30
+
31
+ ## Codex ve Antigravity
32
+
33
+ | | Codex | Antigravity |
34
+ |---|---|---|
35
+ | Ana oturum | Model seçici ve reasoning effort | Model seçici ve düşünme düzeyi (Low / Medium / High) |
36
+ | Alt ajan | `.codex/agents/<ad>.toml` → `model`, `model_reasoning_effort`. Başlatırken istemle de verilebilir; verilmezse ana oturumunkini alır. | `.agents/agents/<ad>.md` → `model: inherit`, `flash` ya da `pro`. Alt ajanda düşünme düzeyi yok. |
37
+ | Rol karşılığı | Opus ve Sonnet → güçlü model, Haiku → hızlı model (2026-10-26'da dokümanın önerisi: `gpt-6.1-sol` ve `gpt-6-luna`). Effort adları aynı: `low` … `xhigh`. | Opus ve Sonnet → `pro`, Haiku → `flash`. |
38
+
39
+ Seçenekli soru aracı yoksa (Codex) iki ekran numaralı liste olarak sorulur. Alt ajan çalıştıramıyorsan rolü kendin yürüt ve modeli metinle öner.
40
+
41
+ Kaynak: developers.openai.com/codex/subagents, antigravity.google/docs/subagents, antigravity.google/docs/models (2026-10-26).
@@ -50,7 +50,7 @@ Max planda yüzdeler daha düşüktür. Günlük doldukça tahmin kendini düzel
50
50
  - **Hepsini başlat, kesilirse yenilenince devam:** §4'teki uyarılarla devam et. Yenilenince devam için:
51
51
  - Masaüstü uygulamasında sıfırlanma saatine zamanlanmış görev kur (scheduled tasks). Görevin içeriği: "Bu projeyi aç, `docs/workflow/progress.md` → Kaldığı yer'den `/build` ile devam et."
52
52
  - Terminalde oturum açık kalacaksa sıfırlanma saatine tek seferlik bir hatırlatma/cron kur. Kalmayacaksa kullanıcıya sıfırlanma saatini söyle; tekrar açtığında oturum başı notu kaldığı yeri hatırlatır.
53
- - **Ucuz modele geçerek devam:** Kalan uygulama işini `model: "haiku"` (veya `"sonnet"`) verilen alt ajana devret. Ana ajan sadece koordine eder ve sonucu doğrular. Güvenlik, veri modeli ve mimari kararlar güçlü modelde kalır.
53
+ - **Ucuz modele geçerek devam:** Kod rolünü bir alt modele al (örn. `node .claude/hooks/models.mjs --set code=haiku:medium`; `docs/workflow/models.md`). Ana ajan sadece koordine eder ve sonucu doğrular. Güvenlik, veri modeli ve mimari kararlar planlama rolünde kalır.
54
54
  - **Kurulu hafiflet:** Plan ve görev sonu toplantılarına sadece `security-auditor` + `board-architect` katılır. Commit denetimini sadece kod dosyalarında yap, tek üyeyle.
55
55
  3. **Haftalık limit sarı veya kırmızıysa** ayrıca tek satırla uyar: Haftalık limit geç yenilenir.
56
56
  4. Kullanıcı bir seçenek seçtiyse kararı `docs/decisions/log.md` günlüğüne `maliyet` konusu olarak yaz.
package/kit/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  Kit sürümü `kit/VERSION` dosyasında. Bir projeyi güncellemek: projede `/kit-update`.
4
4
  "Elle uyarla" notu olan maddeler projeye ait dosyalardadır; güncelleme bunlara dokunmaz.
5
5
 
6
+ ## [3.31.0] - 2026-10-26
7
+
8
+ ### Yeni
9
+ - **Rol bazlı model ve effort.** İş dört role ayrıldı: planlama ve mimari, kod yazma, inceleme ve denetim, doküman ve araştırma. Her rolün modelini ve effort'unu sen seçersin (`docs/workflow/models.md`).
10
+ - `/build` her görevin başında iki ekranda sorar: önce dört rolün modeli (Opus / Sonnet / Haiku), sonra effort'u (düşük / orta / yüksek / ekstra yüksek). Önerilen: planlama Opus yüksek, kod Sonnet yüksek, inceleme Sonnet yüksek, doküman Haiku yüksek. `/start`, `/adopt` ve `/release` de başlarken aynı soruyu sorar.
11
+ - Seçim `node .claude/hooks/models.mjs --set …` ile `.claude/state/models.json`'a yazılır (git'e girmez); `--show` güncel seçimi gösterir.
12
+ - Kabul testleri ve kod seçilen kod modelinde çalışan bir alt ajana gider; ana oturum diff'i okur ve kapıyı kendisi koşar. Kurul, `code-reviewer` ve `security-auditor` inceleme rolüyle, görev sonundaki roadmap, maliyet günlüğü ve progress yazımı doküman rolüyle çalışır.
13
+ - Kod alt ajanı sana soru soramaz: karar noktasında durur, soruyu ana oturum sorar ve günlüğe yazar.
14
+ - Planlama ana oturumda kalır. Kit oturumun modelini değiştiremez; seçtiğin plan modeli ya da effort'u farklıysa AI `/model <ad>` ve `/effort <düzey>` önerir.
15
+ - Soru modunda `maliyet` konusunu kapattıysan soru gelmez, son seçimin geçerli kalır.
16
+ - `/findings-all` raporları inceleme rolüyle, `/research` derin araştırması doküman rolüyle çalışır.
17
+ - Kurul kurulurken model artık ayrıca sorulmaz; `/board setup`'taki "model değiştir" seçeneği kalktı. Commit kurul denetimi her commit'te çalıştığı için `haiku` ve düşük effort'ta kalır; karar konseyi bilerek farklı modelleri karşılaştırdığı için rol seçimi ona uygulanmaz.
18
+ - Pano: "Limit ve maliyet" sekmesinde rollerin güncel model ve effort seçimi görünür.
19
+ - Codex ve Antigravity karşılıkları `docs/workflow/models.md`'de, kaynak ve tarihle.
20
+ - Elle uyarla: AGENTS.md projeye ait. "Codex ve Antigravity'de" bölümüne model maddesi ve "Gerektiğinde oku" tablosuna `docs/workflow/models.md` satırı eklendi; istersen `.kit-new` dosyasından al. İzin satırları `/kit-update` ile eklenir.
21
+
6
22
  ## [3.30.0] - 2026-10-26
7
23
 
8
24
  ### Yeni
package/kit/VERSION CHANGED
@@ -1 +1 @@
1
- 3.30.0
1
+ 3.31.0
package/kit/guide.html CHANGED
@@ -287,7 +287,7 @@ footer .container { display: flex; flex-wrap: wrap; gap: 16px; justify-content:
287
287
  <section class="hero">
288
288
  <div class="container">
289
289
  <div>
290
- <span class="pill"><b>v3.30.0</b> Claude Code için başlangıç kiti · MIT</span>
290
+ <span class="pill"><b>v3.31.0</b> Claude Code için başlangıç kiti · MIT</span>
291
291
  <h1>Kodu AI yazar.<br><em>Dümen sende.</em></h1>
292
292
  <p class="sub">TillerHand, Claude Code ile bir ürünü fikirden canlıya ve bakıma kadar götürür. Her önemli kararda AI sana seçenekleri, önerisini ve her seçeneğin bedelini sunar. Bir uzman kurulu işi denetler, korumalar hatayı daha olmadan durdurur.</p>
293
293
  <div class="install"><span id="cmd">npx tillerhand init</span><button class="copy" type="button" data-copy="cmd">Kopyala</button></div>
@@ -623,7 +623,7 @@ node vibe-kit/kit/kit.mjs init
623
623
  <tr><td class="f">3 Kurulum</td><td><code>node kit/kit.mjs install</code> tipi ve klasör haritasını yerleştirir</td><td>-</td><td>-</td></tr>
624
624
  <tr><td class="f">4 Teknoloji</td><td>Tipin karar kataloğundaki 10-12 karar tek tek</td><td>"Veritabanı ve kimlik: Supabase / Neon + Better Auth / Firebase?"</td><td>research</td></tr>
625
625
  <tr><td class="f">5 Mimari</td><td>Veri modeli, giriş yöntemleri, roller, servisler ve maliyet, sözlük, birim ekonomisi</td><td>"Silinen fatura çöp kutusuna mı gitsin, kalıcı mı silinsin?"</td><td>domain-modeling, codebase-design</td></tr>
626
- <tr><td class="f">6 Kurul</td><td>Tipe göre önerilen uzman kurulu ve model dağılımı; ajanlar projede üretilir. Pahalı adım: önce maliyet, sonra "Yap / Hafif yap / Sonraya bırak"</td><td>"Kurulda kimler olsun?" (çoklu seçim)</td><td>-</td></tr>
626
+ <tr><td class="f">6 Kurul</td><td>Tipe göre önerilen uzman kurulu; üyeler inceleme rolünün modeliyle çalışır, ajanlar projede üretilir. Pahalı adım: önce maliyet, sonra "Yap / Hafif yap / Sonraya bırak"</td><td>"Kurulda kimler olsun?" (çoklu seçim)</td><td>-</td></tr>
627
627
  <tr><td class="f">7 Tasarım</td><td><code>/design general</code>: görsel önizlemelerle stil, renk, yazı tipi, detaylar. Pahalı adım: önce maliyet sorulur</td><td>"Bu üç açılış sayfasından hangisi?"</td><td>taste, impeccable, ui-ux-pro-max</td></tr>
628
628
  <tr><td class="f">8 Yol haritası</td><td>Kabul testi önce gelen görevler, ilk özellik, lansman hedefi</td><td>"Faz 1'de önce hangi özellikle başlayalım?"</td><td>-</td></tr>
629
629
  <tr><td class="f">9 Kapanış</td><td>Özet, sonraya bırakılan adımlar, ilk görev</td><td>-</td><td>-</td></tr>
@@ -721,10 +721,10 @@ node vibe-kit/kit/kit.mjs init
721
721
  <div class="table-wrap"><table>
722
722
  <thead><tr><th>Toplantı</th><th>Ne zaman</th><th>Kim</th><th>Model</th></tr></thead>
723
723
  <tbody>
724
- <tr><td>Plan · konsey</td><td>/plan-task sonunda, onaydan önce</td><td>Ürün + Mimar + ilgili üyeler (en fazla 4) + başkan</td><td>üyenin modeli · başkan opus</td></tr>
725
- <tr><td>Görev sonu</td><td>/build sonunda</td><td>İlgili üyeler (en fazla 3)</td><td>üyenin modeli</td></tr>
724
+ <tr><td>Plan · konsey</td><td>/plan-task sonunda, onaydan önce</td><td>Ürün + Mimar + ilgili üyeler (en fazla 4) + başkan</td><td>inceleme rolü · başkan opus</td></tr>
725
+ <tr><td>Görev sonu</td><td>/build sonunda</td><td>İlgili üyeler (en fazla 3)</td><td>inceleme rolü</td></tr>
726
726
  <tr><td>Commit (hafif)</td><td>Her commit öncesi; hook zorunlu kılar</td><td>İlgili en fazla 2 üye, sadece diff ve kapı çıktısı</td><td>haiku</td></tr>
727
- <tr><td>Faz sonu · canlıya alma</td><td>/board convene, /release first</td><td>Tüm kurul + başkan</td><td>üyenin modeli · başkan opus</td></tr>
727
+ <tr><td>Faz sonu · canlıya alma</td><td>/board convene, /release first</td><td>Tüm kurul + başkan</td><td>inceleme rolü · başkan opus</td></tr>
728
728
  <tr><td>Karar konseyi</td><td>Tek yönlü kapı kararı, /board council</td><td>3 danışman aynı soruyu cevaplar + başkan</td><td>haiku · sonnet · opus · başkan opus</td></tr>
729
729
  </tbody>
730
730
  </table></div>
@@ -894,6 +894,7 @@ Sıradaki: G-013 şifre sıfırlama · bekleyen karar: e-posta servisi</pre>
894
894
  <article class="tile"><h3>Dağıtım kurulumu</h3><p class="stack">/release first · deploy-setup.md</p><ul><li>Hosting, ortam değişkenleri, alan adı ve DNS, yedek, geri alma provası</li><li>Vercel, Supabase, Railway, EAS; adımlar kaynaklı ve tarihli</li><li>Sırrı sen panelde girersin; sohbete ve dosyaya yazılmaz</li></ul></article>
895
895
  <article class="tile"><h3>Öğrenen kurallar</h3><p class="stack">/fix-bug · /retro · hookify · AGENTS.md</p><ul><li>Aynı hata sınıfı ikinci kez gelince /fix-bug kural önerir; panoda da uyarı çıkar</li><li>Mekanik kural hookify'a, gerisi AGENTS.md'ye; sen onaylamadan yazılmaz</li><li>Her kuralda kaynak ve tarih; /maintain 90 günden eskileri sorar</li><li>Auto memory /start'ta sorulur, önerilen kapalı</li></ul></article>
896
896
  <article class="tile"><h3>Kişisel tercihler</h3><p class="stack">~/.vibe-kit/tercihler.md · prefs.mjs</p><ul><li>Bir davranışı düzelttiğinde ya da nasıl çalışmak istediğini söylediğinde AI not alır</li><li>Görev ve oturum sonunda "tercih olarak kaydedeyim mi?" diye sorar; onaylamadığın yazılmaz</li><li>Tercihler tüm projelerinde geçerli, her oturumda yüklenir; git'e girmez</li><li>Listele: <code>node .claude/hooks/prefs.mjs --list</code>, sil: <code>--remove &lt;no&gt;</code></li></ul></article>
897
+ <article class="tile"><h3>Rol bazlı model</h3><p class="stack">docs/workflow/models.md · models.mjs</p><ul><li>Dört rol: planlama, kod yazma, inceleme, doküman ve araştırma</li><li>Her görevin başında iki ekran: önce rollerin modeli, sonra effort'u</li><li>Önerilen: Opus yüksek, Sonnet yüksek, Sonnet yüksek, Haiku yüksek</li><li>Kod, inceleme ve doküman işleri seçilen modelle alt ajanda; plan ana oturumda</li></ul></article>
897
898
  <article class="tile"><h3>Türkiye eki</h3><p class="stack">--addons tr · docs/legal/turkiye.md</p><ul><li>KVKK yurt dışı aktarım: standart sözleşme, 5 iş günü bildirim</li><li>e-Fatura ve e-Arşiv eşikleri (GİB)</li><li>iyzico ve PayTR bildirim imzası kodu ve saldırgan testi</li><li>İ/ı ve Türkçe sıralama testleri; hukuki görüş değildir</li></ul></article>
898
899
  <article class="tile"><h3>Tarayıcıda QA ve önizleme</h3><p class="stack">/qa · preview.mjs · Playwright CLI</p><ul><li>Arayüz kriterleri gerçek tarayıcıda test olarak koşar</li><li>Rapor test sonucundan yazılır, panoda kart</li><li>/build arayüz görevinde masaüstü ve mobil ekran görüntüsü</li></ul></article>
899
900
  <article class="tile"><h3>Spec ve sapma kontrolü</h3><p class="stack">docs/product/specs/ · gate.mjs</p><ul><li>Mevcut, beklenen ve değişmemesi gereken davranış</li><li>"Değişmemesi gereken" satırların testi kapıda denetlenir</li><li>3+ dosyalık işte /plan-task, her hatada /fix-bug yazar</li></ul></article>
@@ -1054,7 +1055,7 @@ Sıradaki: G-013 şifre sıfırlama · bekleyen karar: e-posta servisi</pre>
1054
1055
  <footer>
1055
1056
  <div class="container">
1056
1057
  <a class="brand" href="#top" style="font-size:16px"><svg class="mark" style="width:22px;height:22px"><use href="#mark"/></svg>TillerHand</a>
1057
- <span>Sürüm 3.30.0 · <a href="https://github.com/burakdogrul/TillerHand">GitHub</a> · <a href="https://github.com/burakdogrul/TillerHand/blob/main/LICENSE">MIT lisansı</a> · KVKK bölümü kontrol listesidir, hukuki görüş değildir.</span>
1058
+ <span>Sürüm 3.31.0 · <a href="https://github.com/burakdogrul/TillerHand">GitHub</a> · <a href="https://github.com/burakdogrul/TillerHand/blob/main/LICENSE">MIT lisansı</a> · KVKK bölümü kontrol listesidir, hukuki görüş değildir.</span>
1058
1059
  </div>
1059
1060
  </footer>
1060
1061
 
package/kit/kit.mjs CHANGED
@@ -44,7 +44,7 @@ const PERSONAL = /(^|\/)(\.env(\.(?!example(\.|$))[^/]*)?|secrets\/.*|\.claude\/
44
44
  // The rest belong to the project (CLAUDE.md, PRD, stack, settings.json...); the update only adds them if missing.
45
45
  const KIT_OWNED = [
46
46
  /^\.claude\/(commands|agents|hooks|board|findings|skills)\//,
47
- /^docs\/(security\/checklist|operations\/(release-checklist|maintenance|deploy-setup)|legal\/(privacy-kvkk|turkiye)|workflow\/(decision-protocol|skills|usage-limits))\.md$/,
47
+ /^docs\/(security\/checklist|operations\/(release-checklist|maintenance|deploy-setup)|legal\/(privacy-kvkk|turkiye)|workflow\/(decision-protocol|skills|usage-limits|models))\.md$/,
48
48
  ];
49
49
  const isKitOwned = (rel) => KIT_OWNED.some((re) => re.test(rel));
50
50
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tillerhand",
3
- "version": "3.30.0",
3
+ "version": "3.31.0",
4
4
  "description": "Claude Code, Codex ve Antigravity için Türkçe vibe coding kiti: kurallar, komutlar, korumalar ve proje şablonları.",
5
5
  "license": "MIT",
6
6
  "type": "module",