tillerhand 3.43.0 → 3.47.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/.claude/agents/board-chair.md +20 -20
  2. package/.claude/agents/code-reviewer.md +20 -20
  3. package/.claude/agents/council-advisor.md +14 -14
  4. package/.claude/agents/security-auditor.md +30 -30
  5. package/.claude/agents/test-writer.md +22 -22
  6. package/.claude/board/board-ai.md +25 -25
  7. package/.claude/board/board-api.md +25 -25
  8. package/.claude/board/board-architect.md +28 -28
  9. package/.claude/board/board-devops.md +25 -25
  10. package/.claude/board/board-mobile.md +25 -25
  11. package/.claude/board/board-performance.md +24 -24
  12. package/.claude/board/board-privacy.md +25 -25
  13. package/.claude/board/board-product.md +26 -26
  14. package/.claude/board/board-qa.md +28 -28
  15. package/.claude/board/board-ux.md +26 -26
  16. package/.claude/board/council.md +76 -76
  17. package/.claude/board/rules.md +61 -61
  18. package/.claude/claude-security-guidance.md +10 -10
  19. package/.claude/commands/adopt.md +70 -69
  20. package/.claude/commands/ask-mode.md +9 -9
  21. package/.claude/commands/board.md +15 -15
  22. package/.claude/commands/build.md +47 -47
  23. package/.claude/commands/dashboard.md +17 -17
  24. package/.claude/commands/design.md +31 -31
  25. package/.claude/commands/findings-all.md +14 -14
  26. package/.claude/commands/findings-business.md +7 -7
  27. package/.claude/commands/findings-legal.md +7 -7
  28. package/.claude/commands/findings-perf.md +7 -7
  29. package/.claude/commands/findings-security.md +9 -9
  30. package/.claude/commands/findings-tech.md +7 -7
  31. package/.claude/commands/findings-ux.md +7 -7
  32. package/.claude/commands/fix-bug.md +15 -15
  33. package/.claude/commands/freeze.md +8 -8
  34. package/.claude/commands/handoff.md +38 -38
  35. package/.claude/commands/kit-update.md +17 -14
  36. package/.claude/commands/language.md +13 -0
  37. package/.claude/commands/maintain.md +19 -19
  38. package/.claude/commands/plan-task.md +32 -32
  39. package/.claude/commands/qa.md +17 -17
  40. package/.claude/commands/release.md +40 -40
  41. package/.claude/commands/research.md +31 -31
  42. package/.claude/commands/retro.md +32 -32
  43. package/.claude/commands/review-changes.md +15 -15
  44. package/.claude/commands/rollback.md +24 -24
  45. package/.claude/commands/start.md +116 -113
  46. package/.claude/commands/tools.md +11 -11
  47. package/.claude/commands/user-feedback.md +11 -11
  48. package/.claude/commands/wrap-up.md +18 -18
  49. package/.claude/findings/lenses/business.md +24 -24
  50. package/.claude/findings/lenses/legal.md +29 -29
  51. package/.claude/findings/lenses/perf.md +19 -19
  52. package/.claude/findings/lenses/security.md +30 -30
  53. package/.claude/findings/lenses/tech.md +23 -23
  54. package/.claude/findings/lenses/ux.md +19 -19
  55. package/.claude/findings/protocol.md +54 -54
  56. package/.claude/findings/report-template.md +30 -30
  57. package/.claude/hooks/budget.mjs +7 -7
  58. package/.claude/hooks/checkpoint.mjs +12 -12
  59. package/.claude/hooks/commit-gate.mjs +38 -37
  60. package/.claude/hooks/cost.mjs +2 -2
  61. package/.claude/hooks/council.mjs +3 -3
  62. package/.claude/hooks/dashboard-data.mjs +4 -3
  63. package/.claude/hooks/dashboard.mjs +164 -149
  64. package/.claude/hooks/destructive-guard.mjs +74 -64
  65. package/.claude/hooks/edit-rounds.mjs +3 -3
  66. package/.claude/hooks/flow.mjs +10 -10
  67. package/.claude/hooks/freeze-guard.mjs +27 -23
  68. package/.claude/hooks/gate.mjs +25 -25
  69. package/.claude/hooks/guard-secrets.mjs +11 -11
  70. package/.claude/hooks/lang.mjs +114 -0
  71. package/.claude/hooks/messages.mjs +495 -0
  72. package/.claude/hooks/models.mjs +14 -11
  73. package/.claude/hooks/notify.mjs +3 -2
  74. package/.claude/hooks/package-gate.mjs +17 -15
  75. package/.claude/hooks/plugins-sync.mjs +9 -9
  76. package/.claude/hooks/prefs.mjs +19 -19
  77. package/.claude/hooks/preview.mjs +11 -11
  78. package/.claude/hooks/progress.mjs +14 -14
  79. package/.claude/hooks/qa-report.mjs +11 -10
  80. package/.claude/hooks/reminder.mjs +6 -3
  81. package/.claude/hooks/session-start.mjs +23 -17
  82. package/.claude/hooks/shared.mjs +1 -1
  83. package/.claude/hooks/status-read.mjs +5 -4
  84. package/.claude/hooks/statusline.mjs +14 -11
  85. package/.claude/hooks/structure-guard.mjs +9 -9
  86. package/.claude/hooks/test-guard.mjs +12 -12
  87. package/.claude/hooks/tools.mjs +28 -29
  88. package/.claude/hooks/usage.mjs +18 -15
  89. package/.claude/output-styles/anlatici.md +28 -28
  90. package/.claude/security-patterns.json +3 -3
  91. package/.claude/settings.json +2 -0
  92. package/.claude/skills/logo-design/SKILL.md +42 -42
  93. package/.claude/skills/motion-video/SKILL.md +52 -52
  94. package/.claude/skills/source-research/SKILL.md +35 -35
  95. package/.claude/skills/ui-motion/SKILL.md +38 -38
  96. package/.github/workflows/kit-tests.yml +7 -7
  97. package/.github/workflows/npm-publish.yml +16 -16
  98. package/AGENTS.md +56 -56
  99. package/CHANGELOG.md +7 -7
  100. package/CLAUDE.md +5 -5
  101. package/README.md +199 -172
  102. package/README.tr.md +292 -0
  103. package/docs/architecture/overview.md +31 -31
  104. package/docs/architecture/stack.md +2 -2
  105. package/docs/archive/README.md +4 -4
  106. package/docs/decisions/adr-template.md +14 -14
  107. package/docs/decisions/log.md +10 -10
  108. package/docs/findings/README.md +13 -13
  109. package/docs/findings/config.md +13 -13
  110. package/docs/legal/privacy-kvkk.md +1 -1
  111. package/docs/operations/accounts.md +25 -25
  112. package/docs/operations/deploy-setup.md +64 -64
  113. package/docs/operations/feature-flags.md +17 -17
  114. package/docs/operations/maintenance.md +48 -48
  115. package/docs/operations/release-checklist.md +61 -61
  116. package/docs/operations/spend-alarms.md +28 -28
  117. package/docs/product/feedback.md +9 -8
  118. package/docs/product/glossary.md +16 -16
  119. package/docs/product/launch.md +28 -28
  120. package/docs/product/prd.md +43 -42
  121. package/docs/product/roadmap.md +31 -30
  122. package/docs/product/specs/_template.md +13 -12
  123. package/docs/product/unit-economics.md +23 -22
  124. package/docs/quality/metrics.md +14 -14
  125. package/docs/quality/retros.md +11 -11
  126. package/docs/quality/test-plan.md +48 -48
  127. package/docs/security/checklist.md +57 -57
  128. package/docs/workflow/board.md +7 -7
  129. package/docs/workflow/cost-log.md +4 -4
  130. package/docs/workflow/decision-protocol.md +70 -70
  131. package/docs/workflow/learning.md +4 -4
  132. package/docs/workflow/mcp-catalog.md +31 -31
  133. package/docs/workflow/models.md +35 -35
  134. package/docs/workflow/progress.md +7 -7
  135. package/docs/workflow/skills.md +108 -108
  136. package/docs/workflow/usage-limits.md +62 -62
  137. package/kit/CHANGELOG.md +882 -841
  138. package/kit/VERSION +1 -1
  139. package/kit/guide.html +713 -477
  140. package/kit/guide.tr.html +1328 -0
  141. package/kit/kit.mjs +56 -54
  142. package/kit/project/README.md +29 -29
  143. package/kit/project/gitignore +12 -12
  144. package/kit/templates/addons/ai/.env.example.append +5 -5
  145. package/kit/templates/addons/ai/ai/evals/README.md +11 -11
  146. package/kit/templates/addons/ai/ai/evals/cases.jsonl +2 -2
  147. package/kit/templates/addons/ai/ai/prompts/README.md +8 -8
  148. package/kit/templates/addons/ai/docs/ai/guide.md +56 -56
  149. package/kit/templates/backend/.claude/hooks/format.mjs +1 -1
  150. package/kit/templates/backend/.claude/structure.json +1 -1
  151. package/kit/templates/backend/.env.example +6 -6
  152. package/kit/templates/backend/.github/dependabot.yml +1 -1
  153. package/kit/templates/backend/.github/workflows/ci.yml +13 -13
  154. package/kit/templates/backend/.github/workflows/claude-ci-fix.yml +19 -19
  155. package/kit/templates/backend/.github/workflows/claude-maintenance.yml +18 -18
  156. package/kit/templates/backend/.github/workflows/live-monitoring.yml +14 -14
  157. package/kit/templates/backend/.pre-commit-config.yaml +3 -3
  158. package/kit/templates/backend/docs/architecture/stack.md +98 -98
  159. package/kit/templates/backend/docs/architecture/structure.md +34 -34
  160. package/kit/templates/mobile/.claude/structure.json +1 -1
  161. package/kit/templates/mobile/.env.example +6 -6
  162. package/kit/templates/mobile/.github/dependabot.yml +2 -2
  163. package/kit/templates/mobile/.github/workflows/ci.yml +18 -18
  164. package/kit/templates/mobile/.github/workflows/claude-ci-fix.yml +19 -19
  165. package/kit/templates/mobile/.github/workflows/claude-maintenance.yml +18 -18
  166. package/kit/templates/mobile/.gitignore.append +2 -2
  167. package/kit/templates/mobile/docs/architecture/stack.md +113 -113
  168. package/kit/templates/mobile/docs/architecture/structure.md +33 -33
  169. package/kit/templates/mobile/docs/design/design-guide.md +37 -37
  170. package/kit/templates/mobile/tests/security/rls.mjs +22 -22
  171. package/kit/templates/web-saas/.claude/structure.json +1 -1
  172. package/kit/templates/web-saas/.env.example +11 -11
  173. package/kit/templates/web-saas/.github/dependabot.yml +3 -3
  174. package/kit/templates/web-saas/.github/workflows/ci.yml +20 -20
  175. package/kit/templates/web-saas/.github/workflows/claude-ci-fix.yml +19 -19
  176. package/kit/templates/web-saas/.github/workflows/claude-maintenance.yml +18 -18
  177. package/kit/templates/web-saas/.github/workflows/live-monitoring.yml +12 -12
  178. package/kit/templates/web-saas/docs/architecture/stack.md +116 -116
  179. package/kit/templates/web-saas/docs/architecture/structure.md +44 -44
  180. package/kit/templates/web-saas/docs/design/design-guide.md +38 -38
  181. package/kit/templates/web-saas/tests/live/smoke.spec.ts +4 -4
  182. package/kit/templates/web-saas/tests/security/rls.mjs +22 -22
  183. package/kit/tools/codex/.codex/hooks.json +1 -1
  184. package/package.json +2 -2
  185. package/README.en.md +0 -267
@@ -1,75 +1,75 @@
1
- # Canlıya Alma Kontrol Listesi
1
+ # Go-Live Checklist
2
2
 
3
- > İlk lansmandan önce **tamamı**, sonraki her sürümde **"Her sürüm"** bölümü.
4
- > `/release` komutu otomatik kontrol edilebilenleri çalıştırır, gerisini sana sorar.
5
- > Tipe özel ek maddeler: `docs/architecture/stack.md` → "Canlıya alma".
6
- > İşaretler: ✅ tamam · ❌ eksik · ➖ bu projede geçerli değil
3
+ > Before the first launch, **all of it**; for every later release, the **"Every release"** section.
4
+ > The `/release` command runs the items that can be checked automatically and asks you about the rest.
5
+ > Project-type-specific extra items: `docs/architecture/stack.md` → "Go live (extra)".
6
+ > Marks: ✅ done · ❌ missing · ➖ not applicable to this project
7
7
 
8
- ## A. Her sürüm (her deploy öncesi)
8
+ ## A. Every release (before each deploy)
9
9
 
10
- - [ ] CI `main` dalında yeşil (testler, lint, tip kontrolü, build, sır taraması)
11
- - [ ] `docs/quality/test-plan.md` → manuel kontrol listesi yapıldı
12
- - [ ] Yeni ortam değişkenleri prod ortamına eklendi
13
- - [ ] DB migration varsa: **önce yedek**, sonra migration; migration geri alınabilir mi kontrol edildi
14
- - [ ] `CHANGELOG.md` güncellendi, sürüm numarası verildi
15
- - [ ] Geri alma (rollback) yolu biliniyor: [Örn: Vercel'de önceki deploy'a "Promote", `git revert`]
16
- - [ ] Deploy sonrası duman testi: ana sayfa, giriş, ana akış, hata takibinde yeni hata yok
10
+ - [ ] CI is green on the `main` branch (tests, lint, type check, build, secret scan)
11
+ - [ ] The manual checklist in `docs/quality/test-plan.md` was done
12
+ - [ ] New environment variables were added to the prod environment
13
+ - [ ] If there is a DB migration: **backup first**, then the migration; checked that the migration can be rolled back
14
+ - [ ] `CHANGELOG.md` updated, version number given
15
+ - [ ] The rollback path is known: [e.g. "Promote" the previous deploy in Vercel, `git revert`]
16
+ - [ ] Smoke test after deploy: home page, login, main flow, no new error in error tracking
17
17
 
18
- ## B. İlk lansman (bir kez, sonra yılda bir gözden geçir)
18
+ ## B. First launch (once, then review yearly)
19
19
 
20
- ### Kod ve kalite
21
- - [ ] `docs/product/roadmap.md` Faz 1-2 tamam
22
- - [ ] Kritik akış testleri (`docs/quality/test-plan.md` K1-K5) yeşil
23
- - [ ] Debug kodu, `console.log`, test verisi, sahte kullanıcılar temizlendi
24
- - [ ] 404, 500 ve bakım sayfaları/ekranları var
20
+ ### Code and quality
21
+ - [ ] `docs/product/roadmap.md` Phase 1-2 done
22
+ - [ ] Critical flow tests (`docs/quality/test-plan.md` K1-K5) are green
23
+ - [ ] Debug code, `console.log`, test data, fake users cleaned up
24
+ - [ ] 404, 500 and maintenance pages/screens exist
25
25
 
26
- ### Güvenlik
27
- - [ ] `docs/security/checklist.md` tüm maddeler tamam; `security-auditor` ajanı engelleyici bulgu vermedi
28
- - [ ] Prod anahtarları lokal/test anahtarlarından ayrı
29
- - [ ] GitHub: `main` dalı korumalı (CI zorunlu), Dependabot güvenlik güncellemeleri açık, gizli tarama (secret scanning) açık
30
- - [ ] AI özelliği varsa: `docs/ai/guide.md` → "Canlıya alma" tamam
31
- - [ ] Admin hesapları güçlü şifre + 2FA (hosting, DB, domain, e-posta, ödeme, kod deposu)
26
+ ### Security
27
+ - [ ] All items in `docs/security/checklist.md` are done; the `security-auditor` agent gave no blocking finding
28
+ - [ ] Prod keys are separate from local/test keys
29
+ - [ ] GitHub: `main` branch is protected (CI required), Dependabot security updates on, secret scanning on
30
+ - [ ] If there is an AI feature: `docs/ai/guide.md` → "Go live (add-on)" is done
31
+ - [ ] Admin accounts have a strong password + 2FA (hosting, DB, domain, email, payment, code repository)
32
32
 
33
- ### Yasal
34
- - [ ] `docs/legal/privacy-kvkk.md` metinleri yayında ve linkli
35
- - [ ] Çerez bandı çalışıyor, onay öncesi analitik yüklenmiyor
33
+ ### Legal
34
+ - [ ] The texts in `docs/legal/privacy-kvkk.md` are published and linked
35
+ - [ ] The cookie banner works, analytics does not load before consent
36
36
 
37
- ### Hesaplar, bayraklar, izleme
38
- - [ ] `docs/operations/accounts.md` eksiksiz: her servis, hesap sahibi, 2FA, bitiş tarihleri
39
- - [ ] Riskli özellikler bayrak arkasında; acil kapatma en az bir kez denendi (`docs/operations/feature-flags.md`)
40
- - [ ] Canlıda sentetik izleme açık (`.github/workflows/live-monitoring.yml`, `LIVE_URL` değişkeni tanımlı, 3 saatte bir), panoda "Canlı izleme · başarılı" görünüyor ve bir hata denemesiyle uyarı geldiği görüldü
41
- - [ ] `docs/product/unit-economics.md`: katkı payı pozitif, başa baş noktası biliniyor
42
- - [ ] Harcama alarmları: Ücretli her servisin tavanı veya uyarısı kurulu ve bir kez denendi (`docs/operations/spend-alarms.md`); AI/ücretli API çağrısında kullanıcı başı kota ve genel günlük bütçe var
43
- - [ ] Kabul testlerinin tamamı yeşil (MVP kriterleri)
44
- - [ ] Son `/qa` raporunda (`docs/quality/qa/`) "kaldı" yok; web projesinde arayüz kriterleri tarayıcıda koşuldu
37
+ ### Accounts, flags, monitoring
38
+ - [ ] `docs/operations/accounts.md` is complete: every service, account owner, 2FA, expiry dates
39
+ - [ ] Risky features are behind flags; the kill switch was tried at least once (`docs/operations/feature-flags.md`)
40
+ - [ ] Synthetic monitoring is on in production (`.github/workflows/live-monitoring.yml`, `LIVE_URL` variable defined, every 3 hours), the dashboard shows "Live monitoring · succeeded", and an alert was seen to arrive after a test failure
41
+ - [ ] `docs/product/unit-economics.md`: contribution margin is positive, break-even point is known
42
+ - [ ] Spend alarms: every paid service has a cap or alert set up and tried once (`docs/operations/spend-alarms.md`); an AI/paid API call has a per-user quota and a global daily budget
43
+ - [ ] All acceptance tests are green (MVP criteria)
44
+ - [ ] The last `/qa` report (`docs/quality/qa/`) has no "kaldı" (remaining) item; in a web project the interface criteria were run in the browser
45
45
 
46
- ### Altyapı
47
- > Adımlar sağlayıcıya göre `docs/operations/deploy-setup.md`'de (`/release first` → Dağıtım kurulumu).
48
- - [ ] Alan adı, SSL, `www` yönlendirmesi
49
- - [ ] Prod veritabanı ayrı proje/örnek; otomatik yedekleme açık
50
- - [ ] **Yedekten geri yükleme bir kez denendi** (denenmemiş yedek, yedek değildir)
51
- - [ ] E-posta gönderimi: alan adı doğrulandı (SPF, DKIM, DMARC), spam'e düşmüyor
52
- - [ ] Hata takibi (Sentry vb.) prod'da aktif, alarm e-postası/bildirim geliyor
53
- - [ ] Uptime izleme (UptimeRobot, Better Stack vb.) kuruldu
54
- - [ ] Log saklama süresi belirlendi
46
+ ### Infrastructure
47
+ > Steps by provider are in `docs/operations/deploy-setup.md` (`/release first` → Deploy setup).
48
+ - [ ] Domain, SSL, `www` redirect
49
+ - [ ] Prod database is a separate project/instance; automatic backup is on
50
+ - [ ] **Restore from backup was tried once** (an untried backup is not a backup)
51
+ - [ ] Email sending: domain verified (SPF, DKIM, DMARC), does not land in spam
52
+ - [ ] Error tracking (Sentry etc.) is active in prod, the alarm email/notification arrives
53
+ - [ ] Uptime monitoring (UptimeRobot, Better Stack etc.) is set up
54
+ - [ ] Log retention period is defined
55
55
 
56
- ### Maliyet
57
- - [ ] Tüm ücretli servislerde (hosting, DB, AI API, e-posta) harcama limiti/alarmı ayarlı
58
- - [ ] Ücretsiz katman limitleri biliniyor; aşınca ne olacağı (durma mı, faturalama mı?) biliniyor
59
- - [ ] Aylık tahmini maliyet `docs/architecture/overview.md` → dış servisler tablosunda
56
+ ### Cost
57
+ - [ ] A spend limit/alarm is set on all paid services (hosting, DB, AI API, email)
58
+ - [ ] Free tier limits are known; what happens when they are exceeded (stop or billing?) is known
59
+ - [ ] The estimated monthly cost is in `docs/architecture/overview.md` → the "External services" section
60
60
 
61
- ### Performans ve görünürlük
62
- - [ ] Tipe özel performans hedefleri (`docs/architecture/stack.md`) karşılandı
63
- - [ ] Analitik (gizlilik dostu) kuruldu, temel olaylar (kayıt, ana eylem) izleniyor
61
+ ### Performance and visibility
62
+ - [ ] Project-type-specific performance targets (`docs/architecture/stack.md`) are met
63
+ - [ ] Analytics (privacy-friendly) is set up, basic events (sign-up, main action) are tracked
64
64
 
65
- ### Hazırlık
66
- - [ ] `docs/product/launch.md` → "Lansman öncesi" tamam
67
- - [ ] Destek kanalı (e-posta/form) var ve biri bakıyor
68
- - [ ] `README.md`: kurulum, ortam değişkenleri, deploy adımları güncel
69
- - [ ] Tipe özel maddeler (`docs/architecture/stack.md` → "Canlıya alma") tamam
65
+ ### Preparation
66
+ - [ ] `docs/product/launch.md` → "Before launch" is done
67
+ - [ ] A support channel (email/form) exists and someone watches it
68
+ - [ ] `README.md`: setup, environment variables, deploy steps are current
69
+ - [ ] Project-type-specific items (`docs/architecture/stack.md` → "Go live (extra)") are done
70
70
 
71
- ## C. Lansman sonrası ilk 72 saat
71
+ ## C. First 72 hours after launch
72
72
 
73
- - [ ] Hata takibi günde 2 kez kontrol
74
- - [ ] Maliyet paneli günde 1 kez kontrol
75
- - [ ] İlk kullanıcı geri bildirimleri `docs/product/roadmap.md` → Faz 4'e eklendi
73
+ - [ ] Check error tracking twice a day
74
+ - [ ] Check the cost panel once a day
75
+ - [ ] First user feedback was added to `docs/product/roadmap.md` → "Faz 4" (Phase 4)
@@ -1,45 +1,45 @@
1
- # Harcama Alarmları
1
+ # Spend Alarms
2
2
 
3
- > Canlıdaki ürünün faturası sessizce büyüyebilir. AI çağrısı yapan bir döngü, bot trafiği veya sızan bir API anahtarı bir gecede aylık bütçeyi bitirebilir. Bu dosya ücretli her servis için **tavanı** (aşılınca durur) ve **uyarıyı** (eşikte haber verir) kayıt altına alır.
4
- > Bu, Claude Code limitinden ayrı bir şey: Burada konu senin ürününün kendi faturası.
5
- > `/dashboard` panosu (Operasyon sekmesi) aşağıdaki tabloyu okur. Limiti boş olan ücretli satırı "ayarlanmadı" diye işaretler.
3
+ > The bill of a live product can grow silently. A loop that calls an AI, bot traffic or a leaked API key can use up the monthly budget overnight. For every paid service, this file records the **cap** (stops when exceeded) and the **alert** (warns at a threshold).
4
+ > This is separate from the Claude Code limit: here the subject is your own product's bill.
5
+ > The `/dashboard` dashboard (Operations tab) reads the table below. It marks a paid row with an empty limit as "not set".
6
6
 
7
7
  ## Alarmlar
8
8
 
9
- Her ücretli servis için bir satır. **Tür:** `tavan` (servis durur veya istek reddedilir) ya da `uyarı` (sadece haber verir). **Tutar:** aylık, para birimiyle (örn. `50 USD`). **Son kontrol:** `YYYY-AA-GG`.
9
+ One row per paid service. **Type:** `cap` (cap: the service stops or requests are rejected) or `alert` (alert: only warns). **Amount:** monthly, with currency (e.g. `50 USD`). **Last check:** `YYYY-AA-GG`.
10
10
 
11
- | Servis | Tür | Tutar | Uyarı eşikleri | Nereden ayarlandı | Son kontrol |
11
+ | Service | Type | Amount | Alert thresholds | Set up at | Last check |
12
12
  |---|---|---|---|---|---|
13
13
 
14
- ## Sağlayıcıların sunduğu ayarlar
14
+ ## Settings the providers offer
15
15
 
16
- Doğrulama tarihi: 2026-10-12. Panel yerleri ve özellikler değişebilir. Kurmadan önce `source-research` ile güncel dokümana bak.
16
+ Verified: 2026-10-12. Panel locations and features can change. Before setting up, check the current docs with `source-research`.
17
17
 
18
- | Servis | Ne var | Durdurur mu? |
18
+ | Service | What exists | Does it stop? |
19
19
  |---|---|---|
20
- | Anthropic (Claude API) | Console'da organizasyon ve workspace bazında aylık harcama limiti | Evet. Limit dolunca istekler hata döner. Her ürün için ayrı bir workspace aç. |
21
- | OpenAI | Proje bazında bütçe uyarıları; yeni hesaplarda sert limit de olabilir | Uyarılar durdurmaz. Sert limit varsa limit dolunca istek 429 döner. Panelden kontrol et. |
22
- | Vercel | Spend Management (Pro): %50, %75 ve %100'de bildirim, webhook | Varsayılan olarak durdurmaz. "Projeleri duraklat" seçeneği ayrıca açılmalı. |
23
- | Supabase | Pro planda harcama tavanı (spend cap) varsayılan açık | Evet, tavan açıksa kota aşımı faturalanmaz. Kapatırsan durdurmaz. |
24
- | Google Cloud / Firebase | Bütçe ve uyarı (Budgets & alerts) | Hayır, sadece haber verir. Durdurmak için ek otomasyon gerekir. |
20
+ | Anthropic (Claude API) | Monthly spend limit per organization and workspace in the Console | Yes. When the limit is reached, requests return an error. Open a separate workspace for each product. |
21
+ | OpenAI | Budget alerts per project; new accounts may also have a hard limit | Alerts do not stop. If a hard limit exists, requests return 429 when it is reached. Check in the panel. |
22
+ | Vercel | Spend Management (Pro): notifications and a webhook at 50%, 75% and 100% | Does not stop by default. The "pause projects" option must be turned on separately. |
23
+ | Supabase | On the Pro plan the spend cap is on by default | Yes, while the cap is on, quota overage is not billed. If you turn it off, it does not stop. |
24
+ | Google Cloud / Firebase | Budgets & alerts | No, it only warns. Stopping needs extra automation. |
25
25
 
26
- Kural: Durdurmayan servislerde uyarıyı en az iki eşikte kur (%50 ve %80). Uyarıların gideceği e-posta adresi gerçekten okunan bir adres olmalı.
26
+ Rule: For services that do not stop, set the alert at two thresholds at least (50% and 80%). The email address the alerts go to must be one that is actually read.
27
27
 
28
- ## Uygulama içi koruma (kodda)
28
+ ## In-app protection (in code)
29
29
 
30
- Sağlayıcı limiti son savunmadır. Ondan önce ürünün kendisi harcamayı sınırlar. AI veya ücretli API çağrısı yapan her özellikte:
30
+ The provider limit is the last defense. Before it, the product itself limits spending. For every feature that calls an AI or a paid API:
31
31
 
32
- 1. **Kullanıcı başı kota:** Günlük veya aylık istek ya da token sınırı olur. Aşılınca anlaşılır bir mesaj gösterilir ("Bugünkü hakkın doldu, yarın yenilenir"). Kota sunucuda tutulur, istemciye güvenilmez.
33
- 2. **Genel günlük bütçe:** Tüm kullanıcıların o günkü tahmini harcaması toplanır.
34
- - Bütçenin %80'inde: Uyarı gönderilir (e-posta ve hata takibi).
35
- - Bütçenin %100'ünde: Özellik bayrağı (`docs/operations/feature-flags.md`) otomatik kapanır. Kullanıcıya "geçici olarak kullanılamıyor" mesajı gösterilir.
36
- 3. **Her çağrı loglanır:** özellik, model, girdi ve çıktı token sayısı, tahmini maliyet, kullanıcı id. İçerik loglanmaz (KVKK).
37
- 4. **Kötüye kullanım:** Kayıt olmadan AI çağrısı yapılamaz. İstek hızı sınırı (rate limit) ve bot koruması vardır.
32
+ 1. **Per-user quota:** There is a daily or monthly limit on requests or tokens. When it is exceeded, a clear message is shown ("You have used today's allowance, it renews tomorrow"). The quota is kept on the server; do not trust the client.
33
+ 2. **Global daily budget:** The estimated spend of all users for that day is summed.
34
+ - At 80% of the budget: send an alert (email and error tracking).
35
+ - At 100% of the budget: the feature flag (`docs/operations/feature-flags.md`) turns off automatically. The user sees a "temporarily unavailable" message.
36
+ 3. **Log every call:** feature, model, input and output token counts, estimated cost, user id. Do not log the content (KVKK).
37
+ 4. **Abuse:** No AI call without signing up. There is a rate limit and bot protection.
38
38
 
39
- Bu kuralların uygulanma yöntemi `docs/architecture/stack.md`'ye, AI ekinde `docs/ai/guide.md` → "Maliyet kontrolü"ne yazılır.
39
+ How these rules are implemented is written in `docs/architecture/stack.md` and, in the AI add-on, in `docs/ai/guide.md` → "Cost control".
40
40
 
41
- ## Ne zaman kontrol edilir
41
+ ## When it is checked
42
42
 
43
- - **`/start` Adım 5 (dış servisler):** Ücretli seçilen her servis için tabloya bir satır eklenir.
44
- - **`/release`:** Ücretli her servisin tavanı veya uyarısı kurulmuş ve bir kez test edilmiş olmalıdır. Test: düşük bir eşikle uyarının geldiği görülür.
45
- - **`/maintain` haftalık:** Alarm tetiklendi mi? Gerçek harcama, `docs/product/unit-economics.md`'deki tahminle uyumlu mu?
43
+ - **`/start` Step 5 (external services):** A row is added to the table for every paid service chosen.
44
+ - **`/release`:** The cap or alert of every paid service must be set up and tested once. Test: with a low threshold, see the alert arrive.
45
+ - **`/maintain` weekly:** Did an alarm fire? Does the real spend match the estimate in `docs/product/unit-economics.md`?
@@ -1,19 +1,20 @@
1
- # Kullanıcı Geri Bildirimi
1
+ # User Feedback
2
2
 
3
- > Kullanıcıların sesi. `/user-feedback` komutu yeni geri bildirimleri buraya işler, Ürün kurul üyesiyle önceliklendirir,
4
- > hangilerinin yol haritasına gireceğini sana sorar. `/dashboard` panosu açık geri bildirimleri ve öne çıkan temaları gösterir.
5
- > Kişisel veri yazma: kullanıcıyı anonim etiketle (K-001) belirt.
3
+ > The voice of the users. The `/user-feedback` command puts new feedback here, prioritizes it with the Product board member,
4
+ > and asks you which items go into the roadmap. `/dashboard` shows open feedback and the leading themes.
5
+ > The headings "Gelen kutusu" (inbox) and "Temalar" (themes) stay Turkish: the dashboard reads them.
6
+ > Do not write personal data: label the user anonymously (K-001).
6
7
 
7
8
  ## Gelen kutusu
8
9
 
9
- Tür: `hata` / `istek` / `şikayet` / `övgü` / `soru`. Durum: `yeni` / `planlandı` / `yapıldı` / `reddedildi` / `birleşti`.
10
+ Types: `hata` / `istek` / `şikayet` / `övgü` / `soru`. Statuses: `yeni` / `planlandı` / `yapıldı` / `reddedildi` / `birleşti`.
10
11
 
11
- | # | Tarih | Kaynak | Kullanıcı | Özet | Tür | Tema | Öncelik | Durum | Görev |
12
+ | # | Date | Source | User | Summary | Type | Theme | Priority | Status | Task |
12
13
  |---|---|---|---|---|---|---|---|---|---|
13
14
 
14
15
  ## Temalar
15
16
 
16
- Benzer geri bildirimler bir temada toplanır. Aynı temada 3+ geri bildirim varsa güçlü sinyaldir.
17
+ Similar feedback is collected under one theme. 3+ feedback items in the same theme is a strong signal.
17
18
 
18
- | Tema | Geri bildirim sayısı | Etkilenen özellik | Karar |
19
+ | Theme | Feedback count | Affected feature | Decision |
19
20
  |---|---|---|---|
@@ -1,27 +1,27 @@
1
- # Sözlük
1
+ # Glossary
2
2
 
3
- > Projedeki her kavramın **tek** adı. AI aynı şeye bir yerde `customer`, bir yerde `client`, ekranda "Üye" derse
4
- > kod ve arayüz dağılır. Yeni bir kavram çıktığında önce buraya eklenir, sonra kodda kullanılır.
5
- > `/start` PRD'den ilk terimleri çıkarır.
3
+ > **One** name for every concept in the project. If the AI says `customer` in one place, `client` in another and "Member" on screen,
4
+ > the code and the interface fall apart. When a new concept appears, add it here first, then use it in code.
5
+ > `/start` pulls the first terms from the PRD.
6
6
 
7
- | Terim (arayüzde) | Kodda | Tanım | Bunlarla karıştırma / kullanma |
7
+ | Term (in the UI) | In code | Definition | Do not confuse with / do not use |
8
8
  |---|---|---|---|
9
- | [Müşteri] | `customer` | [Fatura kesilen kişi veya şirket] | `client` (HTTP istemcisiyle karışır), "Üye" |
10
- | [Fatura] | `invoice` | [...] | `bill` |
11
- | [Kullanıcı] | `user` | Uygulamaya giriş yapan hesap | Müşteri ile aynı şey değil |
9
+ | [Customer] | `customer` | [The person or company that is invoiced] | `client` (clashes with the HTTP client), "Member" |
10
+ | [Invoice] | `invoice` | [...] | `bill` |
11
+ | [User] | `user` | The account that signs in to the app | Not the same thing as Customer |
12
12
 
13
- ## Durumlar (status alanları)
13
+ ## States (status fields)
14
14
 
15
- Bir kaydın alabileceği durumlar ve geçişler. AI'nın yeni durum uydurmasını engeller.
15
+ The states a record can have and the transitions between them. This stops the AI from inventing a new state.
16
16
 
17
17
  ```
18
- [invoice.status]: taslak (draft) → gönderildi (sent) → ödendi (paid)
19
- ↘ gecikti (overdue) → ödendi (paid)
18
+ [invoice.status]: draft → sent → paid
19
+ ↘ overdue → paid
20
20
  taslak → iptal (cancelled)
21
21
  ```
22
22
 
23
- ## Yazım kuralları
23
+ ## Writing rules
24
24
 
25
- - Kod: İngilizce (`camelCase` değişken, `PascalCase` bileşen/tip, `snake_case` DB alanı).
26
- - Arayüz metni: Türkçe; "siz" mi "sen" mi? → [seç: sen]
27
- - Tarih: `GG.AA.YYYY`, para: `1.234,56 ₺` (`Intl` ile `tr-TR`).
25
+ - Code: English (`camelCase` variable, `PascalCase` component/type, `snake_case` DB field).
26
+ - UI text: Turkish; formal or informal "you" ("siz" or "sen")? → [pick: sen]
27
+ - Date: `GG.AA.YYYY`, money: `1.234,56 ₺` (`tr-TR` with `Intl`).
@@ -1,43 +1,43 @@
1
- # Lansman
1
+ # Launch
2
2
 
3
- > Teknik canlıya alma `docs/operations/release-checklist.md`'de. Bu dosya ürünün **kullanıcıya ulaşması** için.
4
- > Kişisel bir araç veya iç proje ise bu dosyayı sil.
3
+ > Technical go-live is in `docs/operations/release-checklist.md`. This file is for the product **reaching users**.
4
+ > If this is a personal tool or an internal project, delete this file.
5
5
 
6
- ## 1. Lansman öncesi
6
+ ## 1. Before launch
7
7
 
8
- - [ ] **Tek cümlelik değer önerisi** (`docs/product/prd.md` §3) açılış sayfasının başlığında.
9
- - [ ] Açılış sayfası: ne yapar, kimin için, nasıl görünür (ekran görüntüsü/video), tek bir çağrı (kayıt / bekleme listesi).
10
- - [ ] Bekleme listesi veya erken erişim formu (lansmandan haftalar önce açılırsa ilk kullanıcılar hazır olur).
11
- - [ ] Analitik olayları tanımlandı ve çalışıyor:
8
+ - [ ] **One-sentence value proposition** (`docs/product/prd.md` §3) in the landing page headline.
9
+ - [ ] Landing page: what it does, who it is for, how it looks (screenshot/video), a single call to action (sign up / waitlist).
10
+ - [ ] Waitlist or early-access form (if it opens weeks before launch, the first users are ready).
11
+ - [ ] Analytics events defined and working:
12
12
 
13
- | Olay | Ne zaman tetiklenir | Neden önemli |
13
+ | Event | When it fires | Why it matters |
14
14
  |---|---|---|
15
- | `signup` | Kayıt tamamlandı | Edinim |
16
- | `activated` | [İlk değer anı: örn. ilk faturayı gönderdi] | Aktivasyon |
17
- | `[ana_eylem]` | [Ürünün ana eylemi] | Kullanım |
18
- | `upgrade` | Ücretli plana geçti | Gelir |
15
+ | `signup` | Signup completed | Acquisition |
16
+ | `activated` | [First moment of value: e.g. sent their first invoice] | Activation |
17
+ | `[ana_eylem]` | [The product's main action] | Usage |
18
+ | `upgrade` | Moved to a paid plan | Revenue |
19
19
 
20
- - [ ] Geri bildirim kanalı: uygulama içi form veya e-posta, kolay görünür yerde.
21
- - [ ] Sosyal paylaşım görselleri (Open Graph), favicon, uygulama ikonu.
20
+ - [ ] Feedback channel: an in-app form or email, in an easy-to-see place.
21
+ - [ ] Social sharing images (Open Graph), favicon, app icon.
22
22
 
23
- ## 2. Kanallar
23
+ ## 2. Channels
24
24
 
25
- | Kanal | Hedef kitle uyuyor mu? | Hazırlık | Tarih |
25
+ | Channel | Does it fit the target audience? | Preparation | Date |
26
26
  |---|---|---|---|
27
- | [Kişisel ağ / LinkedIn / X] | | Kısa demo videosu | |
28
- | [Hedef kitlenin olduğu topluluklar, forumlar, gruplar] | | Topluluk kurallarını oku, spam yapma | |
29
- | [Product Hunt vb.] | | | |
30
- | [İçerik / SEO] | | Problemi anlatan 1-2 yazı | |
27
+ | [Personal network / LinkedIn / X] | | Short demo video | |
28
+ | [Communities, forums, groups where the target audience is] | | Read the community rules, do not spam | |
29
+ | [Product Hunt etc.] | | | |
30
+ | [Content / SEO] | | 1-2 posts that explain the problem | |
31
31
 
32
- ## 3. İlk 30 gün
32
+ ## 3. First 30 days
33
33
 
34
- - [ ] İlk 10 kullanıcıyla birebir konuş: Neden kaydoldu, nerede takıldı, neyi bekliyordu?
35
- - [ ] Haftalık metrik bakışı (aşağıdaki tablo).
36
- - [ ] Geri bildirimleri `docs/product/roadmap.md` → Faz 4'e görev olarak ekle; en çok tekrar edenden başla.
37
- - [ ] `docs/product/prd.md` §4 başarı kriterleriyle karşılaştır: Hedefe yakın mı, yön değiştirmek gerekiyor mu?
34
+ - [ ] Talk one-on-one with the first 10 users: Why did they sign up, where did they get stuck, what did they expect?
35
+ - [ ] Weekly metrics review (table below).
36
+ - [ ] Add the feedback as tasks to `docs/product/roadmap.md` → Faz 4; start with the most repeated one.
37
+ - [ ] Compare with the `docs/product/prd.md` §4 success criteria: Is it close to the target, or is a change of direction needed?
38
38
 
39
- ## 4. Metrik takibi
39
+ ## 4. Metrics tracking
40
40
 
41
- | Hafta | Yeni kayıt | Aktivasyon oranı | Haftalık aktif | 1. hafta tutunma | Gelir | Not |
41
+ | Week | New signups | Activation rate | Weekly active | Week 1 retention | Revenue | Note |
42
42
  |---|---|---|---|---|---|---|
43
43
  | | | | | | | |
@@ -1,76 +1,77 @@
1
- # Ürün Gereksinimleri (PRD)
1
+ # Product Requirements (PRD)
2
2
 
3
- > Aşama: **0 - Fikir**. Kod yazmadan önce doldurulur. `/start` komutu bu dosyayı seninle birlikte doldurur.
4
- > Son güncelleme: [YYYY-AA-GG]
3
+ > Stage: **0 - Idea**. Fill it in before writing code. The `/start` command fills this file in together with you.
4
+ > Last updated: [YYYY-AA-GG]
5
5
 
6
6
  ## 1. Problem
7
7
 
8
- [Kim, hangi durumda, neyi yapamıyor veya neyi zor yapıyor? 2-3 cümle.]
8
+ [Who cannot do what, or finds what hard to do, and in which situation? 2-3 sentences.]
9
9
 
10
- ## 2. Hedef kullanıcı
10
+ ## 2. Target user
11
11
 
12
- | Persona | Kim? | En büyük derdi | Şu an ne kullanıyor? |
12
+ | Persona | Who? | Biggest pain | What do they use now? |
13
13
  |---|---|---|---|
14
- | [Birincil] | | | |
15
- | [İkincil] | | | |
14
+ | [Primary] | | | |
15
+ | [Secondary] | | | |
16
16
 
17
- ## 3. Değer önerisi
17
+ ## 3. Değer önerisi (value proposition)
18
18
 
19
- [Tek cümle: "[Kullanıcı], [ürün] sayesinde [sonuç] elde eder, çünkü [fark]."]
19
+ [One sentence: "With [product], [user] gets [result], because [difference]."]
20
20
 
21
- ## 4. Başarı kriterleri (ölçülebilir)
21
+ ## 4. Success criteria (measurable)
22
22
 
23
- - [ ] [Örn: İlk 30 günde 50 kayıtlı kullanıcı]
24
- - [ ] [Örn: Kayıttan ilk değere ulaşma süresi < 3 dakika]
25
- - [ ] [Örn: Aylık altyapı maliyeti < X TL]
23
+ - [ ] [E.g. 50 registered users in the first 30 days]
24
+ - [ ] [E.g. time from signup to first value < 3 minutes]
25
+ - [ ] [E.g. monthly infrastructure cost < X TL]
26
26
 
27
- ## 5. MVP kapsamı
27
+ ## 5. MVP scope
28
28
 
29
- Her özellik bir kullanıcı hikayesi + kabul kriterleri. Kabul kriteri yoksa özellik hazır değildir.
30
- Her kriterin bir kimliği var (`Ö-01.1`). Kabul testleri bu kimliği test adında taşır; `/dashboard` panosu MVP ilerlemesini kutucuklardan değil **test sonuçlarından** okur (`docs/quality/test-plan.md` §1a).
29
+ Each feature is a user story + acceptance criteria. A feature without acceptance criteria is not ready.
30
+ Each criterion has an id (`Ö-01.1`). Acceptance tests carry this id in the test name; the `/dashboard` reads MVP progress from **test results**, not from checkboxes (`docs/quality/test-plan.md` §1a).
31
+ The label "Öncelik" (priority) stays Turkish: the dashboard reads it.
31
32
 
32
- ### Ö-01: [Özellik adı]
33
- **Hikaye:** [Kullanıcı] olarak [eylem] yapmak istiyorum, böylece [fayda].
34
- **Kabul kriterleri:**
35
- - [ ] Ö-01.1: [Gözlemlenebilir davranış: "Geçersiz e-posta girilince form gönderilmez ve hata mesajı gösterilir"]
33
+ ### Ö-01: [Feature name]
34
+ **Story:** As a [user], I want to [action], so that [benefit].
35
+ **Acceptance criteria:**
36
+ - [ ] Ö-01.1: [Observable behavior: "When an invalid email is entered, the form is not sent and an error message is shown"]
36
37
  - [ ] Ö-01.2: [...]
37
- **Öncelik:** Olmazsa olmaz / Olsa iyi olur
38
+ **Öncelik:** Must have / Nice to have
38
39
 
39
- ### Ö-02: [Özellik adı]
40
+ ### Ö-02: [Feature name]
40
41
  ...
41
42
 
42
- ## 6. Kapsam dışı (bu sürümde YAPILMAYACAK)
43
+ ## 6. Kapsam dışı (out of scope: NOT built in this release)
43
44
 
44
- Bu liste AI'nın kapsamı genişletmesini engeller. Aklına gelen her "sonra" fikrini buraya yaz.
45
+ This list stops the AI from widening the scope. Write every "later" idea that comes to mind here.
45
46
 
46
- - [Örn: Çoklu dil desteği]
47
- - [Örn: Takım/organizasyon hesapları]
48
- - [Örn: Mobil uygulama]
47
+ - [E.g. Multi-language support]
48
+ - [E.g. Team/organization accounts]
49
+ - [E.g. Mobile app]
49
50
 
50
- ## 7. Ana kullanıcı akışları
51
+ ## 7. Main user flows
51
52
 
52
53
  ```
53
- [Akış 1: Kayıt] Açılış → Kayıt ol → E-posta doğrula → Onboarding → Panel
54
- [Akış 2: ...]
54
+ [Flow 1: Sign-up] Landing → Sign up → Verify email → Onboarding → Dashboard
55
+ [Flow 2: ...]
55
56
  ```
56
57
 
57
- ## 8. Ekranlar / uç noktalar listesi
58
+ ## 8. List of screens / endpoints
58
59
 
59
- | Ad | Tür (sayfa/ekran/endpoint) | Kimler erişir | İlgili özellik |
60
+ | Name | Type (page/screen/endpoint) | Who can access | Related feature |
60
61
  |---|---|---|---|
61
62
  | | | | |
62
63
 
63
- ## 9. Kısıtlar
64
+ ## 9. Constraints
64
65
 
65
- - **Bütçe:** [aylık altyapı + AI API üst limiti]
66
- - **Süre:** [MVP hedef tarihi]
67
- - **Yasal:** [Kişisel veri işleniyor mu? Ödeme alınıyor mu? → `docs/legal/privacy-kvkk.md`]
68
- - **Teknik:** [Zorunlu platform, entegrasyon vb.]
66
+ - **Budget:** [monthly cap for infrastructure + AI API]
67
+ - **Time:** [MVP target date]
68
+ - **Legal:** [Is personal data processed? Is payment taken? → `docs/legal/privacy-kvkk.md`]
69
+ - **Technical:** [Required platform, integrations, etc.]
69
70
 
70
- ## 10. Gelir modeli (varsa)
71
+ ## 10. Revenue model (if any)
71
72
 
72
- [Ücretsiz / abonelik / tek seferlik / reklam. Fiyat. Ödeme sağlayıcısı.]
73
+ [Free / subscription / one-time / ads. Price. Payment provider.]
73
74
 
74
- ## 11. Açık sorular
75
+ ## 11. Open questions
75
76
 
76
- - [ ] [Henüz cevabı olmayan, kararı etkileyen sorular]
77
+ - [ ] [Questions without an answer yet that affect a decision]