symfonia-ai-tools 1.0.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.
Files changed (74) hide show
  1. package/README.md +489 -0
  2. package/bin/cli.mjs +35 -0
  3. package/lib/installer.mjs +495 -0
  4. package/lib/questions.mjs +332 -0
  5. package/lib/ui.mjs +76 -0
  6. package/lib/utils.mjs +231 -0
  7. package/package.json +26 -0
  8. package/templates/base/CLAUDE.md +34 -0
  9. package/templates/base/_ai/_guidelines_header.md +70 -0
  10. package/templates/base/_ai/context/README.md +20 -0
  11. package/templates/base/_ai/prompts/codereview.prompt.md +324 -0
  12. package/templates/base/_ai/prompts/duplicate-code-analysis.prompt.md +128 -0
  13. package/templates/base/_ai/prompts/figma-analysis.prompt.md +155 -0
  14. package/templates/base/_ai/prompts/security-review.prompt.md +46 -0
  15. package/templates/base/_ai/skills/README.md +80 -0
  16. package/templates/base/_ai/skills/TEMPLATE.md +106 -0
  17. package/templates/base/_ai/skills/babysit-prs/SKILL.md +105 -0
  18. package/templates/base/_ai/skills/debug/SKILL.md +93 -0
  19. package/templates/base/_ai/skills/fill-worklogs/SKILL.md +158 -0
  20. package/templates/base/_ai/skills/hotfix/SKILL.md +52 -0
  21. package/templates/base/_ai/skills/jira-task/SKILL.md +170 -0
  22. package/templates/base/_ai/skills/my-prs/SKILL.md +78 -0
  23. package/templates/base/_ai/skills/pr-dashboard/SKILL.md +43 -0
  24. package/templates/base/_ai/skills/pr-prepare/SKILL.md +106 -0
  25. package/templates/base/_ai/skills/refactor/SKILL.md +87 -0
  26. package/templates/base/_ai/skills/write-tests/SKILL.md +109 -0
  27. package/templates/base/_claude/settings.local.json +37 -0
  28. package/templates/base/_cursor/rules/global.mdc +7 -0
  29. package/templates/base/_editorconfig +18 -0
  30. package/templates/base/_gemini/settings.json +3 -0
  31. package/templates/base/_github/copilot-instructions.md +1 -0
  32. package/templates/base/_github/pull_request_template.md +23 -0
  33. package/templates/base/_gitignore +22 -0
  34. package/templates/base/_junie/guidelines.md +1 -0
  35. package/templates/base/commit-instructions.md +92 -0
  36. package/templates/packs/docker/_ai/instructions/docker.instructions.md +193 -0
  37. package/templates/packs/docker/_guidelines.md +10 -0
  38. package/templates/packs/docker/pack.json +8 -0
  39. package/templates/packs/laravel/_ai/instructions/api-resource.instructions.md +251 -0
  40. package/templates/packs/laravel/_ai/instructions/module.instructions.md +133 -0
  41. package/templates/packs/laravel/_ai/instructions/service-repository.instructions.md +215 -0
  42. package/templates/packs/laravel/_ai/instructions/testing.instructions.md +278 -0
  43. package/templates/packs/laravel/_ai/skills/migration/SKILL.md +172 -0
  44. package/templates/packs/laravel/_ai/skills/new-endpoint/SKILL.md +165 -0
  45. package/templates/packs/laravel/_ai/skills/new-module/SKILL.md +208 -0
  46. package/templates/packs/laravel/_ai/skills/queued-job/SKILL.md +248 -0
  47. package/templates/packs/laravel/_ai/skills/testing-feature/SKILL.md +196 -0
  48. package/templates/packs/laravel/_ai/skills/testing-manual/SKILL.md +186 -0
  49. package/templates/packs/laravel/_ai/skills/testing-unit/SKILL.md +200 -0
  50. package/templates/packs/laravel/_guidelines.md +25 -0
  51. package/templates/packs/laravel/pack.json +6 -0
  52. package/templates/packs/playwright/_ai/instructions/playwright.instructions.md +219 -0
  53. package/templates/packs/playwright/_ai/skills/playwright/README.md +194 -0
  54. package/templates/packs/playwright/_ai/skills/playwright/SKILL.md +1245 -0
  55. package/templates/packs/playwright/_ai/skills/playwright-codereview/SKILL.md +642 -0
  56. package/templates/packs/playwright/_ai/skills/playwright-record/README.md +87 -0
  57. package/templates/packs/playwright/_ai/skills/playwright-record/SKILL.md +564 -0
  58. package/templates/packs/playwright/_guidelines.md +12 -0
  59. package/templates/packs/playwright/pack.json +9 -0
  60. package/templates/packs/storybook/_ai/instructions/storybook.instructions.md +181 -0
  61. package/templates/packs/storybook/pack.json +6 -0
  62. package/templates/packs/vitest/_ai/instructions/vitest.instructions.md +688 -0
  63. package/templates/packs/vitest/pack.json +6 -0
  64. package/templates/packs/vue3/_ai/instructions/api.instructions.md +163 -0
  65. package/templates/packs/vue3/_ai/instructions/coding-conventions.instructions.md +160 -0
  66. package/templates/packs/vue3/_ai/instructions/composables.instructions.md +218 -0
  67. package/templates/packs/vue3/_ai/instructions/forms.instructions.md +227 -0
  68. package/templates/packs/vue3/_ai/instructions/store.instructions.md +504 -0
  69. package/templates/packs/vue3/_ai/instructions/vue.instructions.md +339 -0
  70. package/templates/packs/vue3/_ai/skills/api-integration/SKILL.md +195 -0
  71. package/templates/packs/vue3/_ai/skills/new-component/SKILL.md +133 -0
  72. package/templates/packs/vue3/_ai/skills/new-module/SKILL.md +177 -0
  73. package/templates/packs/vue3/_guidelines.md +45 -0
  74. package/templates/packs/vue3/pack.json +11 -0
package/README.md ADDED
@@ -0,0 +1,489 @@
1
+ # symfonia-ai-tools
2
+
3
+ Interaktywny konfigurator AI toolingu dla projektow. Jeden `npx` — kompletna konfiguracja Claude Code, GitHub Copilot, Cursor, Gemini, Junie i GSD.
4
+
5
+ ## Instalacja
6
+
7
+ ```bash
8
+ npx symfonia-ai-tools
9
+ ```
10
+
11
+ Konfigurator przeprowadzi Cie przez:
12
+ 1. Wybor typu projektu, opis, tech stack
13
+ 2. Wybor pakietow instrukcji i skilli (checkboxy)
14
+ 3. Narzedzia AI do skonfigurowania (checkboxy)
15
+ 4. Wybor skilli do zainstalowania (checkboxy — bazowe + z wybranych pakietow)
16
+ 5. Sciezki, komendy, CI pipeline, prefix JIRA
17
+ 6. Serwery MCP (checkboxy + tokeny)
18
+ 7. Instalacje CLI (checkboxy)
19
+
20
+ Caly konfigurator uzywa nawigacji strzalkami — zero wpisywania cyferek.
21
+
22
+ Na koniec automatycznie uruchamia GSD:
23
+ - **Nowy projekt** → `/gsd:new-project`
24
+ - **Istniejacy projekt** → `/gsd:map-codebase` → `/gsd:new-project`
25
+
26
+ ### Tryby instalacji (istniejacy projekt)
27
+
28
+ | Tryb | Opis |
29
+ |------|------|
30
+ | **Nadpisz wszystko** | Pelna reinstalacja — nadpisuje istniejace pliki |
31
+ | **Tylko nowe pliki** | Dodaje brakujace pliki, nie rusza istniejacych |
32
+ | **Tylko MCP** | Konfiguruje serwery MCP bez ruszania reszty |
33
+
34
+ ---
35
+
36
+ ## Architektura: Single Source of Truth
37
+
38
+ Wszystkie narzedzia AI czytaja te same zasady z jednego miejsca:
39
+
40
+ ```
41
+ .ai/guidelines.md ← JEDYNE ZRODLO PRAWDY
42
+
43
+ ├── CLAUDE.md (referencja)
44
+ ├── .github/copilot-instructions.md (pointer)
45
+ ├── .cursor/rules/global.mdc (pointer)
46
+ ├── .gemini/settings.json (referencja)
47
+ └── .junie/guidelines.md (pointer)
48
+ ```
49
+
50
+ Zmien `.ai/guidelines.md` — wszystkie agenty to zobacza.
51
+
52
+ ---
53
+
54
+ ## Pakiety (packs)
55
+
56
+ Zamiast wybierania jednego stacka, wybierasz dowolne pakiety instrukcji i skilli — checkboxami. Kazdy pakiet deklaruje swoje instrukcje, skille i wymagane placeholdery w `pack.json`.
57
+
58
+ ### Dostepne pakiety
59
+
60
+ | Pakiet | Zawartosc | Domyslny |
61
+ |--------|-----------|----------|
62
+ | **Vue 3 + TypeScript** | 6 instrukcji, 3 skille | Tak |
63
+ | **Vitest** | 1 instrukcja | Tak |
64
+ | **Storybook** | 1 instrukcja | Nie |
65
+ | **Laravel + PHP** | 4 instrukcje, 7 skilli | Nie |
66
+ | **Playwright** | 1 instrukcja, 3 skille | Nie |
67
+ | **Docker** | 1 instrukcja | Nie |
68
+
69
+ Pakiety sa niezalezne — mozesz laczyc np. Vue 3 + Playwright + Docker.
70
+
71
+ ---
72
+
73
+ ## Co instaluje
74
+
75
+ ### Pliki per narzedzie
76
+
77
+ | Narzedzie | Pliki |
78
+ |-----------|-------|
79
+ | **Claude Code** | `CLAUDE.md`, `.claude/settings.local.json` (permissions + deny rules) |
80
+ | **GitHub Copilot** | `.github/copilot-instructions.md`, `.github/pull_request_template.md`, `.github/instructions/`, `.github/prompts/`, `.github/skills/` |
81
+ | **Cursor IDE** | `.cursor/rules/global.mdc`, `.cursor/mcp.json` |
82
+ | **Gemini** | `.gemini/settings.json` |
83
+ | **JetBrains Junie** | `.junie/guidelines.md` |
84
+
85
+ ### Pliki wspolne
86
+
87
+ | Plik | Opis |
88
+ |------|------|
89
+ | `.ai/guidelines.md` | Glowne zasady projektu (source of truth) |
90
+ | `.ai/instructions/` | Instrukcje kontekstowe per typ pliku |
91
+ | `.ai/prompts/` | Reusable prompty AI |
92
+ | `.ai/skills/` | Skille — krok-po-krok workflow |
93
+ | `.ai/context/` | Kontekst projektowy (architektura, API spec, slownik) |
94
+ | `commit-instructions.md` | Commit conventions + branch naming |
95
+ | `.gitignore` | Pre-konfigurowany (AI tokeny, .env, IDE) |
96
+ | `.editorconfig` | Konsystentne formatowanie (utf-8, lf, spaces) |
97
+
98
+ ---
99
+
100
+ ## Instructions (kontekstowe instrukcje)
101
+
102
+ Instructions to pliki z zasadami, ktore AI stosuje automatycznie gdy pracuje z pasujacymi plikami. Kazda instrukcja ma frontmatter `applyTo` z glob pattern.
103
+
104
+ ### Jak dzialaja
105
+
106
+ ```yaml
107
+ ---
108
+ applyTo: "**/*.vue"
109
+ ---
110
+ # Vue Component Instructions
111
+ ...
112
+ ```
113
+
114
+ Gdy AI otwiera/edytuje plik pasujacy do `applyTo`, automatycznie laduje te instrukcje jako kontekst.
115
+
116
+ ### Vue 3 + TypeScript (6 instrukcji)
117
+
118
+ | Instrukcja | applyTo | Czego uczy AI |
119
+ |-----------|---------|---------------|
120
+ | `vue.instructions.md` | `**/*.vue` | Composition API, defineProps, withDefaults, template order |
121
+ | `store.instructions.md` | `**/*.store.ts, **/stores/**` | Pinia setup syntax, ref/computed, akcje async |
122
+ | `api.instructions.md` | `**/*Service*.ts, **/api/**` | useApi singleton, interceptory, error handling |
123
+ | `coding-conventions.instructions.md` | `**/*.vue, **/*.ts, **/*.scss` | Naming (camelCase/PascalCase), I/E/T prefixy, CSS single-dash |
124
+ | `composables.instructions.md` | `**/composables/**, **/use*.ts` | useAsyncDataLoader, form composable, filter composable |
125
+ | `forms.instructions.md` | `**/*Form*.vue, **/validation*` | ValidationBuilder, computed validation, 422 handling |
126
+
127
+ ### Vitest (1 instrukcja)
128
+
129
+ | Instrukcja | applyTo | Czego uczy AI |
130
+ |-----------|---------|---------------|
131
+ | `vitest.instructions.md` | `**/*.test.ts, **/*.spec.ts` | mount, shallowMount, mocking, data-testid selektory |
132
+
133
+ ### Storybook (1 instrukcja)
134
+
135
+ | Instrukcja | applyTo | Czego uczy AI |
136
+ |-----------|---------|---------------|
137
+ | `storybook.instructions.md` | `**/*.stories.ts` | Meta + StoryObj, autodocs, argTypes, warianty |
138
+
139
+ ### Laravel + PHP (4 instrukcje)
140
+
141
+ | Instrukcja | applyTo | Czego uczy AI |
142
+ |-----------|---------|---------------|
143
+ | `module.instructions.md` | `**/Modules/**` | Struktura modulu, module.json, ServiceProvider |
144
+ | `service-repository.instructions.md` | `**/*Service*.php, **/*Repository*.php` | CQRS (Command/Query repos), readonly services, DTO |
145
+ | `api-resource.instructions.md` | `**/*Resource*.php, **/*Request*.php` | Resources z whenLoaded(), Form Requests, Policies |
146
+ | `testing.instructions.md` | `**/*Test*.php, **/tests/**` | PHPUnit, data providers, factories, Laravel fakes |
147
+
148
+ ### Playwright (1 instrukcja)
149
+
150
+ | Instrukcja | applyTo | Czego uczy AI |
151
+ |-----------|---------|---------------|
152
+ | `playwright.instructions.md` | `**/*.spec.ts (e2e)` | Page Object Model, selektory, czekanie na elementy |
153
+
154
+ ### Docker (1 instrukcja)
155
+
156
+ | Instrukcja | applyTo | Czego uczy AI |
157
+ |-----------|---------|---------------|
158
+ | `docker.instructions.md` | `**/Dockerfile, **/docker-compose*` | Artisan w kontenerze, multi-stage build |
159
+
160
+ ### Dodawanie wlasnej instrukcji
161
+
162
+ 1. Utworz plik w `.ai/instructions/`:
163
+ ```markdown
164
+ ---
165
+ applyTo: "**/*.graphql"
166
+ ---
167
+ # GraphQL Instructions
168
+ Zasady specyficzne dla plikow GraphQL...
169
+ ```
170
+ 2. Mirror do `.github/instructions/` dzieje sie automatycznie jesli Copilot jest wybrany
171
+
172
+ ---
173
+
174
+ ## Guidelines — co zawiera
175
+
176
+ Plik `.ai/guidelines.md` jest skladany automatycznie z:
177
+ 1. **Header** — project overview, tech stack, komendy, CI, commit rules, branch naming, sekcja Forbidden, testing strategy
178
+ 2. **Sekcje pakietow** — kazdy wybrany pack dolacza swoja sekcje (np. Vue 3 architecture, Laravel conventions)
179
+
180
+ ### Sekcje w guidelines
181
+
182
+ | Sekcja | Co zawiera |
183
+ |--------|-----------|
184
+ | Project Overview | Nazwa, opis, tech stack |
185
+ | Commands | test, build, lint, CI |
186
+ | Commits & Branches | Format commitow, branch naming convention |
187
+ | CI Pipeline | Komenda ktora musi przejsc przed PR |
188
+ | Forbidden | Czego AI NIE wolno robic bez zgody |
189
+ | Testing Strategy | Kiedy unit, integration, E2E, regression |
190
+ | Skills | Pointer do `.ai/skills/` |
191
+ | Instructions | Pointer do `.ai/instructions/` |
192
+ | Context | Pointer do `.ai/context/` |
193
+
194
+ ---
195
+
196
+ ## Skills (krok-po-krok workflow)
197
+
198
+ Skills to gotowe procedury, ktore AI wykonuje krok po kroku. Kazdy skill ma trigger, input, steps i verification checklist.
199
+
200
+ ### Jak uzywac
201
+
202
+ Powiedz AI:
203
+
204
+ ```
205
+ "Uzywajac skilla new-module, stworz modul uzytkownicy"
206
+ "Wykonaj skilla debug dla bledu TypeError w UserService"
207
+ "Postepuj wedlug skilla pr-prepare"
208
+ ```
209
+
210
+ AI przeczyta `SKILL.md` i wykona kroki po kolei.
211
+
212
+ ### Skills bazowe (wszystkie pakiety)
213
+
214
+ | Skill | Cel | Kiedy uzywac |
215
+ |-------|-----|-------------|
216
+ | `debug` | Systematyczne debugowanie | Bug, blad, nieoczekiwane zachowanie |
217
+ | `refactor` | Bezpieczny refactoring | Wydzielanie, upraszczanie, przenoszenie kodu |
218
+ | `write-tests` | Dodanie testow | Istniejacy kod bez pokrycia testami |
219
+ | `pr-prepare` | Przygotowanie PR | Przed push — self-review, cleanup, opis |
220
+ | `hotfix` | Szybka poprawka produkcji | Branch z main, minimalny fix, regression test |
221
+ | `babysit-prs` | Monitoring PRow do review | Cykliczne sprawdzanie nowych PRow (GitHub + Bitbucket) |
222
+ | `my-prs` | Status wlasnych PRow | Sprawdzenie approvals, komentarzy, brakujacych review |
223
+ | `pr-dashboard` | Dashboard PRow | Combo babysit-prs + my-prs z opcjonalnym loopem |
224
+ | `fill-worklogs` | Wypelnianie worklogow Jira | Automatyczne uzupelnianie godzin na bazie commitow git |
225
+ | `jira-task` | Pelny workflow Jira | Ticket → branch → implementacja → PR → aktualizacja Jira |
226
+
227
+ ### Skills Vue 3 + TypeScript
228
+
229
+ | Skill | Cel | Kiedy uzywac |
230
+ |-------|-----|-------------|
231
+ | `new-module` | Nowy modul od zera | types → service → store → composables → views → routes → testy |
232
+ | `new-component` | Nowy komponent | Komponent + story + test + data-testid |
233
+ | `api-integration` | Podlaczenie do API | types + mapper → service → store → composable → widok |
234
+
235
+ ### Skills Laravel + PHP
236
+
237
+ | Skill | Cel | Kiedy uzywac |
238
+ |-------|-----|-------------|
239
+ | `new-module` | Nowy modul od zera | model → migration → CQRS repos → service → DTO → controller → testy |
240
+ | `new-endpoint` | Nowy endpoint API | request → controller → DTO → service → resource → policy → route → testy |
241
+ | `migration` | Migracja DB | create/modify table → rollback test → model update → factory |
242
+ | `queued-job` | Job / Event / Listener | Job class → retry/backoff → failed handler → idempotentnosc → testy |
243
+ | `testing-feature` | Testy feature (HTTP/DB) | Konwencje testow feature, delta pattern, data resilience |
244
+ | `testing-unit` | Testy jednostkowe | Izolowane testy bez DB, PHPUnit mocks, data providers |
245
+ | `testing-manual` | Testy manualne HTTP | JetBrains HTTP Client — pliki `.http` do interaktywnego testowania API |
246
+
247
+ ### Skills Playwright
248
+
249
+ | Skill | Cel | Kiedy uzywac |
250
+ |-------|-----|-------------|
251
+ | `playwright` | Nowy test E2E | Page Object → scenariusz → asercje |
252
+ | `playwright-record` | Nagrywanie testu | codegen → cleanup → Page Object |
253
+ | `playwright-codereview` | Review testu E2E | Checklist jakosci testu Playwright |
254
+
255
+ ### Tworzenie wlasnego skilla
256
+
257
+ 1. Utworz katalog w `.ai/skills/nazwa-skilla/`
258
+ 2. Skopiuj szablon: `cp .ai/skills/TEMPLATE.md .ai/skills/nazwa-skilla/SKILL.md`
259
+ 3. Wypelnij sekcje: Trigger, Input, Steps, Verification checklist
260
+ 4. Jesli uzywasz Copilot, skopiuj do `.github/skills/`
261
+
262
+ ---
263
+
264
+ ## Prompts (reusable prompty)
265
+
266
+ Prompty to gotowe polecenia dla AI do wykonania zlozonych zadan jednym wywolaniem.
267
+
268
+ ### Dostepne prompty
269
+
270
+ | Prompt | Cel | Jak uzyc |
271
+ |--------|-----|----------|
272
+ | `codereview.prompt.md` | Kompleksowy code review brancha | "Wykonaj code review wg `.ai/prompts/codereview.prompt.md`" |
273
+ | `security-review.prompt.md` | Audyt bezpieczenstwa (OWASP Top 10) | "Wykonaj security review wg `.ai/prompts/security-review.prompt.md`" |
274
+ | `figma-analysis.prompt.md` | Analiza komponentu Figma (wymaga MCP Figma) | "Przeanalizuj ten komponent Figma wg promptu figma-analysis" |
275
+ | `duplicate-code-analysis.prompt.md` | Wykrywanie duplikatow kodu | "Znajdz duplikaty wg `.ai/prompts/duplicate-code-analysis.prompt.md`" |
276
+
277
+ ### Uzycie w roznych narzedziach
278
+
279
+ **Claude Code:**
280
+ ```
281
+ Przeczytaj .ai/prompts/codereview.prompt.md i wykonaj review tego brancha
282
+ ```
283
+
284
+ **GitHub Copilot Chat:**
285
+ ```
286
+ @workspace Wykonaj code review zgodnie z .github/prompts/codereview.prompt.md
287
+ ```
288
+
289
+ ---
290
+
291
+ ## Serwery MCP
292
+
293
+ MCP (Model Context Protocol) pozwala AI na komunikacje z zewnetrznymi systemami.
294
+
295
+ | Serwer | Do czego | Wymaga tokena |
296
+ |--------|----------|---------------|
297
+ | **Jira Cloud** | Pobieranie ticketow do kontekstu AI | Tak |
298
+ | **Bitbucket Cloud** | Integracja z repozytorium | Tak |
299
+ | **Figma** | Analiza mockupow UI | Tak |
300
+ | **Context7** | Dokumentacja bibliotek | Nie |
301
+
302
+ ### Gdzie wygenerowac tokeny
303
+
304
+ | Serwis | Link |
305
+ |--------|------|
306
+ | Jira API Token | https://id.atlassian.com/manage-profile/security/api-tokens |
307
+ | Bitbucket App Password | https://bitbucket.org/account/settings/app-passwords/ |
308
+ | Figma Access Token | Figma → Settings → Personal access tokens |
309
+
310
+ ### Konfiguracja automatyczna
311
+
312
+ Instalator automatycznie:
313
+ - Zapisuje config do `.claude/settings.local.json` i `.cursor/mcp.json`
314
+ - Rejestruje serwery w Claude CLI (`claude mcp add -s project`)
315
+ - Weryfikacja: `claude mcp list`
316
+
317
+ ---
318
+
319
+ ## GSD (Get Shit Done)
320
+
321
+ GSD to system do strukturyzacji pracy z AI — planowanie, wykonanie i weryfikacja w powtarzalnym procesie.
322
+
323
+ ### Dlaczego wymagany
324
+
325
+ - Zapobiega **context rot** (degradacji jakosci AI po dlugiej sesji)
326
+ - Strukturyzuje prace w fazy z checkpointami
327
+ - Automatycznie mapuje codebase w istniejacych projektach
328
+
329
+ ### Instalacja
330
+
331
+ ```bash
332
+ npx get-shit-done-cc@latest
333
+ ```
334
+
335
+ ### Kluczowe komendy
336
+
337
+ | Komenda | Cel |
338
+ |---------|-----|
339
+ | `/gsd:new-project` | Inicjalizacja projektu |
340
+ | `/gsd:plan-phase` | Planowanie fazy |
341
+ | `/gsd:execute-phase` | Wykonanie |
342
+ | `/gsd:verify-work` | Weryfikacja UAT |
343
+ | `/gsd:progress` | Status i nastepne kroki |
344
+ | `/gsd:debug` | Systematyczny debugging |
345
+ | `/gsd:map-codebase` | Mapowanie istniejacego kodu |
346
+
347
+ ---
348
+
349
+ ## Struktura zainstalowanych plikow
350
+
351
+ ```
352
+ projekt/
353
+ ├── .ai/
354
+ │ ├── guidelines.md # Source of truth (header + wybrane pakiety)
355
+ │ ├── instructions/ # Kontekstowe instrukcje (applyTo)
356
+ │ │ ├── vue.instructions.md
357
+ │ │ └── ...
358
+ │ ├── prompts/ # Reusable prompty
359
+ │ │ ├── codereview.prompt.md
360
+ │ │ ├── security-review.prompt.md
361
+ │ │ ├── figma-analysis.prompt.md
362
+ │ │ └── duplicate-code-analysis.prompt.md
363
+ │ ├── skills/ # Workflow skille
364
+ │ │ ├── debug/SKILL.md
365
+ │ │ ├── refactor/SKILL.md
366
+ │ │ ├── write-tests/SKILL.md
367
+ │ │ ├── pr-prepare/SKILL.md
368
+ │ │ ├── hotfix/SKILL.md
369
+ │ │ ├── babysit-prs/SKILL.md
370
+ │ │ ├── my-prs/SKILL.md
371
+ │ │ ├── pr-dashboard/SKILL.md
372
+ │ │ ├── fill-worklogs/SKILL.md
373
+ │ │ ├── jira-task/SKILL.md
374
+ │ │ └── [pack-specific]/SKILL.md
375
+ │ └── context/ # Kontekst projektowy
376
+ │ └── README.md # (tu dodaj architecture.md, api-spec.md, etc.)
377
+ ├── .claude/
378
+ │ └── settings.local.json # Permissions (allow/deny) + MCP servers
379
+ ├── .github/
380
+ │ ├── copilot-instructions.md # Pointer → .ai/guidelines.md
381
+ │ ├── pull_request_template.md # Szablon PR
382
+ │ ├── instructions/ # Mirror z .ai/instructions/
383
+ │ ├── prompts/ # Mirror z .ai/prompts/
384
+ │ └── skills/ # Mirror z .ai/skills/
385
+ ├── .cursor/
386
+ │ ├── rules/global.mdc # Pointer → .ai/guidelines.md
387
+ │ └── mcp.json # MCP servers
388
+ ├── .gemini/
389
+ │ └── settings.json # Pointer → .ai/guidelines.md
390
+ ├── .junie/
391
+ │ └── guidelines.md # Pointer → .ai/guidelines.md
392
+ ├── .editorconfig # Formatowanie (utf-8, lf, spaces)
393
+ ├── .gitignore # Pre-konfigurowany (AI tokeny, .env)
394
+ ├── CLAUDE.md # Claude Code entry point
395
+ └── commit-instructions.md # Commit conventions + branch naming
396
+ ```
397
+
398
+ > **Mirror**: `.ai/instructions/`, `.ai/prompts/` i `.ai/skills/` sa automatycznie kopiowane do `.github/` jesli wybrany jest GitHub Copilot.
399
+
400
+ ---
401
+
402
+ ## Rozwoj pakietu
403
+
404
+ ### Dodanie nowego packa
405
+
406
+ 1. Utworz `templates/packs/nazwa-packa/`
407
+ 2. Dodaj `pack.json`:
408
+ ```json
409
+ {
410
+ "name": "Nazwa Packa",
411
+ "description": "Opis co zawiera",
412
+ "default": false,
413
+ "placeholders": {
414
+ "MY_PLACEHOLDER": {
415
+ "question": "Pytanie wyswietlane uzytkownikowi",
416
+ "default": "wartosc domyslna"
417
+ }
418
+ }
419
+ }
420
+ ```
421
+ 3. Dodaj instrukcje w `_ai/instructions/` (z frontmatter `applyTo`)
422
+ 4. Dodaj skille w `_ai/skills/`
423
+ 5. Opcjonalnie dodaj `_guidelines.md` — sekcja dolaczana do guidelines.md
424
+
425
+ ### Dodanie nowego skilla
426
+
427
+ 1. Utworz `templates/[base|packs/pack]/_ai/skills/nazwa/SKILL.md`
428
+ 2. Uzyj struktury: Trigger → Input → Steps → Verification checklist
429
+ 3. Uzywaj `{{PLACEHOLDER}}` dla wartosci zastepowanych podczas instalacji
430
+
431
+ ### Dostepne placeholdery
432
+
433
+ | Placeholder | Opis |
434
+ |-------------|------|
435
+ | `{{PROJECT_NAME}}` | Nazwa projektu |
436
+ | `{{PROJECT_DESCRIPTION}}` | Krotki opis projektu |
437
+ | `{{TECH_STACK}}` | Tech stack (wolny tekst) |
438
+ | `{{CI_COMMAND}}` | Komenda CI (wszystkie checki) |
439
+ | `{{MODULE_PATH}}` | Sciezka do modulow |
440
+ | `{{COMPONENT_LIB_PATH}}` | Sciezka do komponentow UI |
441
+ | `{{COMPONENT_LIB_IMPORT}}` | Import komponentow |
442
+ | `{{API_BASE_URL}}` | Bazowy URL API |
443
+ | `{{TEST_COMMAND}}` | Komenda testow |
444
+ | `{{BUILD_COMMAND}}` | Komenda builda |
445
+ | `{{LINT_COMMAND}}` | Komenda lintera |
446
+ | `{{DOCKER_CONTAINER}}` | Nazwa kontenera Docker |
447
+ | `{{JIRA_PREFIX}}` | Prefix taskow JIRA |
448
+ | `{{PLAYWRIGHT_DIR}}` | Katalog Playwright |
449
+ | `{{BASE_URL}}` | Base URL aplikacji |
450
+
451
+ ### Struktura templates
452
+
453
+ ```
454
+ templates/
455
+ ├── base/ # Wspolne dla wszystkich pakietow
456
+ │ ├── CLAUDE.md
457
+ │ ├── commit-instructions.md
458
+ │ ├── _gitignore # → .gitignore
459
+ │ ├── _editorconfig # → .editorconfig
460
+ │ ├── _ai/ # → .ai/
461
+ │ │ ├── _guidelines_header.md # Naglowek guidelines
462
+ │ │ ├── context/ # Kontekst projektowy
463
+ │ │ ├── prompts/ # codereview, security-review, figma, duplicates
464
+ │ │ └── skills/ # 10 skilli bazowych
465
+ │ ├── _claude/ # → .claude/ (permissions + deny)
466
+ │ ├── _github/ # → .github/ (copilot pointer + PR template)
467
+ │ ├── _cursor/ # → .cursor/
468
+ │ ├── _gemini/ # → .gemini/
469
+ │ └── _junie/ # → .junie/
470
+ └── packs/
471
+ ├── vue3/ # 6 instr. · 3 skille
472
+ │ ├── pack.json
473
+ │ ├── _guidelines.md # Sekcja dolaczana do guidelines
474
+ │ └── _ai/instructions/
475
+ ├── vitest/ # 1 instr.
476
+ ├── storybook/ # 1 instr.
477
+ ├── laravel/ # 4 instr. · 7 skilli
478
+ ├── playwright/ # 1 instr. · 3 skille
479
+ └── docker/ # 1 instr.
480
+ ```
481
+
482
+ > Katalogi z prefixem `_` sa zamieniane na `.` podczas instalacji.
483
+ > Katalogi per narzedzie (`_claude/`, `_github/`, etc.) sa kopiowane tylko jesli to narzedzie zostalo wybrane.
484
+
485
+ ---
486
+
487
+ ## Licencja
488
+
489
+ MIT
package/bin/cli.mjs ADDED
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { fileURLToPath } from 'node:url';
4
+ import { dirname, join } from 'node:path';
5
+ import { askQuestions } from '../lib/questions.mjs';
6
+ import { install } from '../lib/installer.mjs';
7
+ import { box, boldCyan, boldMagenta, cyan, dim, red, yellow } from '../lib/ui.mjs';
8
+
9
+ const __filename = fileURLToPath(import.meta.url);
10
+ const __dirname = dirname(__filename);
11
+ const ROOT = join(__dirname, '..');
12
+
13
+ console.log('');
14
+ box([
15
+ boldMagenta('♫ SymfoniaAITools'),
16
+ '',
17
+ cyan(' Claude Code · GitHub Copilot · Cursor'),
18
+ cyan(' Gemini · Junie · GSD'),
19
+ '',
20
+ dim(' Jeden konfigurator — wszystkie agenty gotowe'),
21
+ ]);
22
+ console.log('');
23
+
24
+ try {
25
+ const packsDir = join(ROOT, 'templates', 'packs');
26
+ const answers = await askQuestions(packsDir);
27
+ await install(ROOT, answers);
28
+ } catch (err) {
29
+ if (err.message === 'USER_ABORT') {
30
+ console.log(`\n ${yellow('Przerwano.')}\n`);
31
+ process.exit(0);
32
+ }
33
+ console.error(`\n ${red('Blad:')} ${err.message}\n`);
34
+ process.exit(1);
35
+ }