tillerhand 3.48.1 → 3.49.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.
- package/.claude/agents/board-chair.md +1 -1
- package/.claude/agents/security-auditor.md +1 -1
- package/.claude/agents/test-writer.md +1 -1
- package/.claude/board/board-product.md +1 -1
- package/.claude/board/council.md +1 -1
- package/.claude/board/rules.md +6 -6
- package/.claude/commands/adopt.md +3 -3
- package/.claude/commands/ask-mode.md +4 -4
- package/.claude/commands/board.md +1 -1
- package/.claude/commands/build.md +1 -1
- package/.claude/commands/design.md +4 -4
- package/.claude/commands/findings-business.md +1 -1
- package/.claude/commands/findings-legal.md +1 -1
- package/.claude/commands/findings-perf.md +1 -1
- package/.claude/commands/findings-security.md +2 -2
- package/.claude/commands/findings-tech.md +1 -1
- package/.claude/commands/findings-ux.md +1 -1
- package/.claude/commands/fix-bug.md +2 -2
- package/.claude/commands/handoff.md +2 -2
- package/.claude/commands/kit-update.md +2 -2
- package/.claude/commands/qa.md +1 -1
- package/.claude/commands/release.md +2 -2
- package/.claude/commands/research.md +3 -3
- package/.claude/commands/retro.md +1 -1
- package/.claude/commands/rollback.md +3 -3
- package/.claude/commands/start.md +4 -4
- package/.claude/commands/tools.md +1 -1
- package/.claude/commands/user-feedback.md +1 -1
- package/.claude/findings/lenses/business.md +1 -1
- package/.claude/findings/protocol.md +2 -2
- package/.claude/hooks/budget.mjs +1 -1
- package/.claude/hooks/checkpoint.mjs +2 -2
- package/.claude/hooks/commit-gate.mjs +18 -17
- package/.claude/hooks/council.mjs +37 -52
- package/.claude/hooks/dashboard-data.mjs +34 -42
- package/.claude/hooks/dashboard.mjs +18 -20
- package/.claude/hooks/destructive-guard.mjs +2 -2
- package/.claude/hooks/flow.mjs +1 -1
- package/.claude/hooks/freeze-guard.mjs +2 -2
- package/.claude/hooks/gate.mjs +21 -13
- package/.claude/hooks/labels.mjs +92 -152
- package/.claude/hooks/lang.mjs +25 -9
- package/.claude/hooks/messages.mjs +497 -494
- package/.claude/hooks/notify.mjs +1 -1
- package/.claude/hooks/prefs.mjs +10 -18
- package/.claude/hooks/preview.mjs +1 -1
- package/.claude/hooks/progress.mjs +7 -9
- package/.claude/hooks/qa-report.mjs +1 -3
- package/.claude/hooks/session-start.mjs +2 -3
- package/.claude/hooks/status-read.mjs +5 -5
- package/.claude/hooks/statusline.mjs +4 -4
- package/.claude/hooks/tools.mjs +3 -7
- package/.claude/hooks/usage.mjs +2 -2
- package/.claude/i18n/tr.json +496 -0
- package/.claude/security-patterns.json +1 -1
- package/.claude/skills/logo-design/SKILL.md +2 -2
- package/.claude/skills/motion-video/SKILL.md +1 -1
- package/.claude/skills/source-research/SKILL.md +1 -1
- package/.claude/skills/ui-motion/SKILL.md +1 -1
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +1 -1
- package/README.md +2 -2
- package/README.tr.md +2 -2
- package/docs/architecture/overview.md +1 -1
- package/docs/decisions/log.md +1 -1
- package/docs/legal/privacy-kvkk.md +35 -35
- package/docs/operations/deploy-setup.md +1 -1
- package/docs/operations/feature-flags.md +1 -1
- package/docs/product/glossary.md +3 -3
- package/docs/product/launch.md +1 -1
- package/docs/product/prd.md +2 -2
- package/docs/product/roadmap.md +1 -1
- package/docs/product/specs/_template.md +1 -1
- package/docs/product/unit-economics.md +1 -1
- package/docs/quality/test-plan.md +5 -5
- package/docs/workflow/decision-protocol.md +1 -2
- package/docs/workflow/mcp-catalog.md +1 -1
- package/docs/workflow/skills.md +2 -2
- package/docs/workflow/usage-limits.md +1 -1
- package/kit/CHANGELOG.md +34 -0
- package/kit/VERSION +1 -1
- package/kit/guide.html +56 -56
- package/kit/guide.tr.html +10 -10
- package/kit/kit.mjs +7 -42
- package/kit/templates/addons/ai/.env.example.append +3 -3
- package/kit/templates/addons/tr/docs/legal/turkiye.md +55 -55
- package/kit/templates/addons/tr/types/backend/.env.example.append +2 -2
- package/kit/templates/addons/tr/types/backend/app/shared/payments.py +1 -1
- package/kit/templates/addons/tr/types/backend/tests/security/test_payment_webhook.py +3 -3
- package/kit/templates/addons/tr/types/web-saas/.env.example.append +2 -2
- package/kit/templates/addons/tr/types/web-saas/.github/workflows/payment-webhook.yml +3 -3
- package/kit/templates/addons/tr/types/web-saas/src/lib/payments/webhook-signature.ts +1 -1
- package/kit/templates/addons/tr/types/web-saas/tests/security/payment-webhook.mjs +4 -4
- package/kit/templates/backend/.github/dependabot.yml +1 -1
- package/kit/templates/backend/.github/workflows/live-monitoring.yml +1 -1
- package/kit/templates/backend/docs/architecture/stack.md +3 -3
- package/kit/templates/mobile/.github/dependabot.yml +1 -1
- package/kit/templates/mobile/.github/workflows/ci.yml +2 -2
- package/kit/templates/mobile/docs/architecture/stack.md +4 -4
- package/kit/templates/mobile/docs/architecture/structure.md +1 -1
- package/kit/templates/mobile/docs/design/design-guide.md +1 -1
- package/kit/templates/web-saas/.github/dependabot.yml +1 -1
- package/kit/templates/web-saas/.github/workflows/ci.yml +2 -2
- package/kit/templates/web-saas/.github/workflows/live-monitoring.yml +1 -1
- package/kit/templates/web-saas/docs/architecture/stack.md +4 -4
- package/kit/templates/web-saas/docs/design/design-guide.md +1 -1
- package/kit/tools/antigravity/.agents/hooks.json +5 -5
- package/package.json +1 -1
|
@@ -0,0 +1,496 @@
|
|
|
1
|
+
{
|
|
2
|
+
"session.begin": "Başlamak için: /start [proje fikrin] · var olan projede: /adopt",
|
|
3
|
+
"session.resume": "Devam: {command} (adım {step})",
|
|
4
|
+
"session.next": "Sıradaki: /build {code} · {title}",
|
|
5
|
+
"session.handoff": "Devir notu var: /handoff take",
|
|
6
|
+
"session.handoffThen": "Devir notu var: /handoff take · sonra {next}",
|
|
7
|
+
"dashboard.title": "Kontrol paneli",
|
|
8
|
+
"dashboard.sevCritical": "Kritik",
|
|
9
|
+
"dashboard.sevWarn": "Dikkat",
|
|
10
|
+
"dashboard.sevInfo": "Bilgi",
|
|
11
|
+
"dashboard.sevGood": "Yolunda",
|
|
12
|
+
"dashboard.healthWarn": "Dikkat gerekiyor",
|
|
13
|
+
"dashboard.healthCritical": "Engel var",
|
|
14
|
+
"dashboard.kitNotInstalled": "kit kurulmadı",
|
|
15
|
+
"dashboard.kitVersion": "kit {version}",
|
|
16
|
+
"dashboard.autoRefresh": "30 sn'de yenile",
|
|
17
|
+
"dashboard.now": "Şimdi",
|
|
18
|
+
"dashboard.questionMode": "Soru modu",
|
|
19
|
+
"dashboard.profile": "Profil",
|
|
20
|
+
"dashboard.lastUpdate": "Son güncelleme",
|
|
21
|
+
"dashboard.startStep": "Başlangıç adımı",
|
|
22
|
+
"dashboard.nextStep": "Sıradaki adım",
|
|
23
|
+
"dashboard.pasteHint": "Kopyala, Claude sohbetine yapıştır.",
|
|
24
|
+
"dashboard.status": "Durum",
|
|
25
|
+
"dashboard.attention": "Dikkat gerektirenler",
|
|
26
|
+
"dashboard.moreItems": "{count} madde daha",
|
|
27
|
+
"dashboard.allGood": "Her şey yolunda",
|
|
28
|
+
"dashboard.allGoodText": "Bekleyen karar, kritik bulgu veya açık sorun yok.",
|
|
29
|
+
"dashboard.copy": "Kopyala",
|
|
30
|
+
"dashboard.copied": "Kopyalandı",
|
|
31
|
+
"dashboard.copyFailed": "Kopyalanamadı",
|
|
32
|
+
"dashboard.copyAria": "{command} komutunu kopyala",
|
|
33
|
+
"dashboard.startIdeaCode": "`/start [fikrin]`",
|
|
34
|
+
"dashboard.kpiTasks": "Görevler",
|
|
35
|
+
"dashboard.donePct": "%{percent} tamam",
|
|
36
|
+
"dashboard.acceptanceTests": "Kabul testleri",
|
|
37
|
+
"dashboard.criteriaTested": "{count} kriterin testi var",
|
|
38
|
+
"dashboard.kpiMvp": "MVP kriterleri",
|
|
39
|
+
"dashboard.featuresCount": "{count} özellik",
|
|
40
|
+
"dashboard.kpiDecisions": "Kararlar",
|
|
41
|
+
"dashboard.usersAuto": "{user} kullanıcı · {auto} otomatik",
|
|
42
|
+
"dashboard.board": "Kurul",
|
|
43
|
+
"dashboard.rejects": "{count} ret",
|
|
44
|
+
"dashboard.kpiRejects": "Ret",
|
|
45
|
+
"dashboard.membersCount": "{count} üye",
|
|
46
|
+
"dashboard.kpiCommits7": "Commit · 7 gün",
|
|
47
|
+
"dashboard.filesWaiting": "{count} dosya bekliyor",
|
|
48
|
+
"dashboard.noGit": "git yok",
|
|
49
|
+
"dashboard.kpiLimit": "Limit",
|
|
50
|
+
"dashboard.weeklyLevel": "haftalık %{percent} · {level}",
|
|
51
|
+
"dashboard.unknown": "bilinmiyor",
|
|
52
|
+
"dashboard.tabsLabel": "Bölümler",
|
|
53
|
+
"dashboard.tabOverview": "Genel",
|
|
54
|
+
"dashboard.tabRoadmap": "Yol haritası",
|
|
55
|
+
"dashboard.tabDecisions": "Kararlar",
|
|
56
|
+
"dashboard.tabFindings": "Bulgular",
|
|
57
|
+
"dashboard.tabQuality": "Kalite",
|
|
58
|
+
"dashboard.tabActivity": "Aktivite",
|
|
59
|
+
"dashboard.tabProduct": "Ürün ve teknik",
|
|
60
|
+
"dashboard.tabOperations": "Operasyon",
|
|
61
|
+
"dashboard.tabLimit": "Limit ve maliyet",
|
|
62
|
+
"dashboard.footer": "Üretildi: {when} · Kaynak: docs/*.md, git, .claude/state/usage.json · Her Claude cevabından sonra otomatik güncellenir (<code>node .claude/hooks/dashboard.mjs</code>)",
|
|
63
|
+
"dashboard.statusSummary": "Durum özeti",
|
|
64
|
+
"dashboard.noSummary": "Henüz özet yok.",
|
|
65
|
+
"dashboard.lastSession": "Son oturumda",
|
|
66
|
+
"dashboard.noRecords": "Kayıt yok.",
|
|
67
|
+
"dashboard.recentActivity": "Son hareketler",
|
|
68
|
+
"dashboard.noActivity": "Henüz hareket yok.",
|
|
69
|
+
"dashboard.stages": "Aşamalar",
|
|
70
|
+
"dashboard.stageStart": "Başlangıç",
|
|
71
|
+
"dashboard.stageStartLetter": "B",
|
|
72
|
+
"dashboard.feedCommit": "commit",
|
|
73
|
+
"dashboard.feedDecision": "karar",
|
|
74
|
+
"dashboard.feedBoard": "kurul",
|
|
75
|
+
"dashboard.feedMaintenance": "bakım",
|
|
76
|
+
"dashboard.commitKindOther": "diğer",
|
|
77
|
+
"dashboard.noRoadmap": "Yol haritası henüz yok. `/start` Adım 8'de oluşur.",
|
|
78
|
+
"dashboard.topicFilter": "Konu filtresi",
|
|
79
|
+
"dashboard.all": "Hepsi",
|
|
80
|
+
"dashboard.auto": "otomatik",
|
|
81
|
+
"dashboard.oneWay": "tek yönlü",
|
|
82
|
+
"dashboard.user": "kullanıcı",
|
|
83
|
+
"dashboard.noDecisions": "Henüz karar verilmedi. Kararlar `/start` ile başlar.",
|
|
84
|
+
"dashboard.members": "Üyeler",
|
|
85
|
+
"dashboard.boardSetUp": "kuruldu",
|
|
86
|
+
"dashboard.notSetUp": "kurulmadı",
|
|
87
|
+
"dashboard.boardNotSetUp": "Kurul kurulmadı.",
|
|
88
|
+
"dashboard.commitReview": "Commit denetimi: {value}",
|
|
89
|
+
"dashboard.on": "açık",
|
|
90
|
+
"dashboard.off": "kapalı",
|
|
91
|
+
"dashboard.summary": "Özet",
|
|
92
|
+
"dashboard.kpiMeetings": "Toplantı",
|
|
93
|
+
"dashboard.kpiApproval": "Onay oranı",
|
|
94
|
+
"dashboard.criticalFinding": "kritik bulgu",
|
|
95
|
+
"dashboard.councilHeading": "Konsey · ilk görüş → anonim çapraz oy → başkan",
|
|
96
|
+
"dashboard.noDecision": "karar yok",
|
|
97
|
+
"dashboard.latestCouncil": "Son: {topic}",
|
|
98
|
+
"dashboard.low": "düşük",
|
|
99
|
+
"dashboard.kpiDisputed": "Tartışmalı",
|
|
100
|
+
"dashboard.kpiEliminated": "Elenen",
|
|
101
|
+
"dashboard.byCrossVote": "çapraz oyla",
|
|
102
|
+
"dashboard.overallRanking": "Toplu sıralama",
|
|
103
|
+
"dashboard.opinion": "Görüş {letter}",
|
|
104
|
+
"dashboard.avg": "ort. {average}",
|
|
105
|
+
"dashboard.open": "aç",
|
|
106
|
+
"dashboard.noCouncil": "Henüz konsey toplanmadı. Plan, faz sonu, canlıya alma ve tek yönlü kararlarda otomatik toplanır.",
|
|
107
|
+
"dashboard.meetingLog": "Toplantı günlüğü",
|
|
108
|
+
"dashboard.noMeetings": "Henüz toplantı yapılmadı.",
|
|
109
|
+
"dashboard.checklists": "Kontrol listeleri",
|
|
110
|
+
"dashboard.codeHealth": "Kod sağlığı · son 30 gün",
|
|
111
|
+
"dashboard.fixRate": "Düzeltme oranı",
|
|
112
|
+
"dashboard.uncommitted": "Commit edilmemiş",
|
|
113
|
+
"dashboard.fixRateNote": "Yüksek düzeltme oranı, yeni özelliklerin sık bozulduğunu gösterebilir; retroda konuşulmalı.",
|
|
114
|
+
"dashboard.lastQa": "Son QA · {name}",
|
|
115
|
+
"dashboard.passed": "Geçti",
|
|
116
|
+
"dashboard.failed": "Kaldı",
|
|
117
|
+
"dashboard.notRun": "Koşulmadı",
|
|
118
|
+
"dashboard.withEvidence": "kanıtıyla",
|
|
119
|
+
"dashboard.openReport": "raporu aç",
|
|
120
|
+
"dashboard.kpiTested": "Testi olan",
|
|
121
|
+
"dashboard.kpiPassing": "Geçen",
|
|
122
|
+
"dashboard.reportTime": "rapor: {when}",
|
|
123
|
+
"dashboard.noJunit": "JUnit raporu yok",
|
|
124
|
+
"dashboard.noAcceptanceIds": "PRD'de kimlikli kabul kriteri yok (`AC-01.1` biçimi).",
|
|
125
|
+
"dashboard.metricsMonthly": "Metrikler · aylık",
|
|
126
|
+
"dashboard.noMetrics": "Henüz metrik kaydı yok. `/maintain monthly` ve `/retro` ekler.",
|
|
127
|
+
"dashboard.criticalFlowTests": "Kritik akış testleri",
|
|
128
|
+
"dashboard.present": "var",
|
|
129
|
+
"dashboard.missing": "yok",
|
|
130
|
+
"dashboard.noTestPlan": "Test planı yok.",
|
|
131
|
+
"dashboard.maintenanceLog": "Bakım kaydı",
|
|
132
|
+
"dashboard.noMaintenance": "Henüz bakım yapılmadı.",
|
|
133
|
+
"dashboard.lastRetro": "Son retro: {value}",
|
|
134
|
+
"dashboard.commitsLast14": "Commit · son 14 gün",
|
|
135
|
+
"dashboard.totalParen": "(toplam {total})",
|
|
136
|
+
"dashboard.sparkAria": "Son 14 günde günlük commit sayısı",
|
|
137
|
+
"dashboard.commitTip": "{date}: {count} commit",
|
|
138
|
+
"dashboard.today": "bugün",
|
|
139
|
+
"dashboard.showTable": "Tablo olarak göster",
|
|
140
|
+
"dashboard.feed": "Akış",
|
|
141
|
+
"dashboard.product": "Ürün",
|
|
142
|
+
"dashboard.problem": "Problem",
|
|
143
|
+
"dashboard.noPrd": "PRD henüz yazılmadı.",
|
|
144
|
+
"dashboard.valueProp": "Değer önerisi",
|
|
145
|
+
"dashboard.outOfScope": "Kapsam dışı",
|
|
146
|
+
"dashboard.mvpFeatures": "MVP özellikleri",
|
|
147
|
+
"dashboard.noMvp": "MVP henüz tanımlanmadı.",
|
|
148
|
+
"dashboard.criteriaResults": "Kabul kriterleri · test sonucu",
|
|
149
|
+
"dashboard.passedBadge": "geçti",
|
|
150
|
+
"dashboard.failedBadge": "kaldı",
|
|
151
|
+
"dashboard.noResult": "sonuç yok",
|
|
152
|
+
"dashboard.noTest": "test yok",
|
|
153
|
+
"dashboard.technology": "Teknoloji",
|
|
154
|
+
"dashboard.noStack": "Stack seçilmedi.",
|
|
155
|
+
"dashboard.design": "Tasarım",
|
|
156
|
+
"dashboard.noDesign": "Tasarım yönü seçilmedi.",
|
|
157
|
+
"dashboard.previews": "Önizlemeler",
|
|
158
|
+
"dashboard.unitEconomics": "Birim ekonomisi",
|
|
159
|
+
"dashboard.kpiMargin": "Katkı payı",
|
|
160
|
+
"dashboard.perPayingUserMonth": "ödeyen kullanıcı başı / ay",
|
|
161
|
+
"dashboard.kpiBreakEven": "Başa baş",
|
|
162
|
+
"dashboard.payingUsers": "ödeyen kullanıcı",
|
|
163
|
+
"dashboard.negativeMargin": "katkı negatif",
|
|
164
|
+
"dashboard.atTarget": "Hedefte ({target} kullanıcı)",
|
|
165
|
+
"dashboard.monthlyProfitLoss": "aylık kâr / zarar",
|
|
166
|
+
"dashboard.variableOverPrice": "Değişken / fiyat",
|
|
167
|
+
"dashboard.over30": "%30 üstü",
|
|
168
|
+
"dashboard.noInputs": "Girdiler boş.",
|
|
169
|
+
"dashboard.userFeedback": "Kullanıcı geri bildirimi",
|
|
170
|
+
"dashboard.kpiTotal": "Toplam",
|
|
171
|
+
"dashboard.kpiNew": "Yeni",
|
|
172
|
+
"dashboard.kpiPlanned": "Planlandı",
|
|
173
|
+
"dashboard.topThemes": "Öne çıkan temalar",
|
|
174
|
+
"dashboard.noFeedback": "Henüz geri bildirim yok.",
|
|
175
|
+
"dashboard.learning": "Öğrenme · anlama kontrolü",
|
|
176
|
+
"dashboard.kpiRight": "Doğru",
|
|
177
|
+
"dashboard.kpiWrong": "Yanlış",
|
|
178
|
+
"dashboard.kpiSuccess": "Başarı",
|
|
179
|
+
"dashboard.oftenMissed": "Sık yanılan kavramlar",
|
|
180
|
+
"dashboard.brandPack": "Marka paketi",
|
|
181
|
+
"dashboard.filesCount": "{count} dosya",
|
|
182
|
+
"dashboard.usageRules": "kullanım kuralları",
|
|
183
|
+
"dashboard.noLogo": "Logo henüz yok.",
|
|
184
|
+
"dashboard.promoResearch": "Tanıtım ve araştırma",
|
|
185
|
+
"dashboard.videos": "Videolar",
|
|
186
|
+
"dashboard.noRender": "render yok",
|
|
187
|
+
"dashboard.noVideos": "Video yok.",
|
|
188
|
+
"dashboard.researchNotes": "Araştırma notları",
|
|
189
|
+
"dashboard.noNotes": "Not yok.",
|
|
190
|
+
"dashboard.unreleased": "Yayınlanmamış değişiklikler (CHANGELOG)",
|
|
191
|
+
"dashboard.noUnreleased": "Yayınlanmamış değişiklik yok.",
|
|
192
|
+
"dashboard.limit5h": "5 saatlik",
|
|
193
|
+
"dashboard.limitWeeklyLower": "haftalık",
|
|
194
|
+
"dashboard.limitWeekly": "Haftalık",
|
|
195
|
+
"dashboard.yellowThreshold": "sarı eşik",
|
|
196
|
+
"dashboard.redThreshold": "kırmızı eşik",
|
|
197
|
+
"dashboard.resetsLabel": "Sıfırlanma: {when}",
|
|
198
|
+
"dashboard.resetsParen": "(yenilenme {when})",
|
|
199
|
+
"dashboard.renewed": "Yenilendi",
|
|
200
|
+
"dashboard.thresholdsNote": "eşikler %{yellow} / %{red}",
|
|
201
|
+
"dashboard.usageLimit": "Kullanım limiti",
|
|
202
|
+
"dashboard.contextWindow": "Bağlam penceresi",
|
|
203
|
+
"dashboard.lastSessionShort": "Son oturum",
|
|
204
|
+
"dashboard.contextHint": "%50'de /wrap-up + /clear önerilir · {time} itibarıyla",
|
|
205
|
+
"dashboard.noContext": "Bağlam bilgisi yok (durum çubuğu yazar).",
|
|
206
|
+
"dashboard.modelEffort": "Model ve effort · rol bazında",
|
|
207
|
+
"dashboard.modelsHint": "/build her görevin başında sorar (docs/workflow/models.md).",
|
|
208
|
+
"dashboard.tokenCost": "Token ve maliyet · son 30 gün",
|
|
209
|
+
"dashboard.totalTokens": "Toplam token",
|
|
210
|
+
"dashboard.apiEquivalent": "API karşılığı",
|
|
211
|
+
"dashboard.notBilled": "abonelikte fatura değildir",
|
|
212
|
+
"dashboard.dailyAvg": "Günlük ortalama",
|
|
213
|
+
"dashboard.activeDays": "{count} aktif gün",
|
|
214
|
+
"dashboard.ccusageNote": "ccusage · {when} itibarıyla · ayrıntı için <code>/session-report</code>",
|
|
215
|
+
"dashboard.noData": "Veri yok.",
|
|
216
|
+
"dashboard.costLog": "Maliyet günlüğü",
|
|
217
|
+
"dashboard.avgSize": "Ortalama · {size}",
|
|
218
|
+
"dashboard.recordsCount": "{count} kayıt",
|
|
219
|
+
"dashboard.noCostRecords": "Henüz kayıt yok. `/build` her görevin limit maliyetini buraya yazar.",
|
|
220
|
+
"dashboard.accountsDeadlines": "Hesaplar ve son tarihler",
|
|
221
|
+
"dashboard.noAccounts": "Hesap envanteri boş.",
|
|
222
|
+
"dashboard.none": "yok",
|
|
223
|
+
"dashboard.daysOverdue": "{days} gün geçti",
|
|
224
|
+
"dashboard.daysLeft": "{days} gün",
|
|
225
|
+
"dashboard.dateExpiry": "bitiş",
|
|
226
|
+
"dashboard.dateKeyRotation": "anahtar yenileme",
|
|
227
|
+
"dashboard.spendAlarms": "Harcama alarmları",
|
|
228
|
+
"dashboard.noSpendAlarms": "Ücretli servis için alarm kaydı yok.",
|
|
229
|
+
"dashboard.notSet": "ayarlanmadı",
|
|
230
|
+
"dashboard.checkIt": "kontrol et",
|
|
231
|
+
"dashboard.flagsHeading": "Özellik bayrakları",
|
|
232
|
+
"dashboard.overdue": "gecikti",
|
|
233
|
+
"dashboard.untested": "denenmedi",
|
|
234
|
+
"dashboard.tested": "denendi",
|
|
235
|
+
"dashboard.noFlags": "Bayrak yok.",
|
|
236
|
+
"dashboard.liveMonitoring": "Canlı izleme",
|
|
237
|
+
"dashboard.liveLastRun": "son çalışma",
|
|
238
|
+
"dashboard.liveUrlHint": "GitHub → Settings → Variables'a LIVE_URL ekle",
|
|
239
|
+
"dashboard.succeeded": "başarılı",
|
|
240
|
+
"dashboard.failedRun": "başarısız",
|
|
241
|
+
"dashboard.logLink": "kayıt",
|
|
242
|
+
"dashboard.liveBroken": "Canlı izleme bozuk",
|
|
243
|
+
"dashboard.recentWorkflows": "Son iş akışları",
|
|
244
|
+
"dashboard.noRuns": "Henüz çalışma yok.",
|
|
245
|
+
"dashboard.openPrs": "Açık PR'lar",
|
|
246
|
+
"dashboard.draft": "taslak",
|
|
247
|
+
"dashboard.noPrs": "Açık PR yok.",
|
|
248
|
+
"dashboard.ghNote": "gh CLI ile okunur, 5 dakikada bir yenilenir.",
|
|
249
|
+
"dashboard.noGithub": "GitHub bilgisi yok: gh CLI kurulu ve giriş yapılmış olmalı, depo GitHub'a bağlı olmalı.",
|
|
250
|
+
"dashboard.healthHealthy": "Sağlıklı",
|
|
251
|
+
"dashboard.healthGood": "İyi",
|
|
252
|
+
"dashboard.healthRisky": "Riskli",
|
|
253
|
+
"dashboard.areaScores": "Alan sağlık puanları",
|
|
254
|
+
"dashboard.findingsLine": "{date} · {findings} bulgu",
|
|
255
|
+
"dashboard.findingsCritical": " · {critical} kritik",
|
|
256
|
+
"dashboard.noReportYet": "Henüz raporu olmayanlar:",
|
|
257
|
+
"dashboard.noFindingReports": "Henüz bulgu raporu yok. Başlamak için:",
|
|
258
|
+
"dashboard.reportHistory": "Rapor geçmişi",
|
|
259
|
+
"dashboard.noReports": "Rapor yok.",
|
|
260
|
+
"dashboard.scoringNote": "Puanlama: bulgu önemi = etki (40) + olasılık (25) + yayılım (20) + aciliyet (15); sağlık = 100 − ceza (kritik 15, yüksek 8, orta 4, düşük 1). Yöntem: <code>.claude/findings/protocol.md</code>",
|
|
261
|
+
"dashboard.findingKind.tech": "Teknik",
|
|
262
|
+
"dashboard.findingKind.business": "İş",
|
|
263
|
+
"dashboard.findingKind.security": "Güvenlik",
|
|
264
|
+
"dashboard.findingKind.ux": "UX",
|
|
265
|
+
"dashboard.findingKind.perf": "Performans",
|
|
266
|
+
"dashboard.findingKind.legal": "Hukuk",
|
|
267
|
+
"dashboard.th.date": "Tarih",
|
|
268
|
+
"dashboard.th.stage": "Aşama",
|
|
269
|
+
"dashboard.th.topic": "Konu",
|
|
270
|
+
"dashboard.th.question": "Soru",
|
|
271
|
+
"dashboard.th.chosen": "Seçilen",
|
|
272
|
+
"dashboard.th.door": "Kapı",
|
|
273
|
+
"dashboard.th.decidedBy": "Veren",
|
|
274
|
+
"dashboard.th.kind": "Tür",
|
|
275
|
+
"dashboard.th.decision": "Karar",
|
|
276
|
+
"dashboard.th.consensus": "Uzlaşma",
|
|
277
|
+
"dashboard.th.minutes": "Tutanak",
|
|
278
|
+
"dashboard.th.scope": "Kapsam",
|
|
279
|
+
"dashboard.th.attendees": "Katılan",
|
|
280
|
+
"dashboard.th.result": "Sonuç",
|
|
281
|
+
"dashboard.th.critical": "Kritik",
|
|
282
|
+
"dashboard.th.userDecision": "Kullanıcı kararı",
|
|
283
|
+
"dashboard.th.period": "Dönem",
|
|
284
|
+
"dashboard.th.task": "Görev",
|
|
285
|
+
"dashboard.th.avgMinutes": "Ort. süre (dk)",
|
|
286
|
+
"dashboard.th.avgLimit": "Ort. limit",
|
|
287
|
+
"dashboard.th.fixes": "Düzeltme",
|
|
288
|
+
"dashboard.th.reverts": "Geri alma",
|
|
289
|
+
"dashboard.th.duplicateCode": "Kopya kod",
|
|
290
|
+
"dashboard.th.openCritical": "Açık kritik",
|
|
291
|
+
"dashboard.th.acceptance": "Kabul",
|
|
292
|
+
"dashboard.th.flow": "Akış",
|
|
293
|
+
"dashboard.th.testKind": "Test türü",
|
|
294
|
+
"dashboard.th.file": "Dosya",
|
|
295
|
+
"dashboard.th.day": "Gün",
|
|
296
|
+
"dashboard.th.commit": "Commit",
|
|
297
|
+
"dashboard.th.criterion": "Kriter",
|
|
298
|
+
"dashboard.th.test": "Test",
|
|
299
|
+
"dashboard.th.job": "İş",
|
|
300
|
+
"dashboard.th.size": "Boyut",
|
|
301
|
+
"dashboard.th.usage5h": "5s kullanım",
|
|
302
|
+
"dashboard.th.service": "Servis",
|
|
303
|
+
"dashboard.th.purpose": "Amaç",
|
|
304
|
+
"dashboard.th.owner": "Sahip",
|
|
305
|
+
"dashboard.th.dates": "Tarihler",
|
|
306
|
+
"dashboard.th.amount": "Tutar",
|
|
307
|
+
"dashboard.th.alertThresholds": "Uyarı eşikleri",
|
|
308
|
+
"dashboard.th.lastCheck": "Son kontrol",
|
|
309
|
+
"dashboard.th.flag": "Bayrak",
|
|
310
|
+
"dashboard.th.removal": "Kaldırma",
|
|
311
|
+
"dashboard.th.killSwitch": "Acil kapatma",
|
|
312
|
+
"dashboard.th.workflow": "İş akışı",
|
|
313
|
+
"dashboard.th.branch": "Dal",
|
|
314
|
+
"dashboard.th.time": "Zaman",
|
|
315
|
+
"dashboard.th.health": "Sağlık",
|
|
316
|
+
"dashboard.th.change": "Değişim",
|
|
317
|
+
"dashboard.th.finding": "Bulgu",
|
|
318
|
+
"dashboard.th.report": "Rapor",
|
|
319
|
+
"dashboard.alert.kitPending": "Proje henüz kurulmadı. Var olan kodu kite almak için /adopt.",
|
|
320
|
+
"dashboard.act.startIdea": "/start [fikrin]",
|
|
321
|
+
"dashboard.alert.handoffPending": "Devir notu bekliyor: proje başka kişiden veya hesaptan devralınıyor (docs/workflow/handoff.md).",
|
|
322
|
+
"dashboard.alert.unknownVerdict": "Kurul sonucu okunamadı ({kind}, {scope}): \"{result}\" — APPROVE, CONDITIONAL veya REJECT yazılmalı",
|
|
323
|
+
"dashboard.alert.boardReject": "Kurul RET verdi ({kind}, {scope}): {critical}",
|
|
324
|
+
"dashboard.act.askClaudeFix": "Claude'a sor: düzelt / riski kabul et",
|
|
325
|
+
"dashboard.alert.limitRed": "Kullanım limiti kırmızı: {short}",
|
|
326
|
+
"dashboard.act.limitRed": "Yeni işten önce seçenekleri değerlendir (Limit sekmesi)",
|
|
327
|
+
"dashboard.alert.limitYellow": "Kullanım limiti sarı: {short}",
|
|
328
|
+
"dashboard.act.limitYellow": "Büyük işleri limite göre planla",
|
|
329
|
+
"dashboard.alert.pendingDecision": "Bekleyen karar: {text}",
|
|
330
|
+
"dashboard.act.claudeWaiting": "Claude seni bekliyor",
|
|
331
|
+
"dashboard.alert.leftOff": "Yarıda kalan iş: {text}",
|
|
332
|
+
"dashboard.act.buildContinue": "/build ile devam",
|
|
333
|
+
"dashboard.alert.openIssue": "Açık sorun: {text}",
|
|
334
|
+
"dashboard.alert.repeatedBug": "Aynı hata sınıfı {count} kez: {cls} ({specs}). Tekrarı önleyen bir kural eklenebilir.",
|
|
335
|
+
"dashboard.alert.uncommitted": "{count} dosya commit edilmemiş.",
|
|
336
|
+
"dashboard.act.commitOrWrapUp": "Commit veya /wrap-up",
|
|
337
|
+
"dashboard.alert.progressStale": "docs/workflow/progress.md {count} commit'tir güncellenmedi.",
|
|
338
|
+
"dashboard.alert.closedTopics": "Soru modu kapalı konular: {topics}. Bu konulardaki kararlar otomatik veriliyor.",
|
|
339
|
+
"dashboard.act.askModeOpen": "/ask-mode on <konu>",
|
|
340
|
+
"dashboard.alert.boardNotSetUp": "Uzman kurulu kurulmadı.",
|
|
341
|
+
"dashboard.alert.liveMonitoring": "Canlı izleme: {title}",
|
|
342
|
+
"dashboard.act.fixLive": "/fix-bug canlı izleme #{number}",
|
|
343
|
+
"dashboard.alert.liveRunFailed": "Canlı izlemenin son çalışması başarısız.",
|
|
344
|
+
"dashboard.act.fixLiveShort": "/fix-bug canlı izleme",
|
|
345
|
+
"dashboard.alert.ciFailed": "main dalında son CI çalışması başarısız.",
|
|
346
|
+
"dashboard.act.operationsTab": "Operasyon sekmesi",
|
|
347
|
+
"dashboard.alert.dateOverdue": "{service}: {kind} tarihi geçti ({date}).",
|
|
348
|
+
"dashboard.alert.dateSoon": "{service}: {kind} {left} gün sonra ({date}).",
|
|
349
|
+
"dashboard.act.renew": "Yenile veya otomatik yenilemeyi aç",
|
|
350
|
+
"dashboard.alert.noTwoFactor": "{service} hesabında 2FA yok.",
|
|
351
|
+
"dashboard.alert.spendUnset": "{service}: harcama tavanı veya uyarısı ayarlanmadı.",
|
|
352
|
+
"dashboard.alert.negativeEconomics": "Birim ekonomisi negatif: her ödeyen kullanıcı {amount} {currency} zarar ettiriyor.",
|
|
353
|
+
"dashboard.act.priceDecision": "Fiyat veya maliyet kararı (/plan-task)",
|
|
354
|
+
"dashboard.alert.acceptRed": "{id} PRD'de tamam işaretli ama kabul testi kırmızı.",
|
|
355
|
+
"dashboard.alert.acceptNoResult": "{id} PRD'de tamam işaretli ama kabul testi sonuçsuz.",
|
|
356
|
+
"dashboard.alert.acceptMissing": "{id} PRD'de tamam işaretli ama kabul testi yok.",
|
|
357
|
+
"dashboard.act.acceptFix": "Testi çalıştır veya işareti kaldır",
|
|
358
|
+
"dashboard.alert.flagsOverdue": "Kaldırma tarihi geçen {count} bayrak: {names}.",
|
|
359
|
+
"dashboard.act.removeFlag": "Bayrağı ve eski kod yolunu kaldır",
|
|
360
|
+
"dashboard.alert.newFeedback": "{count} işlenmemiş kullanıcı geri bildirimi var.",
|
|
361
|
+
"dashboard.alert.packagesOn": "Açık bağlam paketleri: {names}. Her oturumda skill listesine yük ekler.",
|
|
362
|
+
"dashboard.act.packagesOff": "Kullanmıyorsan /tools off <paket>",
|
|
363
|
+
"dashboard.alert.cmdListLight": "Profil Tam ama komut listesi hafif: seyrek komutların açıklaması bağlamda yok.",
|
|
364
|
+
"dashboard.act.cmdFull": "/tools commands full",
|
|
365
|
+
"dashboard.alert.cmdListHeavy": "Komut listesi {mode}: seyrek komutların açıklaması her oturumda bağlama giriyor (~1.100 token).",
|
|
366
|
+
"dashboard.cmdModeFull": "tam",
|
|
367
|
+
"dashboard.cmdModeMixed": "karışık",
|
|
368
|
+
"dashboard.act.cmdLight": "Profil Tam değilse /tools commands light",
|
|
369
|
+
"dashboard.alert.codeMapStale": "İnsan için kod haritası (Understand-Anything) {days} gündür güncellenmedi.",
|
|
370
|
+
"dashboard.act.understand": "/understand (sadece değişenleri okur; yayin paketi)",
|
|
371
|
+
"dashboard.alert.contextFull": "Bağlam %{percent} dolu; yanıt kalitesi düşebilir.",
|
|
372
|
+
"dashboard.act.wrapUpClear": "/wrap-up ve /clear",
|
|
373
|
+
"dashboard.alert.findingsCritical": "{kind} bulgu raporunda {critical} kritik bulgu var (sağlık {health}/100).",
|
|
374
|
+
"dashboardData.prodRefInMcp": "Prod projesinin ref'i ({ref}) .mcp.json'da: AI prod'a bağlanabiliyor.",
|
|
375
|
+
"dashboardData.prodRefAction": ".mcp.json → dev ref (docs/operations/accounts.md → Environments)",
|
|
376
|
+
"dashboardData.rlsMissing": "Supabase kullanılıyor ama RLS saldırgan testi yok (tests/security/rls.mjs).",
|
|
377
|
+
"dashboardData.rlsAction": "/kit-update ile şablonu al, tabloları TABLES'a ekle",
|
|
378
|
+
"guard.commit.skipAsk": "Commit kapısı: --skip kurul denetimini ve deterministik kapıyı aşar. Sadece kullanıcı açıkça isterse onayla.",
|
|
379
|
+
"guard.commit.noCommands": "(tanımlı komut yok)",
|
|
380
|
+
"guard.commit.gateApprovalAsk": "Kapı komut onayı: AGENTS.md → Commands bölümündeki şu komutlar bundan sonra her kapıda çalışır:\n{list}\nGüvendiğin komutlarsa onayla.",
|
|
381
|
+
"guard.commit.gateUnknownKeys": "AGENTS.md → Commands altındaki şu anahtarlar çalışmaz (kapı dev, preview, test, lint, type check, build okur): {keys}",
|
|
382
|
+
"guard.destructive.approvalSuffix": "{reason}. Kullanıcı onayı gerekli.",
|
|
383
|
+
"guard.destructive.prodDeploy": "Prod ortamına deploy",
|
|
384
|
+
"guard.destructive.promoteRollback": "Prod ortamı değişiyor (promote/rollback)",
|
|
385
|
+
"guard.destructive.unclearEnv": "Ortam değişkenleri çekiliyor ama ortam düz development/preview değil (değişken veya özel ortam: prod olabilir)",
|
|
386
|
+
"guard.destructive.serverDeploy": "Sunucuya deploy",
|
|
387
|
+
"guard.destructive.storeSubmit": "Mağazaya gönderim, prod OTA güncellemesi veya geri alma",
|
|
388
|
+
"guard.destructive.pushMain": "Ana dala doğrudan push",
|
|
389
|
+
"guard.destructive.rewriteHistory": "Git geçmişi yeniden yazılıyor",
|
|
390
|
+
"guard.destructive.migration": "Migration uygulanıyor (hedef ortamı kontrol et)",
|
|
391
|
+
"guard.destructive.remoteDb": "Komut localhost dışındaki bir veritabanına bağlanıyor (prod olabilir). Kullanıcı onayı gerekli; AI prod erişim bilgisi kullanmamalı.",
|
|
392
|
+
"guard.destructive.testShell": "Test dosyası kabuk komutuyla değiştiriliyor, taşınıyor veya siliniyor. Testi geçirmek için testi zayıflatmak yasak (AGENTS.md kural 7); test düzenlemesini dosya aracıyla yap. Kullanıcı onayı gerekli.",
|
|
393
|
+
"guard.destructive.inlineTest": "Satır içi betik bir test yolunu anıyor; test dosyasına yazıyor olabilir. Test dosyasına yalnız test-writer ajanı yazar (AGENTS.md kural 7). Kullanıcı onayı gerekli.",
|
|
394
|
+
"guard.destructive.obfuscated": "Komut gizlenmiş görünüyor (satır sonu \\, $'..', $(...), `...` veya ${...}) ve korunan bir işlem içeriyor. Kullanıcı onayı gerekli.",
|
|
395
|
+
"guard.destructive.indirectHook": "Kitin koruma betiği dolaylı yazımla çalıştırılıyor ($DEĞİŞKEN, $(...), `...`, ${...} veya * ?); kural metni bunun içini göremez. Kullanıcı onayı gerekli.",
|
|
396
|
+
"guard.destructive.perm.freezeOff": "Düzenleme kilidi kaldırılıyor",
|
|
397
|
+
"guard.destructive.perm.toolsCommands": "Paylaşılan .claude/settings.json → skillOverrides değişiyor (komut listesi)",
|
|
398
|
+
"guard.destructive.perm.planAdd": "Onaylı planın dosya listesi genişliyor (kapsam kalkanı)",
|
|
399
|
+
"guard.destructive.perm.planSave": "Kapsam kalkanının dosya listesi yazılıyor",
|
|
400
|
+
"guard.destructive.perm.planEnd": "Kapsam kalkanı kapatılıyor",
|
|
401
|
+
"guard.destructive.perm.commitSkip": "Commit kapısı ve kurul denetimi atlanıyor",
|
|
402
|
+
"guard.destructive.perm.prefsEdit": "Kişisel tercih dosyası (~/.vibe-kit/preferences.md) değişiyor",
|
|
403
|
+
"guard.destructive.perm.gateApprove": "Deterministik kapının çalıştıracağı komutlar onaylanıyor",
|
|
404
|
+
"guard.destructive.perm.protectedShell": "Kural veya koruma dosyası kabuk komutuyla değiştiriliyor",
|
|
405
|
+
"guard.destructive.unclearNetPath": "hedef ağ yolu ({path})",
|
|
406
|
+
"guard.destructive.unclearVar": "hedef değişken veya komut içeriyor ({path})",
|
|
407
|
+
"guard.destructive.unclearBrace": "hedef süslü parantez açılımı içeriyor ({path})",
|
|
408
|
+
"guard.destructive.unclearCd": "{name} hedefi doğrulanamadı ({target}); sonraki komutların klasörü bilinmiyor",
|
|
409
|
+
"guard.destructive.homeDir": "ev dizini",
|
|
410
|
+
"guard.destructive.unclearXargs": "xargs {command} hedef dosyayı göstermiyor",
|
|
411
|
+
"guard.destructive.unclearNoTarget": "{command} hedef dosyayı göstermiyor",
|
|
412
|
+
"guard.destructive.unclearBranch": "git {sub} {arg}: yol değil (dal olabilir)",
|
|
413
|
+
"guard.destructive.prefsFile": "{path}: kişisel tercih dosyası (kullanıcı klasörü); kabukla değiştirilmez, node .claude/hooks/prefs.mjs --add / --remove kullanılır. Kullanıcı onayı gerekli.",
|
|
414
|
+
"guard.destructive.gateApproval": "{path}: kapı komut onayı kaydı (kullanıcı klasörü); kabukla değiştirilmez, node .claude/hooks/gate.mjs --approve kullanılır. Kullanıcı onayı gerekli.",
|
|
415
|
+
"guard.destructive.protectedShell": "{rel}: {text} Kabuk komutuyla değiştiriliyor; kilit, plan ve onay durumları için ilgili kit komutunu kullan. Kullanıcı onayı gerekli.",
|
|
416
|
+
"guard.destructive.unclearRule": "{unclear}; komut kural veya koruma dosyası adını içeriyor (.claude, .git, AGENTS.md…), hedef doğrulanamadı. Kullanıcı onayı gerekli.",
|
|
417
|
+
"guard.destructive.labelLock": "Düzenleme kilidi ({lock}/)",
|
|
418
|
+
"guard.destructive.labelPlan": "Kapsam kalkanı (görev {task})",
|
|
419
|
+
"guard.destructive.scopeUnclear": "{label}: {unclear}; hangi dosyaların değişeceği bilinemiyor. Gerekliyse kullanıcıya sor.",
|
|
420
|
+
"guard.destructive.scopeRoot": "{label}: komut proje kökünü veya üst klasörünü hedefliyor ({rel}); kilit/plan dışındaki dosyalar da değişebilir. Gerekliyse kullanıcıya sor.",
|
|
421
|
+
"guard.destructive.lockOutside": "Düzenleme kilidi: {rel} kilit ({lock}/) dışında ve komut onu değiştirebilir. Gerekliyse kullanıcıya sor.",
|
|
422
|
+
"guard.destructive.planOutside": "Kapsam kalkanı: {rel} onaylı planda yok (görev {task}) ve komut onu değiştirebilir. Gerekliyse kullanıcıya sor; onaylarsa node .claude/hooks/freeze-guard.mjs --plan-add <yol>.",
|
|
423
|
+
"guard.destructive.prefix": "Kalkan: {reason}",
|
|
424
|
+
"guard.freeze.protectedAsk": "Kural, koruma ve iş akışı dosyaları kullanıcı onayıyla değişir.",
|
|
425
|
+
"guard.freeze.prefsFile": "{path}: kişisel tercih dosyası; elle yazılmaz, node .claude/hooks/prefs.mjs --add / --remove kullanılır.",
|
|
426
|
+
"guard.freeze.gateApproval": "{path}: kapı komut onayı kaydı; elle yazılmaz, node .claude/hooks/gate.mjs --approve kullanılır.",
|
|
427
|
+
"guard.freeze.scopeAsk": "Kapsam kalkanı: {rel} onaylı planda yok (görev {task}). Gerekliyse kullanıcıya sor; onaylarsa node .claude/hooks/freeze-guard.mjs --plan-add <yol>. Görev bittiyse --plan-end.",
|
|
428
|
+
"guard.freeze.unknownPath": "(yol bilinmiyor)",
|
|
429
|
+
"guard.package.npmMissing": "npm kayıt defterinde böyle bir paket yok",
|
|
430
|
+
"guard.package.npmStatus": "npm yanıtı {status}",
|
|
431
|
+
"guard.package.similar": "popüler \"{similar}\" paketine çok benziyor (yazım hatası tuzağı olabilir)",
|
|
432
|
+
"guard.package.newNpm": "{age} gün önce yayımlanmış",
|
|
433
|
+
"guard.package.lowDownloads": "haftalık indirme {downloads}",
|
|
434
|
+
"guard.package.pypiMissing": "PyPI'da böyle bir paket yok",
|
|
435
|
+
"guard.package.pypiStatus": "PyPI yanıtı {status}",
|
|
436
|
+
"guard.package.newPypi": "ilk sürümü {age} gün önce yayımlanmış",
|
|
437
|
+
"guard.package.timeout": "doğrulanamadı (zaman aşımı)",
|
|
438
|
+
"guard.package.network": "doğrulanamadı (ağ hatası)",
|
|
439
|
+
"guard.package.ask": "Paket kapısı uyarısı: {list}. Kurmadan önce paketin gerçekten istenen paket olduğundan emin ol.",
|
|
440
|
+
"guard.structure.offMap": "\"{rel}\" yapı haritasında yok (.claude/structure.json). Doğru yer muhtemelen şunlardan biri: {top}. Geçici veya deneme ise sandbox/ altına yaz. Kalıcı yeni bir yer gerekiyorsa bunu teknik karar olarak sor ve haritayı güncelle (docs/architecture/structure.md).",
|
|
441
|
+
"guard.structure.prefix": "Yapı: {reason}",
|
|
442
|
+
"guard.test.skip": "test atlanıyor veya tek teste odaklanıyor (.skip / .only / skipIf / xit / pytest skip)",
|
|
443
|
+
"guard.test.expectRemoved": "beklenti (expect/assert) siliniyor veya yoruma alınıyor",
|
|
444
|
+
"guard.test.expectWeak": "beklenti gevşetiliyor (toBeTruthy, toBeDefined, expect.anything, matcher'sız expect, assert True)",
|
|
445
|
+
"guard.test.configRisk": "testlerin kapsamını belirleyen ayar değişiyor (include/exclude, testMatch, passWithNoTests, eşik, test script'i)",
|
|
446
|
+
"guard.test.configDeleted": "test ayar dosyası siliniyor",
|
|
447
|
+
"guard.test.fileDeleted": "test dosyası siliniyor",
|
|
448
|
+
"guard.test.movedAway": "test dosyası çalışmayan bir yola taşınıyor ({source})",
|
|
449
|
+
"guard.test.moveOverwrite": "taşıma var olan dosyanın üstüne yazıyor ({source} → {path})",
|
|
450
|
+
"guard.test.ask": "Test koruması: {name} içinde {reason}. Testi geçirmek için testi zayıflatmak yasak (AGENTS.md kural 7). Gerekçe gerçekse (yanlış test, değişen kabul kriteri) kullanıcıya söyle ve onayını al; değilse kodu düzelt.",
|
|
451
|
+
"statusRead.defaultProject": "Proje",
|
|
452
|
+
"statusRead.checklist.security": "Güvenlik",
|
|
453
|
+
"statusRead.checklist.release": "Canlıya alma",
|
|
454
|
+
"statusRead.checklist.legal": "Yasal / KVKK",
|
|
455
|
+
"statusRead.checklist.ai": "AI",
|
|
456
|
+
"statusRead.checklist.launch": "Lansman",
|
|
457
|
+
"qaReport.title": "# QA raporu · {stamp}",
|
|
458
|
+
"qaReport.result": "**Sonuç:** {summary} (PRD'de {count} kriter, kaynak: `{junit}`)",
|
|
459
|
+
"qaReport.summary": "{passed} geçti · {failed} kaldı · {notRun} koşulmadı",
|
|
460
|
+
"qaReport.tableHeader": "| Kriter | Sonuç | Kanıt | Not |",
|
|
461
|
+
"models.role.plan": "Planlama ve mimari",
|
|
462
|
+
"models.role.code": "Kod yazma",
|
|
463
|
+
"models.role.test": "Test yazma",
|
|
464
|
+
"models.role.review": "İnceleme ve denetim",
|
|
465
|
+
"models.role.docs": "Doküman ve araştırma",
|
|
466
|
+
"models.noRecord": "kayıt yok: önerilenler",
|
|
467
|
+
"models.unreadable": "kayıt okunamadı: önerilenler; --set ile yeniden yaz",
|
|
468
|
+
"statusline.notSetUp": "◆ Kit kurulmadı · başlamak için: /start [fikrin] · var olan kod: /adopt",
|
|
469
|
+
"statusline.step": "adım {step}",
|
|
470
|
+
"statusline.task": "görev {done}/{total}",
|
|
471
|
+
"statusline.question": "soru: {mode}",
|
|
472
|
+
"statusline.modeOpen": "açık",
|
|
473
|
+
"statusline.modeOff": "kapalı",
|
|
474
|
+
"statusline.closed": "(kapalı: {topics})",
|
|
475
|
+
"statusline.pending": "bekleyen karar: {count}",
|
|
476
|
+
"statusline.limit5h": "5s %{percent}",
|
|
477
|
+
"statusline.limitWeek": "hf %{percent}",
|
|
478
|
+
"statusline.context": "bağlam %{percent}",
|
|
479
|
+
"statusline.unreadable": "▶ durum okunamadı",
|
|
480
|
+
"usage.none": "Limit bilgisi yok. Masaüstü uygulamasındaysan get_usage aracını kullan. Terminal/IDE'de durum çubuğu ilk API yanıtından sonra yazar. İkisi de yoksa kullanıcıdan /usage sonucunu iste.",
|
|
481
|
+
"usage.window5h": "5 saatlik",
|
|
482
|
+
"usage.windowWeek": "haftalık",
|
|
483
|
+
"usage.windowPart": "{name}: %{percent}{tail}",
|
|
484
|
+
"usage.renewed": "(yenilendi)",
|
|
485
|
+
"usage.resets": "sıfırlanma {clock}, {left} sonra",
|
|
486
|
+
"usage.leftDays": "{days} gün {hours} sa",
|
|
487
|
+
"usage.leftHours": "{hours} sa {minutes} dk",
|
|
488
|
+
"usage.stale": " — eski olabilir, get_usage veya /usage ile doğrula",
|
|
489
|
+
"usage.summary": "{parts} · seviye: {level} · {age} dk önce okundu{stale}",
|
|
490
|
+
"usage.level.green": "yeşil",
|
|
491
|
+
"usage.level.yellow": "sarı",
|
|
492
|
+
"usage.level.red": "kırmızı",
|
|
493
|
+
"usage.level.unknown": "bilinmiyor",
|
|
494
|
+
"notify.done": "İş bitti ({minutes} dk). Sonuca bakabilirsin.",
|
|
495
|
+
"notify.waiting": "Claude cevabını bekliyor."
|
|
496
|
+
}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
{
|
|
15
15
|
"rule_name": "personal_data_log",
|
|
16
16
|
"regex": "console\\.(log|info)\\([^)]*(email|phone|tckn|tc_kimlik|password|token)",
|
|
17
|
-
"reminder": "Do not log personal data or credentials (
|
|
17
|
+
"reminder": "Do not log personal data or credentials (GDPR, KVKK or the local data protection law). Mask the identity or log only the record id."
|
|
18
18
|
}
|
|
19
19
|
]
|
|
20
20
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: logo-design
|
|
3
|
-
description: Designs a brand logo: asks brand questions first, presents 4-6 SVG concepts with a visual preview, refines the chosen concept and produces the brand pack with favicon, app icon and PNG sizes. Use when a logo, icon, favicon, brand mark or "
|
|
3
|
+
description: Designs a brand logo: asks brand questions first, presents 4-6 SVG concepts with a visual preview, refines the chosen concept and produces the brand pack with favicon, app icon and PNG sizes. Use when a logo, icon, favicon, brand mark or "brand identity" is requested. Needs no API; the output is vector and editable.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Logo design
|
|
@@ -53,7 +53,7 @@ Output folder: `public/brand/` for web, `assets/brand/` for mobile (allowed in t
|
|
|
53
53
|
| `icon.png` (1024), `adaptive-icon.png` (Android foreground, safe area 66%) | Mobile |
|
|
54
54
|
|
|
55
55
|
- **Convert text to paths:** Convert the wordmark text from the font file to paths, so it looks the same where the font is not installed. Example: a short script with `opentype.js`, run under `sandbox/`. Check that the font license allows this.
|
|
56
|
-
- **Optimize:** `npx --yes svgo --multipass <
|
|
56
|
+
- **Optimize:** `npx --yes svgo --multipass <file>`
|
|
57
57
|
- **Make PNGs:** `npx --yes sharp-cli -i logo-mark.svg -o icon-512.png resize 512 512`. If this tool fails, take a screenshot of the SVG with Playwright.
|
|
58
58
|
- On web, `<link rel="icon" href="/brand/favicon.svg" type="image/svg+xml">` and PNG fallbacks. On mobile, `app.config.ts` → `icon`, `android.adaptiveIcon`.
|
|
59
59
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: motion-video
|
|
3
|
-
description: Produces the product's promo video (SaaS demo loop, landing page video, social media clip) with code. A single HTML file and renderAt(t), a real cursor, closed-form springs, a 120 BPM rhythm; frames are captured one by one with Playwright and converted to MP4 with ffmpeg. Use when a "
|
|
3
|
+
description: Produces the product's promo video (SaaS demo loop, landing page video, social media clip) with code. A single HTML file and renderAt(t), a real cursor, closed-form springs, a 120 BPM rhythm; frames are captured one by one with Playwright and converted to MP4 with ffmpeg. Use when a "promo video", "demo video", "product animation" or "landing page loop" is requested. Not for in-app animation (use ui-motion for that).
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Promo video (with code)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: source-research
|
|
3
|
-
description: Researches sources for any work that depends on information where freshness matters (library/API version, price, quota, law, regulation, competitor, standard). Goes to the primary source first, attaches a source and date to every claim, shows contradictions. Use when choosing technology, in /findings-business and /findings-legal reports, when told "
|
|
3
|
+
description: Researches sources for any work that depends on information where freshness matters (library/API version, price, quota, law, regulation, competitor, standard). Goes to the primary source first, attaches a source and date to every claim, shows contradictions. Use when choosing technology, in /findings-business and /findings-legal reports, when told "research", and for every fact you are unsure of.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Source research
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ui-motion
|
|
3
|
-
description: In-app motion rules (micro-interactions, transitions, loading, list and page animations). Use when adding or changing an animation or transition in the interface, or when told to make it "
|
|
3
|
+
description: In-app motion rules (micro-interactions, transitions, loading, list and page animations). Use when adding or changing an animation or transition in the interface, or when told to make it "livelier / smoother". Not for promo videos (use motion-video for those).
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# UI motion
|
package/AGENTS.md
CHANGED
|
@@ -85,7 +85,7 @@ build: [ ]
|
|
|
85
85
|
- Do not do these without approval (regardless of question mode): data deletion/reset, `git push --force`, `git reset --hard`, bulk file deletion, prod deploy, any action that spends money.
|
|
86
86
|
- Do not delete or weaken a test to make it pass (the test protection hook asks). Do not invent APIs or packages that do not exist.
|
|
87
87
|
- Do not try to bypass hooks (secret block, commit gate). Do not decide for the user and report afterwards.
|
|
88
|
-
- Do not write a machine-specific absolute path into code, tests or docs (`C:\Users\<name>\…`, `/home/<name>/…`, the full project folder path). Derive the path from the project root, the script location or a temp folder; the gate catches it. For a deliberate example, write `kit:
|
|
88
|
+
- Do not write a machine-specific absolute path into code, tests or docs (`C:\Users\<name>\…`, `/home/<name>/…`, the full project folder path). Derive the path from the project root, the script location or a temp folder; the gate catches it. For a deliberate example, write `kit:path-allowed` on the line.
|
|
89
89
|
|
|
90
90
|
## Git
|
|
91
91
|
|
package/CHANGELOG.md
CHANGED
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="Version" src="https://img.shields.io/badge/version-3.
|
|
9
|
+
<a href="kit/CHANGELOG.md"><img alt="Version" src="https://img.shields.io/badge/version-3.49.1-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">
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
|
|
33
33
|
**TillerHand** is a starter kit that takes a product from idea to production and maintenance with [Claude Code](https://claude.com/claude-code). The AI writes the code; **you make the decisions**. At every important step it lays out the options, when each one is the better choice, and what it recommends. An **expert board** reviews the work, **guardrails** stop dangerous actions before they happen, and the project always stays in a **clean folder structure**.
|
|
34
34
|
|
|
35
|
-
> **Language first.** `/start` and `/adopt` open with one question: which language should the AI talk to you in? Turkish, English or any other. From then on questions, answers, reports, the dashboard and the status line come in that language; `/language` changes it later. Everything the kit ships (commands, rules, agents, hooks, document templates) is written in English
|
|
35
|
+
> **Language first.** `/start` and `/adopt` open with one question: which language should the AI talk to you in? Turkish, English or any other. From then on questions, answers, reports, the dashboard and the status line come in that language; `/language` changes it later. Everything the kit ships (commands, rules, agents, hooks, document templates) is written in English, the Turkey add-on included. Turkish interface texts ship in `.claude/i18n/tr.json`; labels and keys in project files stay English in every language, because the tools read them.
|
|
36
36
|
|
|
37
37
|
| | |
|
|
38
38
|
|---|---|
|
package/README.tr.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.
|
|
9
|
+
<a href="kit/CHANGELOG.md"><img alt="Sürüm" src="https://img.shields.io/badge/s%C3%BCr%C3%BCm-3.49.1-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">
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
|
|
33
33
|
**TillerHand**, [Claude Code](https://claude.com/claude-code) ile bir ürünü fikirden canlıya ve bakıma kadar götüren bir başlangıç kitidir. Kodu AI yazar, **kararları sen verirsin**: her önemli adımda seçenekleri, hangisinin ne zaman daha iyi olduğunu ve önerisini sunar. Bir **uzman kurulu** işi denetler, **koruma katmanları** tehlikeli işlemleri daha olmadan durdurur, proje her an **düzenli bir klasör yapısında** kalır.
|
|
34
34
|
|
|
35
|
-
> **Önce dil.** `/start` ve `/adopt` tek bir soruyla açılır: AI seninle hangi dilde konuşsun? Türkçe, İngilizce ya da başka bir dil. Bundan sonra sorular, cevaplar, raporlar, pano ve durum çubuğu o dilde gelir; `/language` ile sonradan değişir. Kitin içindeki her şey (komutlar, kurallar, ajanlar, hook'lar, belge şablonları) İngilizce yazılıdır;
|
|
35
|
+
> **Önce dil.** `/start` ve `/adopt` tek bir soruyla açılır: AI seninle hangi dilde konuşsun? Türkçe, İngilizce ya da başka bir dil. Bundan sonra sorular, cevaplar, raporlar, pano ve durum çubuğu o dilde gelir; `/language` ile sonradan değişir. Kitin içindeki her şey (komutlar, kurallar, ajanlar, hook'lar, belge şablonları) İngilizce yazılıdır, Türkiye eki dahil. Türkçe arayüz metinleri `.claude/i18n/tr.json` dosyasıyla gelir; proje dosyalarındaki etiketler ve anahtarlar her dilde İngilizce kalır, çünkü araçlar onları okur.
|
|
36
36
|
|
|
37
37
|
| | |
|
|
38
38
|
|---|---|
|