symfonia-ai-tools 1.2.0 → 1.4.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.
- package/README.md +1 -2
- package/bin/cli.mjs +3 -3
- package/lib/i18n.mjs +380 -0
- package/lib/installer.mjs +47 -45
- package/lib/questions.mjs +93 -78
- package/lib/ui.mjs +1 -1
- package/lib/utils.mjs +3 -2
- package/package.json +1 -1
- package/templates/base/_ai/skills/smf-figma-analysis/SKILL.md +149 -0
- package/templates/packs/docker/pack.json +1 -1
- package/templates/packs/playwright/pack.json +2 -2
- package/templates/packs/vue3/pack.json +4 -4
- package/templates/base/_ai/prompts/figma-analysis.prompt.md +0 -155
package/README.md
CHANGED
|
@@ -287,7 +287,6 @@ Prompty to gotowe polecenia dla AI do wykonania zlozonych zadan jednym wywolanie
|
|
|
287
287
|
|--------|-----|----------|
|
|
288
288
|
| `codereview.prompt.md` | Kompleksowy code review brancha | "Wykonaj code review wg `.ai/prompts/codereview.prompt.md`" |
|
|
289
289
|
| `security-review.prompt.md` | Audyt bezpieczenstwa (OWASP Top 10) | "Wykonaj security review wg `.ai/prompts/security-review.prompt.md`" |
|
|
290
|
-
| `figma-analysis.prompt.md` | Analiza komponentu Figma (wymaga MCP Figma) | "Przeanalizuj ten komponent Figma wg promptu figma-analysis" |
|
|
291
290
|
| `duplicate-code-analysis.prompt.md` | Wykrywanie duplikatow kodu | "Znajdz duplikaty wg `.ai/prompts/duplicate-code-analysis.prompt.md`" |
|
|
292
291
|
|
|
293
292
|
### Uzycie w roznych narzedziach
|
|
@@ -395,7 +394,6 @@ projekt/
|
|
|
395
394
|
│ ├── prompts/ # Reusable prompty
|
|
396
395
|
│ │ ├── codereview.prompt.md
|
|
397
396
|
│ │ ├── security-review.prompt.md
|
|
398
|
-
│ │ ├── figma-analysis.prompt.md
|
|
399
397
|
│ │ └── duplicate-code-analysis.prompt.md
|
|
400
398
|
│ ├── skills/ # Workflow skille
|
|
401
399
|
│ │ ├── smf-debug/SKILL.md
|
|
@@ -412,6 +410,7 @@ projekt/
|
|
|
412
410
|
│ │ ├── smf-fill-worklogs/SKILL.md
|
|
413
411
|
│ │ ├── smf-grafana-logs/SKILL.md
|
|
414
412
|
│ │ ├── smf-aws-analysis/SKILL.md
|
|
413
|
+
│ │ ├── smf-figma-analysis/SKILL.md
|
|
415
414
|
│ │ └── [smf-pack-specific]/SKILL.md
|
|
416
415
|
│ └── context/ # Kontekst projektowy
|
|
417
416
|
│ └── README.md # (tu dodaj architecture.md, api-spec.md, etc.)
|
package/bin/cli.mjs
CHANGED
|
@@ -5,6 +5,7 @@ import { dirname, join } from 'node:path';
|
|
|
5
5
|
import { askQuestions } from '../lib/questions.mjs';
|
|
6
6
|
import { install } from '../lib/installer.mjs';
|
|
7
7
|
import { green, dim, red, yellow } from '../lib/ui.mjs';
|
|
8
|
+
import { t } from '../lib/i18n.mjs';
|
|
8
9
|
|
|
9
10
|
const __filename = fileURLToPath(import.meta.url);
|
|
10
11
|
const __dirname = dirname(__filename);
|
|
@@ -55,7 +56,6 @@ printLogo();
|
|
|
55
56
|
console.log(`${' '.repeat(68)}${dim('AI Tools')}`)
|
|
56
57
|
console.log('');
|
|
57
58
|
console.log(` ${green('Claude Code · GitHub Copilot · Cursor · Gemini · Junie · GSD')}`);
|
|
58
|
-
console.log(` ${dim('Jeden konfigurator — wszystkie agenty gotowe')}`);
|
|
59
59
|
console.log('');
|
|
60
60
|
|
|
61
61
|
try {
|
|
@@ -64,9 +64,9 @@ try {
|
|
|
64
64
|
await install(ROOT, answers);
|
|
65
65
|
} catch (err) {
|
|
66
66
|
if (err.message === 'USER_ABORT') {
|
|
67
|
-
console.log(`\n ${yellow('
|
|
67
|
+
console.log(`\n ${yellow(t('cli.abort'))}\n`);
|
|
68
68
|
process.exit(0);
|
|
69
69
|
}
|
|
70
|
-
console.error(`\n ${red('
|
|
70
|
+
console.error(`\n ${red(t('cli.error'))} ${err.message}\n`);
|
|
71
71
|
process.exit(1);
|
|
72
72
|
}
|
package/lib/i18n.mjs
ADDED
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
// ─── Internationalization ───
|
|
2
|
+
|
|
3
|
+
let currentLang = 'pl';
|
|
4
|
+
|
|
5
|
+
export function setLang(lang) {
|
|
6
|
+
currentLang = lang;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function getLang() {
|
|
10
|
+
return currentLang;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function t(key) {
|
|
14
|
+
const dict = translations[currentLang] || translations.pl;
|
|
15
|
+
return dict[key] || translations.pl[key] || key;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const translations = {
|
|
19
|
+
// ─── Polish ───
|
|
20
|
+
pl: {
|
|
21
|
+
// cli.mjs
|
|
22
|
+
'cli.subtitle': 'Jeden konfigurator — wszystkie agenty gotowe',
|
|
23
|
+
'cli.abort': 'Przerwano.',
|
|
24
|
+
'cli.error': 'Blad:',
|
|
25
|
+
|
|
26
|
+
// Language selection
|
|
27
|
+
'lang.question': 'Language / Jezyk:',
|
|
28
|
+
'lang.pl': 'Polski',
|
|
29
|
+
'lang.en': 'English',
|
|
30
|
+
|
|
31
|
+
// questions.mjs — general
|
|
32
|
+
'q.quit_hint': 'Wpisz',
|
|
33
|
+
'q.quit_hint2': 'aby przerwac w dowolnym momencie.',
|
|
34
|
+
|
|
35
|
+
// questions.mjs — project
|
|
36
|
+
'q.section.project': 'Projekt',
|
|
37
|
+
'q.project_type': 'Typ projektu:',
|
|
38
|
+
'q.project_type.new': 'Nowy projekt',
|
|
39
|
+
'q.project_type.existing': 'Istniejacy projekt',
|
|
40
|
+
'q.project_type.existing_hint': '(aktualizacja)',
|
|
41
|
+
'q.project_name': 'Nazwa projektu',
|
|
42
|
+
'q.project_desc': 'Krotki opis projektu',
|
|
43
|
+
'q.tech_stack': 'Tech stack (np. Vue 3 + TS, Laravel 12 + PHP 8.4)',
|
|
44
|
+
'q.target_dir': 'Katalog docelowy (sciezka)',
|
|
45
|
+
|
|
46
|
+
// questions.mjs — auto-detect
|
|
47
|
+
'q.autodetect.platform': 'platforma',
|
|
48
|
+
'q.autodetect.jira': 'JIRA',
|
|
49
|
+
'q.autodetect.branch': 'branch',
|
|
50
|
+
|
|
51
|
+
// questions.mjs — existing project
|
|
52
|
+
'q.existing.detected': 'Wykryte pliki konfiguracji:',
|
|
53
|
+
'q.existing.action': 'Co chcesz zrobic?',
|
|
54
|
+
'q.existing.overwrite': 'Nadpisz wszystko',
|
|
55
|
+
'q.existing.overwrite_hint': '(pelna reinstalacja)',
|
|
56
|
+
'q.existing.skip': 'Tylko nowe pliki',
|
|
57
|
+
'q.existing.skip_hint': '(zachowaj istniejace)',
|
|
58
|
+
'q.existing.mcp_only': 'Tylko konfiguracja MCP',
|
|
59
|
+
'q.existing.continue': 'Kontynuowac?',
|
|
60
|
+
|
|
61
|
+
// questions.mjs — packs
|
|
62
|
+
'q.section.packs': 'Pakiety instrukcji i skilli',
|
|
63
|
+
'q.packs.select': 'Wybierz pakiety:',
|
|
64
|
+
'q.packs.instr': 'instr.',
|
|
65
|
+
'q.packs.skill_one': 'skill',
|
|
66
|
+
'q.packs.skill_many': 'skilli',
|
|
67
|
+
|
|
68
|
+
// questions.mjs — skills
|
|
69
|
+
'q.section.skills': 'Skille',
|
|
70
|
+
'q.skills.select': 'Wybierz skille:',
|
|
71
|
+
'q.skills.base': 'bazowy',
|
|
72
|
+
'q.skills.none': 'Brak dostepnych skilli',
|
|
73
|
+
|
|
74
|
+
// questions.mjs — placeholders
|
|
75
|
+
'q.section.placeholders': 'Sciezki i konfiguracja',
|
|
76
|
+
|
|
77
|
+
// questions.mjs — tools
|
|
78
|
+
'q.section.tools': 'Narzedzia AI',
|
|
79
|
+
'q.tools.select': 'Wybierz narzedzia:',
|
|
80
|
+
|
|
81
|
+
// questions.mjs — commands
|
|
82
|
+
'q.section.commands': 'Komendy',
|
|
83
|
+
'q.cmd.test': 'Komenda testow',
|
|
84
|
+
'q.cmd.build': 'Komenda builda',
|
|
85
|
+
'q.cmd.lint': 'Komenda lintera',
|
|
86
|
+
|
|
87
|
+
// questions.mjs — CI
|
|
88
|
+
'q.section.ci': 'CI / Quality',
|
|
89
|
+
'q.ci.command': 'Komenda CI (wszystkie checki)',
|
|
90
|
+
|
|
91
|
+
// questions.mjs — JIRA
|
|
92
|
+
'q.section.jira': 'JIRA',
|
|
93
|
+
'q.jira.prefix': 'Prefix taskow JIRA',
|
|
94
|
+
|
|
95
|
+
// questions.mjs — MCP
|
|
96
|
+
'q.section.mcp': 'Serwery MCP',
|
|
97
|
+
'q.mcp.for': 'MCP dla:',
|
|
98
|
+
'q.mcp.required_by': 'wymagane przez',
|
|
99
|
+
'q.mcp.select': 'Wybierz serwery MCP:',
|
|
100
|
+
'q.mcp.needs_token': '(wymaga tokena)',
|
|
101
|
+
'q.mcp.no_token': '(bez tokenow)',
|
|
102
|
+
'q.mcp.config': 'Konfiguracja',
|
|
103
|
+
|
|
104
|
+
// questions.mjs — MCP credentials
|
|
105
|
+
'q.mcp.jira_url': 'Jira URL',
|
|
106
|
+
'q.mcp.jira_email': 'Jira email',
|
|
107
|
+
'q.mcp.jira_token': 'Jira API token',
|
|
108
|
+
'q.mcp.bb_email': 'Bitbucket email',
|
|
109
|
+
'q.mcp.bb_token': 'Bitbucket app password',
|
|
110
|
+
'q.mcp.figma_token': 'Figma access token',
|
|
111
|
+
'q.mcp.grafana_url': 'Grafana URL',
|
|
112
|
+
'q.mcp.grafana_token': 'Grafana service account token',
|
|
113
|
+
|
|
114
|
+
// questions.mjs — CLI deps
|
|
115
|
+
'q.cli.not_found': 'nie znaleziony',
|
|
116
|
+
'q.cli.required_by': 'wymagany przez',
|
|
117
|
+
|
|
118
|
+
// questions.mjs — CLI install
|
|
119
|
+
'q.section.cli': 'Instalacja CLI',
|
|
120
|
+
'q.cli.install': 'Zainstalowac/zaktualizowac:',
|
|
121
|
+
|
|
122
|
+
// questions.mjs — summary
|
|
123
|
+
'q.section.summary': 'Podsumowanie',
|
|
124
|
+
'q.summary.project': 'Projekt',
|
|
125
|
+
'q.summary.desc': 'Opis',
|
|
126
|
+
'q.summary.tech': 'Tech stack',
|
|
127
|
+
'q.summary.dir': 'Katalog',
|
|
128
|
+
'q.summary.mode': 'Tryb',
|
|
129
|
+
'q.summary.mode.fresh': 'nowy',
|
|
130
|
+
'q.summary.packs': 'Pakiety',
|
|
131
|
+
'q.summary.tools': 'Narzedzia',
|
|
132
|
+
'q.summary.skills': 'Skille',
|
|
133
|
+
'q.summary.jira': 'JIRA prefix',
|
|
134
|
+
'q.summary.mcp': 'MCP serwery',
|
|
135
|
+
'q.summary.install': 'Instalacja',
|
|
136
|
+
'q.summary.gsd': 'GSD bootstrap',
|
|
137
|
+
'q.summary.none': 'brak',
|
|
138
|
+
'q.summary.continue': 'Kontynuowac instalacje?',
|
|
139
|
+
|
|
140
|
+
// installer.mjs
|
|
141
|
+
'i.section.install': 'Instalacja',
|
|
142
|
+
'i.mode.fresh': 'nowy projekt',
|
|
143
|
+
'i.mode.overwrite': 'nadpisz wszystko',
|
|
144
|
+
'i.mode.skip': 'tylko nowe pliki',
|
|
145
|
+
'i.mode.mcp': 'tylko MCP',
|
|
146
|
+
'i.dir': 'Katalog:',
|
|
147
|
+
'i.mode_label': 'Tryb:',
|
|
148
|
+
'i.step.base': 'Szablony bazowe',
|
|
149
|
+
'i.step.pack': 'Pakiet',
|
|
150
|
+
'i.step.guidelines': 'Skladanie',
|
|
151
|
+
'i.step.mirror': 'Mirror',
|
|
152
|
+
'i.step.mcp': 'Konfiguracja MCP',
|
|
153
|
+
'i.step.cli': 'Instalacja CLI',
|
|
154
|
+
|
|
155
|
+
// installer.mjs — MCP
|
|
156
|
+
'i.mcp.none': 'Brak serwerow MCP do skonfigurowania',
|
|
157
|
+
'i.mcp.registered': 'zarejestrowany',
|
|
158
|
+
'i.mcp.reg_failed': 'rejestracja nie powiodla sie',
|
|
159
|
+
'i.mcp.no_cli': 'Claude CLI nie znaleziony — MCP zapisany w pliku',
|
|
160
|
+
|
|
161
|
+
// installer.mjs — CLI install
|
|
162
|
+
'i.cli.skip': 'Pominieto instalacje CLI',
|
|
163
|
+
'i.cli.installing_claude': 'Instaluje Claude Code CLI...',
|
|
164
|
+
'i.cli.claude_ok': 'Claude Code CLI zainstalowany',
|
|
165
|
+
'i.cli.claude_fail': 'Blad instalacji Claude Code CLI',
|
|
166
|
+
'i.cli.try_manual': 'Sprobuj recznie:',
|
|
167
|
+
'i.cli.installing_gsd': 'Instaluje GSD (Get Shit Done)...',
|
|
168
|
+
'i.cli.gsd_ok': 'GSD zainstalowany',
|
|
169
|
+
'i.cli.gsd_fail': 'Blad instalacji GSD',
|
|
170
|
+
|
|
171
|
+
// installer.mjs — next steps
|
|
172
|
+
'i.done.mcp': 'Konfiguracja MCP zakonczona!',
|
|
173
|
+
'i.done.install': 'Instalacja zakonczona!',
|
|
174
|
+
'i.done.check_mcp': 'Sprawdz MCP:',
|
|
175
|
+
'i.done.install_gsd': 'Zainstaluj GSD',
|
|
176
|
+
'i.done.required': '(wymagane)',
|
|
177
|
+
'i.done.review': 'Przejrzyj',
|
|
178
|
+
'i.done.review2': 'i dostosuj do projektu',
|
|
179
|
+
'i.done.check_mcp_label': 'Sprawdz MCP',
|
|
180
|
+
'i.done.start_gsd': 'Rozpocznij prace z GSD',
|
|
181
|
+
'i.done.next_steps': 'Nastepne kroki:',
|
|
182
|
+
|
|
183
|
+
// installer.mjs — GSD bootstrap
|
|
184
|
+
'i.gsd.no_cli': 'Claude CLI nie znaleziony — uruchom recznie po instalacji:',
|
|
185
|
+
'i.gsd.section_map': 'GSD: Mapowanie codebase',
|
|
186
|
+
'i.gsd.map_ok': 'map-codebase zakonczone',
|
|
187
|
+
'i.gsd.map_fail': 'map-codebase nie powiodl sie',
|
|
188
|
+
'i.gsd.section_init': 'GSD: Inicjalizacja projektu',
|
|
189
|
+
'i.gsd.init_ok': 'new-project zakonczone',
|
|
190
|
+
'i.gsd.init_fail': 'new-project nie powiodl sie',
|
|
191
|
+
|
|
192
|
+
// ui.mjs
|
|
193
|
+
'ui.skipped': '(pominieto)',
|
|
194
|
+
|
|
195
|
+
// utils.mjs
|
|
196
|
+
'u.nav.radio': '↑↓ nawigacja · enter = zatwierdz',
|
|
197
|
+
'u.nav.checkbox': '↑↓ nawigacja · spacja = przelacz · enter = zatwierdz',
|
|
198
|
+
},
|
|
199
|
+
|
|
200
|
+
// ─── English ───
|
|
201
|
+
en: {
|
|
202
|
+
// cli.mjs
|
|
203
|
+
'cli.subtitle': 'One configurator — all agents ready',
|
|
204
|
+
'cli.abort': 'Aborted.',
|
|
205
|
+
'cli.error': 'Error:',
|
|
206
|
+
|
|
207
|
+
// Language selection
|
|
208
|
+
'lang.question': 'Language / Jezyk:',
|
|
209
|
+
'lang.pl': 'Polski',
|
|
210
|
+
'lang.en': 'English',
|
|
211
|
+
|
|
212
|
+
// questions.mjs — general
|
|
213
|
+
'q.quit_hint': 'Type',
|
|
214
|
+
'q.quit_hint2': 'to abort at any time.',
|
|
215
|
+
|
|
216
|
+
// questions.mjs — project
|
|
217
|
+
'q.section.project': 'Project',
|
|
218
|
+
'q.project_type': 'Project type:',
|
|
219
|
+
'q.project_type.new': 'New project',
|
|
220
|
+
'q.project_type.existing': 'Existing project',
|
|
221
|
+
'q.project_type.existing_hint': '(update)',
|
|
222
|
+
'q.project_name': 'Project name',
|
|
223
|
+
'q.project_desc': 'Short project description',
|
|
224
|
+
'q.tech_stack': 'Tech stack (e.g. Vue 3 + TS, Laravel 12 + PHP 8.4)',
|
|
225
|
+
'q.target_dir': 'Target directory (path)',
|
|
226
|
+
|
|
227
|
+
// questions.mjs — auto-detect
|
|
228
|
+
'q.autodetect.platform': 'platform',
|
|
229
|
+
'q.autodetect.jira': 'JIRA',
|
|
230
|
+
'q.autodetect.branch': 'branch',
|
|
231
|
+
|
|
232
|
+
// questions.mjs — existing project
|
|
233
|
+
'q.existing.detected': 'Detected config files:',
|
|
234
|
+
'q.existing.action': 'What do you want to do?',
|
|
235
|
+
'q.existing.overwrite': 'Overwrite everything',
|
|
236
|
+
'q.existing.overwrite_hint': '(full reinstall)',
|
|
237
|
+
'q.existing.skip': 'Only new files',
|
|
238
|
+
'q.existing.skip_hint': '(keep existing)',
|
|
239
|
+
'q.existing.mcp_only': 'MCP configuration only',
|
|
240
|
+
'q.existing.continue': 'Continue?',
|
|
241
|
+
|
|
242
|
+
// questions.mjs — packs
|
|
243
|
+
'q.section.packs': 'Instruction & skill packs',
|
|
244
|
+
'q.packs.select': 'Select packs:',
|
|
245
|
+
'q.packs.instr': 'instr.',
|
|
246
|
+
'q.packs.skill_one': 'skill',
|
|
247
|
+
'q.packs.skill_many': 'skills',
|
|
248
|
+
|
|
249
|
+
// questions.mjs — skills
|
|
250
|
+
'q.section.skills': 'Skills',
|
|
251
|
+
'q.skills.select': 'Select skills:',
|
|
252
|
+
'q.skills.base': 'base',
|
|
253
|
+
'q.skills.none': 'No skills available',
|
|
254
|
+
|
|
255
|
+
// questions.mjs — placeholders
|
|
256
|
+
'q.section.placeholders': 'Paths & configuration',
|
|
257
|
+
|
|
258
|
+
// questions.mjs — tools
|
|
259
|
+
'q.section.tools': 'AI Tools',
|
|
260
|
+
'q.tools.select': 'Select tools:',
|
|
261
|
+
|
|
262
|
+
// questions.mjs — commands
|
|
263
|
+
'q.section.commands': 'Commands',
|
|
264
|
+
'q.cmd.test': 'Test command',
|
|
265
|
+
'q.cmd.build': 'Build command',
|
|
266
|
+
'q.cmd.lint': 'Lint command',
|
|
267
|
+
|
|
268
|
+
// questions.mjs — CI
|
|
269
|
+
'q.section.ci': 'CI / Quality',
|
|
270
|
+
'q.ci.command': 'CI command (all checks)',
|
|
271
|
+
|
|
272
|
+
// questions.mjs — JIRA
|
|
273
|
+
'q.section.jira': 'JIRA',
|
|
274
|
+
'q.jira.prefix': 'JIRA task prefix',
|
|
275
|
+
|
|
276
|
+
// questions.mjs — MCP
|
|
277
|
+
'q.section.mcp': 'MCP Servers',
|
|
278
|
+
'q.mcp.for': 'MCP for:',
|
|
279
|
+
'q.mcp.required_by': 'required by',
|
|
280
|
+
'q.mcp.select': 'Select MCP servers:',
|
|
281
|
+
'q.mcp.needs_token': '(requires token)',
|
|
282
|
+
'q.mcp.no_token': '(no tokens needed)',
|
|
283
|
+
'q.mcp.config': 'Configuration',
|
|
284
|
+
|
|
285
|
+
// questions.mjs — MCP credentials
|
|
286
|
+
'q.mcp.jira_url': 'Jira URL',
|
|
287
|
+
'q.mcp.jira_email': 'Jira email',
|
|
288
|
+
'q.mcp.jira_token': 'Jira API token',
|
|
289
|
+
'q.mcp.bb_email': 'Bitbucket email',
|
|
290
|
+
'q.mcp.bb_token': 'Bitbucket app password',
|
|
291
|
+
'q.mcp.figma_token': 'Figma access token',
|
|
292
|
+
'q.mcp.grafana_url': 'Grafana URL',
|
|
293
|
+
'q.mcp.grafana_token': 'Grafana service account token',
|
|
294
|
+
|
|
295
|
+
// questions.mjs — CLI deps
|
|
296
|
+
'q.cli.not_found': 'not found',
|
|
297
|
+
'q.cli.required_by': 'required by',
|
|
298
|
+
|
|
299
|
+
// questions.mjs — CLI install
|
|
300
|
+
'q.section.cli': 'CLI Installation',
|
|
301
|
+
'q.cli.install': 'Install/update:',
|
|
302
|
+
|
|
303
|
+
// questions.mjs — summary
|
|
304
|
+
'q.section.summary': 'Summary',
|
|
305
|
+
'q.summary.project': 'Project',
|
|
306
|
+
'q.summary.desc': 'Description',
|
|
307
|
+
'q.summary.tech': 'Tech stack',
|
|
308
|
+
'q.summary.dir': 'Directory',
|
|
309
|
+
'q.summary.mode': 'Mode',
|
|
310
|
+
'q.summary.mode.fresh': 'new',
|
|
311
|
+
'q.summary.packs': 'Packs',
|
|
312
|
+
'q.summary.tools': 'Tools',
|
|
313
|
+
'q.summary.skills': 'Skills',
|
|
314
|
+
'q.summary.jira': 'JIRA prefix',
|
|
315
|
+
'q.summary.mcp': 'MCP servers',
|
|
316
|
+
'q.summary.install': 'Installation',
|
|
317
|
+
'q.summary.gsd': 'GSD bootstrap',
|
|
318
|
+
'q.summary.none': 'none',
|
|
319
|
+
'q.summary.continue': 'Continue installation?',
|
|
320
|
+
|
|
321
|
+
// installer.mjs
|
|
322
|
+
'i.section.install': 'Installation',
|
|
323
|
+
'i.mode.fresh': 'new project',
|
|
324
|
+
'i.mode.overwrite': 'overwrite all',
|
|
325
|
+
'i.mode.skip': 'new files only',
|
|
326
|
+
'i.mode.mcp': 'MCP only',
|
|
327
|
+
'i.dir': 'Directory:',
|
|
328
|
+
'i.mode_label': 'Mode:',
|
|
329
|
+
'i.step.base': 'Base templates',
|
|
330
|
+
'i.step.pack': 'Pack',
|
|
331
|
+
'i.step.guidelines': 'Assembling',
|
|
332
|
+
'i.step.mirror': 'Mirror',
|
|
333
|
+
'i.step.mcp': 'MCP configuration',
|
|
334
|
+
'i.step.cli': 'CLI installation',
|
|
335
|
+
|
|
336
|
+
// installer.mjs — MCP
|
|
337
|
+
'i.mcp.none': 'No MCP servers to configure',
|
|
338
|
+
'i.mcp.registered': 'registered',
|
|
339
|
+
'i.mcp.reg_failed': 'registration failed',
|
|
340
|
+
'i.mcp.no_cli': 'Claude CLI not found — MCP saved to file',
|
|
341
|
+
|
|
342
|
+
// installer.mjs — CLI install
|
|
343
|
+
'i.cli.skip': 'CLI installation skipped',
|
|
344
|
+
'i.cli.installing_claude': 'Installing Claude Code CLI...',
|
|
345
|
+
'i.cli.claude_ok': 'Claude Code CLI installed',
|
|
346
|
+
'i.cli.claude_fail': 'Claude Code CLI installation failed',
|
|
347
|
+
'i.cli.try_manual': 'Try manually:',
|
|
348
|
+
'i.cli.installing_gsd': 'Installing GSD (Get Shit Done)...',
|
|
349
|
+
'i.cli.gsd_ok': 'GSD installed',
|
|
350
|
+
'i.cli.gsd_fail': 'GSD installation failed',
|
|
351
|
+
|
|
352
|
+
// installer.mjs — next steps
|
|
353
|
+
'i.done.mcp': 'MCP configuration complete!',
|
|
354
|
+
'i.done.install': 'Installation complete!',
|
|
355
|
+
'i.done.check_mcp': 'Check MCP:',
|
|
356
|
+
'i.done.install_gsd': 'Install GSD',
|
|
357
|
+
'i.done.required': '(required)',
|
|
358
|
+
'i.done.review': 'Review',
|
|
359
|
+
'i.done.review2': 'and customize for your project',
|
|
360
|
+
'i.done.check_mcp_label': 'Check MCP',
|
|
361
|
+
'i.done.start_gsd': 'Start working with GSD',
|
|
362
|
+
'i.done.next_steps': 'Next steps:',
|
|
363
|
+
|
|
364
|
+
// installer.mjs — GSD bootstrap
|
|
365
|
+
'i.gsd.no_cli': 'Claude CLI not found — run manually after installation:',
|
|
366
|
+
'i.gsd.section_map': 'GSD: Codebase mapping',
|
|
367
|
+
'i.gsd.map_ok': 'map-codebase complete',
|
|
368
|
+
'i.gsd.map_fail': 'map-codebase failed',
|
|
369
|
+
'i.gsd.section_init': 'GSD: Project initialization',
|
|
370
|
+
'i.gsd.init_ok': 'new-project complete',
|
|
371
|
+
'i.gsd.init_fail': 'new-project failed',
|
|
372
|
+
|
|
373
|
+
// ui.mjs
|
|
374
|
+
'ui.skipped': '(skipped)',
|
|
375
|
+
|
|
376
|
+
// utils.mjs
|
|
377
|
+
'u.nav.radio': '↑↓ navigate · enter = confirm',
|
|
378
|
+
'u.nav.checkbox': '↑↓ navigate · space = toggle · enter = confirm',
|
|
379
|
+
},
|
|
380
|
+
};
|